diff --git a/src/client_cli/vmEdit.go b/src/client_cli/vmEdit.go
index 7909bb0ade6cedefe5719c4abec14707dd685654..c7afdab98c96eb25b4e96bc0003747ebdb40ac7b 100644
--- a/src/client_cli/vmEdit.go
+++ b/src/client_cli/vmEdit.go
@@ -3,12 +3,20 @@ package main
 import (
 	"strconv"
 	"strings"
+	"errors"
 )
 
 type CmdVMEdit struct{
     name string
 }
 
+type vmArgsParameters struct {
+	Name string
+	Cpus int
+	Ram int
+	Nic string
+}
+
 func (cmd *CmdVMEdit)Name() string {
 	return cmd.name
 }
@@ -25,7 +33,7 @@ func (cmd *CmdVMEdit)PrintUsage() {
 	printlnErr("nic must be either \"none\" or \"user\"")
 }
 
-func getStringVal(s string, prefix string) string {
+func (cmd *CmdVMEdit)getStringVal(s string, prefix string) string {
 	if strings.HasPrefix(s, prefix) {
 		parts := strings.Split(s, prefix)
 		return parts[1]
@@ -33,58 +41,63 @@ func getStringVal(s string, prefix string) string {
 	return ""
 }
 
-func (cmd *CmdVMEdit)Run(args []string) int {
-	argc := len(args)
-	if argc < 2 || argc > 5 {
-		cmd.PrintUsage()
-		return 1
-	}
+func (cmd *CmdVMEdit)parseArgs(args []string) (*vmArgsParameters, error) {
+	vmArgs := &vmArgsParameters {}
+	atLeastOneArg := false
 
-	type VMArgs struct {
-		Name string
-		Cpus int
-		Ram int
-		Nic string
-	}
-			
-	vmArgs := &VMArgs {}
-	argsValid := false
-	id := args[0]
-	
 	for _, arg := range args {
-		s := getStringVal(arg, "name=")
+		s := cmd.getStringVal(arg, "name=")
 		if s != "" {
 			vmArgs.Name = s
-			argsValid = true
+			atLeastOneArg = true
 		}
-		s = getStringVal(arg, "cpus=")
+		s = cmd.getStringVal(arg, "cpus=")
 		if s != "" {
 			cpus, err := strconv.Atoi(s)
 			if err != nil {
-				printlnErr("Invalid number of CPU(s)")
-				return 1
+				return nil, errors.New("Invalid number of CPU(s)")
 			}
 			vmArgs.Cpus = cpus
-			argsValid = true
+			atLeastOneArg = true
 		}
-		s = getStringVal(arg, "ram=")
+		s = cmd.getStringVal(arg, "ram=")
 		if s != "" {
 			ram, err := strconv.Atoi(s)
 			if err != nil {
-				printlnErr("Invalid amount of RAM")
-				return 1
+				return nil, errors.New("Invalid amount of RAM")
 			}
 			vmArgs.Ram = ram
-			argsValid = true
+			atLeastOneArg = true
 		}
-		s = getStringVal(arg, "nic=")
+		s = cmd.getStringVal(arg, "nic=")
 		if s != "" {
 			vmArgs.Nic = s
-			argsValid = true
+			atLeastOneArg = true
 		}
 	}
 
-	if !argsValid {
+	if atLeastOneArg {
+		return vmArgs, nil
+	} else {
+		return nil, nil
+	}
+}
+
+func (cmd *CmdVMEdit)Run(args []string) int {
+	argc := len(args)
+	if argc < 2 || argc > 5 {
+		cmd.PrintUsage()
+		return 1
+	}
+
+	id := args[0]
+	vmArgs, err := cmd.parseArgs(args[1:])
+	if err != nil {
+		printlnErr(err.Error())
+		return 1
+	}
+
+	if vmArgs == nil {
 		cmd.PrintUsage()
 		return 1
 	}