diff --git a/src/client/cmdLogin/login.go b/src/client/cmdLogin/login.go
index 3cfc7215e76d1a99b897ed7ca20de08ce1e15b7f..7f3de35e3904e69482863225719cf59bb0054d5f 100644
--- a/src/client/cmdLogin/login.go
+++ b/src/client/cmdLogin/login.go
@@ -42,14 +42,14 @@ func (cmd *Login) Run(args []string) int {
 	bytePwd, err := term.ReadPassword(int(syscall.Stdin))
 	u.PrintlnErr("")
 	if err != nil {
-		u.PrintlnErr(err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 	pwd := string(bytePwd)
 
 	token, err := login.GetToken(email, pwd)
 	if err != nil {
-		u.PrintlnErr("Error: " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 
diff --git a/src/client/cmdTemplate/templateCreate.go b/src/client/cmdTemplate/templateCreate.go
index 191a63f67651221ef69389fbc6c5234a4639dcfb..3af2fd8f2a505a626cc14dc3d48a80ec0e15a811 100644
--- a/src/client/cmdTemplate/templateCreate.go
+++ b/src/client/cmdTemplate/templateCreate.go
@@ -49,16 +49,16 @@ func (cmd *Create) Run(args []string) int {
 
 	template, err := libclient.TemplateCreate(vmID, name, access)
 	if err != nil {
-		u.PrintlnErr("Error: " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 
 	templateStr, err := template.String()
 	if err != nil {
-		u.PrintlnErr("Error: " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
+	u.Println("Template successfully created:")
 	u.Println(templateStr)
-
 	return 0
 }
diff --git a/src/client/cmdTemplate/templateDel.go b/src/client/cmdTemplate/templateDel.go
index bd399cf6abaefd48b69d10e88451e47f833e49f9..feb619ddfb71ac021a6587932b01b67b50e0e423 100644
--- a/src/client/cmdTemplate/templateDel.go
+++ b/src/client/cmdTemplate/templateDel.go
@@ -40,10 +40,10 @@ func (cmd *Del) Run(args []string) int {
 
 	err := libclient.TemplateDel(tplID)
 	if err != nil {
-		u.PrintlnErr("Failed deleting template \"" + tplID + "\": " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 
-	u.Println("Template \"" + tplID + "\" deleted")
+	u.Println("Template \"" + tplID + "\" successfully deleted")
 	return 0
 }
diff --git a/src/client/cmdTemplate/templateEdit.go b/src/client/cmdTemplate/templateEdit.go
index 4ceb100f3d9007adb3030e3dfa19492f8eed49b5..1996d0ccf7195f4bb7ad632b0be10e906f9221e5 100644
--- a/src/client/cmdTemplate/templateEdit.go
+++ b/src/client/cmdTemplate/templateEdit.go
@@ -54,23 +54,20 @@ func (cmd *Edit) Run(args []string) int {
 	}
 
 	tplID := args[0]
-	statusCode := 0
-
-	resp, err := libclient.TemplateEdit(tplID, *p)
+	template, err := libclient.TemplateEdit(tplID, *p)
 	if err != nil {
-		u.PrintlnErr("Failed editing template \"" + tplID + "\": " + err.Error())
-		statusCode = 1
-	} else {
-		if resp.IsSuccess() {
-			u.Println("Successfully edited template \"" + tplID + "\":")
-			u.Println(resp.String())
-		} else {
-			u.PrintlnErr("Failed editing template \"" + tplID + "\": " + resp.Status() + ": " + resp.String())
-			statusCode = 1
-		}
+		u.PrintlnErr(err)
+		return 1
 	}
 
-	return statusCode
+	templateStr, err := template.String()
+	if err != nil {
+		u.PrintlnErr(err)
+		return 1
+	}
+	u.Println("Template \"" + tplID + "\" successfully edited:")
+	u.Println(templateStr)
+	return 0
 }
 
 func (cmd *Edit) parseArgs(args []string) (*params.TplEdit, error) {
diff --git a/src/client/cmdTemplate/templateExportDisk.go b/src/client/cmdTemplate/templateExportDisk.go
index 489cefe969efec1a6b0862026bd680abdc632361..3499413121dba672f1f47461734ff42c953fb175 100644
--- a/src/client/cmdTemplate/templateExportDisk.go
+++ b/src/client/cmdTemplate/templateExportDisk.go
@@ -41,23 +41,13 @@ func (cmd *ExportDisk) Run(args []string) int {
 
 	tplID := args[0]
 	outputFile := args[1]
-	statusCode := 0
-
 	u.Println("Exporting disk from template \"" + tplID + "\" into " + outputFile + " ...")
 
-	resp, err := libclient.TemplateExportDisk(tplID, outputFile)
+	err := libclient.TemplateExportDisk(tplID, outputFile)
 	if err != nil {
-		u.PrintlnErr("Failed: " + err.Error())
-		statusCode = 1
-	} else {
-		if resp.IsSuccess() {
-			u.Println("Successfully exported disk into " + outputFile)
-		} else {
-			errorMsg, _ := u.FileToString(outputFile)
-			u.PrintlnErr("Failed: " + resp.Status() + ": " + errorMsg)
-			statusCode = 1
-		}
+		u.PrintlnErr(err)
+		return 1
 	}
-
-	return statusCode
+	u.Println("Successfully exported template disk into " + outputFile)
+	return 0
 }
diff --git a/src/client/cmdTemplate/templateList.go b/src/client/cmdTemplate/templateList.go
index 24522bd7df83e0b5c93c667b6c8dfaa25a297575..6941a14ce5606ad066e035db5d835f590b0db1a8 100644
--- a/src/client/cmdTemplate/templateList.go
+++ b/src/client/cmdTemplate/templateList.go
@@ -69,7 +69,7 @@ func (cmd *List) printFilteredTemplates(args []string, route string) int {
 
 	templates, err := cmd.getFilteredTemplates(route, args)
 	if err != nil {
-		u.PrintlnErr("Error: " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 
@@ -77,7 +77,7 @@ func (cmd *List) printFilteredTemplates(args []string, route string) int {
 		for _, template := range templates {
 			str, err := template.String()
 			if err != nil {
-				u.PrintlnErr("Error: failed decoding template " + template.ID.String() + " to string. Skipped.")
+				u.PrintlnErr("Failed decoding template " + template.ID.String() + ". Template skipped.")
 			} else {
 				u.Println(str)
 			}
diff --git a/src/client/cmdTemplate/templateListSingle.go b/src/client/cmdTemplate/templateListSingle.go
index aaed5209465e1419aa21284d134f6d728e79da9a..9b8275ecff93b23d651cb6c7571fa19300fc3bb8 100644
--- a/src/client/cmdTemplate/templateListSingle.go
+++ b/src/client/cmdTemplate/templateListSingle.go
@@ -35,19 +35,18 @@ func (cmd *ListSingle) Run(args []string) int {
 		return 1
 	}
 
-	uuid := args[0]
-	template, err := libclient.GetTemplate(uuid)
+	tplID := args[0]
+	template, err := libclient.GetTemplate(tplID)
 	if err != nil {
-		u.PrintlnErr("Error: " + err.Error())
+		u.PrintlnErr(err)
 		return 1
 	}
 
-	str, err := template.String()
+	templateStr, err := template.String()
 	if err != nil {
-		u.PrintlnErr("Error: failed decoding template " + template.ID.String() + " to string.")
-	} else {
-		u.Println(str)
+		u.PrintlnErr(err)
+		return 1
 	}
-
+	u.Println(templateStr)
 	return 0
 }
diff --git a/src/libclient/template/templateEdit.go b/src/libclient/template/templateEdit.go
index 83aebcc8e2222d75ec5eb1758083273ac54dd240..3fe5988db8a473e68c14410d1ddb7b4039083ee2 100644
--- a/src/libclient/template/templateEdit.go
+++ b/src/libclient/template/templateEdit.go
@@ -1,13 +1,14 @@
 package template
 
 import (
+	"encoding/json"
+	"errors"
 	"nexus-common/params"
+	"nexus-common/template"
 	g "nexus-libclient/globals"
-
-	"github.com/go-resty/resty/v2"
 )
 
-func TemplateEdit(tplID string, p params.TplEdit) (*resty.Response, error) {
+func TemplateEdit(tplID string, p params.TplEdit) (*template.TemplateSerialized, error) {
 	client := g.GetInstance().Client
 	host := g.GetInstance().Host
 
@@ -15,6 +16,13 @@ func TemplateEdit(tplID string, p params.TplEdit) (*resty.Response, error) {
 	if err != nil {
 		return nil, err
 	}
-
-	return resp, nil
+	if resp.IsSuccess() {
+		var tpl template.TemplateSerialized
+		if err := json.Unmarshal(resp.Body(), &tpl); err != nil {
+			return nil, err
+		}
+		return &tpl, nil
+	} else {
+		return nil, errors.New(resp.Status() + ": " + resp.String())
+	}
 }
diff --git a/src/libclient/template/templateExportDisk.go b/src/libclient/template/templateExportDisk.go
index 8d309891eaf27804bd4bf2c77921cded274e6cfb..31a0f7b6eb4cc09805803f98e8705b04a35c945d 100644
--- a/src/libclient/template/templateExportDisk.go
+++ b/src/libclient/template/templateExportDisk.go
@@ -1,19 +1,24 @@
 package template
 
 import (
+	"errors"
+	u "nexus-client/utils"
 	g "nexus-libclient/globals"
-
-	"github.com/go-resty/resty/v2"
 )
 
-func TemplateExportDisk(tplID, outputFile string) (*resty.Response, error) {
+func TemplateExportDisk(tplID, outputFile string) error {
 	client := g.GetInstance().Client
 	host := g.GetInstance().Host
 
 	resp, err := client.R().SetOutput(outputFile).Get(host + "/templates/" + tplID + "/disk")
 	if err != nil {
-		return nil, err
+		return err
+	} else {
+		if resp.IsSuccess() {
+			return nil
+		} else {
+			errorMsg, _ := u.FileToString(outputFile)
+			return errors.New("Failed: " + resp.Status() + ": " + errorMsg)
+		}
 	}
-
-	return resp, nil
 }
diff --git a/src/libclient/user/userCreate.go b/src/libclient/user/userCreate.go
index 8acd519f661e2fd342ec7b4e833fbc7fe6005b9a..616aaa46c7c861669c2cad80741a1a145c77751f 100644
--- a/src/libclient/user/userCreate.go
+++ b/src/libclient/user/userCreate.go
@@ -12,7 +12,7 @@ func UserCreate(p params.UserWithPwd) error {
 
 	resp, err := client.R().SetBody(p).Post(host + "/users")
 	if err != nil {
-		return errors.New("Error: " + err.Error())
+		return err
 	}
 
 	if resp.IsSuccess() {