From e7cab42eb776935855f6cb408bd475158822ce1e Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Tue, 24 Jan 2023 11:28:37 +0100
Subject: [PATCH] Update schemas and json handling for names with content more
 closely suited for operations

Update schemas and json handling for names with content more closely suited for operations.
Update api, controller, service, validation, integration tests.
---
 .../openepics/names/rest/api/v1/INames.java   |   50 +-
 .../element/NameElementCommandConfirm.java    |  102 +
 .../element/NameElementCommandCreate.java     |  153 ++
 .../element/NameElementCommandUpdate.java     |   97 +
 .../rest/controller/NamesController.java      |   71 +-
 .../openepics/names/service/NamesService.java |  151 +-
 .../org/openepics/names/util/ExcelUtil.java   |   40 +-
 .../openepics/names/util/NameElementUtil.java |   94 +
 .../names/util/ValidateNameElementUtil.java   |  131 +-
 .../names/docker/ITUtilNameElement.java       |  270 ++-
 .../org/openepics/names/docker/NamesIT.java   |  516 +++--
 .../docker/complex/NamesInstanceIndexIT.java  | 1937 +++++++++--------
 .../names/docker/complex/NamesMultipleIT.java |  753 ++++---
 .../docker/complex/StructuresCUDDeleteIT.java |   40 +-
 .../complex/StructuresCUDNamesLegacyIT.java   |   40 +-
 .../docker/complex/StructuresCUDUpdateIT.java |   40 +-
 .../names/util/NameElementUtilTest.java       |   70 +
 17 files changed, 2760 insertions(+), 1795 deletions(-)
 create mode 100644 src/main/java/org/openepics/names/rest/beans/element/NameElementCommandConfirm.java
 create mode 100644 src/main/java/org/openepics/names/rest/beans/element/NameElementCommandCreate.java
 create mode 100644 src/main/java/org/openepics/names/rest/beans/element/NameElementCommandUpdate.java

diff --git a/src/main/java/org/openepics/names/rest/api/v1/INames.java b/src/main/java/org/openepics/names/rest/api/v1/INames.java
index b2b25a70..6a16787a 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/INames.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/INames.java
@@ -22,7 +22,9 @@ import java.util.List;
 
 import org.openepics.names.rest.beans.FieldName;
 import org.openepics.names.rest.beans.element.NameElement;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 import org.openepics.names.rest.beans.response.Response;
 import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
@@ -62,7 +64,13 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public interface INames {
 
     /*
-       NameElementCommand - subset of NameElement attributes
+       NameElementCommandCreate  -       parentSystemStructure, parentDeviceStructure, index, description, comment
+       NameElementCommandUpdate  - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
+       NameElementCommandConfirm - uuid,                                                                   comment
+       ----------------------------------------------------------------------------------------------------
+       converted into NameElementCommand
+       ----------------------------------------------------------------------------------------------------
+       NameElementCommand        - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
        NameElement
                      uuid                     (UUID)
                      parentSystemStructure    (UUID)
@@ -81,7 +89,7 @@ public interface INames {
                      who                      (String)
 
        Methods
-           create    POST   /names                                - createNames                  (List<NameElementCommand>)
+           create    POST   /names                                - createNames                  (List<NameElementCommandCreate>)
            create    POST   /names/upload                         - createNames                  (MultipartFile)
            ----------------------------------------------------------------------------------------------------
            read      GET    /names                                - readNames                    (Boolean, String, String, String, String, String, String, FieldName, Boolean, Integer, Integer)
@@ -96,14 +104,14 @@ public interface INames {
            read      GET    /names/isLegacy/{name}                - isLegacyName                 (String)
            read      GET    /names/isValidToCreate/{name}         - isValidToCreateName          (String)
            ----------------------------------------------------------------------------------------------------
-           read      GET    /names/validateCreate                 - validateNamesCreate          (List<NameElementCommand>)
-           read      GET    /names/validateUpdate                 - validateNamesUpdate          (List<NameElementCommand>)
-           read      GET    /names/validateDelete                 - validateNamesDelete          (List<NameElementCommand>)
+           read      GET    /names/validateCreate                 - validateNamesCreate          (List<NameElementCommandCreate>)
+           read      GET    /names/validateUpdate                 - validateNamesUpdate          (List<NameElementCommandUpdate>)
+           read      GET    /names/validateDelete                 - validateNamesDelete          (List<NameElementCommandConfirm>)
            ----------------------------------------------------------------------------------------------------
-           update    PUT    /names                                - updateNames                  (List<NameElementCommand>)
+           update    PUT    /names                                - updateNames                  (List<NameElementCommandUpdate>)
            update    PUT    /names/upload                         - updateNames                  (MultipartFile)
            ----------------------------------------------------------------------------------------------------
-           delete    DELETE /names                                - deleteNames                  (List<NameElementCommand>)
+           delete    DELETE /names                                - deleteNames                  (List<NameElementCommandConfirm>)
            delete    DELETE /names/upload                         - deleteNames                  (MultipartFile)
 
        Note
@@ -184,9 +192,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
-                                            requiredProperties = {"parentSystemStructure","parentDeviceStructure","index","description","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+                                            implementation = NameElementCommandCreate.class,
+                                            requiredProperties = {"parentSystemStructure","description","comment"}))))
+            @RequestBody List<NameElementCommandCreate> nameElementCommands);
 
     /**
      * Create names by upload Excel file.
@@ -896,9 +904,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
+                                            implementation = NameElementCommandCreate.class,
                                             requiredProperties = {"parentSystemStructure","parentDeviceStructure","index","description","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+            @RequestBody List<NameElementCommandCreate> nameElementCommands);
 
     /**
      * Return if names are valid to update by list of name element commands.
@@ -972,9 +980,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
+                                            implementation = NameElementCommandUpdate.class,
                                             requiredProperties = {"uuid","parentSystemStructure","description","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+            @RequestBody List<NameElementCommandUpdate> nameElementCommands);
 
     /**
      * Return if names are valid to delete by list of name element commands.
@@ -1044,9 +1052,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
+                                            implementation = NameElementCommandConfirm.class,
                                             requiredProperties = {"uuid","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+            @RequestBody List<NameElementCommandConfirm> nameElementCommands);
 
     // ----------------------------------------------------------------------------------------------------
 
@@ -1112,9 +1120,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
+                                            implementation = NameElementCommandUpdate.class,
                                             requiredProperties = {"uuid","parentSystemStructure","description","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+            @RequestBody List<NameElementCommandUpdate> nameElementCommands);
 
     /**
      * Update names by upload Excel file.
@@ -1238,9 +1246,9 @@ public interface INames {
                             mediaType = "application/json",
                             array = @ArraySchema(
                                     schema = @Schema(
-                                            implementation = NameElementCommand.class,
+                                            implementation = NameElementCommandConfirm.class,
                                             requiredProperties = {"uuid","comment"}))))
-            @RequestBody List<NameElementCommand> nameElements);
+            @RequestBody List<NameElementCommandConfirm> nameElementCommands);
 
     /**
      * Delete names by upload Excel file.
diff --git a/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandConfirm.java b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandConfirm.java
new file mode 100644
index 00000000..719dd458
--- /dev/null
+++ b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandConfirm.java
@@ -0,0 +1,102 @@
+package org.openepics.names.rest.beans.element;
+
+import java.io.Serializable;
+import java.util.Objects;
+import java.util.UUID;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+public class NameElementCommandConfirm implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 7227646902292017096L;
+
+    @Schema(description = "Identity (uuid) of the name entry. Value is created server-side.")
+    private UUID uuid;
+    @Schema(description = "Comment of the name entry command.")
+    private String comment;
+
+    /**
+     * Public constructor.
+     */
+    public NameElementCommandConfirm() {
+    }
+
+    /**
+     * Public constructor.
+     *
+     * @param uuid uuid
+     * @param comment comment
+     */
+    public NameElementCommandConfirm(
+            UUID uuid, String comment) {
+        super();
+        this.uuid = uuid;
+        this.comment = comment;
+    }
+
+    public UUID getUuid() {
+        return uuid;
+    }
+    public void setUuid(UUID uuid) {
+        this.uuid = uuid;
+    }
+    public String getComment() {
+        return comment;
+    }
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+
+        return equals ((NameElementCommandConfirm) obj);
+    }
+
+    public boolean equals(NameElementCommandConfirm other) {
+        if (other == null)
+            return false;
+
+        if (!super.equals(other)) {
+            return false;
+        }
+
+        if (getUuid() == null) {
+            if (other.getUuid() != null)
+                return false;
+        } else if (!getUuid().equals(other.getUuid()))
+            return false;
+        if (getComment() == null) {
+            if (other.getComment() != null)
+                return false;
+        } else if (!getComment().equals(other.getComment()))
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(getUuid());
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        sb.append("\"uuid\": "                    + getUuid());
+        sb.append(", \"comment\": "               + getComment());
+        sb.append("}");
+        return sb.toString();
+    }
+
+}
diff --git a/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandCreate.java b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandCreate.java
new file mode 100644
index 00000000..daff80ba
--- /dev/null
+++ b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandCreate.java
@@ -0,0 +1,153 @@
+package org.openepics.names.rest.beans.element;
+
+import java.io.Serializable;
+import java.util.Objects;
+import java.util.UUID;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+public class NameElementCommandCreate implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -6805435306169229688L;
+
+    @Schema(description = "Identity (uuid) for the system structure parent.")
+    private UUID parentSystemStructure;
+    @Schema(description = "Identity (uuid) for the device structure parent (if the name entry refers to device structure).")
+    private UUID parentDeviceStructure;
+    @Schema(description = "Index (instance) of the name entry (if the name entry refers to device structure).")
+    private String index;
+    @Schema(description = "Description of the name entry.")
+    private String description;
+    @Schema(description = "Comment of the name entry command.")
+    private String comment;
+
+    /**
+     * Public constructor.
+     */
+    public NameElementCommandCreate() {
+    }
+
+    /**
+     * Public constructor.
+     *
+     * @param parentSystemStructure parent system structure uuid
+     * @param parentDeviceStructure parent device structure uuid
+     * @param index index
+     * @param description description
+     * @param comment comment
+     */
+    public NameElementCommandCreate(
+            UUID parentSystemStructure, UUID parentDeviceStructure, String index,
+            String description, String comment) {
+        super();
+        this.parentSystemStructure = parentSystemStructure;
+        this.parentDeviceStructure = parentDeviceStructure;
+        this.index = index;
+        this.description = description;
+        this.comment = comment;
+    }
+
+    public UUID getParentSystemStructure() {
+        return parentSystemStructure;
+    }
+    public void setParentSystemStructure(UUID parentSystemStructure) {
+        this.parentSystemStructure = parentSystemStructure;
+    }
+    public UUID getParentDeviceStructure() {
+        return parentDeviceStructure;
+    }
+    public void setParentDeviceStructure(UUID parentDeviceStructure) {
+        this.parentDeviceStructure = parentDeviceStructure;
+    }
+    public String getIndex() {
+        return index;
+    }
+    public void setIndex(String index) {
+        this.index = index;
+    }
+    public String getDescription() {
+        return description;
+    }
+    public void setDescription(String description) {
+        this.description = description;
+    }
+    public String getComment() {
+        return comment;
+    }
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+
+        return equals ((NameElementCommandCreate) obj);
+    }
+
+    public boolean equals(NameElementCommandCreate other) {
+        if (other == null)
+            return false;
+
+        if (!super.equals(other)) {
+            return false;
+        }
+
+        if (getParentSystemStructure() == null) {
+            if (other.getParentSystemStructure() != null)
+                return false;
+        } else if (!getParentSystemStructure().equals(other.getParentSystemStructure()))
+            return false;
+        if (getParentDeviceStructure() == null) {
+            if (other.getParentDeviceStructure() != null)
+                return false;
+        } else if (!getParentDeviceStructure().equals(other.getParentDeviceStructure()))
+            return false;
+        if (getIndex() == null) {
+            if (other.getIndex() != null)
+                return false;
+        } else if (!getIndex().equals(other.getIndex()))
+            return false;
+        if (getDescription() == null) {
+            if (other.getDescription() != null)
+                return false;
+        } else if (!getDescription().equals(other.getDescription()))
+            return false;
+        if (getComment() == null) {
+            if (other.getComment() != null)
+                return false;
+        } else if (!getComment().equals(other.getComment()))
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(
+                getParentSystemStructure(), getParentDeviceStructure(), getIndex(),
+                getDescription(), getComment());
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        sb.append("\"parentSystemStructure\": " + getParentSystemStructure());
+        sb.append(", \"parentDeviceStructure\": " + getParentDeviceStructure());
+        sb.append(", \"index\": "                 + getIndex());
+        sb.append(", \"description\": "           + getDescription());
+        sb.append(", \"comment\": "               + getComment());
+        sb.append("}");
+        return sb.toString();
+    }
+
+}
diff --git a/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandUpdate.java b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandUpdate.java
new file mode 100644
index 00000000..b45ba7c4
--- /dev/null
+++ b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommandUpdate.java
@@ -0,0 +1,97 @@
+package org.openepics.names.rest.beans.element;
+
+import java.io.Serializable;
+import java.util.Objects;
+import java.util.UUID;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+
+public class NameElementCommandUpdate extends NameElementCommandCreate implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -2695766212812986367L;
+
+    @Schema(description = "Identity (uuid) of the name entry. Value is created server-side.")
+    private UUID uuid;
+
+    /**
+     * Public constructor.
+     */
+    public NameElementCommandUpdate() {
+    }
+
+    /**
+     * Public constructor.
+     *
+     * @param uuid uuid
+     * @param parentSystemStructure parent system structure uuid
+     * @param parentDeviceStructure parent device structure uuid
+     * @param index index
+     * @param description description
+     * @param comment comment
+     */
+    public NameElementCommandUpdate(
+            UUID uuid, UUID parentSystemStructure, UUID parentDeviceStructure, String index,
+            String description, String comment) {
+        super(parentSystemStructure, parentDeviceStructure, index, description, comment);
+        this.uuid = uuid;
+    }
+
+    public UUID getUuid() {
+        return uuid;
+    }
+    public void setUuid(UUID uuid) {
+        this.uuid = uuid;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+
+        return equals ((NameElementCommandUpdate) obj);
+    }
+
+    public boolean equals(NameElementCommandUpdate other) {
+        if (other == null)
+            return false;
+
+        if (!super.equals(other)) {
+            return false;
+        }
+
+        if (getUuid() == null) {
+            if (other.getUuid() != null)
+                return false;
+        } else if (!getUuid().equals(other.getUuid()))
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(getUuid());
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        sb.append("\"uuid\": "                    + getUuid());
+        sb.append(", \"parentSystemStructure\": " + getParentSystemStructure());
+        sb.append(", \"parentDeviceStructure\": " + getParentDeviceStructure());
+        sb.append(", \"index\": "                 + getIndex());
+        sb.append(", \"description\": "           + getDescription());
+        sb.append(", \"comment\": "               + getComment());
+        sb.append("}");
+        return sb.toString();
+    }
+
+}
diff --git a/src/main/java/org/openepics/names/rest/controller/NamesController.java b/src/main/java/org/openepics/names/rest/controller/NamesController.java
index 6b890f0d..24c13f22 100644
--- a/src/main/java/org/openepics/names/rest/controller/NamesController.java
+++ b/src/main/java/org/openepics/names/rest/controller/NamesController.java
@@ -28,6 +28,9 @@ import org.openepics.names.rest.api.v1.INames;
 import org.openepics.names.rest.beans.FieldName;
 import org.openepics.names.rest.beans.element.NameElement;
 import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 import org.openepics.names.rest.beans.response.Response;
 import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
@@ -35,6 +38,8 @@ import org.openepics.names.rest.beans.response.ResponsePageNameElements;
 import org.openepics.names.service.LogService;
 import org.openepics.names.service.NamesService;
 import org.openepics.names.util.ExcelUtil;
+import org.openepics.names.util.NameCommand;
+import org.openepics.names.util.NameElementUtil;
 import org.openepics.names.util.TextUtil;
 import org.openepics.names.util.ValidateNameElementUtil;
 import org.openepics.names.util.ValidateUtil;
@@ -88,14 +93,16 @@ public class NamesController implements INames {
     }
 
     @Override
-    public ResponseEntity<List<NameElement>> createNames(List<NameElementCommand> nameElements) {
+    public ResponseEntity<List<NameElement>> createNames(List<NameElementCommandCreate> nameElementCommands) {
         // validate authority - user & admin
+        // convert
         // validate
         // create names
 
         try {
-            namesService.validateNamesCreate(nameElements);
-            return new ResponseEntity<>(namesService.createNames(nameElements, TextUtil.TEST_WHO), Response.getHeaderJson(), HttpStatus.CREATED);
+            List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForCreate(nameElementCommands);
+            namesService.validateNamesCreate(commands);
+            return new ResponseEntity<>(namesService.createNames(commands, TextUtil.TEST_WHO), Response.getHeaderJson(), HttpStatus.CREATED);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
             logService.logStackTraceElements(LOGGER, Level.WARNING, e);
@@ -110,15 +117,16 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> createNames(MultipartFile file) {
         // validate authority - user & admin
         // convert from input
+        // ( convert )
         // validate
         // create names
         // convert to output
 
         try {
              if (ExcelUtil.hasExcelFormat(file)) {
-                 List<NameElementCommand> nameElementCommands = ExcelUtil.excelToNameElementCommands(file.getInputStream());
-                 namesService.validateNamesCreate(nameElementCommands);
-                 List<NameElement> nameElements = namesService.createNames(nameElementCommands, TextUtil.TEST_WHO);
+                 List<NameElementCommand> commands = ExcelUtil.excelToNameElementCommands(file.getInputStream(), NameCommand.CREATE);
+                 namesService.validateNamesCreate(commands);
+                 List<NameElement> nameElements = namesService.createNames(commands, TextUtil.TEST_WHO);
                  InputStreamResource isr = new InputStreamResource(ExcelUtil.nameElementsToExcel(nameElements));
                  return ResponseEntity.ok()
                          .header(HttpHeaders.CONTENT_DISPOSITION, ATTACHMENT_FILENAME_NAME_ELEMENT_XLSX)
@@ -343,15 +351,16 @@ public class NamesController implements INames {
     // ----------------------------------------------------------------------------------------------------
 
     @Override
-    public ResponseEntity<ResponseBooleanList> validateNamesCreate(List<NameElementCommand> nameElements) {
+    public ResponseEntity<ResponseBooleanList> validateNamesCreate(List<NameElementCommandCreate> nameElementCommands) {
         // validate
 
+        List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForCreate(nameElementCommands);
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
+        for (NameElementCommand command : commands) {
             try {
-                namesService.validateNamesCreate(nameElement);
+                namesService.validateNamesCreate(command);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
                 logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -374,15 +383,16 @@ public class NamesController implements INames {
     }
 
     @Override
-    public ResponseEntity<ResponseBooleanList> validateNamesUpdate(List<NameElementCommand> nameElements) {
+    public ResponseEntity<ResponseBooleanList> validateNamesUpdate(List<NameElementCommandUpdate> nameElementCommands) {
         // validate
 
+        List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForUpdate(nameElementCommands);
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
+        for (NameElementCommand command : commands) {
             try {
-                namesService.validateNamesUpdate(nameElement);
+                namesService.validateNamesUpdate(command);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
                 logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -405,15 +415,16 @@ public class NamesController implements INames {
     }
 
     @Override
-    public ResponseEntity<ResponseBooleanList> validateNamesDelete(List<NameElementCommand> nameElements) {
+    public ResponseEntity<ResponseBooleanList> validateNamesDelete(List<NameElementCommandConfirm> nameElementCommands) {
         // validate
 
+        List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForConfirm(nameElementCommands);
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
+        for (NameElementCommand command : commands) {
             try {
-                namesService.validateNamesDelete(nameElement);
+                namesService.validateNamesDelete(command);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
                 logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -438,14 +449,16 @@ public class NamesController implements INames {
     // ----------------------------------------------------------------------------------------------------
 
     @Override
-    public List<NameElement> updateNames(List<NameElementCommand> nameElements) {
+    public List<NameElement> updateNames(List<NameElementCommandUpdate> nameElementCommands) {
         // validate authority - user & admin
+        // convert
         // validate
         // update names
 
         try {
-            namesService.validateNamesUpdate(nameElements);
-            return namesService.updateNames(nameElements, TextUtil.TEST_WHO);
+            List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForUpdate(nameElementCommands);
+            namesService.validateNamesUpdate(commands);
+            return namesService.updateNames(commands, TextUtil.TEST_WHO);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
             logService.logStackTraceElements(LOGGER, Level.WARNING, e);
@@ -460,15 +473,16 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> updateNames(MultipartFile file) {
         // validate authority - user & admin
         // convert from input
+        // ( convert )
         // validate
         // update names
         // convert to output
 
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
-                List<NameElementCommand> nameElementCommands = ExcelUtil.excelToNameElementCommands(file.getInputStream());
-                namesService.validateNamesUpdate(nameElementCommands);
-                List<NameElement> nameElements = namesService.updateNames(nameElementCommands, TextUtil.TEST_WHO);
+                List<NameElementCommand> commands = ExcelUtil.excelToNameElementCommands(file.getInputStream(), NameCommand.UPDATE);
+                namesService.validateNamesUpdate(commands);
+                List<NameElement> nameElements = namesService.updateNames(commands, TextUtil.TEST_WHO);
                 InputStreamResource isr = new InputStreamResource(ExcelUtil.nameElementsToExcel(nameElements));
                 return ResponseEntity.ok()
                         .header(HttpHeaders.CONTENT_DISPOSITION, ATTACHMENT_FILENAME_NAME_ELEMENT_XLSX)
@@ -493,14 +507,16 @@ public class NamesController implements INames {
     // ----------------------------------------------------------------------------------------------------
 
     @Override
-    public List<NameElement> deleteNames(List<NameElementCommand> nameElements) {
+    public List<NameElement> deleteNames(List<NameElementCommandConfirm> nameElementCommands) {
         // validate authority - user & admin
+        // convert
         // validate
         // delete names
 
         try {
-          namesService.validateNamesDelete(nameElements);
-          return namesService.deleteNames(nameElements, TextUtil.TEST_WHO);
+            List<NameElementCommand> commands = NameElementUtil.getNameElementCommandsForConfirm(nameElementCommands);
+            namesService.validateNamesDelete(commands);
+            return namesService.deleteNames(commands, TextUtil.TEST_WHO);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
             logService.logStackTraceElements(LOGGER, Level.WARNING, e);
@@ -515,15 +531,16 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> deleteNames(MultipartFile file) {
         // validate authority - user & admin
         // convert from input
+        // ( convert )
         // validate
         // delete names
         // convert to output
 
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
-                List<NameElementCommand> nameElementCommands = ExcelUtil.excelToNameElementCommands(file.getInputStream());
-                namesService.validateNamesDelete(nameElementCommands);
-                List<NameElement> nameElements = namesService.deleteNames(nameElementCommands, TextUtil.TEST_WHO);
+                List<NameElementCommand> commands = ExcelUtil.excelToNameElementCommands(file.getInputStream(), NameCommand.DELETE);
+                namesService.validateNamesDelete(commands);
+                List<NameElement> nameElements = namesService.deleteNames(commands, TextUtil.TEST_WHO);
                 InputStreamResource isr = new InputStreamResource(ExcelUtil.nameElementsToExcel(nameElements));
                 return ResponseEntity.ok()
                         .header(HttpHeaders.CONTENT_DISPOSITION, ATTACHMENT_FILENAME_NAME_ELEMENT_XLSX)
diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java
index ba27edcb..2de0369a 100644
--- a/src/main/java/org/openepics/names/service/NamesService.java
+++ b/src/main/java/org/openepics/names/service/NamesService.java
@@ -139,7 +139,7 @@ public class NamesService {
     }
 
     @Transactional
-    public List<NameElement> createNames(List<NameElementCommand> nameElements, String username) {
+    public List<NameElement> createNames(List<NameElementCommand> nameElementCommands, String username) {
         // validation outside method
         // transaction
         //     for each name element
@@ -153,12 +153,12 @@ public class NamesService {
 
         Date when = new Date();
         final List<NameElement> createdNameElements = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
-            NameElement createdNameElement = createName(nameElement, when, username, holder);
+        for (NameElementCommand nameElementCommand : nameElementCommands) {
+            NameElement createdNameElement = createName(nameElementCommand, when, username, holder);
             createdNameElements.add(createdNameElement);
 
             if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_NAME, TextUtil.ELEMENT_IN, nameElement));
+                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_NAME, TextUtil.ELEMENT_IN, nameElementCommand));
                 LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_NAME, TextUtil.ELEMENT_OUT, createdNameElement));
             }
         }
@@ -167,38 +167,48 @@ public class NamesService {
                 () -> MessageFormat.format(
                         TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
                         "Create names",
-                        nameElements.size(),
+                        nameElementCommands.size(),
                         createdNameElements.size()));
         return createdNameElements;
     }
     @Transactional(propagation = Propagation.MANDATORY)
-    public NameElement createName(NameElementCommand nameElement, Date when, String username, HolderSystemDeviceStructure holder) {
+    public NameElement createName(NameElementCommand nameElementCommand, Date when, String username, HolderSystemDeviceStructure holder) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
+        //     attributes
         //     find
         //     prepare
         //     create - approved, latest, not deleted, uuid
         //     return name element for created name
+        //
+        // attributes
+        //     parentSystemStructure, parentDeviceStructure, index, description, comment
+
+        UUID parentSystemStructure = nameElementCommand.getParentSystemStructure();
+        UUID parentDeviceStructure = nameElementCommand.getParentDeviceStructure();
+        String index = nameElementCommand.getIndex();
+        String description = nameElementCommand.getDescription();
+        String comment = nameElementCommand.getComment();
 
         // find
         //     system structure - system group, system, subsystem - one of the three expected to be non-null, other two expected to be null
         //     device structure - device type - may be null
-        SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-        System      system      = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-        Subsystem   subsystem   = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
+        SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(parentSystemStructure.toString());
+        System      system      = holderIRepositories.getSystemRepository().findLatestByUuid(parentSystemStructure.toString());
+        Subsystem   subsystem   = holderIRepositories.getSubsystemRepository().findLatestByUuid(parentSystemStructure.toString());
         DeviceType  deviceType  = null;
-        if (nameElement.getParentDeviceStructure() != null) {
-            deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentDeviceStructure().toString());
+        if (parentDeviceStructure != null) {
+            deviceType = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(parentDeviceStructure.toString());
         }
 
         String derivedName = null;
         if (systemGroup != null) {
-            derivedName = NameUtil.getName(systemGroup, deviceType, nameElement.getIndex(), holder);
+            derivedName = NameUtil.getName(systemGroup, deviceType, index, holder);
         } else if (system != null) {
-            derivedName = NameUtil.getName(system, deviceType, nameElement.getIndex(), holder);
+            derivedName = NameUtil.getName(system, deviceType, index, holder);
         } else if (subsystem != null) {
-            derivedName = NameUtil.getName(subsystem, deviceType, nameElement.getIndex(), holder);
+            derivedName = NameUtil.getName(subsystem, deviceType, index, holder);
         }
 
         // create
@@ -206,10 +216,10 @@ public class NamesService {
                 systemGroup != null ? systemGroup.getUuid() : null,
                 system != null ? system.getUuid() : null,
                 subsystem != null ? subsystem.getUuid() : null,
-                nameElement.getParentDeviceStructure(),
-                nameElement.getIndex(), derivedName, namingConvention.equivalenceClassRepresentative(derivedName),
-                nameElement.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
-                when, username, nameElement.getComment());
+                parentDeviceStructure,
+                index, derivedName, namingConvention.equivalenceClassRepresentative(derivedName),
+                description, Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
+                when, username, comment);
         nameRepository.createName(name);
 
         return NameElementUtil.getNameElement(name);
@@ -525,10 +535,11 @@ public class NamesService {
     // ----------------------------------------------------------------------------------------------------
 
     @Transactional
-    public List<NameElement> updateNames(List<NameElementCommand> nameElements, String username) {
+    public List<NameElement> updateNames(List<NameElementCommand> nameElementCommands, String username) {
         // validation outside method
         // transaction
         //     for each name element
+        //         attributes
         //         find
         //         update name to not latest
         //         find
@@ -536,24 +547,34 @@ public class NamesService {
         //         handle name element for updated name
         //     no notify
         //     return name elements for updated names
+        //
+        // attributes
+        //     uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
 
         // initiate holder of containers for system and device structure content, for performance reasons
         HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories);
 
         Date when = new Date();
         final List<NameElement> updatedNameElements = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
+        for (NameElementCommand nameElementCommand : nameElementCommands) {
             // update not latest, not deleted
             // create latest, not deleted
 
-            Name name = holderIRepositories.getNameRepository().findLatestByUuid(nameElement.getUuid().toString());
+            UUID uuid = nameElementCommand.getUuid();
+            UUID parentSystemStructure = nameElementCommand.getParentSystemStructure();
+            UUID parentDeviceStructure = nameElementCommand.getParentDeviceStructure();
+            String index = nameElementCommand.getIndex();
+            String description = nameElementCommand.getDescription();
+            String comment = nameElementCommand.getComment();
+
+            Name name = holderIRepositories.getNameRepository().findLatestByUuid(uuid.toString());
             if (name == null) {
                 continue;
             }
 
             // skip if name element has same content as name
             //     proceed without fail
-            if (NameElementUtil.hasSameContent(nameElement, name, holderIRepositories, holder)) {
+            if (NameElementUtil.hasSameContent(nameElementCommand, name, holderIRepositories, holder)) {
                 continue;
             }
 
@@ -563,39 +584,39 @@ public class NamesService {
 
             // find out system group, system, subsystem
             //     one of the three expected to be non-null, other two expected to be null
-            SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-            System      system      = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-            Subsystem   subsystem   = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
+            SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(parentSystemStructure.toString());
+            System      system      = holderIRepositories.getSystemRepository().findLatestByUuid(parentSystemStructure.toString());
+            Subsystem   subsystem   = holderIRepositories.getSubsystemRepository().findLatestByUuid(parentSystemStructure.toString());
             DeviceType  deviceType  = null;
-            if (nameElement.getParentDeviceStructure() != null) {
-                deviceType  = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentDeviceStructure().toString());
+            if (parentDeviceStructure != null) {
+                deviceType  = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(parentDeviceStructure.toString());
             }
 
             String derivedName = null;
             if (systemGroup != null) {
-                derivedName = NameUtil.getName(systemGroup, deviceType, nameElement.getIndex(), holder);
+                derivedName = NameUtil.getName(systemGroup, deviceType, index, holder);
             } else if (system != null) {
-                derivedName = NameUtil.getName(system, deviceType, nameElement.getIndex(), holder);
+                derivedName = NameUtil.getName(system, deviceType, index, holder);
             } else if (subsystem != null) {
-                derivedName = NameUtil.getName(subsystem, deviceType, nameElement.getIndex(), holder);
+                derivedName = NameUtil.getName(subsystem, deviceType, index, holder);
             }
 
             // create
-            name = new Name(nameElement.getUuid(),
+            name = new Name(uuid,
                     systemGroup != null ? systemGroup.getUuid() : null,
                     system != null ? system.getUuid() : null,
                     subsystem != null ? subsystem.getUuid() : null,
-                    nameElement.getParentDeviceStructure(),
-                    nameElement.getIndex(), derivedName, namingConvention.equivalenceClassRepresentative(derivedName),
-                    nameElement.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
-                    when, username, nameElement.getComment());
+                    parentDeviceStructure,
+                    index, derivedName, namingConvention.equivalenceClassRepresentative(derivedName),
+                    description, Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
+                    when, username, comment);
             nameRepository.createName(name);
 
             NameElement updatedNameElement = NameElementUtil.getNameElement(name);
             updatedNameElements.add(updatedNameElement);
 
             if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_NAME, TextUtil.ELEMENT_IN, nameElement));
+                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_NAME, TextUtil.ELEMENT_IN, nameElementCommand));
                 LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_NAME, TextUtil.ELEMENT_OUT, updatedNameElement));
             }
         }
@@ -604,7 +625,7 @@ public class NamesService {
                 () -> MessageFormat.format(
                         TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
                         "Update names",
-                        nameElements.size(),
+                        nameElementCommands.size(),
                         updatedNameElements.size()));
         return updatedNameElements;
     }
@@ -713,25 +734,28 @@ public class NamesService {
     // ----------------------------------------------------------------------------------------------------
 
     @Transactional
-    public List<NameElement> deleteNames(List<NameElementCommand> nameElements, String username) {
+    public List<NameElement> deleteNames(List<NameElementCommand> nameElementCommands, String username) {
         // validation outside method
         // transaction
         //     for each name element
+        //         attributes
         //         find
         //         update name to not latest
-        //         find
         //         insert name to latest, deleted
         //         handle name element for deleted name
         //     no notify
         //     return name elements for deleted names
-
-        // initiate holder of containers for system and device structure content, for performance reasons
-        HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories);
+        //
+        // attributes
+        //     uuid, comment
 
         Date when = new Date();
         final List<NameElement> deletedNameElements = Lists.newArrayList();
-        for (NameElementCommand nameElement : nameElements) {
-            Name name = holderIRepositories.getNameRepository().findLatestByUuid(nameElement.getUuid().toString());
+        for (NameElementCommand nameElementCommand : nameElementCommands) {
+            UUID uuid = nameElementCommand.getUuid();
+            String comment = nameElementCommand.getComment();
+
+            Name name = holderIRepositories.getNameRepository().findLatestByUuid(uuid.toString());
             if (name == null) {
                 continue;
             }
@@ -739,40 +763,21 @@ public class NamesService {
             name.setLatest(Boolean.FALSE);
             nameRepository.updateName(name);
 
-            // find out system group, system, subsystem
-            //     one of the three expected to be non-null, other two expected to be null
-            SystemGroup systemGroup = holderIRepositories.getSystemGroupRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-            System      system      = holderIRepositories.getSystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-            Subsystem   subsystem   = holderIRepositories.getSubsystemRepository().findLatestByUuid(nameElement.getParentSystemStructure().toString());
-            DeviceType  deviceType  = null;
-            if (nameElement.getParentDeviceStructure() != null) {
-                deviceType  = holderIRepositories.getDeviceTypeRepository().findLatestByUuid(nameElement.getParentDeviceStructure().toString());
-            }
-
-            String derivedName = null;
-            if (systemGroup != null) {
-                derivedName = NameUtil.getName(systemGroup, deviceType, nameElement.getIndex(), holder);
-            } else if (system != null) {
-                derivedName = NameUtil.getName(system, deviceType, nameElement.getIndex(), holder);
-            } else if (subsystem != null) {
-                derivedName = NameUtil.getName(subsystem, deviceType, nameElement.getIndex(), holder);
-            }
-
-            name = new Name(nameElement.getUuid(),
-                    systemGroup != null ? systemGroup.getUuid() : null,
-                    system != null ? system.getUuid() : null,
-                    subsystem != null ? subsystem.getUuid() : null,
-                    nameElement.getParentDeviceStructure(),
-                    nameElement.getIndex(), derivedName, namingConvention.equivalenceClassRepresentative(derivedName),
-                    nameElement.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
-                    when, username, nameElement.getComment());
+            name = new Name(uuid,
+                    name.getSystemGroupUuid(),
+                    name.getSystemUuid(),
+                    name.getSubsystemUuid(),
+                    name.getDeviceTypeUuid(),
+                    name.getInstanceIndex(), name.getConventionName(), name.getConventionNameEquivalence(),
+                    name.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                    when, username, comment);
             nameRepository.createName(name);
 
             NameElement deletedNameElement = NameElementUtil.getNameElement(name);
             deletedNameElements.add(deletedNameElement);
 
             if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_NAME, TextUtil.ELEMENT_IN, nameElement));
+                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_NAME, TextUtil.ELEMENT_IN, nameElementCommand));
                 LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_NAME, TextUtil.ELEMENT_OUT, deletedNameElement));
             }
         }
@@ -781,7 +786,7 @@ public class NamesService {
                 () -> MessageFormat.format(
                         TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
                         "Delete names",
-                        nameElements.size(),
+                        nameElementCommands.size(),
                         deletedNameElements.size()));
         return deletedNameElements;
     }
diff --git a/src/main/java/org/openepics/names/util/ExcelUtil.java b/src/main/java/org/openepics/names/util/ExcelUtil.java
index 173fadbb..5dfb471e 100644
--- a/src/main/java/org/openepics/names/util/ExcelUtil.java
+++ b/src/main/java/org/openepics/names/util/ExcelUtil.java
@@ -136,17 +136,33 @@ public class ExcelUtil {
     }
 
     /**
-     * Utility method to convert an Excel file to a list of name elements.
+     * Utility method to convert an Excel file to a list of name element commands.
      *
      * @param is input stream
      * @return list of name elements
      */
     public static List<NameElementCommand> excelToNameElementCommands(InputStream is) {
+        return excelToNameElementCommands(is, null);
+    }
+
+    /**
+     * Utility method to convert an Excel file to a list of name element commands given how Excel file is to be interpreted.
+     *
+     * @param is input stream
+     * @param nameCommand name command
+     * @return list of name elements
+     */
+    public static List<NameElementCommand> excelToNameElementCommands(InputStream is, NameCommand nameCommand) {
         // rules for conversion
         //     Excel as NameElementCommand accepted
-        //     Excel as NameElement not accepted
+        //     ( Excel as NameElement accepted )
         //     see validateHeaderNameElementCommand
 
+        // NameElementCommand
+        //     create -       parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   update - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   delete - uuid,                                                                   comment
+
         int rowIndex = 0;
         int columnIndex = 0;
 
@@ -224,17 +240,33 @@ public class ExcelUtil {
     }
 
     /**
-     * Utility method to convert an Excel file to a list of structure elements.
+     * Utility method to convert an Excel file to a list of structure element commands.
      *
      * @param is input stream
      * @return list of structure elements
      */
     public static List<StructureElementCommand> excelToStructureElementCommands(InputStream is) {
+        return excelToStructureElementCommands(is, null);
+    }
+
+    /**
+     * Utility method to convert an Excel file to a list of structure element commands given how Excel file is to be interpreted..
+     *
+     * @param is input stream
+     * @param structureCommand structure command
+     * @return list of structure elements
+     */
+    public static List<StructureElementCommand> excelToStructureElementCommands(InputStream is, StructureCommand structureCommand) {
         // rules for conversion
         //     Excel as StructureElementCommand accepted
-        //     Excel as StructureElement not accepted
+        //     ( Excel as StructureElement accepted )
         //     see validateHeaderStructureElementCommand
 
+        // StructureElementCommand
+        //     create -       type, parent, name, mnemonic, description, comment
+        //	   update - uuid, type, parent, name, mnemonic, description, comment
+        //	   delete - uuid, type                                       comment
+
         int rowIndex = 0;
         int columnIndex = 0;
 
diff --git a/src/main/java/org/openepics/names/util/NameElementUtil.java b/src/main/java/org/openepics/names/util/NameElementUtil.java
index a945be92..de09deda 100644
--- a/src/main/java/org/openepics/names/util/NameElementUtil.java
+++ b/src/main/java/org/openepics/names/util/NameElementUtil.java
@@ -30,6 +30,9 @@ import org.openepics.names.repository.model.SystemGroup;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.element.NameElement;
 import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 
 import com.google.common.collect.Lists;
 
@@ -133,6 +136,97 @@ public class NameElementUtil {
                 when, who);
     }
 
+    /**
+     * Populate and return list of name element commands given list of name element commands for create.
+     *
+     * @param commands name element commands for create
+     * @return list of name element commands
+     */
+    public static List<NameElementCommand> getNameElementCommandsForCreate(List<NameElementCommandCreate> commands) {
+        List<NameElementCommand> nameElementCommands = Lists.newArrayList();
+        for (NameElementCommandCreate command : commands) {
+            nameElementCommands.add(NameElementUtil.getNameElementCommand(command));
+        }
+        return nameElementCommands;
+    }
+
+    /**
+     * Populate and return list of name element commands given list of name element commands for update.
+     *
+     * @param commands name element commands for create
+     * @return list of name element commands
+     */
+    public static List<NameElementCommand> getNameElementCommandsForUpdate(List<NameElementCommandUpdate> commands) {
+        List<NameElementCommand> nameElementCommands = Lists.newArrayList();
+        for (NameElementCommandUpdate command : commands) {
+            nameElementCommands.add(NameElementUtil.getNameElementCommand(command));
+        }
+        return nameElementCommands;
+    }
+
+    /**
+     * Populate and return list of name element commands given list of name element commands for confirm.
+     *
+     * @param commands name element commands for create
+     * @return list of name element commands
+     */
+    public static List<NameElementCommand> getNameElementCommandsForConfirm(List<NameElementCommandConfirm> commands) {
+        List<NameElementCommand> nameElementCommands = Lists.newArrayList();
+        for (NameElementCommandConfirm command : commands) {
+            nameElementCommands.add(NameElementUtil.getNameElementCommand(command));
+        }
+        return nameElementCommands;
+    }
+
+
+    /**
+     * Return name element command given name element command for create.
+     *
+     * @param nameElementCommand name element command
+     * @return name element command
+     */
+    public static NameElementCommand getNameElementCommand(NameElementCommandCreate nameElementCommand) {
+        return new NameElementCommand(
+                null,
+                nameElementCommand.getParentSystemStructure(),
+                nameElementCommand.getParentDeviceStructure(),
+                nameElementCommand.getIndex(),
+                nameElementCommand.getDescription(),
+                nameElementCommand.getComment());
+    }
+
+    /**
+     * Return name element command given name element command for update.
+     *
+     * @param nameElementCommand name element command
+     * @return name element command
+     */
+    public static NameElementCommand getNameElementCommand(NameElementCommandUpdate nameElementCommand) {
+        return new NameElementCommand(
+                nameElementCommand.getUuid(),
+                nameElementCommand.getParentSystemStructure(),
+                nameElementCommand.getParentDeviceStructure(),
+                nameElementCommand.getIndex(),
+                nameElementCommand.getDescription(),
+                nameElementCommand.getComment());
+    }
+
+    /**
+     * Return name element command given name element command for confirm.
+     *
+     * @param nameElementCommand name element command
+     * @return name element command
+     */
+    public static NameElementCommand getNameElementCommand(NameElementCommandConfirm nameElementCommand) {
+        return new NameElementCommand(
+                nameElementCommand.getUuid(),
+                null,
+                null,
+                null,
+                null,
+                nameElementCommand.getComment());
+    }
+
     /**
      * Check if name element and name have same content.
      *
diff --git a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
index 212cacd3..ea6a2198 100644
--- a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
@@ -50,9 +50,9 @@ public class ValidateNameElementUtil {
     //         description, status, latest, deleted, when, who, comment
     //
     //     NameElementCommand
-    //	       create -       parentSystemStructure, parentDeviceStructure (optional), index, description, comment
-    //	       update - uuid, parentSystemStructure, parentDeviceStructure (optional), index, description, comment
-    //	       delete - uuid,                                                                              comment
+    //	       create -       parentSystemStructure, parentDeviceStructure, index, description, comment
+    //	       update - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
+    //	       delete - uuid,                                                                   comment
 
     /**
      * This class is not to be instantiated.
@@ -90,58 +90,56 @@ public class ValidateNameElementUtil {
     }
 
     /**
-     * Validate name element parameters (input) for create.
+     * Validate name element command parameters (input) for create.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      */
-    public static void validateNameElementInputCreate(NameElementCommand nameElement) {
-        validateNameElementInput(nameElement, NameCommand.CREATE);
+    public static void validateNameElementInputCreate(NameElementCommand nameElementCommand) {
+        validateNameElementInput(nameElementCommand, NameCommand.CREATE);
     }
 
     /**
-     * Validate name element parameters (input) for update.
+     * Validate name element command parameters (input) for update.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      */
-    public static void validateNameElementInputUpdate(NameElementCommand nameElement) {
-        validateNameElementInput(nameElement, NameCommand.UPDATE);
+    public static void validateNameElementInputUpdate(NameElementCommand nameElementCommand) {
+        validateNameElementInput(nameElementCommand, NameCommand.UPDATE);
     }
 
     /**
-     * Validate name element parameters (input) for delete.
+     * Validate name element command parameters (input) for delete.
      *
-     * @param nameElement name element
+     * @param nameElement name element command
      */
-    public static void validateNameElementInputDelete(NameElementCommand nameElement) {
-        validateNameElementInput(nameElement, NameCommand.DELETE);
+    public static void validateNameElementInputDelete(NameElementCommand nameElementCommand) {
+        validateNameElementInput(nameElementCommand, NameCommand.DELETE);
     }
 
     /**
-     * Validate name element parameters (input).
+     * Validate name element command parameters (input).
      *
-     * @param nameElement name element
+     * @param nameElement name element command
      * @param nameCommand name command
      */
-    private static void validateNameElementInput(NameElementCommand nameElement, NameCommand nameCommand) {
-        // attributes
-        //     uuid                            - required if not create, required empty if create
-        //     parentSystemStructure (uuid)
-        //     parentDeviceStructure (uuid)
-        //     index
-        //     description
-        //     comment
-
-        if (ValidateUtil.isAnyNull(nameElement, nameCommand)) {
+    private static void validateNameElementInput(NameElementCommand nameElementCommand, NameCommand nameCommand) {
+        // command - attributes
+        //     create -       parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   update - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   delete - uuid,                                                                   comment
+        //
+        //     create, update - optional - parentDeviceStructure, index
+
+        if (ValidateUtil.isAnyNull(nameElementCommand, nameCommand)) {
             return;
         }
 
-        UUID uuid = nameElement.getUuid();
-        UUID parentSystemStructure = nameElement.getParentSystemStructure();
-        UUID parentDeviceStructure = nameElement.getParentDeviceStructure();
-
-        String index = nameElement.getIndex();
-        String description = nameElement.getDescription();
-        String comment = nameElement.getComment();
+        UUID uuid = nameElementCommand.getUuid();
+        UUID parentSystemStructure = nameElementCommand.getParentSystemStructure();
+        UUID parentDeviceStructure = nameElementCommand.getParentDeviceStructure();
+        String index = nameElementCommand.getIndex();
+        String description = nameElementCommand.getDescription();
+        String comment = nameElementCommand.getComment();
 
         if (NameCommand.CREATE.equals(nameCommand)) {
             ExceptionUtil.validateConditionInputNotEmptyException(uuid == null,
@@ -152,15 +150,15 @@ public class ValidateNameElementUtil {
 
         if (!NameCommand.DELETE.equals(nameCommand)) {
             ExceptionUtil.validateConditionInputNotAvailableException(parentSystemStructure != null,
-                    TextUtil.VALUE_IS_NOT_AVAILABLE, nameElement.toString(), TextUtil.PARENTSYSTEMSTRUCTURE);
+                    TextUtil.VALUE_IS_NOT_AVAILABLE, nameElementCommand.toString(), TextUtil.PARENTSYSTEMSTRUCTURE);
 
             // optional (either none or both)
             //     parentDeviceStructure
             // 	   index
             if (parentDeviceStructure != null && index == null) {
-                throw ExceptionUtil.createInputNotCorrectException(null, nameElement.toString(), TextUtil.INDEX);
+                throw ExceptionUtil.createInputNotCorrectException(null, nameElementCommand.toString(), TextUtil.INDEX);
             } else if (parentDeviceStructure == null && index != null) {
-                throw ExceptionUtil.createInputNotCorrectException(null, nameElement.toString(), TextUtil.PARENTDEVICESTRUCTURE);
+                throw ExceptionUtil.createInputNotCorrectException(null, nameElementCommand.toString(), TextUtil.PARENTDEVICESTRUCTURE);
             }
 
             ValidateUtil.validateInputDescription(description);
@@ -172,79 +170,83 @@ public class ValidateNameElementUtil {
     // ----------------------------------------------------------------------------------------------------
 
     /**
-     * Validate name element data for create.
+     * Validate name element command data for create.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param namingConvention naming convention
      * @param holderIRepositories holder repositories
      * @param nameRepository name repository
      * @param holder holder
      */
-    public static void validateNameElementDataCreate(NameElementCommand nameElement, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
-        validateNameElementData(nameElement, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.CREATE);
+    public static void validateNameElementDataCreate(NameElementCommand nameElementCommand, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
+        validateNameElementData(nameElementCommand, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.CREATE);
     }
 
     /**
-     * Validate name element data for update.
+     * Validate name element command data for update.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param namingConvention naming convention
      * @param holderIRepositories holder repositories
      * @param nameRepository name repositories
      * @param holder holder
      */
-    public static void validateNameElementDataUpdate(NameElementCommand nameElement, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
-        validateNameElementData(nameElement, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.UPDATE);
+    public static void validateNameElementDataUpdate(NameElementCommand nameElementCommand, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
+        validateNameElementData(nameElementCommand, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.UPDATE);
     }
 
     /**
-     * Validate name element data for delete.
+     * Validate name element command data for delete.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param namingConvention naming convention
      * @param holderIRepositories holder repositories
      * @param nameRepository name repositories
      * @param holder holder
      */
-    public static void validateNameElementDataDelete(NameElementCommand nameElement, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
-        validateNameElementData(nameElement, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.DELETE);
+    public static void validateNameElementDataDelete(NameElementCommand nameElementCommand, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder) {
+        validateNameElementData(nameElementCommand, namingConvention, holderIRepositories, nameRepository, holder, NameCommand.DELETE);
     }
 
     /**
-     * Validate name element data.
+     * Validate name element command data.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param namingConvention naming convention
      * @param holderIRepositories holder repositories
      * @param nameRepository name repository
      * @param holder holder
      * @param nameCommand name command
      */
-    private static void validateNameElementData(NameElementCommand nameElement, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder, NameCommand nameCommand) {
-        // attributes
-        //     uuid
-        //     parentSystemDtructure
-        //     parentDeviceDtructure
-        //     index
-        //     description
-        //     comment
+    private static void validateNameElementData(NameElementCommand nameElementCommand, EssNamingConvention namingConvention, HolderIRepositories holderIRepositories, NameRepository nameRepository, HolderSystemDeviceStructure holder, NameCommand nameCommand) {
+        // command - attributes
+        //     create -       parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   update - uuid, parentSystemStructure, parentDeviceStructure, index, description, comment
+        //	   delete - uuid,                                                                   comment
+        //
+        //     create, update - optional - parentDeviceStructure, index
         //
         // name
         //      - system structure uuid
         //    ( - system structure uuid, device structure uuid )
         //      - system structure uuid, device structure uuid, index
 
-        if (ValidateUtil.isAnyNull(nameElement, namingConvention, holderIRepositories, nameRepository, holder, nameCommand)) {
+        if (ValidateUtil.isAnyNull(nameElementCommand, namingConvention, holderIRepositories, nameRepository, holder, nameCommand)) {
             return;
         }
 
-        String details = nameElement.toString();
+        String details = nameElementCommand.toString();
+
+        UUID uuid = nameElementCommand.getUuid();
+        UUID parentSystemstructure = nameElementCommand.getParentSystemStructure();
+        UUID parentDevicestructure = nameElementCommand.getParentDeviceStructure();
+        String index = nameElementCommand.getIndex();
 
         // name
         //     update, delete - uuid available, not deleted
         //     retrieve for uuid and check
         if (ValidateUtil.isAnyEqual(nameCommand, NameCommand.UPDATE, NameCommand.DELETE)) {
-            List<Name> names = nameRepository.readNames(false, nameElement.getUuid().toString(), null, null, null, null, null, null);
+            List<Name> names = nameRepository.readNames(false, uuid.toString(), null, null, null, null, null, null);
             ExceptionUtil.validateConditionDataNotCorrectException(ValidateUtil.isSize(names, 1),
                     TextUtil.VALUE_IS_NOT_CORRECT, details, TextUtil.UUID);
         }
@@ -259,11 +261,6 @@ public class ValidateNameElementUtil {
 
         boolean condition = true;
 
-        UUID uuid = nameElement.getUuid();
-        UUID parentSystemstructure = nameElement.getParentSystemStructure();
-        UUID parentDevicestructure = nameElement.getParentDeviceStructure();
-        String index = nameElement.getIndex();
-
         if (ValidateUtil.isAnyEqual(nameCommand, NameCommand.CREATE, NameCommand.UPDATE)) {
             // systemgroup, system, subsystem - in repository
             //     found
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
index d5cd9249..fb9dfb64 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
@@ -37,6 +37,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.element.NameElement;
 import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
 import org.openepics.names.rest.beans.response.ResponsePageNameElements;
@@ -64,12 +67,127 @@ public class ITUtilNameElement {
     // ----------------------------------------------------------------------------------------------------
 
     /**
-     * Return string for name element array.
+     * Utility method to return name element command for create given name element.
      *
-     * @param value name element array
-     * @return string for name element array
+     * @param nameElement name element
+     * @return name element command for create
+     */
+    static NameElementCommandCreate convert2NameElementCommandCreate(NameElement nameElement) {
+        return new NameElementCommandCreate(
+                nameElement.getParentSystemStructure(),
+                nameElement.getParentDeviceStructure(),
+                nameElement.getIndex(),
+                nameElement.getDescription(),
+                nameElement.getComment());
+    }
+
+    /**
+     * Utility method to return name element command for update given name element.
+     *
+     * @param nameElement name element
+     * @return name element command for update
+     */
+    static NameElementCommandUpdate convert2NameElementCommandUpdate(NameElement nameElement) {
+        return new NameElementCommandUpdate(
+                nameElement.getUuid(),
+                nameElement.getParentSystemStructure(),
+                nameElement.getParentDeviceStructure(),
+                nameElement.getIndex(),
+                nameElement.getDescription(),
+                nameElement.getComment());
+    }
+
+    /**
+     * Utility method to return name element command for confirm given name element.
+     *
+     * @param nameElement name element
+     * @return name element command for confirm
+     */
+    static NameElementCommandConfirm convert2NameElementCommandConfirm(NameElement nameElement) {
+        return new NameElementCommandConfirm(
+                nameElement.getUuid(),
+                nameElement.getComment());
+    }
+
+    /**
+     * Utility method to return name element commands for create given name elements.
+     *
+     * @param nameElements name elements
+     * @return name element commands for create
+     */
+    public static NameElementCommandCreate[] convert2NameElementCommandCreate(NameElement[] nameElements) {
+        NameElementCommandCreate[] nameElementCommandsCreate = new NameElementCommandCreate[nameElements.length];
+        for (int i=0; i<nameElements.length; i++) {
+            nameElementCommandsCreate[i] = convert2NameElementCommandCreate(nameElements[i]);
+        }
+        return nameElementCommandsCreate;
+    }
+
+    /**
+     * Utility method to return name element commands for update given name elements.
+     *
+     * @param nameElements name elements
+     * @return name element commands for update
+     */
+    public static NameElementCommandUpdate[] convert2NameElementCommandUpdate(NameElement[] nameElements) {
+        NameElementCommandUpdate[] nameElementCommandsUpdate = new NameElementCommandUpdate[nameElements.length];
+        for (int i=0; i<nameElements.length; i++) {
+            nameElementCommandsUpdate[i] =  convert2NameElementCommandUpdate(nameElements[i]);
+        }
+        return nameElementCommandsUpdate;
+    }
+
+    /**
+     * Utility method to return name element commands for confirm given name elements.
+     *
+     * @param nameElements name elements
+     * @return name element commands for confirm
+     */
+    public static NameElementCommandConfirm[] convert2NameElementCommandConfirm(NameElement[] nameElements) {
+        NameElementCommandConfirm[] nameElementCommandsConfirm = new NameElementCommandConfirm[nameElements.length];
+        for (int i=0; i<nameElements.length; i++) {
+            nameElementCommandsConfirm[i] = convert2NameElementCommandConfirm(nameElements[i]);
+        }
+        return nameElementCommandsConfirm;
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
+    /**
+     * Return string for name element command array.
+     *
+     * @param value name element command array
+     * @return string for name element command array
+     */
+    static String object2Json(NameElementCommandCreate[] value) {
+        try {
+            return mapper.writeValueAsString(value);
+        } catch (JsonProcessingException e) {
+            fail();
+        }
+        return null;
+    }
+    /**
+     * Return string for name element command array.
+     *
+     * @param value name element command array
+     * @return string for name element command array
      */
-    static String object2Json(NameElementCommand[] value) {
+    static String object2Json(NameElementCommandUpdate[] value) {
+        try {
+            return mapper.writeValueAsString(value);
+        } catch (JsonProcessingException e) {
+            fail();
+        }
+        return null;
+    }
+    /**
+     * Return string for name element command array.
+     *
+     * @param value name element command array
+     * @return string for name element command array
+     */
+    static String object2Json(NameElementCommandConfirm[] value) {
         try {
             return mapper.writeValueAsString(value);
         } catch (JsonProcessingException e) {
@@ -444,52 +562,92 @@ public class ITUtilNameElement {
     // --------------------
 
     /**
-     * Utility method to validate and assert expected response.
+     * Utility method to validate name element command for create and assert expected response.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param nameCommand name command
      * @param index index
      * @param expected expected response
      */
-    public static void assertValidate(NameElementCommand nameElement, NameCommand nameCommand, String index, Boolean expected) {
-        nameElement.setIndex(index);
-        assertValidate(AuthorizationChoice.NONE, new NameElementCommand[] {nameElement}, nameCommand, expected);
+    public static void assertValidate(NameElementCommandCreate nameElementCommand, NameCommand nameCommand, String index, Boolean expected) {
+        nameElementCommand.setIndex(index);
+        assertValidate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), nameCommand, expected);
     }
     /**
-     * Utility method to validate name element and assert expected response.
+     * Utility method to validate name element command for create and assert expected response.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param nameCommand name command
      * @param expected expected response
      */
-    public static void assertValidate(NameElementCommand nameElement, NameCommand nameCommand, Boolean expected) {
-        assertValidate(AuthorizationChoice.NONE, new NameElementCommand[] {nameElement}, nameCommand, expected);
+    public static void assertValidate(NameElementCommandCreate nameElementCommand, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), nameCommand, expected);
     }
     /**
-     * Utility method to validate name elements and assert expected response.
+     * Utility method to validate name element command for update and assert expected response.
      *
-     * @param nameElements name elements
+     * @param nameElementCommand name element command
      * @param nameCommand name command
      * @param expected expected response
      */
-    public static void assertValidate(NameElementCommand[] nameElements, NameCommand nameCommand, Boolean expected) {
-        assertValidate(AuthorizationChoice.NONE, nameElements, nameCommand, expected);
+    public static void assertValidate(NameElementCommandUpdate nameElementCommand, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(new NameElementCommandUpdate[] {nameElementCommand}), nameCommand, expected);
     }
     /**
-     * Utility method to validate name elements and assert expected response.
+     * Utility method to validate name element command for confirm and assert expected response.
+     *
+     * @param nameElementCommand name element command
+     * @param nameCommand name command
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElementCommandConfirm nameElementCommand, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(new NameElementCommandConfirm[] {nameElementCommand}), nameCommand, expected);
+    }
+    /**
+     * Utility method to validate name element commands for create and assert expected response.
+     *
+     * @param nameElementCommands name element commands
+     * @param nameCommand name command
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElementCommandCreate[] nameElementCommands, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(nameElementCommands), nameCommand, expected);
+    }
+    /**
+     * Utility method to validate name element commands for update and assert expected response.
+     *
+     * @param nameElementCommands name element commands
+     * @param nameCommand name command
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElementCommandUpdate[] nameElementCommands, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(nameElementCommands), nameCommand, expected);
+    }
+    /**
+     * Utility method to validate name element commands for confirm and assert expected response.
+     *
+     * @param nameElementCommands name element commands
+     * @param nameCommand name command
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElementCommandConfirm[] nameElementCommands, NameCommand nameCommand, Boolean expected) {
+        assertValidate(AuthorizationChoice.NONE, object2Json(nameElementCommands), nameCommand, expected);
+    }
+    /**
+     * Utility method to validate json and assert expected response.
      *
      * @param authorizationChoice authorization choice (none, user, admin)
-     * @param nameElements name elements
+     * @param json json
      * @param nameCommand name command
      * @param expected expected response
      */
-    public static void assertValidate(AuthorizationChoice authorizationChoice, NameElementCommand[] nameElements, NameCommand nameCommand, Boolean expected) {
+    public static void assertValidate(AuthorizationChoice authorizationChoice, String json, NameCommand nameCommand, Boolean expected) {
         String path = getValidatePath(nameCommand);
 
         try {
             String[] response = null;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, json));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), expected);
         } catch (IOException e) {
@@ -532,12 +690,12 @@ public class ITUtilNameElement {
      * Method expected to NOT succeed to create a name element
      * but instead assert response code (possibly also a non-empty message).
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @param responseCode response code
      * @throws JsonProcessingException
      */
-    public static void assertCreate(NameElementCommand nameElement, int responseCode) throws JsonProcessingException {
-        assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommand[] {nameElement}), responseCode);
+    public static void assertCreate(NameElementCommandCreate nameElementCommand, int responseCode) throws JsonProcessingException {
+        assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), responseCode);
     }
     /**
      * Utility method to (try to) create a name element from given json and assert result response code.
@@ -578,40 +736,40 @@ public class ITUtilNameElement {
     /**
      * Utility method to create a name element and assert result.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @return created name element
      */
-    public static NameElement assertCreate(NameElementCommand nameElement) {
-        return assertCreate(AuthorizationChoice.NONE, new NameElementCommand[] {nameElement})[0];
+    public static NameElement assertCreate(NameElementCommandCreate nameElementCommand) {
+        return assertCreate(AuthorizationChoice.NONE, new NameElementCommandCreate[] {nameElementCommand})[0];
     }
     /**
      * Utility method to create name elements and assert result.
      *
-     * @param nameElements name elements
+     * @param nameElementCommands name element commands
      * @return created name element
      */
-    public static NameElement[] assertCreate(NameElementCommand[] nameElements) {
-        return assertCreate(AuthorizationChoice.NONE, nameElements);
+    public static NameElement[] assertCreate(NameElementCommandCreate[] nameElementCommands) {
+        return assertCreate(AuthorizationChoice.NONE, nameElementCommands);
     }
     /**
      * Utility method to create name elements and assert result.
      *
      * @param authorizationChoice authorization choice (none, user, admin)
-     * @param nameElements name elements
+     * @param nameElementCommands name element commands
      * @return created name element
      */
-    public static NameElement[] assertCreate(AuthorizationChoice authorizationChoice, NameElementCommand[] nameElements) {
+    public static NameElement[] assertCreate(AuthorizationChoice authorizationChoice, NameElementCommandCreate[] nameElementCommands) {
         String path = getValidatePath(NameCommand.CREATE);
 
         try {
             String[] response = null;
             NameElement[] createdNameElements = null;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
 
-            response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_CREATED);
             createdNameElements = mapper.readValue(response[1], NameElement[].class);
 
@@ -640,40 +798,40 @@ public class ITUtilNameElement {
     /**
      * Utility method to update a name element and assert result.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @return updated name element
      */
-    public static NameElement assertUpdate(NameElementCommand nameElement) {
-        return assertUpdate(AuthorizationChoice.NONE, new NameElementCommand[] {nameElement})[0];
+    public static NameElement assertUpdate(NameElementCommandUpdate nameElementCommand) {
+        return assertUpdate(AuthorizationChoice.NONE, new NameElementCommandUpdate[] {nameElementCommand})[0];
     }
     /**
      * Utility method to update name elements and assert result.
      *
-     * @param nameElements name elements
+     * @param nameElementCommands name element commands
      * @return updated name element
      */
-    public static NameElement[] assertUpdate(NameElementCommand[] nameElements) {
-        return assertUpdate(AuthorizationChoice.NONE, nameElements);
+    public static NameElement[] assertUpdate(NameElementCommandUpdate[] nameElementCommands) {
+        return assertUpdate(AuthorizationChoice.NONE, nameElementCommands);
     }
     /**
      * Utility method to update name elements and assert result.
      *
      * @param authorizationChoice authorization choice (none, user, admin)
-     * @param nameElements name elements
+     * @param nameElementCommands name element commands
      * @return updated name element
      */
-    public static NameElement[] assertUpdate(AuthorizationChoice authorizationChoice, NameElementCommand[] nameElements) {
+    public static NameElement[] assertUpdate(AuthorizationChoice authorizationChoice, NameElementCommandUpdate[] nameElementCommands) {
         String path = getValidatePath(NameCommand.UPDATE);
 
         try {
             String[] response = null;
             NameElement[] updatedNameElements = null;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
 
-            response = ITUtil.runShellCommand(ITUtil.curlPutPathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlPutPathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             updatedNameElements = mapper.readValue(response[1], NameElement[].class);
 
@@ -699,40 +857,40 @@ public class ITUtilNameElement {
     /**
      * Utility method to delete a name element and assert result.
      *
-     * @param nameElement name element
+     * @param nameElementCommand name element command
      * @return deleted name element
      */
-    public static NameElement assertDelete(NameElementCommand nameElement) {
-        return assertDelete(AuthorizationChoice.NONE, new NameElementCommand[] {nameElement})[0];
+    public static NameElement assertDelete(NameElementCommandConfirm nameElementCommand) {
+        return assertDelete(AuthorizationChoice.NONE, new NameElementCommandConfirm[] {nameElementCommand})[0];
     }
     /**
      * Utility method to delete name elements and assert result.
      *
-     * @param nameElements name elements
-     * @return deleted name element
+     * @param nameElementCommands name element commands
+     * @return deleted name elements
      */
-    public static NameElement[] assertDelete(NameElementCommand[] nameElements) {
-        return assertDelete(AuthorizationChoice.NONE, nameElements);
+    public static NameElement[] assertDelete(NameElementCommandConfirm[] nameElementCommands) {
+        return assertDelete(AuthorizationChoice.NONE, nameElementCommands);
     }
     /**
      * Utility method to delete name elements and assert result.
      *
      * @param authorizationChoice authorization choice (none, user, admin)
-     * @param nameElements name elements
-     * @return deleted name element
+     * @param nameElementCommands name element commands
+     * @return deleted name elements
      */
-    public static NameElement[] assertDelete(AuthorizationChoice authorizationChoice, NameElementCommand[] nameElements) {
+    public static NameElement[] assertDelete(AuthorizationChoice authorizationChoice, NameElementCommandConfirm[] nameElementCommands) {
         String path = getValidatePath(NameCommand.DELETE);
 
         try {
             String[] response = null;
             NameElement[] deletedNameElements = null;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(authorizationChoice, EndpointChoice.NAMES, path, object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
 
-            response = ITUtil.runShellCommand(ITUtil.curlDeletePathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElements)));
+            response = ITUtil.runShellCommand(ITUtil.curlDeletePathJson(authorizationChoice, EndpointChoice.NAMES, "", object2Json(nameElementCommands)));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             deletedNameElements = mapper.readValue(response[1], NameElement[].class);
 
diff --git a/src/test/java/org/openepics/names/docker/NamesIT.java b/src/test/java/org/openepics/names/docker/NamesIT.java
index 04d40486..ee63dfbb 100644
--- a/src/test/java/org/openepics/names/docker/NamesIT.java
+++ b/src/test/java/org/openepics/names/docker/NamesIT.java
@@ -31,7 +31,9 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.NameElement;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.util.NameCommand;
@@ -192,16 +194,23 @@ class NamesIT {
         //     patch       approve structures
 
         ITUtilNameElement.assertIsLegacy("RFQ-010PRL:EMR-RFA-071", Boolean.FALSE);
-        ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071",   Boolean.FALSE);
 
         try {
-            NameElementCommand nameElement = null;
+            NameElementCommandCreate nameElementCommandCreate = null;
+            NameElementCommandUpdate nameElementCommandUpdate = null;
+            NameElementCommandConfirm nameElementCommandConfirm = null;
             NameElement createdNameElement = null;
             StructureElementCommand structureElement = null;
 
-            nameElement = new NameElementCommand(
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystemN1U1, deviceTypeRFA, "071",
+                    "description", "comment");
+            nameElementCommandUpdate = new NameElementCommandUpdate(
                     null, subsystemN1U1, deviceTypeRFA, "071",
                     "description", "comment");
+            nameElementCommandConfirm = new NameElementCommandConfirm(
+                    null, "comment");
 
             Long totalCount = ITUtilNameElement.assertRead("").getTotalCount();
             assertNotNull(totalCount);
@@ -209,13 +218,14 @@ class NamesIT {
             ITUtilNameElement.assertExists("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
             ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("RFQ-N1U1:EMR-RFA-071", Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.CREATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.UPDATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.DELETE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate,  NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate,  NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.FALSE);
 
             // create
-            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
-            nameElement.setUuid(createdNameElement.getUuid());
+            createdNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
+            nameElementCommandUpdate.setUuid(createdNameElement.getUuid());
+            nameElementCommandConfirm.setUuid(createdNameElement.getUuid());
 
             Long totalCount2 = ITUtilNameElement.assertRead("").getTotalCount();
             assertNotNull(totalCount2);
@@ -224,9 +234,9 @@ class NamesIT {
             ITUtilNameElement.assertExists("RFQ-N1U1:EMR-RFA-071", Boolean.TRUE);
             ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.UPDATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate,  NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate,  NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
 
             // delete, approve
             structureElement = new StructureElementCommand(
@@ -239,9 +249,9 @@ class NamesIT {
             ITUtilNameElement.assertExists("RFQ-N1U1:EMR-RFA-071", Boolean.TRUE);
             ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.UPDATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate,  NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate,  NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
 
             ITUtilStructureElement.assertApprove(structureElement);
 
@@ -252,9 +262,9 @@ class NamesIT {
             ITUtilNameElement.assertExists("RFQ-N1U1:EMR-RFA-071", Boolean.TRUE);
             ITUtilNameElement.assertIsLegacy("RFQ-N1U1:EMR-RFA-071", Boolean.TRUE);
             ITUtilNameElement.assertIsValidToCreate("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.UPDATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate,  NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate,  NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -291,7 +301,7 @@ class NamesIT {
         //     comment
 
         try {
-            NameElementCommand nameElement = new NameElementCommand();
+            NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
 
             ITUtilNameElement.assertExists("RFQ-010PRL:EMR-RFA-051", Boolean.FALSE);
             ITUtilNameElement.assertIsLegacy("RFQ-010PRL:EMR-RFA-051", Boolean.FALSE);
@@ -302,8 +312,8 @@ class NamesIT {
             ITUtilNameElement.assertValidate("[{asdf]", NameCommand.CREATE, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtilNameElement.assertCreate("[{asdf]", HttpURLConnection.HTTP_BAD_REQUEST);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
             // ----------
             // system structure
@@ -311,18 +321,18 @@ class NamesIT {
             // description
             // comment
 
-            nameElement.setDescription("description");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            nameElementCommandCreate.setDescription("description");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
-            nameElement.setComment("comment");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            nameElementCommandCreate.setComment("comment");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
             // convention name exists
             // already exists since create subsystem was approved
-            nameElement.setParentSystemStructure(subsystem010PRL);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
 
             // ----------
             // system structure + device structure + index
@@ -330,21 +340,21 @@ class NamesIT {
             // description
             // comment
 
-            nameElement.setIndex("051");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            nameElementCommandCreate.setIndex("051");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.TRUE);
+            nameElementCommandCreate.setParentDeviceStructure(deviceTypeRFA);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.TRUE);
 
             // ----------
 
-            nameElement.setParentSystemStructure(null);
-            nameElement.setIndex(null);
-            nameElement.setParentDeviceStructure(null);
+            nameElementCommandCreate.setParentSystemStructure(null);
+            nameElementCommandCreate.setIndex(null);
+            nameElementCommandCreate.setParentDeviceStructure(null);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
             // ----------
             // system structure
@@ -354,8 +364,8 @@ class NamesIT {
 
             // convention name exists
             // already exists since create system was approved
-            nameElement.setParentSystemStructure(systemRFQ);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandCreate.setParentSystemStructure(systemRFQ);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
 
             // ----------
             // system structure + device structure + index
@@ -363,21 +373,21 @@ class NamesIT {
             // description
             // comment
 
-            nameElement.setIndex("051");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            nameElementCommandCreate.setIndex("051");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.TRUE);
+            nameElementCommandCreate.setParentDeviceStructure(deviceTypeRFA);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.TRUE);
 
             // ----------
 
-            nameElement.setParentSystemStructure(null);
-            nameElement.setIndex(null);
-            nameElement.setParentDeviceStructure(null);
+            nameElementCommandCreate.setParentSystemStructure(null);
+            nameElementCommandCreate.setIndex(null);
+            nameElementCommandCreate.setParentDeviceStructure(null);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
             // ----------
             // system structure
@@ -387,8 +397,8 @@ class NamesIT {
 
             // convention name exists
             // already exists since create system group was approved
-            nameElement.setParentSystemStructure(systemGroupAcc);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandCreate.setParentSystemStructure(systemGroupAcc);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
 
             // ----------
             // system structure + device structure + index
@@ -396,24 +406,24 @@ class NamesIT {
             // description
             // comment
 
-            nameElement.setIndex("051");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            nameElementCommandCreate.setIndex("051");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
-            nameElement.setParentDeviceStructure(deviceTypeTT);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.TRUE);
+            nameElementCommandCreate.setParentDeviceStructure(deviceTypeTT);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.TRUE);
 
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.TRUE);
+            nameElementCommandCreate.setParentDeviceStructure(deviceTypeRFA);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.TRUE);
 
             // ----------
 
-            nameElement.setParentSystemStructure(null);
-            nameElement.setIndex(null);
-            nameElement.setParentDeviceStructure(null);
+            nameElementCommandCreate.setParentSystemStructure(null);
+            nameElementCommandCreate.setIndex(null);
+            nameElementCommandCreate.setParentDeviceStructure(null);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertCreate(nameElement, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
 
             // ----------
             // system structure + device structure
@@ -423,14 +433,14 @@ class NamesIT {
 
             // convention name exists
             // already exists since create system was approved
-            nameElement.setParentSystemStructure(systemRFQ);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandCreate.setParentSystemStructure(systemRFQ);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
 
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandCreate.setParentDeviceStructure(deviceTypeRFA);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
 
-            nameElement.setIndex("051");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.TRUE);
+            nameElementCommandCreate.setIndex("051");
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.TRUE);
         } catch (IOException e) {
             fail();
         } catch (Exception e) {
@@ -456,15 +466,15 @@ class NamesIT {
         try {
             ObjectMapper mapper = new ObjectMapper();
 
-            NameElementCommand nameElement  = null;
-            NameElementCommand nameElement2 = null;
+            NameElementCommandCreate nameElementCommandCreate  = null;
+            NameElementCommandCreate nameElementCommandCreate2 = null;
 
-            nameElement = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "052",
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "052",
                     "description", "comment");
 
-            nameElement2 = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "061",
+            nameElementCommandCreate2 = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "061",
                     "description", "comment");
 
             ITUtilNameElement.assertExists("RFQ-010PRL:EMR-RFA-052", Boolean.FALSE);
@@ -472,20 +482,20 @@ class NamesIT {
             ITUtilNameElement.assertIsValidToCreate("RFQ-010PRL:EMR-RFA-052", Boolean.TRUE);
 
             ITUtilNameElement.assertValidate(
-                    "[" + mapper.writeValueAsString(nameElement) + ","+mapper.writeValueAsString(nameElement2) +"]",
+                    "[" + mapper.writeValueAsString(nameElementCommandCreate) + ","+mapper.writeValueAsString(nameElementCommandCreate2) +"]",
                     NameCommand.CREATE, HttpURLConnection.HTTP_OK, Boolean.TRUE, Boolean.TRUE);
 
-            ITUtilNameElement.assertValidate(nameElement,  NameCommand.CREATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElement2, NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate,  NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate2, NameCommand.CREATE, Boolean.TRUE);
 
             // create
-            ITUtilNameElement.assertCreate(nameElement);
+            ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
             ITUtilNameElement.assertExists("RFQ-010PRL:EMR-RFA-052", Boolean.TRUE);
             ITUtilNameElement.assertIsLegacy("RFQ-010PRL:EMR-RFA-052", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("RFQ-010PRL:EMR-RFA-052", Boolean.FALSE);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (Exception e) {
@@ -517,89 +527,91 @@ class NamesIT {
         //     comment
 
         try {
-            NameElementCommand nameElement = null;
+            NameElementCommandCreate nameElementCommandCreate = null;
+            NameElementCommandUpdate nameElementCommandUpdate = null;
             NameElement createdNameElement = null;
 
-            nameElement = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "053",
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "053",
                     "description", "comment");
 
             // create
-            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
+            nameElementCommandUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElement);
 
             // validate update
 
-            nameElement.setUuid(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setUuid(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setUuid(createdNameElement.getUuid());
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setUuid(createdNameElement.getUuid());
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setDescription(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setDescription(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setDescription("checkUpdate");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setDescription("checkUpdate");
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setComment(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setComment(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setComment("checkUpdate");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setComment("checkUpdate");
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
             // ----------
 
-            nameElement.setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setParentSystemStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setParentSystemStructure(systemGroupAcc);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentSystemStructure(systemGroupAcc);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setParentSystemStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setParentSystemStructure(systemRFQ);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentSystemStructure(systemRFQ);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setParentSystemStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
             // subsystemN1U1 used in isLegacyName but not here
             // order of tests not guaranteed
 
-            nameElement.setParentSystemStructure(subsystem010PRL);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentSystemStructure(subsystem010PRL);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
             // ----------
 
-            nameElement.setParentDeviceStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setParentDeviceStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
             // convention name exists
             // already exists since create subsystem was approved
-            nameElement.setIndex(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setIndex(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setIndex("053");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setIndex("053");
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setParentDeviceStructure(deviceGroupEMR);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setParentDeviceStructure(deviceGroupEMR);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setParentDeviceStructure(deviceTypeFS);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentDeviceStructure(deviceTypeFS);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setParentDeviceStructure(deviceTypeTT);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentDeviceStructure(deviceTypeTT);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setParentDeviceStructure(deviceTypeRFA);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setIndex(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            nameElementCommandUpdate.setIndex(null);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
-            nameElement.setIndex("053");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            nameElementCommandUpdate.setIndex("053");
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
             // system structure, device structure not used for validation
         } catch (Exception e) {
@@ -622,32 +634,40 @@ class NamesIT {
         //     create in order to update
 
         try {
-            NameElementCommand nameElement = null;
+            NameElementCommandCreate nameElementCommandCreate = null;
+            NameElementCommandUpdate nameElementCommandUpdate = null;
             NameElement createdNameElement = null;
 
-            nameElement = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "054",
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "054",
                     "description", "comment");
+            nameElementCommandUpdate = new NameElementCommandUpdate(
+                    null,
+                    nameElementCommandCreate.getParentSystemStructure(),
+                    nameElementCommandCreate.getParentDeviceStructure(),
+                    nameElementCommandCreate.getIndex(),
+                    nameElementCommandCreate.getDescription(),
+                    nameElementCommandCreate.getComment());
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.FALSE);
 
             // create
-            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
-            nameElement.setUuid(createdNameElement.getUuid());
+            createdNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
+            nameElementCommandUpdate.setUuid(createdNameElement.getUuid());
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
-            nameElement.setDescription("updated description");
-            nameElement.setComment("updated comment");
+            nameElementCommandUpdate.setDescription("updated description");
+            nameElementCommandUpdate.setComment("updated comment");
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
 
             // update
-            ITUtilNameElement.assertUpdate(nameElement);
-            nameElement.setDescription("another description");
-            nameElement.setComment("another comment");
+            ITUtilNameElement.assertUpdate(nameElementCommandUpdate);
+            nameElementCommandUpdate.setDescription("another description");
+            nameElementCommandUpdate.setComment("another comment");
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandUpdate, NameCommand.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -672,62 +692,72 @@ class NamesIT {
         //     comment
 
         try {
-            NameElementCommand nameElement = null;
+            NameElementCommandCreate nameElementCommandCreate = null;
+            NameElementCommandConfirm nameElementCommandConfirm = null;
             NameElement createdNameElement = null;
 
-            nameElement = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "055",
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "055",
                     "description", "comment");
 
             // create
-            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
-            nameElement.setUuid(createdNameElement.getUuid());
+            createdNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
+            nameElementCommandConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElement);
+//            nameElement.setUuid(createdNameElement.getUuid());
 
             // validate delete
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setDescription(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setDescription("checkDelete");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setComment(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.FALSE);
-
-            nameElement.setComment("checkDelete");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            // system structure not used for validation
-
-            nameElement.setParentSystemStructure(systemGroupAcc);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setParentSystemStructure(systemRFQ);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setParentSystemStructure(subsystem010PRL);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            // device type not used for validation
-
-            nameElement.setParentDeviceStructure(deviceTypeRFA);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            // index not used for validation
-
-            nameElement.setIndex(null);
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
-
-            nameElement.setIndex("055");
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+            nameElementCommandConfirm.setUuid(null);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+            nameElementCommandConfirm.setUuid(createdNameElement.getUuid());
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+
+
+//            nameElement.setDescription(null);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setDescription("checkDelete");
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+
+            nameElementCommandConfirm.setComment(null);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+            nameElementCommandConfirm.setComment("checkDelete");
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+//            // system structure not used for validation
+//
+//            nameElement.setParentSystemStructure(systemGroupAcc);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setParentSystemStructure(null);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setParentSystemStructure(systemRFQ);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setParentSystemStructure(null);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setParentSystemStructure(subsystem010PRL);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            // device type not used for validation
+//
+//            nameElement.setParentDeviceStructure(deviceTypeRFA);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            // index not used for validation
+//
+//            nameElement.setIndex(null);
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+//
+//            nameElement.setIndex("055");
+//            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -748,32 +778,34 @@ class NamesIT {
         //     create in order to delete
 
         try {
-            NameElementCommand nameElement = null;
+            NameElementCommandCreate nameElementCommandCreate = null;
+            NameElementCommandConfirm nameElementCommandConfirm = null;
             NameElement createdNameElement = null;
             NameElement deletedNameElement = null;
 
-            nameElement = new NameElementCommand(
-                    null, subsystem010PRL, deviceTypeRFA, "056",
+            nameElementCommandCreate = new NameElementCommandCreate(
+                    subsystem010PRL, deviceTypeRFA, "056",
                     "description", "comment");
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.DELETE, Boolean.FALSE);
 
             // create
-            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
-            nameElement = createdNameElement;
+            createdNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
+//            nameElement = createdNameElement;
+            nameElementCommandConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElement);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
 
-            nameElement.setDescription("deleted description");
-            nameElement.setComment("deleted comment");
+            nameElementCommandConfirm.setComment("deleted comment");
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.TRUE);
 
             // delete
-            deletedNameElement = ITUtilNameElement.assertDelete(nameElement);
-            nameElement = deletedNameElement;
+            deletedNameElement = ITUtilNameElement.assertDelete(nameElementCommandConfirm);
+//            nameElement = deletedNameElement;
+            nameElementCommandConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(deletedNameElement);
 
-            ITUtilNameElement.assertValidate(nameElement, NameCommand.DELETE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandConfirm, NameCommand.DELETE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -791,76 +823,82 @@ class NamesIT {
         // note
         //     create (and more) to read (with content)
 
-        NameElementCommand nameElement  = null;
+        NameElementCommandCreate nameElementCommandCreate = null;
+        NameElementCommandUpdate nameElementCommandUpdate = null;
+        NameElementCommandConfirm nameElementCommandConfirm = null;
         NameElement responseNameElement = null;
         UUID uuid, uuid2 = null;
 
         NameElement nameElement1, nameElement7, nameElement8 = null;
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "001",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "001",
                 "description", "comment");
 
         // create
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
         nameElement1 = responseNameElement;
         uuid = responseNameElement.getUuid();
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "002",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "002",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
         uuid2 = responseNameElement.getUuid();
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "003",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "003",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "004",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "004",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "005",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "005",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "006",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "006",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "007",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "007",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
         nameElement7 = responseNameElement;
 
-        nameElement = new NameElementCommand(
-                null, subsystem010, deviceTypeFS, "008",
+        nameElementCommandCreate = new NameElementCommandCreate(
+                subsystem010, deviceTypeFS, "008",
                 "description", "comment");
-        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElementCommandCreate);
         nameElement8 = responseNameElement;
 
         // update element 1 twice
-        nameElement = nameElement1;
-        nameElement.setDescription("updated description");
-        nameElement.setComment("updated comment");
+//        nameElement = nameElement1;
+        nameElementCommandUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(nameElement1);
+        nameElementCommandUpdate.setDescription("updated description");
+        nameElementCommandUpdate.setComment("updated comment");
 
-        responseNameElement = ITUtilNameElement.assertUpdate(nameElement);
-        nameElement = responseNameElement;
+        responseNameElement = ITUtilNameElement.assertUpdate(nameElementCommandUpdate);
+//        nameElement = responseNameElement;
+        nameElementCommandUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(responseNameElement);
 
-        nameElement.setDescription("updated description again");
-        nameElement.setComment("updated comment again");
+        nameElementCommandUpdate.setDescription("updated description again");
+        nameElementCommandUpdate.setComment("updated comment again");
 
-        responseNameElement = ITUtilNameElement.assertUpdate(nameElement);
-        nameElement = responseNameElement;
+        responseNameElement = ITUtilNameElement.assertUpdate(nameElementCommandUpdate);
+//        nameElement = responseNameElement;
 
         // delete element 7, 8
-        responseNameElement = ITUtilNameElement.assertDelete(nameElement7);
-        responseNameElement = ITUtilNameElement.assertDelete(nameElement8);
+        nameElementCommandConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(nameElement7);
+        responseNameElement = ITUtilNameElement.assertDelete(nameElementCommandConfirm);
+        nameElementCommandConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(nameElement8);
+        responseNameElement = ITUtilNameElement.assertDelete(nameElementCommandConfirm);
 
         try {
             // read & search
diff --git a/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java b/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
index eb0e06fd..076b3927 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
@@ -29,6 +29,7 @@ import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.util.NameCommand;
@@ -548,130 +549,130 @@ class NamesInstanceIndexIT {
       //     discipline Cryo
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_Cryo_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_Cryo_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Cryo_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Cryo_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -687,130 +688,130 @@ class NamesInstanceIndexIT {
       //     discipline EMR
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_EMR_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_EMR_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_EMR_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_EMR_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -826,130 +827,130 @@ class NamesInstanceIndexIT {
       //     discipline HVAC
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_HVAC_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_HVAC_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_HVAC_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_HVAC_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -965,130 +966,130 @@ class NamesInstanceIndexIT {
       //     discipline Proc
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_Proc_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_Proc_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Proc_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Proc_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1104,130 +1105,130 @@ class NamesInstanceIndexIT {
       //     discipline SC
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_SC_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_SC_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_SC_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_SC_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1243,130 +1244,130 @@ class NamesInstanceIndexIT {
       //     discipline Vac
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_Vac_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_Vac_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Vac_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_Vac_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1382,130 +1383,130 @@ class NamesInstanceIndexIT {
       //     discipline WtrC
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_WtrC_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_WtrC_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_WtrC_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_WtrC_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1521,130 +1522,130 @@ class NamesInstanceIndexIT {
       //     discipline BMD
       //     instance index
 
-      NameElementCommand nameElement = new NameElementCommand();
-      nameElement.setDescription("description");
-      nameElement.setComment("comment");
-      nameElement.setParentSystemStructure(subsystem010PRL);
+      NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate();
+      nameElementCommandCreate.setParentSystemStructure(subsystem010PRL);
+      nameElementCommandCreate.setDescription("description");
+      nameElementCommandCreate.setComment("comment");
 
       // ----------------------------------------------------------------------------------------------------
 
-      nameElement.setParentDeviceStructure(deviceType_BMD_IOC);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
-
-      nameElement.setParentDeviceStructure(deviceType_BMD_RFA);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "051",       Boolean.TRUE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00",        Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0000000",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "00000000",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000000000", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1234567",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "12345678",  Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123456789", Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123a",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ab",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abc",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123A",      Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123AB",     Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1",         Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "01",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "001",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0001",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "0110",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10",        Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "100",       Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "1000",      Boolean.TRUE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "10001",     Boolean.FALSE);
-
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "",          Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, " ",         Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "Idx",       Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "abc123",    Boolean.FALSE);
-      ITUtilNameElement.assertValidate(nameElement, NameCommand.CREATE, "a!",        Boolean.FALSE);
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_BMD_IOC);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
+
+      nameElementCommandCreate.setParentDeviceStructure(deviceType_BMD_RFA);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "01",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0001",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "0110",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "1000",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "",          Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElementCommandCreate, NameCommand.CREATE, "a!",        Boolean.FALSE);
   }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
index 89d86565..ecc895d7 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
@@ -32,7 +32,9 @@ import org.openepics.names.docker.ITUtilNameElement;
 import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.NameElement;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.util.NameCommand;
@@ -142,64 +144,82 @@ class NamesMultipleIT {
         //     with and without index
 
         try {
-            NameElementCommand[] nameElements = null;
+            NameElementCommandCreate[] nameElementCommandsCreate = null;
+            NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+            NameElementCommandConfirm[] nameElementCommandsConfirm = null;
             UUID uuid = null;
             String value = null;
 
-            nameElements = new NameElementCommand[] {
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "011", "checkCreate 1.3.011", "checkCreate 1.3.011"),
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "012", "checkCreate 1.3.012", "checkCreate 1.3.012"),
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "013", "checkCreate 1.3.013", "checkCreate 1.3.013"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "011", "checkCreate 2.3.011", "checkCreate 2.3.011"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "012", "checkCreate 2.3.012", "checkCreate 2.3.012"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "013", "checkCreate 2.3.013", "checkCreate 2.3.013"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "011", "checkCreate 3.3.011", "checkCreate 3.3.011"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "012", "checkCreate 3.3.012", "checkCreate 3.3.012"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "013", "checkCreate 3.3.013", "checkCreate 3.3.013")
+            nameElementCommandsCreate = new NameElementCommandCreate[] {
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "011", "checkCreate 1.3.011", "checkCreate 1.3.011"),
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "012", "checkCreate 1.3.012", "checkCreate 1.3.012"),
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "013", "checkCreate 1.3.013", "checkCreate 1.3.013"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "011", "checkCreate 2.3.011", "checkCreate 2.3.011"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "012", "checkCreate 2.3.012", "checkCreate 2.3.012"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "013", "checkCreate 2.3.013", "checkCreate 2.3.013"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "011", "checkCreate 3.3.011", "checkCreate 3.3.011"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "012", "checkCreate 3.3.012", "checkCreate 3.3.012"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "013", "checkCreate 3.3.013", "checkCreate 3.3.013")
+            };
+            nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "011", "checkCreate 1.3.011", "checkCreate 1.3.011"),
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "012", "checkCreate 1.3.012", "checkCreate 1.3.012"),
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "013", "checkCreate 1.3.013", "checkCreate 1.3.013"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "011", "checkCreate 2.3.011", "checkCreate 2.3.011"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "012", "checkCreate 2.3.012", "checkCreate 2.3.012"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "013", "checkCreate 2.3.013", "checkCreate 2.3.013"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "011", "checkCreate 3.3.011", "checkCreate 3.3.011"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "012", "checkCreate 3.3.012", "checkCreate 3.3.012"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "013", "checkCreate 3.3.013", "checkCreate 3.3.013")
+            };
+            nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                    new NameElementCommandConfirm(null, "checkCreate 1.3.011"),
+                    new NameElementCommandConfirm(null, "checkCreate 1.3.012"),
+                    new NameElementCommandConfirm(null, "checkCreate 1.3.013"),
+                    new NameElementCommandConfirm(null, "checkCreate 2.3.011"),
+                    new NameElementCommandConfirm(null, "checkCreate 2.3.012"),
+                    new NameElementCommandConfirm(null, "checkCreate 2.3.013"),
+                    new NameElementCommandConfirm(null, "checkCreate 3.3.011"),
+                    new NameElementCommandConfirm(null, "checkCreate 3.3.012"),
+                    new NameElementCommandConfirm(null, "checkCreate 3.3.013")
             };
 
             ITUtilNameElement.assertExists("RFQ:Cryo-FS-011", Boolean.FALSE);
             ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-011", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-011", Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
-
-            uuid = deviceType_Cryo_FS;
-            nameElements[3].setUuid(uuid);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setUuid(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-
-            uuid = nameElements[3].getParentSystemStructure();
-            nameElements[3].setParentSystemStructure(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setParentSystemStructure(uuid);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-
-            uuid = nameElements[3].getParentDeviceStructure();
-            nameElements[3].setParentDeviceStructure(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setParentDeviceStructure(uuid);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-
-            value = nameElements[3].getIndex();
-            nameElements[3].setIndex(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setIndex(value);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-
-            value = nameElements[3].getDescription();
-            nameElements[3].setDescription(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setDescription(value);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-
-            value = nameElements[3].getComment();
-            nameElements[3].setComment(null);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            nameElements[3].setComment(value);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+            uuid = nameElementCommandsCreate[3].getParentSystemStructure();
+            nameElementCommandsCreate[3].setParentSystemStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandsCreate[3].setParentSystemStructure(uuid);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+
+            uuid = nameElementCommandsCreate[3].getParentDeviceStructure();
+            nameElementCommandsCreate[3].setParentDeviceStructure(null);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandsCreate[3].setParentDeviceStructure(uuid);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+
+            value = nameElementCommandsCreate[3].getIndex();
+            nameElementCommandsCreate[3].setIndex(null);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandsCreate[3].setIndex(value);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+
+            value = nameElementCommandsCreate[3].getDescription();
+            nameElementCommandsCreate[3].setDescription(null);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandsCreate[3].setDescription(value);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+
+            value = nameElementCommandsCreate[3].getComment();
+            nameElementCommandsCreate[3].setComment(null);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            nameElementCommandsCreate[3].setComment(value);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -221,60 +241,90 @@ class NamesMultipleIT {
         //     with and without index
 
         try {
-            NameElementCommand[] nameElements = null;
+            NameElementCommandCreate[] nameElementCommandsCreate = null;
+            NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+            NameElementCommandConfirm[] nameElementCommandsConfirm = null;
             NameElement[] createdNameElements = null;
             int nbrNames = -1;
 
-            nameElements = new NameElementCommand[] {
-                    new NameElementCommand(null, systemGroupAcc,  null,               null,  "create 1.0.0",   "create 1.0.0"),
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "021", "create 1.3.021", "create 1.3.021"),
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "022", "create 1.3.022", "create 1.3.022"),
-                    new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "023", "create 1.3.023", "create 1.3.023"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "021", "create 2.3.021", "create 2.3.021"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "022", "create 2.3.022", "create 2.3.022"),
-                    new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "023", "create 2.3.023", "create 2.3.023"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "021", "create 3.3.021", "create 3.3.021"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "022", "create 3.3.022", "create 3.3.022"),
-                    new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "023", "create 3.3.023", "create 3.3.023")
+            nameElementCommandsCreate = new NameElementCommandCreate[] {
+                    new NameElementCommandCreate(systemGroupAcc,  null,               null,  "create 1.0.0",   "create 1.0.0"),
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "021", "create 1.3.021", "create 1.3.021"),
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "022", "create 1.3.022", "create 1.3.022"),
+                    new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "023", "create 1.3.023", "create 1.3.023"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "021", "create 2.3.021", "create 2.3.021"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "022", "create 2.3.022", "create 2.3.022"),
+                    new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "023", "create 2.3.023", "create 2.3.023"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "021", "create 3.3.021", "create 3.3.021"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "022", "create 3.3.022", "create 3.3.022"),
+                    new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "023", "create 3.3.023", "create 3.3.023")
+            };
+            nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                    new NameElementCommandUpdate(null, systemGroupAcc,  null,               null,  "create 1.0.0",   "create 1.0.0"),
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "021", "create 1.3.021", "create 1.3.021"),
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "022", "create 1.3.022", "create 1.3.022"),
+                    new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "023", "create 1.3.023", "create 1.3.023"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "021", "create 2.3.021", "create 2.3.021"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "022", "create 2.3.022", "create 2.3.022"),
+                    new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "023", "create 2.3.023", "create 2.3.023"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "021", "create 3.3.021", "create 3.3.021"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "022", "create 3.3.022", "create 3.3.022"),
+                    new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "023", "create 3.3.023", "create 3.3.023")
+            };
+            nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                    new NameElementCommandConfirm(null, "create 1.0.0"),
+                    new NameElementCommandConfirm(null, "create 1.3.021"),
+                    new NameElementCommandConfirm(null, "create 1.3.022"),
+                    new NameElementCommandConfirm(null, "create 1.3.023"),
+                    new NameElementCommandConfirm(null, "create 2.3.021"),
+                    new NameElementCommandConfirm(null, "create 2.3.022"),
+                    new NameElementCommandConfirm(null, "create 2.3.023"),
+                    new NameElementCommandConfirm(null, "create 3.3.021"),
+                    new NameElementCommandConfirm(null, "create 3.3.022"),
+                    new NameElementCommandConfirm(null, "create 3.3.023")
             };
 
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
-
-            nameElements = new NameElementCommand[] {
-                    nameElements[1],
-                    nameElements[2],
-                    nameElements[3],
-                    nameElements[4],
-                    nameElements[5],
-                    nameElements[6],
-                    nameElements[7],
-                    nameElements[8],
-                    nameElements[9]
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+            nameElementCommandsCreate = new NameElementCommandCreate[] {
+                    nameElementCommandsCreate[1],
+                    nameElementCommandsCreate[2],
+                    nameElementCommandsCreate[3],
+                    nameElementCommandsCreate[4],
+                    nameElementCommandsCreate[5],
+                    nameElementCommandsCreate[6],
+                    nameElementCommandsCreate[7],
+                    nameElementCommandsCreate[8],
+                    nameElementCommandsCreate[9]
             };
 
             ITUtilNameElement.assertExists("Acc:Cryo-FS-023", Boolean.FALSE);
             ITUtilNameElement.assertIsLegacy("Acc:Cryo-FS-023", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("Acc:Cryo-FS-023", Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
 
             nbrNames = ITUtilNameElement.assertRead("?deleted=false").getListSize();
 
-            createdNameElements = ITUtilNameElement.assertCreate(nameElements);
+            createdNameElements = ITUtilNameElement.assertCreate(nameElementCommandsCreate);
             assertNotNull(createdNameElements);
             assertEquals(9, createdNameElements.length);
 
             assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+            nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(createdNameElements);
+            nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElements);
+            nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElements);
+
             ITUtilNameElement.assertExists("Acc:Cryo-FS-023", Boolean.TRUE);
             ITUtilNameElement.assertIsLegacy("Acc:Cryo-FS-023", Boolean.FALSE);
             ITUtilNameElement.assertIsValidToCreate("Acc:Cryo-FS-023", Boolean.FALSE);
-            ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-            ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-            ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -298,81 +348,109 @@ class NamesMultipleIT {
         //     create in order to update
         //     validate update
 
-        NameElementCommand[] nameElements = null;
+        NameElementCommandCreate[] nameElementCommandsCreate = null;
+        NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+        NameElementCommandConfirm[] nameElementCommandsConfirm = null;
         NameElement[] createdNameElements = null;
         int nbrNames = -1;
         UUID uuid = null;
         String value = null;
 
-        nameElements = new NameElementCommand[] {
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "031", "checkUpdate 1.3.031", "checkUpdate 1.3.031"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "032", "checkUpdate 1.3.032", "checkUpdate 1.3.032"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "033", "checkUpdate 1.3.033", "checkUpdate 1.3.033"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "031", "checkUpdate 2.3.031", "checkUpdate 2.3.031"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "032", "checkUpdate 2.3.032", "checkUpdate 2.3.032"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "033", "checkUpdate 2.3.033", "checkUpdate 2.3.033"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "031", "checkUpdate 3.3.031", "checkUpdate 3.3.031"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "032", "checkUpdate 3.3.032", "checkUpdate 3.3.032"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "033", "checkUpdate 3.3.033", "checkUpdate 3.3.033")
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "031", "checkUpdate 1.3.031", "checkUpdate 1.3.031"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "032", "checkUpdate 1.3.032", "checkUpdate 1.3.032"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "033", "checkUpdate 1.3.033", "checkUpdate 1.3.033"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "031", "checkUpdate 2.3.031", "checkUpdate 2.3.031"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "032", "checkUpdate 2.3.032", "checkUpdate 2.3.032"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "033", "checkUpdate 2.3.033", "checkUpdate 2.3.033"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "031", "checkUpdate 3.3.031", "checkUpdate 3.3.031"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "032", "checkUpdate 3.3.032", "checkUpdate 3.3.032"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "033", "checkUpdate 3.3.033", "checkUpdate 3.3.033")
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "031", "checkUpdate 1.3.031", "checkUpdate 1.3.031"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "032", "checkUpdate 1.3.032", "checkUpdate 1.3.032"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "033", "checkUpdate 1.3.033", "checkUpdate 1.3.033"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "031", "checkUpdate 2.3.031", "checkUpdate 2.3.031"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "032", "checkUpdate 2.3.032", "checkUpdate 2.3.032"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "033", "checkUpdate 2.3.033", "checkUpdate 2.3.033"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "031", "checkUpdate 3.3.031", "checkUpdate 3.3.031"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "032", "checkUpdate 3.3.032", "checkUpdate 3.3.032"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "033", "checkUpdate 3.3.033", "checkUpdate 3.3.033")
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                new NameElementCommandConfirm(null, "checkUpdate 1.3.031"),
+                new NameElementCommandConfirm(null, "checkUpdate 1.3.032"),
+                new NameElementCommandConfirm(null, "checkUpdate 1.3.033"),
+                new NameElementCommandConfirm(null, "checkUpdate 2.3.031"),
+                new NameElementCommandConfirm(null, "checkUpdate 2.3.032"),
+                new NameElementCommandConfirm(null, "checkUpdate 2.3.033"),
+                new NameElementCommandConfirm(null, "checkUpdate 3.3.031"),
+                new NameElementCommandConfirm(null, "checkUpdate 3.3.032"),
+                new NameElementCommandConfirm(null, "checkUpdate 3.3.033")
         };
 
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-031", Boolean.FALSE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-031", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-031", Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
 
         nbrNames = ITUtilNameElement.assertRead("?deleted=false").getListSize();
 
-        createdNameElements = ITUtilNameElement.assertCreate(nameElements);
+        createdNameElements = ITUtilNameElement.assertCreate(nameElementCommandsCreate);
         assertNotNull(createdNameElements);
         assertEquals(9, createdNameElements.length);
 
         assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(createdNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElements);
+
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-031", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-031", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-031", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getUuid();
-        createdNameElements[3].setUuid(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setUuid(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getParentSystemStructure();
-        createdNameElements[3].setParentSystemStructure(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setParentSystemStructure(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getParentDeviceStructure();
-        createdNameElements[3].setParentDeviceStructure(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setParentDeviceStructure(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-
-        value = createdNameElements[3].getIndex();
-        createdNameElements[3].setIndex(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setIndex(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-
-        value = createdNameElements[3].getDescription();
-        createdNameElements[3].setDescription(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setDescription(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-
-        value = createdNameElements[3].getComment();
-        createdNameElements[3].setComment(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        createdNameElements[3].setComment(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+        uuid = nameElementCommandsUpdate[3].getUuid();
+        nameElementCommandsUpdate[3].setUuid(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setUuid(uuid);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+
+        uuid = nameElementCommandsUpdate[3].getParentSystemStructure();
+        nameElementCommandsUpdate[3].setParentSystemStructure(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setParentSystemStructure(uuid);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+
+        uuid = nameElementCommandsUpdate[3].getParentDeviceStructure();
+        nameElementCommandsUpdate[3].setParentDeviceStructure(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setParentDeviceStructure(uuid);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+
+        value = nameElementCommandsUpdate[3].getIndex();
+        nameElementCommandsUpdate[3].setIndex(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setIndex(value);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+
+        value = nameElementCommandsUpdate[3].getDescription();
+        nameElementCommandsUpdate[3].setDescription(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setDescription(value);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+
+        value = nameElementCommandsUpdate[3].getComment();
+        nameElementCommandsUpdate[3].setComment(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        nameElementCommandsUpdate[3].setComment(value);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
     }
 
     @Test
@@ -392,91 +470,147 @@ class NamesMultipleIT {
         // note
         //     create in order to update
 
-        NameElementCommand[] nameElements = null;
+        NameElementCommandCreate[] nameElementCommandsCreate = null;
+        NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+        NameElementCommandConfirm[] nameElementCommandsConfirm = null;
         NameElement[] createdNameElements = null;
         NameElement[] updatedNameElements = null;
         int nbrNames = -1;
 
-        nameElements = new NameElementCommand[] {
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "041", "update 1.3.041", "update 1.3.041"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "042", "update 1.3.042", "update 1.3.042"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "043", "update 1.3.043", "update 1.3.043"),
-                new NameElementCommand(null, systemRFQ,       null,               null,  "update 2.0.0",   "update 2.0.0"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "041", "update 2.3.041", "update 2.3.041"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "042", "update 2.3.042", "update 2.3.042"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "043", "update 2.3.043", "update 2.3.043"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "041", "update 3.3.041", "update 3.3.041"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "042", "update 3.3.042", "update 3.3.042"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "043", "update 3.3.043", "update 3.3.043")
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "041", "update 1.3.041", "update 1.3.041"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "042", "update 1.3.042", "update 1.3.042"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "043", "update 1.3.043", "update 1.3.043"),
+                new NameElementCommandCreate(systemRFQ,       null,               null,  "update 2.0.0",   "update 2.0.0"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "041", "update 2.3.041", "update 2.3.041"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "042", "update 2.3.042", "update 2.3.042"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "043", "update 2.3.043", "update 2.3.043"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "041", "update 3.3.041", "update 3.3.041"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "042", "update 3.3.042", "update 3.3.042"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "043", "update 3.3.043", "update 3.3.043")
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "041", "update 1.3.041", "update 1.3.041"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "042", "update 1.3.042", "update 1.3.042"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "043", "update 1.3.043", "update 1.3.043"),
+                new NameElementCommandUpdate(null, systemRFQ,       null,               null,  "update 2.0.0",   "update 2.0.0"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "041", "update 2.3.041", "update 2.3.041"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "042", "update 2.3.042", "update 2.3.042"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "043", "update 2.3.043", "update 2.3.043"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "041", "update 3.3.041", "update 3.3.041"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "042", "update 3.3.042", "update 3.3.042"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "043", "update 3.3.043", "update 3.3.043")
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                new NameElementCommandConfirm(null, "update 1.3.041"),
+                new NameElementCommandConfirm(null, "update 1.3.042"),
+                new NameElementCommandConfirm(null, "update 1.3.043"),
+                new NameElementCommandConfirm(null, "update 2.0.0"),
+                new NameElementCommandConfirm(null, "update 2.3.041"),
+                new NameElementCommandConfirm(null, "update 2.3.042"),
+                new NameElementCommandConfirm(null, "update 2.3.043"),
+                new NameElementCommandConfirm(null, "update 3.3.041"),
+                new NameElementCommandConfirm(null, "update 3.3.042"),
+                new NameElementCommandConfirm(null, "update 3.3.043")
         };
 
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
-
-        nameElements = new NameElementCommand[] {
-                nameElements[0],
-                nameElements[1],
-                nameElements[2],
-                nameElements[4],
-                nameElements[5],
-                nameElements[6],
-                nameElements[7],
-                nameElements[8],
-                nameElements[9]
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                nameElementCommandsCreate[0],
+                nameElementCommandsCreate[1],
+                nameElementCommandsCreate[2],
+                nameElementCommandsCreate[4],
+                nameElementCommandsCreate[5],
+                nameElementCommandsCreate[6],
+                nameElementCommandsCreate[7],
+                nameElementCommandsCreate[8],
+                nameElementCommandsCreate[9]
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                nameElementCommandsUpdate[0],
+                nameElementCommandsUpdate[1],
+                nameElementCommandsUpdate[2],
+                nameElementCommandsUpdate[4],
+                nameElementCommandsUpdate[5],
+                nameElementCommandsUpdate[6],
+                nameElementCommandsUpdate[7],
+                nameElementCommandsUpdate[8],
+                nameElementCommandsUpdate[9]
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                nameElementCommandsConfirm[0],
+                nameElementCommandsConfirm[1],
+                nameElementCommandsConfirm[2],
+                nameElementCommandsConfirm[4],
+                nameElementCommandsConfirm[5],
+                nameElementCommandsConfirm[6],
+                nameElementCommandsConfirm[7],
+                nameElementCommandsConfirm[8],
+                nameElementCommandsConfirm[9]
         };
 
         ITUtilNameElement.assertExists("RFQ", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
 
         nbrNames = ITUtilNameElement.assertRead("?deleted=false").getListSize();
 
-        createdNameElements = ITUtilNameElement.assertCreate(nameElements);
+        createdNameElements = ITUtilNameElement.assertCreate(nameElementCommandsCreate);
         assertNotNull(createdNameElements);
         assertEquals(9, createdNameElements.length);
 
         assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(createdNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElements);
+
         ITUtilNameElement.assertExists("RFQ", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        createdNameElements[0].setDescription("0");
-        createdNameElements[1].setDescription("1");
-        createdNameElements[2].setDescription("2");
-        createdNameElements[3].setDescription("3");
-        createdNameElements[4].setDescription("4");
-        createdNameElements[5].setDescription("5");
-        createdNameElements[6].setDescription("6");
-        createdNameElements[7].setDescription("7");
-        createdNameElements[8].setDescription("8");
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+        nameElementCommandsUpdate[0].setDescription("0");
+        nameElementCommandsUpdate[1].setDescription("1");
+        nameElementCommandsUpdate[2].setDescription("2");
+        nameElementCommandsUpdate[3].setDescription("3");
+        nameElementCommandsUpdate[4].setDescription("4");
+        nameElementCommandsUpdate[5].setDescription("5");
+        nameElementCommandsUpdate[6].setDescription("6");
+        nameElementCommandsUpdate[7].setDescription("7");
+        nameElementCommandsUpdate[8].setDescription("8");
 
         ITUtilNameElement.assertExists("RFQ", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
 
-        updatedNameElements = ITUtilNameElement.assertUpdate(createdNameElements);
+        updatedNameElements = ITUtilNameElement.assertUpdate(nameElementCommandsUpdate);
         assertNotNull(updatedNameElements);
         assertEquals(9, updatedNameElements.length);
 
         assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(updatedNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(updatedNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(updatedNameElements);
+
         ITUtilNameElement.assertExists("RFQ", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(updatedNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(updatedNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(updatedNameElements, NameCommand.DELETE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -499,81 +633,85 @@ class NamesMultipleIT {
         //         uuid
         //         comment
 
-        NameElementCommand[] nameElements = null;
+        NameElementCommandCreate[] nameElementCommandsCreate = null;
+        NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+        NameElementCommandConfirm[] nameElementCommandsConfirm = null;
         NameElement[] createdNameElements = null;
         int nbrNames = -1;
         UUID uuid = null;
         String value = null;
 
-        nameElements = new NameElementCommand[] {
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "051", "checkDelete 1.3.051", "checkDelete 1.3.051"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "052", "checkDelete 1.3.052", "checkDelete 1.3.052"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "053", "checkDelete 1.3.053", "checkDelete 1.3.053"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "051", "checkDelete 2.3.051", "checkDelete 2.3.051"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "052", "checkDelete 2.3.052", "checkDelete 2.3.052"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "053", "checkDelete 2.3.053", "checkDelete 2.3.053"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "051", "checkDelete 3.3.051", "checkDelete 3.3.051"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "052", "checkDelete 3.3.052", "checkDelete 3.3.052"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "053", "checkDelete 3.3.053", "checkDelete 3.3.053")
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "051", "checkDelete 1.3.051", "checkDelete 1.3.051"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "052", "checkDelete 1.3.052", "checkDelete 1.3.052"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "053", "checkDelete 1.3.053", "checkDelete 1.3.053"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "051", "checkDelete 2.3.051", "checkDelete 2.3.051"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "052", "checkDelete 2.3.052", "checkDelete 2.3.052"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "053", "checkDelete 2.3.053", "checkDelete 2.3.053"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "051", "checkDelete 3.3.051", "checkDelete 3.3.051"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "052", "checkDelete 3.3.052", "checkDelete 3.3.052"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "053", "checkDelete 3.3.053", "checkDelete 3.3.053")
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "051", "checkDelete 1.3.051", "checkDelete 1.3.051"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "052", "checkDelete 1.3.052", "checkDelete 1.3.052"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "053", "checkDelete 1.3.053", "checkDelete 1.3.053"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "051", "checkDelete 2.3.051", "checkDelete 2.3.051"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "052", "checkDelete 2.3.052", "checkDelete 2.3.052"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "053", "checkDelete 2.3.053", "checkDelete 2.3.053"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "051", "checkDelete 3.3.051", "checkDelete 3.3.051"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "052", "checkDelete 3.3.052", "checkDelete 3.3.052"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "053", "checkDelete 3.3.053", "checkDelete 3.3.053")
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                new NameElementCommandConfirm(null, "checkDelete 1.3.051"),
+                new NameElementCommandConfirm(null, "checkDelete 1.3.052"),
+                new NameElementCommandConfirm(null, "checkDelete 1.3.053"),
+                new NameElementCommandConfirm(null, "checkDelete 2.3.051"),
+                new NameElementCommandConfirm(null, "checkDelete 2.3.052"),
+                new NameElementCommandConfirm(null, "checkDelete 2.3.053"),
+                new NameElementCommandConfirm(null, "checkDelete 3.3.051"),
+                new NameElementCommandConfirm(null, "checkDelete 3.3.052"),
+                new NameElementCommandConfirm(null, "checkDelete 3.3.053")
         };
 
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-051", Boolean.FALSE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-051", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-051", Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
 
         nbrNames = ITUtilNameElement.assertRead("?deleted=false").getListSize();
 
-        createdNameElements = ITUtilNameElement.assertCreate(nameElements);
+        createdNameElements = ITUtilNameElement.assertCreate(nameElementCommandsCreate);
         assertNotNull(createdNameElements);
         assertEquals(9, createdNameElements.length);
 
         assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(createdNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElements);
+
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-051", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-051", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-051", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getUuid();
-        createdNameElements[3].setUuid(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.FALSE);
-        createdNameElements[3].setUuid(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getParentSystemStructure();
-        createdNameElements[3].setParentSystemStructure(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-        createdNameElements[3].setParentSystemStructure(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        uuid = createdNameElements[3].getParentDeviceStructure();
-        createdNameElements[3].setParentDeviceStructure(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-        createdNameElements[3].setParentDeviceStructure(uuid);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        value = createdNameElements[3].getIndex();
-        createdNameElements[3].setIndex(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-        createdNameElements[3].setIndex(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        value = createdNameElements[3].getDescription();
-        createdNameElements[3].setDescription(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-        createdNameElements[3].setDescription(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
-
-        value = createdNameElements[3].getComment();
-        createdNameElements[3].setComment(null);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.FALSE);
-        createdNameElements[3].setComment(value);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+        uuid = nameElementCommandsConfirm[3].getUuid();
+        nameElementCommandsConfirm[3].setUuid(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+        nameElementCommandsConfirm[3].setUuid(uuid);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
+
+        value = nameElementCommandsConfirm[3].getComment();
+        nameElementCommandsConfirm[3].setComment(null);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+        nameElementCommandsConfirm[3].setComment(value);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -601,75 +739,130 @@ class NamesMultipleIT {
         //     subsystem                          + description + comment
         //     subsystem    + device type + index + description + comment
 
-        NameElementCommand[] nameElements = null;
+        NameElementCommandCreate[] nameElementCommandsCreate = null;
+        NameElementCommandUpdate[] nameElementCommandsUpdate = null;
+        NameElementCommandConfirm[] nameElementCommandsConfirm = null;
         NameElement[] createdNameElements = null;
         NameElement[] deletedNameElements = null;
         int nbrNames = -1;
 
-        nameElements = new NameElementCommand[] {
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "061", "delete 1.3.061", "delete 1.3.061"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "062", "delete 1.3.062", "delete 1.3.062"),
-                new NameElementCommand(null, systemGroupAcc,  deviceType_Cryo_FS, "063", "delete 1.3.063", "delete 1.3.063"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "061", "delete 2.3.061", "delete 2.3.061"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "062", "delete 2.3.062", "delete 2.3.062"),
-                new NameElementCommand(null, systemRFQ,       deviceType_Cryo_FS, "063", "delete 2.3.063", "delete 2.3.063"),
-                new NameElementCommand(null, subsystem010PRL, null,               null,  "delete 3.0.0",   "delete 3.0.0"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "061", "delete 3.3.061", "delete 3.3.061"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "062", "delete 3.3.062", "delete 3.3.062"),
-                new NameElementCommand(null, subsystem010PRL, deviceType_Cryo_FS, "063", "delete 3.3.063", "delete 3.3.063")
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "061", "delete 1.3.061", "delete 1.3.061"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "062", "delete 1.3.062", "delete 1.3.062"),
+                new NameElementCommandCreate(systemGroupAcc,  deviceType_Cryo_FS, "063", "delete 1.3.063", "delete 1.3.063"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "061", "delete 2.3.061", "delete 2.3.061"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "062", "delete 2.3.062", "delete 2.3.062"),
+                new NameElementCommandCreate(systemRFQ,       deviceType_Cryo_FS, "063", "delete 2.3.063", "delete 2.3.063"),
+                new NameElementCommandCreate(subsystem010PRL, null,               null,  "delete 3.0.0",   "delete 3.0.0"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "061", "delete 3.3.061", "delete 3.3.061"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "062", "delete 3.3.062", "delete 3.3.062"),
+                new NameElementCommandCreate(subsystem010PRL, deviceType_Cryo_FS, "063", "delete 3.3.063", "delete 3.3.063")
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "061", "delete 1.3.061", "delete 1.3.061"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "062", "delete 1.3.062", "delete 1.3.062"),
+                new NameElementCommandUpdate(null, systemGroupAcc,  deviceType_Cryo_FS, "063", "delete 1.3.063", "delete 1.3.063"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "061", "delete 2.3.061", "delete 2.3.061"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "062", "delete 2.3.062", "delete 2.3.062"),
+                new NameElementCommandUpdate(null, systemRFQ,       deviceType_Cryo_FS, "063", "delete 2.3.063", "delete 2.3.063"),
+                new NameElementCommandUpdate(null, subsystem010PRL, null,               null,  "delete 3.0.0",   "delete 3.0.0"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "061", "delete 3.3.061", "delete 3.3.061"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "062", "delete 3.3.062", "delete 3.3.062"),
+                new NameElementCommandUpdate(null, subsystem010PRL, deviceType_Cryo_FS, "063", "delete 3.3.063", "delete 3.3.063")
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                new NameElementCommandConfirm(null, "delete 1.3.061"),
+                new NameElementCommandConfirm(null, "delete 1.3.062"),
+                new NameElementCommandConfirm(null, "delete 1.3.063"),
+                new NameElementCommandConfirm(null, "delete 2.3.061"),
+                new NameElementCommandConfirm(null, "delete 2.3.062"),
+                new NameElementCommandConfirm(null, "delete 2.3.063"),
+                new NameElementCommandConfirm(null, "delete 3.0.0"),
+                new NameElementCommandConfirm(null, "delete 3.3.061"),
+                new NameElementCommandConfirm(null, "delete 3.3.062"),
+                new NameElementCommandConfirm(null, "delete 3.3.063")
         };
 
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
-
-        nameElements = new NameElementCommand[] {
-                nameElements[0],
-                nameElements[1],
-                nameElements[2],
-                nameElements[3],
-                nameElements[4],
-                nameElements[5],
-                nameElements[7],
-                nameElements[8],
-                nameElements[9]
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
+
+        nameElementCommandsCreate = new NameElementCommandCreate[] {
+                nameElementCommandsCreate[0],
+                nameElementCommandsCreate[1],
+                nameElementCommandsCreate[2],
+                nameElementCommandsCreate[3],
+                nameElementCommandsCreate[4],
+                nameElementCommandsCreate[5],
+                nameElementCommandsCreate[7],
+                nameElementCommandsCreate[8],
+                nameElementCommandsCreate[9]
+        };
+        nameElementCommandsUpdate = new NameElementCommandUpdate[] {
+                nameElementCommandsUpdate[0],
+                nameElementCommandsUpdate[1],
+                nameElementCommandsUpdate[2],
+                nameElementCommandsUpdate[3],
+                nameElementCommandsUpdate[4],
+                nameElementCommandsUpdate[5],
+                nameElementCommandsUpdate[7],
+                nameElementCommandsUpdate[8],
+                nameElementCommandsUpdate[9]
+        };
+        nameElementCommandsConfirm = new NameElementCommandConfirm[] {
+                nameElementCommandsConfirm[0],
+                nameElementCommandsConfirm[1],
+                nameElementCommandsConfirm[2],
+                nameElementCommandsConfirm[3],
+                nameElementCommandsConfirm[4],
+                nameElementCommandsConfirm[5],
+                nameElementCommandsConfirm[7],
+                nameElementCommandsConfirm[8],
+                nameElementCommandsConfirm[9]
         };
 
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.FALSE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.DELETE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
 
         nbrNames = ITUtilNameElement.assertRead("?deleted=false").getListSize();
 
-        createdNameElements = ITUtilNameElement.assertCreate(nameElements);
+        createdNameElements = ITUtilNameElement.assertCreate(nameElementCommandsCreate);
         assertNotNull(createdNameElements);
         assertEquals(9, createdNameElements.length);
 
         assertEquals(nbrNames + 9, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(createdNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(createdNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(createdNameElements);
+
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.TRUE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.UPDATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(createdNameElements, NameCommand.DELETE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.TRUE);
 
-        deletedNameElements = ITUtilNameElement.assertDelete(createdNameElements);
+        deletedNameElements = ITUtilNameElement.assertDelete(nameElementCommandsConfirm);
         assertNotNull(deletedNameElements);
         assertEquals(9, deletedNameElements.length);
 
         assertEquals(nbrNames, ITUtilNameElement.assertRead("?deleted=false").getListSize());
 
+        nameElementCommandsCreate = ITUtilNameElement.convert2NameElementCommandCreate(deletedNameElements);
+        nameElementCommandsUpdate = ITUtilNameElement.convert2NameElementCommandUpdate(deletedNameElements);
+        nameElementCommandsConfirm = ITUtilNameElement.convert2NameElementCommandConfirm(deletedNameElements);
+
         ITUtilNameElement.assertExists("RFQ:Cryo-FS-061", Boolean.FALSE);
         ITUtilNameElement.assertIsLegacy("RFQ:Cryo-FS-061", Boolean.FALSE);
         ITUtilNameElement.assertIsValidToCreate("RFQ:Cryo-FS-061", Boolean.TRUE);
-        ITUtilNameElement.assertValidate(nameElements, NameCommand.CREATE, Boolean.TRUE);
-        ITUtilNameElement.assertValidate(deletedNameElements, NameCommand.CREATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(deletedNameElements, NameCommand.UPDATE, Boolean.FALSE);
-        ITUtilNameElement.assertValidate(deletedNameElements, NameCommand.DELETE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsCreate, NameCommand.CREATE, Boolean.TRUE);
+        ITUtilNameElement.assertValidate(nameElementCommandsUpdate, NameCommand.UPDATE, Boolean.FALSE);
+        ITUtilNameElement.assertValidate(nameElementCommandsConfirm, NameCommand.DELETE, Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresCUDDeleteIT.java b/src/test/java/org/openepics/names/docker/complex/StructuresCUDDeleteIT.java
index a7af90fd..2c700833 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresCUDDeleteIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresCUDDeleteIT.java
@@ -27,7 +27,7 @@ import org.openepics.names.docker.ITUtil;
 import org.openepics.names.docker.ITUtilNameElement;
 import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Type;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
@@ -116,7 +116,7 @@ class StructuresCUDDeleteIT {
         //
         // test create structure and ensure name is as expected
 
-        NameElementCommand nameElement = null;
+        NameElementCommandCreate nameElementCommandCreate = null;
         StructureElementCommand structureElement  = null;
         StructureElement approvedStructureElement = null;
 
@@ -346,32 +346,32 @@ class StructuresCUDDeleteIT {
         //         Dt221, Dt222, Dt223
         //         Dt231, Dt232, Dt233
 
-        nameElement = new NameElementCommand(null, sg2, dt211, "211", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt211, "211", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt212, "212", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt212, "212", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt213, "213", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt213, "213", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt221, "221", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt221, "221", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt222, "222", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt222, "222", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt223, "223", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt223, "223", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub231, dt231, "231", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub231, dt231, "231", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub232, dt232, "232", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub232, dt232, "232", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub233, dt233, "233", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub233, dt233, "233", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
         ITUtilStructureElement.assertRead("/SYSTEMGROUP", 3);
         ITUtilStructureElement.assertRead("/SYSTEM", 6);
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresCUDNamesLegacyIT.java b/src/test/java/org/openepics/names/docker/complex/StructuresCUDNamesLegacyIT.java
index 2b875f93..c5dd01ad 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresCUDNamesLegacyIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresCUDNamesLegacyIT.java
@@ -27,7 +27,7 @@ import org.openepics.names.docker.ITUtil;
 import org.openepics.names.docker.ITUtilNameElement;
 import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Type;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
@@ -116,7 +116,7 @@ class StructuresCUDNamesLegacyIT {
     public static void initAll() {
         // init system group, system, subsystem, discipline, device group, device type
 
-        NameElementCommand nameElement = null;
+        NameElementCommandCreate nameElementCommandCreate = null;
         StructureElementCommand structureElement  = null;
         StructureElement approvedStructureElement = null;
 
@@ -345,32 +345,32 @@ class StructuresCUDNamesLegacyIT {
         //         Dt221, Dt222, Dt223
         //         Dt231, Dt232, Dt233
 
-        nameElement = new NameElementCommand(null, sg2, dt211, "211", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt211, "211", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt212, "212", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt212, "212", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt213, "213", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt213, "213", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt221, "221", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt221, "221", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt222, "222", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt222, "222", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt223, "223", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt223, "223", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub231, dt231, "231", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub231, dt231, "231", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub232, dt232, "232", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub232, dt232, "232", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub233, dt233, "233", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub233, dt233, "233", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
         ITUtilStructureElement.assertRead("/SYSTEMGROUP", 3);
         ITUtilStructureElement.assertRead("/SYSTEM", 6);
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresCUDUpdateIT.java b/src/test/java/org/openepics/names/docker/complex/StructuresCUDUpdateIT.java
index 264377c6..f7331866 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresCUDUpdateIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresCUDUpdateIT.java
@@ -27,7 +27,7 @@ import org.openepics.names.docker.ITUtil;
 import org.openepics.names.docker.ITUtilNameElement;
 import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Type;
-import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
@@ -116,7 +116,7 @@ class StructuresCUDUpdateIT {
         //
         // test create structure and ensure name is as expected
 
-        NameElementCommand nameElement = null;
+        NameElementCommandCreate nameElementCommandCreate = null;
         StructureElementCommand structureElement  = null;
         StructureElement approvedStructureElement = null;
 
@@ -346,32 +346,32 @@ class StructuresCUDUpdateIT {
         //         Dt221, Dt222, Dt223
         //         Dt231, Dt232, Dt233
 
-        nameElement = new NameElementCommand(null, sg2, dt211, "211", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt211, "211", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt212, "212", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt212, "212", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sg2, dt213, "213", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sg2, dt213, "213", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt221, "221", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt221, "221", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt222, "222", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt222, "222", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sys22, dt223, "223", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sys22, dt223, "223", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub231, dt231, "231", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub231, dt231, "231", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub232, dt232, "232", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub232, dt232, "232", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
-        nameElement = new NameElementCommand(null, sub233, dt233, "233", description, comment);
-        ITUtilNameElement.assertCreate(nameElement);
+        nameElementCommandCreate = new NameElementCommandCreate(sub233, dt233, "233", description, comment);
+        ITUtilNameElement.assertCreate(nameElementCommandCreate);
 
         ITUtilStructureElement.assertRead("/SYSTEMGROUP", 3);
         ITUtilStructureElement.assertRead("/SYSTEM", 6);
diff --git a/src/test/java/org/openepics/names/util/NameElementUtilTest.java b/src/test/java/org/openepics/names/util/NameElementUtilTest.java
index 33c94532..6cf73248 100644
--- a/src/test/java/org/openepics/names/util/NameElementUtilTest.java
+++ b/src/test/java/org/openepics/names/util/NameElementUtilTest.java
@@ -22,10 +22,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
+import java.util.UUID;
+
 import org.junit.jupiter.api.Test;
 import org.openepics.names.repository.model.Name;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.element.NameElement;
+import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.NameElementCommandConfirm;
+import org.openepics.names.rest.beans.element.NameElementCommandCreate;
+import org.openepics.names.rest.beans.element.NameElementCommandUpdate;
 
 /**
  * Unit tests for NameElementUtil class.
@@ -94,4 +100,68 @@ class NameElementUtilTest {
         assertEquals(null, nameElement.getComment());
     }
 
+    /**
+     * Test of get name element command given name element command for create.
+     */
+    @Test
+    void getNameElementCommandCreate() {
+        UUID uuid2 = UUID.randomUUID();
+        UUID uuid3 = UUID.randomUUID();
+        String str1 = "qwer";
+        String str2 = "asdf";
+        String str3 = "zxcv";
+
+        NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate(uuid2, uuid3, str1, str2, str3);
+        NameElementCommand nameElementCommand = NameElementUtil.getNameElementCommand(nameElementCommandCreate);
+
+        assertNull(nameElementCommand.getUuid());
+        assertEquals(uuid2, nameElementCommand.getParentSystemStructure());
+        assertEquals(uuid3, nameElementCommand.getParentDeviceStructure());
+        assertEquals(str1, nameElementCommand.getIndex());
+        assertEquals(str2, nameElementCommand.getDescription());
+        assertEquals(str3, nameElementCommand.getComment());
+    }
+
+    /**
+     * Test of get name element command given name element command for update.
+     */
+    @Test
+    void getNameElementCommandUpdate() {
+        UUID uuid1 = UUID.randomUUID();
+        UUID uuid2 = UUID.randomUUID();
+        UUID uuid3 = UUID.randomUUID();
+        String str1 = "qwer";
+        String str2 = "asdf";
+        String str3 = "zxcv";
+
+        NameElementCommandUpdate nameElementCommandUpdate = new NameElementCommandUpdate(uuid1, uuid2, uuid3, str1, str2, str3);
+        NameElementCommand nameElementCommand = NameElementUtil.getNameElementCommand(nameElementCommandUpdate);
+
+        assertEquals(uuid1, nameElementCommand.getUuid());
+        assertEquals(uuid2, nameElementCommand.getParentSystemStructure());
+        assertEquals(uuid3, nameElementCommand.getParentDeviceStructure());
+        assertEquals(str1, nameElementCommand.getIndex());
+        assertEquals(str2, nameElementCommand.getDescription());
+        assertEquals(str3, nameElementCommand.getComment());
+    }
+
+    /**
+     * Test of get name element command given name element command for confirm.
+     */
+    @Test
+    void getNameElementCommandConfirm() {
+        UUID uuid1 = UUID.randomUUID();
+        String str3 = "zxcv";
+
+        NameElementCommandConfirm nameElementCommandConfirm = new NameElementCommandConfirm(uuid1, str3);
+        NameElementCommand nameElementCommand = NameElementUtil.getNameElementCommand(nameElementCommandConfirm);
+
+        assertEquals(uuid1, nameElementCommand.getUuid());
+        assertNull(nameElementCommand.getParentSystemStructure());
+        assertNull(nameElementCommand.getParentDeviceStructure());
+        assertNull(nameElementCommand.getIndex());
+        assertNull(nameElementCommand.getDescription());
+        assertEquals(str3, nameElementCommand.getComment());
+    }
+
 }
-- 
GitLab