diff --git a/core/kg/server/grpc_server.go b/core/kg/server/grpc_server.go
index 0e4f9e6..966029e 100644
--- a/core/kg/server/grpc_server.go
+++ b/core/kg/server/grpc_server.go
@@ -5,7 +5,6 @@
 	"net"
 	"os"
 
-	"github.com/giolekva/pcloud/core/kg/app"
 	"github.com/giolekva/pcloud/core/kg/log"
 	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/giolekva/pcloud/core/kg/model/proto"
@@ -15,16 +14,16 @@
 
 // GRPCServerImpl grpc server implementation
 type GRPCServerImpl struct {
-	Log    *log.Logger
+	Log    loggerIface
 	srv    *grpc.Server
 	config *model.Config
-	app    *app.App
+	app    appIface
 }
 
 var _ Server = &GRPCServerImpl{}
 
 // NewGRPCServer creates new GRPC Server
-func NewGRPCServer(logger *log.Logger, config *model.Config, app *app.App) Server {
+func NewGRPCServer(logger loggerIface, config *model.Config, app appIface) Server {
 	a := &GRPCServerImpl{
 		Log:    logger,
 		config: config,
diff --git a/core/kg/server/http_server.go b/core/kg/server/http_server.go
index 6802332..67eab88 100644
--- a/core/kg/server/http_server.go
+++ b/core/kg/server/http_server.go
@@ -16,7 +16,7 @@
 
 // HTTPServerImpl http server implementation
 type HTTPServerImpl struct {
-	Log    *log.Logger
+	Log    loggerIface
 	srv    *http.Server
 	root   *mux.Router
 	config *model.Config
@@ -26,7 +26,7 @@
 var _ Server = &HTTPServerImpl{}
 
 // NewHTTPServer creates new HTTP Server
-func NewHTTPServer(logger *log.Logger, config *model.Config, store store.Store) Server {
+func NewHTTPServer(logger loggerIface, config *model.Config, store store.Store) Server {
 	a := &HTTPServerImpl{
 		Log:    logger,
 		root:   mux.NewRouter(),
diff --git a/core/kg/server/interfaces.go b/core/kg/server/interfaces.go
new file mode 100644
index 0000000..0316ea6
--- /dev/null
+++ b/core/kg/server/interfaces.go
@@ -0,0 +1,17 @@
+package server
+
+import (
+	"github.com/giolekva/pcloud/core/kg/log"
+	"github.com/giolekva/pcloud/core/kg/model"
+)
+
+type loggerIface interface {
+	Debug(message string, fields ...log.Field)
+	Info(message string, fields ...log.Field)
+	Warn(message string, fields ...log.Field)
+	Error(message string, fields ...log.Field)
+}
+
+type appIface interface {
+	GetUser(userID string) (*model.User, error)
+}
diff --git a/core/kg/server/servers.go b/core/kg/server/servers.go
index 7363a0e..9d91b34 100644
--- a/core/kg/server/servers.go
+++ b/core/kg/server/servers.go
@@ -17,11 +17,11 @@
 // Servers represents different server services
 type Servers struct {
 	servers []Server
-	logger  *log.Logger
+	logger  loggerIface
 }
 
 // New provides new service application
-func New(logger *log.Logger) *Servers {
+func New(logger loggerIface) *Servers {
 	return &Servers{
 		logger: logger,
 	}
diff --git a/core/kg/server/servers_mock.go b/core/kg/server/servers_mock.go
new file mode 100644
index 0000000..2260d2c
--- /dev/null
+++ b/core/kg/server/servers_mock.go
@@ -0,0 +1,54 @@
+package server
+
+import (
+	"testing"
+	"time"
+
+	"github.com/giolekva/pcloud/core/kg/app"
+	"github.com/giolekva/pcloud/core/kg/log"
+	"github.com/giolekva/pcloud/core/kg/model"
+)
+
+type MockServer struct {
+	App     appIface
+	Servers []Server
+	Config  *model.Config
+}
+
+func Setup(tb testing.TB) *MockServer {
+	if testing.Short() {
+		tb.SkipNow()
+	}
+	app := app.NewTestApp()
+	config := model.NewConfig()
+	logger := &log.NoOpLogger{}
+	grpcServer := NewGRPCServer(logger, config, app)
+	httpServer := NewHTTPServer(logger, config, nil)
+	ts := &MockServer{
+		App:     app,
+		Servers: []Server{grpcServer, httpServer},
+		Config:  config,
+	}
+	go grpcServer.Start()
+	go httpServer.Start()
+	time.Sleep(1 * time.Second)
+	return ts
+}
+
+func (ts *MockServer) ShutdownServers() {
+	done := make(chan bool)
+	go func() {
+		for _, server := range ts.Servers {
+			server.Shutdown()
+		}
+		close(done)
+	}()
+
+	select {
+	case <-done:
+	case <-time.After(30 * time.Second):
+		// panic instead of fatal to terminate all tests in this package, otherwise the
+		// still running server could spuriously fail subsequent tests.
+		panic("failed to shutdown server within 30 seconds")
+	}
+}
