diff --git a/core/kg/app/app.go b/core/kg/app/app.go
index 0d8b312..8cdc0d6 100644
--- a/core/kg/app/app.go
+++ b/core/kg/app/app.go
@@ -1,6 +1,7 @@
 package app
 
 import (
+	"github.com/giolekva/pcloud/core/kg/common"
 	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/giolekva/pcloud/core/kg/store"
 )
@@ -9,11 +10,11 @@
 type App struct {
 	store  store.Store
 	config *model.Config
-	logger logger
+	logger common.LoggerIface
 }
 
 // NewApp creates new app
-func NewApp(store store.Store, config *model.Config, logger logger) *App {
+func NewApp(store store.Store, config *model.Config, logger common.LoggerIface) *App {
 	return &App{
 		store:  store,
 		config: config,
diff --git a/core/kg/app/app_mock.go b/core/kg/app/app_mock.go
index f85e754..41575ff 100644
--- a/core/kg/app/app_mock.go
+++ b/core/kg/app/app_mock.go
@@ -2,6 +2,7 @@
 
 import (
 	"github.com/giolekva/pcloud/core/kg/log"
+	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/giolekva/pcloud/core/kg/store/memory"
 )
 
@@ -13,6 +14,7 @@
 func NewTestApp() *MockApp {
 	memStore := memory.New()
 	logger := &log.NoOpLogger{}
-	a := NewApp(memStore, logger)
+	config := model.NewConfig()
+	a := NewApp(memStore, config, logger)
 	return &MockApp{a}
 }
diff --git a/core/kg/app/interfaces.go b/core/kg/app/interfaces.go
deleted file mode 100644
index 53cb1aa..0000000
--- a/core/kg/app/interfaces.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package app
-
-import "github.com/giolekva/pcloud/core/kg/log"
-
-type logger 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)
-}
diff --git a/core/kg/app/user.go b/core/kg/app/user.go
index dd25e84..063c084 100644
--- a/core/kg/app/user.go
+++ b/core/kg/app/user.go
@@ -15,6 +15,7 @@
 	return user, nil
 }
 
+// CreateUser creates a user. For now it is used only for creation of the very first user
 func (a *App) CreateUser(user *model.User) (*model.User, error) {
 	if !a.isFirstUserAccount() {
 		return nil, errors.New("not a first user")
@@ -28,6 +29,15 @@
 	return updatedUser, nil
 }
 
+//GetUsers returns list of users
+func (a *App) GetUsers(page, perPage int) ([]*model.User, error) {
+	users, err := a.store.User().GetAllWithOptions(page, perPage)
+	if err != nil {
+		return nil, errors.Wrap(err, "can't get users with options from store")
+	}
+	return users, nil
+}
+
 func (a *App) isFirstUserAccount() bool {
 	count, err := a.store.User().Count()
 	if err != nil {
