diff --git a/core/kg/app/app.go b/core/kg/app/app.go
index 0c65fc8..0d8b312 100644
--- a/core/kg/app/app.go
+++ b/core/kg/app/app.go
@@ -1,19 +1,22 @@
 package app
 
 import (
+	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/giolekva/pcloud/core/kg/store"
 )
 
 // App represents an application layer of the kg
 type App struct {
 	store  store.Store
+	config *model.Config
 	logger logger
 }
 
 // NewApp creates new app
-func NewApp(store store.Store, logger logger) *App {
+func NewApp(store store.Store, config *model.Config, logger logger) *App {
 	return &App{
 		store:  store,
+		config: config,
 		logger: logger,
 	}
 }
diff --git a/core/kg/app/user.go b/core/kg/app/user.go
index 07ff301..dd25e84 100644
--- a/core/kg/app/user.go
+++ b/core/kg/app/user.go
@@ -1,6 +1,7 @@
 package app
 
 import (
+	"github.com/giolekva/pcloud/core/kg/log"
 	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/pkg/errors"
 )
@@ -13,3 +14,24 @@
 	}
 	return user, nil
 }
+
+func (a *App) CreateUser(user *model.User) (*model.User, error) {
+	if !a.isFirstUserAccount() {
+		return nil, errors.New("not a first user")
+	}
+
+	user.HashPassword()
+	updatedUser, err := a.store.User().Save(user)
+	if err != nil {
+		return nil, errors.Wrap(err, "can't save user to the DB")
+	}
+	return updatedUser, nil
+}
+
+func (a *App) isFirstUserAccount() bool {
+	count, err := a.store.User().Count()
+	if err != nil {
+		a.logger.Error("error fetching first user account", log.Err(err))
+	}
+	return count > 0
+}
