diff --git a/core/kg/api/rest/router.go b/core/kg/api/rest/router.go
new file mode 100644
index 0000000..8e695f2
--- /dev/null
+++ b/core/kg/api/rest/router.go
@@ -0,0 +1,39 @@
+package rest
+
+import (
+	"net/http"
+
+	"github.com/gorilla/mux"
+)
+
+const APIURLSuffix = "/api/v1"
+
+type Routers struct {
+	Root    *mux.Router // ''
+	APIRoot *mux.Router // 'api/v1'
+	Users   *mux.Router // 'api/v1/users'
+	User    *mux.Router // 'api/v1/users/{user_id:[A-Za-z0-9]+}'
+}
+
+func NewRouter(root *mux.Router) *Routers {
+	apiRoot := root.PathPrefix(APIURLSuffix).Subrouter()
+	users := apiRoot.PathPrefix("/users").Subrouter()
+	user := apiRoot.PathPrefix("/users/{user_id:[A-Za-z0-9]+}").Subrouter()
+
+	routers := &Routers{
+		Root:    root,
+		APIRoot: apiRoot,
+		Users:   users,
+		User:    user,
+	}
+	root.Handle("/api/v1/{anything:.*}", http.HandlerFunc(http.NotFound))
+	routers.initUsers()
+
+	return routers
+}
+
+func (r *Routers) initUsers() {
+	r.Users.Handle("", http.HandlerFunc(createUser)).Methods("POST")
+	r.Users.Handle("", http.HandlerFunc(getUsers)).Methods("GET")
+	r.User.Handle("", http.HandlerFunc(getUser)).Methods("GET")
+}
diff --git a/core/kg/api/rest/user_service.go b/core/kg/api/rest/user_service.go
new file mode 100644
index 0000000..91c7cb6
--- /dev/null
+++ b/core/kg/api/rest/user_service.go
@@ -0,0 +1,12 @@
+package rest
+
+import "net/http"
+
+func createUser(w http.ResponseWriter, r *http.Request) {
+}
+
+func getUsers(w http.ResponseWriter, r *http.Request) {
+}
+
+func getUser(w http.ResponseWriter, r *http.Request) {
+}
diff --git a/core/kg/rpc/user_service.go b/core/kg/api/rpc/user_service.go
similarity index 90%
rename from core/kg/rpc/user_service.go
rename to core/kg/api/rpc/user_service.go
index ee385cb..c424cee 100644
--- a/core/kg/rpc/user_service.go
+++ b/core/kg/api/rpc/user_service.go
@@ -3,6 +3,7 @@
 import (
 	"context"
 
+	"github.com/giolekva/pcloud/core/kg/common"
 	"github.com/giolekva/pcloud/core/kg/model/proto"
 	"github.com/pkg/errors"
 	"google.golang.org/protobuf/types/known/timestamppb"
@@ -10,11 +11,11 @@
 
 type userService struct {
 	proto.UnimplementedUserServiceServer
-	app appIface
+	app common.AppIface
 }
 
 // NewService returns new user service
-func NewService(app appIface) proto.UserServiceServer {
+func NewService(app common.AppIface) proto.UserServiceServer {
 	s := &userService{
 		app: app,
 	}
diff --git a/core/kg/rpc/user_service_test.go b/core/kg/api/rpc/user_service_test.go
similarity index 100%
rename from core/kg/rpc/user_service_test.go
rename to core/kg/api/rpc/user_service_test.go
diff --git a/core/kg/rpc/interfaces.go b/core/kg/rpc/interfaces.go
deleted file mode 100644
index 0cd072a..0000000
--- a/core/kg/rpc/interfaces.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package rpc
-
-import "github.com/giolekva/pcloud/core/kg/model"
-
-type appIface interface {
-	GetUser(userID string) (*model.User, error)
-}
diff --git a/core/kg/server/grpc_server.go b/core/kg/server/grpc_server.go
index 20aed55..af0b945 100644
--- a/core/kg/server/grpc_server.go
+++ b/core/kg/server/grpc_server.go
@@ -5,11 +5,11 @@
 	"net"
 	"os"
 
+	"github.com/giolekva/pcloud/core/kg/api/rpc"
 	"github.com/giolekva/pcloud/core/kg/common"
 	"github.com/giolekva/pcloud/core/kg/log"
 	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/giolekva/pcloud/core/kg/model/proto"
-	"github.com/giolekva/pcloud/core/kg/rpc"
 	"google.golang.org/grpc"
 )
 
diff --git a/core/kg/server/http_server.go b/core/kg/server/http_server.go
index 6b07914..dd8151a 100644
--- a/core/kg/server/http_server.go
+++ b/core/kg/server/http_server.go
@@ -8,6 +8,7 @@
 	"os"
 	"time"
 
+	"github.com/giolekva/pcloud/core/kg/api/rest"
 	"github.com/giolekva/pcloud/core/kg/common"
 	"github.com/giolekva/pcloud/core/kg/log"
 	"github.com/giolekva/pcloud/core/kg/model"
@@ -17,11 +18,11 @@
 
 // HTTPServerImpl http server implementation
 type HTTPServerImpl struct {
-	Log    common.LoggerIface
-	srv    *http.Server
-	root   *mux.Router
-	config *model.Config
-	store  store.Store
+	Log     common.LoggerIface
+	srv     *http.Server
+	routers *rest.Routers
+	config  *model.Config
+	store   store.Store
 }
 
 var _ Server = &HTTPServerImpl{}
@@ -29,10 +30,10 @@
 // NewHTTPServer creates new HTTP Server
 func NewHTTPServer(logger common.LoggerIface, config *model.Config, store store.Store) Server {
 	a := &HTTPServerImpl{
-		Log:    logger,
-		root:   mux.NewRouter(),
-		config: config,
-		store:  store,
+		Log:     logger,
+		routers: rest.NewRouter(mux.NewRouter()),
+		config:  config,
+		store:   store,
 	}
 
 	pwd, _ := os.Getwd()
@@ -46,7 +47,7 @@
 
 	a.srv = &http.Server{
 		Addr:         fmt.Sprintf("%s:%d", a.config.HTTP.Host, a.config.HTTP.Port),
-		Handler:      a.root,
+		Handler:      a.routers.Root,
 		ReadTimeout:  time.Duration(a.config.HTTP.ReadTimeout) * time.Second,
 		WriteTimeout: time.Duration(a.config.HTTP.WriteTimeout) * time.Second,
 		IdleTimeout:  time.Duration(a.config.HTTP.IdleTimeout) * time.Second,
