diff --git a/src/client/cmdUser/userAdd.go b/src/client/cmdUser/userCreate.go
similarity index 79%
rename from src/client/cmdUser/userAdd.go
rename to src/client/cmdUser/userCreate.go
index 0dbdc6eb5365f825dfb19078ee3ea1b495d00db1..7eb23acbcaffe7be5da27d1d2fe0d18f30f789ca 100644
--- a/src/client/cmdUser/userAdd.go
+++ b/src/client/cmdUser/userCreate.go
@@ -2,12 +2,12 @@ package cmdUser
 
 import (
 	"encoding/csv"
-	"errors"
 	"io"
 	u "nexus-client/utils"
 	"nexus-common/caps"
 	"nexus-common/params"
 	g "nexus-libclient/globals"
+	libclient "nexus-libclient/user"
 	"os"
 	"strings"
 )
@@ -64,8 +64,7 @@ func (cmd *Add) Run(args []string) int {
 	argc := len(args)
 	if argc >= 4 {
 		// Detected syntax: email firstname lastname pwd [caps]
-
-		cargs := &params.UserWithPwd{
+		p := &params.UserWithPwd{
 			Email:     args[0],
 			FirstName: args[1],
 			LastName:  args[2],
@@ -74,19 +73,18 @@ func (cmd *Add) Run(args []string) int {
 		}
 		if argc > 4 {
 			for _, cap := range args[4:] {
-				cargs.Caps[cap] = 1
+				p.Caps[cap] = 1
 			}
 		}
 
-		if err := cmd.runRequest(cargs); err != nil {
-			u.PrintlnErr("FAILED creating user " + cargs.Email + ": " + err.Error())
+		if err := libclient.UserCreate(*p); err != nil {
+			u.PrintlnErr("FAILED creating user " + p.Email + ": " + err.Error())
 			statusCode = 1
 		} else {
-			u.Println("Successfully created user " + cargs.Email)
+			u.Println("Successfully created user " + p.Email)
 		}
 	} else if argc == 1 {
 		// Detected syntax: file.csv
-
 		csvFile := args[0]
 		file, err := os.Open(csvFile)
 		if err != nil {
@@ -123,7 +121,7 @@ func (cmd *Add) Run(args []string) int {
 				continue
 			}
 
-			cargs := &params.UserWithPwd{
+			p := &params.UserWithPwd{
 				Email:     email,
 				FirstName: columns[1],
 				LastName:  columns[2],
@@ -134,15 +132,15 @@ func (cmd *Add) Run(args []string) int {
 			if len(capsStr) > 0 {
 				caps := strings.Split(capsStr, " ")
 				for _, cap := range caps {
-					cargs.Caps[cap] = 1
+					p.Caps[cap] = 1
 				}
 			}
 
-			if err := cmd.runRequest(cargs); err != nil {
-				u.PrintlnErr("FAILED creating user " + cargs.Email + ": " + err.Error())
+			if err := libclient.UserCreate(*p); err != nil {
+				u.PrintlnErr("FAILED creating user " + p.Email + ": " + err.Error())
 				statusCode = 1
 			} else {
-				u.Println("Successfully created user " + cargs.Email)
+				u.Println("Successfully created user " + p.Email)
 			}
 		}
 	} else {
@@ -152,19 +150,3 @@ func (cmd *Add) Run(args []string) int {
 
 	return statusCode
 }
-
-func (cmd *Add) runRequest(args *params.UserWithPwd) error {
-	client := g.GetInstance().Client
-	host := g.GetInstance().Host
-
-	resp, err := client.R().SetBody(args).Post(host + "/users")
-	if err != nil {
-		return errors.New("Error: " + err.Error())
-	}
-
-	if resp.IsSuccess() {
-		return nil
-	} else {
-		return errors.New(resp.Status() + ": " + resp.String())
-	}
-}
diff --git a/src/libclient/user/userCreate.go b/src/libclient/user/userCreate.go
new file mode 100644
index 0000000000000000000000000000000000000000..8acd519f661e2fd342ec7b4e833fbc7fe6005b9a
--- /dev/null
+++ b/src/libclient/user/userCreate.go
@@ -0,0 +1,23 @@
+package template
+
+import (
+	"errors"
+	"nexus-common/params"
+	g "nexus-libclient/globals"
+)
+
+func UserCreate(p params.UserWithPwd) error {
+	client := g.GetInstance().Client
+	host := g.GetInstance().Host
+
+	resp, err := client.R().SetBody(p).Post(host + "/users")
+	if err != nil {
+		return errors.New("Error: " + err.Error())
+	}
+
+	if resp.IsSuccess() {
+		return nil
+	} else {
+		return errors.New(resp.Status() + ": " + resp.String())
+	}
+}