diff --git a/core/kg/model/proto/user.proto b/core/kg/model/proto/user.proto
index eb543a5..9559bd0 100644
--- a/core/kg/model/proto/user.proto
+++ b/core/kg/model/proto/user.proto
@@ -8,9 +8,9 @@
 
 // UserService handles commands dispatch and user view actions
 service UserService {
-  rpc GetUser (GetUserRequest) returns (User);
+  rpc GetUser (GetUserRequest) returns (GetUserResponse);
   rpc ListUsers (ListUserRequest) returns (ListUserResponse);
-  rpc CreateUser (CreateUserRequest) returns (User);
+  rpc CreateUser (CreateUserRequest) returns (CreateUserResponse);
 }
 
 // DispatchUserCommandRequest is passed when dispatching
@@ -35,6 +35,12 @@
   string id = 1;
 }
 
+// GetUserResponse is a response data to read user
+message GetUserResponse {
+  User user = 1
+  string id = 1;
+}
+
 // ListUserRequest is a request data to read all user for a given page
 message ListUserRequest {
   int64 page = 1;
@@ -51,5 +57,10 @@
 
 // CreateUserRequest is a request data to create a user
 message CreateUserRequest {
-    User user = 1;
+  User user = 1;
+}
+
+// CreateUserResponse is a response data to create a user
+message CreateUserResponse {
+  User user = 1;
 }
\ No newline at end of file
diff --git a/core/kg/store/memory/user_store.go b/core/kg/store/memory/user_store.go
index 97bab6d..1805845 100644
--- a/core/kg/store/memory/user_store.go
+++ b/core/kg/store/memory/user_store.go
@@ -31,7 +31,7 @@
 
 func (us *memoryUserStore) Save(user *model.User) (*model.User, error) {
 	us.mutex.Lock()
-	us.mutex.Unlock()
+	defer us.mutex.Unlock()
 	if user.ID == "" {
 		user.ID = strconv.Itoa(us.maxID)
 		us.maxID++
@@ -46,7 +46,7 @@
 
 func (us *memoryUserStore) Get(id string) (*model.User, error) {
 	us.mutex.RLock()
-	us.mutex.RUnlock()
+	defer us.mutex.RUnlock()
 	user, ok := us.users[id]
 	if !ok {
 		return nil, errors.New("User not found")
@@ -56,7 +56,7 @@
 
 func (us *memoryUserStore) GetAll() ([]*model.User, error) {
 	us.mutex.RLock()
-	us.mutex.RUnlock()
+	defer us.mutex.RUnlock()
 	users := make([]*model.User, 0, len(us.users))
 	for _, user := range us.users {
 		users = append(users, user.Clone())
