From 741bcb7eb3db57c30612b18127324cfa892af86f Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Mon, 21 Mar 2022 09:30:53 +0100
Subject: [PATCH] Correct and refactor docker integration tests

Correct docker integration tests for structures for delete approve.
Refactor docker integration tests.
---
 .../org/openepics/names/util/EnumUtil.java    |   38 +
 .../org/openepics/names/docker/ITUtil.java    |   77 +-
 .../names/docker/ITUtilNameElement.java       |  371 ++++
 ...ement.java => ITUtilStructureElement.java} |  410 +---
 .../org/openepics/names/docker/NamesIT.java   |  347 +--
 .../names/docker/StructuresDeviceGroupIT.java |  848 +++-----
 .../names/docker/StructuresDeviceTypeIT.java  |  866 +++-----
 .../names/docker/StructuresDisciplineIT.java  |  824 +++----
 .../names/docker/StructuresSubsystemIT.java   |  860 +++-----
 .../names/docker/StructuresSystemGroupIT.java |  844 +++-----
 .../names/docker/StructuresSystemIT.java      |  859 +++-----
 .../docker/complex/NamesInstanceIndexIT.java  | 1902 +++++++++--------
 .../complex/StructuresCreateLevel3IT.java     |  178 +-
 13 files changed, 3260 insertions(+), 5164 deletions(-)
 create mode 100644 src/main/java/org/openepics/names/util/EnumUtil.java
 create mode 100644 src/test/java/org/openepics/names/docker/ITUtilNameElement.java
 rename src/test/java/org/openepics/names/docker/{ITUtilNameStructureElement.java => ITUtilStructureElement.java} (61%)

diff --git a/src/main/java/org/openepics/names/util/EnumUtil.java b/src/main/java/org/openepics/names/util/EnumUtil.java
new file mode 100644
index 00000000..e8423086
--- /dev/null
+++ b/src/main/java/org/openepics/names/util/EnumUtil.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2022 European Spallation Source ERIC.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+package org.openepics.names.util;
+
+/**
+ * Utility class to help provide proper enumerations for various purposes.
+ *
+ * @author Lars Johansson
+ */
+public class EnumUtil {
+
+    public static enum NameChoice      {CREATE, UPDATE, DELETE};
+    public static enum StructureChoice {CREATE, UPDATE, DELETE, APPROVE, REJECT, CANCEL};
+
+    /**
+     * This class is not to be instantiated.
+     */
+    private EnumUtil() {
+        throw new IllegalStateException("Utility class");
+    }
+
+}
diff --git a/src/test/java/org/openepics/names/docker/ITUtil.java b/src/test/java/org/openepics/names/docker/ITUtil.java
index bf26ddc8..8ac83c23 100644
--- a/src/test/java/org/openepics/names/docker/ITUtil.java
+++ b/src/test/java/org/openepics/names/docker/ITUtil.java
@@ -19,6 +19,7 @@
 package org.openepics.names.docker;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.io.BufferedReader;
@@ -247,94 +248,66 @@ public class ITUtil {
         assertMessageEmpty(actual, Boolean.FALSE);
     }
     /**
-     * Assert response available with empty message.
+     * Assert response available with expected message heavior.
      *
      * @param actual response object
      * @param expectedMessageEmpty expected message behavior
      */
     private static void assertMessageEmpty(Response actual, Boolean expectedMessageEmpty) {
         assertNotNull(actual);
-        assertEquals(StringUtils.isEmpty(actual.getMessage()), expectedMessageEmpty);
+        assertEquals(expectedMessageEmpty, StringUtils.isEmpty(actual.getMessage()));
     }
 
     /**
      * Assert response boolean available with expected response.
      *
      * @param actual response boolean object
-     * @param expectedResponse expected response
+     * @param expected expected response
      */
-    static void assertEqualsResponseBoolean(ResponseBoolean actual, Boolean expectedResponse) {
+    static void assertEqualsResponseBoolean(ResponseBoolean actual, Boolean expected) {
         assertNotNull(actual);
-        assertEquals(expectedResponse, actual.getValue());
-    }
-    /**
-     * Assert response boolean available with empty message.
-     *
-     * @param actual response boolean object
-     * @param expectedResponse expected message behavior
-     */
-    static void assertEqualsResponseBooleanMessageEmpty(ResponseBoolean actual, Boolean expectedResponse) {
-        assertEqualsResponseBooleanMessageEmpty(actual, expectedResponse, Boolean.TRUE);
-    }
-    /**
-     * Assert response boolean available with non-empty message.
-     *
-     * @param actual response boolean object
-     * @param expectedResponse expected message behavior
-     */
-    static void assertEqualsResponseBooleanMessageNotEmpty(ResponseBoolean actual, Boolean expectedResponse) {
-        assertEqualsResponseBooleanMessageEmpty(actual, expectedResponse, Boolean.FALSE);
+        assertEquals(expected, actual.getValue());
+        if (Boolean.FALSE.equals(expected)) {
+            assertFalse(StringUtils.isEmpty(actual.getMessage()));
+        }
     }
     /**
      * Assert response boolean available with expected response and expected message behavior.
      *
      * @param actual response boolean object
-     * @param expectedResponse expected response
+     * @param expected expected response
      * @param expectedMessageEmpty expected message behavior
      */
-    private static void assertEqualsResponseBooleanMessageEmpty(ResponseBoolean actual, Boolean expectedResponse, Boolean expectedMessageEmpty) {
-        assertEqualsResponseBoolean(actual, expectedResponse);
-        assertEquals(StringUtils.isEmpty(actual.getMessage()), expectedMessageEmpty);
+    static void assertEqualsResponseBoolean(ResponseBoolean actual, Boolean expected, Boolean expectedMessageEmpty) {
+        assertNotNull(actual);
+        assertEquals(expected, actual.getValue());
+        assertEquals(expectedMessageEmpty, StringUtils.isEmpty(actual.getMessage()));
     }
 
     /**
      * Assert response boolean list available with expected response.
      *
      * @param actual response boolean list object
-     * @param expectedResponse expected response
+     * @param expected expected response
      */
-    static void assertEqualsResponseBoolean(ResponseBooleanList actual, Boolean expectedResponse) {
+    static void assertEqualsResponseBoolean(ResponseBooleanList actual, Boolean expected) {
         assertNotNull(actual);
-        assertEquals(expectedResponse, actual.getValue());
-    }
-    /**
-     * Assert response boolean list available with empty message.
-     *
-     * @param actual response boolean list object
-     * @param expectedResponse expected message behavior
-     */
-    static void assertEqualsResponseBooleanMessageEmpty(ResponseBooleanList actual, Boolean expectedResponse) {
-        assertEqualsResponseBooleanMessageEmpty(actual, expectedResponse, Boolean.TRUE);
-    }
-    /**
-     * Assert response boolean list available with non-empty message.
-     *
-     * @param actual response boolean list object
-     * @param expectedResponse expected message behavior
-     */
-    static void assertEqualsResponseBooleanMessageNotEmpty(ResponseBooleanList actual, Boolean expectedResponse) {
-        assertEqualsResponseBooleanMessageEmpty(actual, expectedResponse, Boolean.FALSE);
+        assertEquals(expected, actual.getValue());
+        if (Boolean.FALSE.equals(expected)) {
+            assertFalse(StringUtils.isEmpty(actual.getMessage()));
+        }
     }
     /**
      * Assert response boolean list available with expected response and expected message behavior.
      *
      * @param actual response boolean list object
-     * @param expectedResponse expected response
+     * @param expected expected response
      * @param expectedMessageEmpty expected message behavior
      */
-    private static void assertEqualsResponseBooleanMessageEmpty(ResponseBooleanList actual, Boolean expectedResponse, Boolean expectedMessageEmpty) {
-        assertEqualsResponseBoolean(actual, expectedResponse);
-        assertEquals(StringUtils.isEmpty(actual.getMessage()), expectedMessageEmpty);
+    static void assertEqualsResponseBoolean(ResponseBooleanList actual, Boolean expected, Boolean expectedMessageEmpty) {
+        assertNotNull(actual);
+        assertEquals(expected, actual.getValue());
+        assertEquals(expectedMessageEmpty, StringUtils.isEmpty(actual.getMessage()));
     }
 
     // ----------------------------------------------------------------------------------------------------
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameElement.java b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
new file mode 100644
index 00000000..b09cba4b
--- /dev/null
+++ b/src/test/java/org/openepics/names/docker/ITUtilNameElement.java
@@ -0,0 +1,371 @@
+/*
+ * Copyright (C) 2022 European Spallation Source ERIC.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+package org.openepics.names.docker;
+
+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 static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.util.UUID;
+
+import org.openepics.names.docker.ITUtil.AuthorizationChoice;
+import org.openepics.names.docker.ITUtil.EndpointChoice;
+import org.openepics.names.rest.beans.NameElement;
+import org.openepics.names.rest.beans.Status;
+import org.openepics.names.util.EnumUtil.NameChoice;
+import org.openepics.names.util.response.ResponseBooleanList;
+import org.openepics.names.util.response.ResponsePageNameElements;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * Utility class to help (Docker) integration tests for Naming and PostgreSQL.
+ *
+ * @author Lars Johansson
+ */
+public class ITUtilNameElement {
+
+    /**
+     * This class is not to be instantiated.
+     */
+    private ITUtilNameElement() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
+    /**
+     * Assert that array of name elements has expected length.
+     *
+     * @param actual array of name elements
+     * @param expectedLength expected length of array
+     */
+    static void assertContentLength(NameElement[] actual, int expectedLength) {
+        assertNotNull(actual);
+        assertEquals(expectedLength, actual.length);
+    }
+
+    /**
+     * Assert that array of name elements has length one and name element is available.
+     *
+     * @param actual array of name elements
+     * @return name element
+     */
+    static NameElement assertContentLengthOne(NameElement[] actual) {
+        assertContentLength(actual, 1);
+        assertNotNull(actual[0]);
+        return actual[0];
+    }
+
+    /**
+     * Assert that response page with list of name elements has expected length.
+     *
+     * @param actual response page with list of name elements
+     * @param expectedLength expected length of list
+     */
+    static void assertContentLength(ResponsePageNameElements actual, int expectedLength) {
+        assertNotNull(actual);
+        assertEquals(expectedLength, actual.getList().size());
+        assertEquals(expectedLength, actual.getListSize());
+    }
+
+    /**
+     * Assert that response page with list of name elements has length one and name element is available.
+     *
+     * @param actual response page with list of name elements
+     * @return name element
+     */
+    static NameElement assertContentLengthOne(ResponsePageNameElements actual) {
+        assertContentLength(actual, 1);
+        assertNotNull(actual.getList().get(0));
+        return actual.getList().get(0);
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
+    /**
+     * Assert that arrays are equal with same length and same content in each array position.
+     *
+     * @param actual actual array of name elements
+     * @param expected expected arbitrary number of name elements
+     */
+    static void assertEqualsNameElements(NameElement[] actual, NameElement... expected) {
+        if (expected != null) {
+            assertNotNull(actual);
+            assertEquals(expected.length, actual.length);
+            for (int i=0; i<expected.length; i++) {
+                assertTrue(expected[i].equals(actual[i]));
+            }
+        } else {
+            assertNull(actual);
+        }
+    }
+
+    /**
+     * Assert content of name element.
+     *
+     * @param actual name element
+     * @param expectedUuid expected uuid
+     * @param expectedSystemgroup expected system group
+     * @param expectedSystem expected system
+     * @param expectedSubsystem expected subsystem
+     * @param expectedDevicetype expected device type
+     * @param expectedSystemstructure expected system structure
+     * @param expectedDevicestructure expected device structure
+     * @param expectedIndex expected index
+     * @param expectedName expected name
+     * @param expectedDescription expected description
+     * @param expectedStatus expected status
+     * @param expectedIsLatest expected latest
+     * @param expectedIsDeleted expected deleted
+     * @param expectedWho expected who
+     * @param expectedComment expected comment
+     */
+    static void assertContent(NameElement actual,
+            UUID expectedUuid, UUID expectedSystemgroup, UUID expectedSystem, UUID expectedSubsystem, UUID expectedDevicetype,
+            String expectedSystemstructure, String expectedDevicestructure,
+            String expectedIndex, String expectedName,
+            String expectedDescription, Status expectedStatus, Boolean expectedIsLatest, Boolean expectedIsDeleted,
+            String expectedWho, String expectedComment) {
+        assertNotNull(actual);
+        assertEquals(expectedUuid, actual.getUuid());
+        assertEquals(expectedSystemgroup, actual.getSystemgroup());
+        assertEquals(expectedSystem, actual.getSystem());
+        assertEquals(expectedSubsystem, actual.getSubsystem());
+        assertEquals(expectedDevicetype, actual.getDevicetype());
+        assertEquals(expectedSystemstructure, actual.getSystemstructure());
+        assertEquals(expectedDevicestructure, actual.getDevicestructure());
+        assertEquals(expectedIndex, actual.getIndex());
+        assertEquals(expectedName, actual.getName());
+        assertEquals(expectedDescription, actual.getDescription());
+        assertEquals(expectedStatus, actual.getStatus());
+        assertEquals(expectedIsLatest, actual.isLatest());
+        assertEquals(expectedIsDeleted, actual.isDeleted());
+        assertNotNull(actual.getWhen());
+        assertEquals(expectedWho, actual.getWho());
+        assertEquals(expectedComment, actual.getComment());
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
+    /**
+     * Utility method to set name element attributes name and index and then validate create and assert expected response.
+     *
+     * @param nameElement name element
+     * @param nameChoice name choice
+     * @param name name
+     * @param index index
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElement nameElement, NameChoice nameChoice, String name, String index, Boolean expected) {
+    	nameElement.setNameAndIndex(name, index);
+    	assertValidate(nameElement, nameChoice, expected);
+    }
+
+    /**
+     * Utility method to validate and assert expected response.
+     *
+     * @param nameElement name element
+     * @param nameChoice name choice
+     * @param expected expected response
+     */
+    public static void assertValidate(NameElement nameElement, NameChoice nameChoice, Boolean expected) {
+    	String validatePath = "";
+    	switch (nameChoice) {
+    		case CREATE:
+    			validatePath = "/validatecreate";
+    			break;
+    		case UPDATE:
+    			validatePath = "/validateupdate";
+    			break;
+    		case DELETE:
+    			validatePath = "/validatedelete";
+    			break;
+    		default:
+    			fail();
+    			break;
+    	}
+
+    	try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
+
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, validatePath, "[" + mapper.writeValueAsString(nameElement) + "]"));
+	        ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+	        ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), expected);
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
+        }
+    }
+
+    // ----------------------------------------------------------------------------------------------------
+
+    /**
+     * Utility method to create a name element and assert result.
+     *
+     * @param nameElement name element
+     * @return created name element
+     */
+    static NameElement assertCreate(NameElement nameElement) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
+            UUID uuid = null;
+
+            NameElement[] createdNameElements = null;
+            NameElement   createdNameElement  = null;
+
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+
+            response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            createdNameElements = mapper.readValue(response[1], NameElement[].class);
+            createdNameElement = ITUtilNameElement.assertContentLengthOne(createdNameElements);
+            assertNotNull(createdNameElement.getUuid());
+
+            uuid = createdNameElement.getUuid();
+            nameElement.setUuid(uuid);
+
+            ITUtilNameElement.assertContent(createdNameElement,
+                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
+                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
+                    nameElement.getIndex(), nameElement.getName(),
+                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.FALSE,
+                    "test who", nameElement.getComment());
+            assertNotNull(createdNameElement.getWhen());
+
+            return createdNameElement;
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
+        }
+
+        return null;
+    }
+
+    /**
+     * Utility method to update a name element and assert result.
+     *
+     * @param nameElement name element
+     * @return updated name element
+     */
+    static NameElement assertUpdate(NameElement nameElement) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
+            UUID uuid = null;
+
+            NameElement[] updatedNameElements = null;
+            NameElement   updatedNameElement  = null;
+
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+
+            response = ITUtil.runShellCommand(ITUtil.curlPutPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            updatedNameElements = mapper.readValue(response[1], NameElement[].class);
+            updatedNameElement = ITUtilNameElement.assertContentLengthOne(updatedNameElements);
+            assertNotNull(updatedNameElement.getUuid());
+
+            uuid = updatedNameElement.getUuid();
+            nameElement.setUuid(uuid);
+
+            ITUtilNameElement.assertContent(updatedNameElement,
+                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
+                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
+                    nameElement.getIndex(), nameElement.getName(),
+                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.FALSE,
+                    "test who", nameElement.getComment());
+            assertNotNull(updatedNameElement.getWhen());
+
+            return updatedNameElement;
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
+        }
+
+        return null;
+    }
+
+    /**
+     * Utility method to delete a name element and assert result.
+     *
+     * @param nameElement name element
+     * @return deleted name element
+     */
+    static NameElement assertDelete(NameElement nameElement) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
+            UUID uuid = null;
+
+            NameElement[] deletedNameElements = null;
+            NameElement   deletedNameElement  = null;
+
+            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+
+            response = ITUtil.runShellCommand(ITUtil.curlDeletePathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
+            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+            deletedNameElements = mapper.readValue(response[1], NameElement[].class);
+            deletedNameElement = ITUtilNameElement.assertContentLengthOne(deletedNameElements);
+            assertNotNull(deletedNameElement.getUuid());
+
+            uuid = deletedNameElement.getUuid();
+            nameElement.setUuid(uuid);
+
+            ITUtilNameElement.assertContent(deletedNameElement,
+                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
+                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
+                    nameElement.getIndex(), nameElement.getName(),
+                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.TRUE,
+                    "test who", nameElement.getComment());
+            assertNotNull(deletedNameElement.getWhen());
+
+            return deletedNameElement;
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
+        }
+
+        return null;
+    }
+
+}
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java b/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
similarity index 61%
rename from src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java
rename to src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
index bf8acd08..464b45af 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNameStructureElement.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilStructureElement.java
@@ -30,12 +30,11 @@ import java.util.UUID;
 
 import org.openepics.names.docker.ITUtil.AuthorizationChoice;
 import org.openepics.names.docker.ITUtil.EndpointChoice;
-import org.openepics.names.rest.beans.NameElement;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.ResponseBooleanList;
-import org.openepics.names.util.response.ResponsePageNameElements;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -45,314 +44,40 @@ import com.fasterxml.jackson.databind.ObjectMapper;
  *
  * @author Lars Johansson
  */
-public class ITUtilNameStructureElement {
+public class ITUtilStructureElement {
 
     /**
      * This class is not to be instantiated.
      */
-    private ITUtilNameStructureElement() {
+    private ITUtilStructureElement() {
         throw new IllegalStateException("Utility class");
     }
 
     // ----------------------------------------------------------------------------------------------------
 
     /**
-     * Utility method to set name element attributes name and index and then validate create and assert expected response.
-     *
-     * @param nameElement name element
-     * @param name name
-     * @param index index
-     * @param expectedResponse expected response
-     */
-    public static void assertValidateCreate(NameElement nameElement, String name, String index, Boolean expectedResponse) {
-    	nameElement.setNameAndIndex(name, index);
-    	assertValidateCreate(nameElement, expectedResponse);
-    }
-
-    /**
-     * Utility method to validate create and assert expected response.
-     *
-     * @param nameElement name element
-     * @param expectedResponse expected response
-     */
-    static void assertValidateCreate(NameElement nameElement, Boolean expectedResponse) {
-    	try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-	        ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-	        ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), expectedResponse);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * Assert that response page with list of name elements has expected length.
-     *
-     * @param actual response page with list of name elements
-     * @param expectedLength expected length of list
-     */
-    static void assertContentLength(ResponsePageNameElements actual, int expectedLength) {
-        assertNotNull(actual);
-        assertEquals(expectedLength, actual.getList().size());
-        assertEquals(expectedLength, actual.getListSize());
-    }
-
-    /**
-     * Assert that response page with list of name elements has length one and name element is available.
-     *
-     * @param actual response page with list of name elements
-     * @return name element
-     */
-    static NameElement assertContentLengthOne(ResponsePageNameElements actual) {
-        assertContentLength(actual, 1);
-        assertNotNull(actual.getList().get(0));
-        return actual.getList().get(0);
-    }
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * Assert that array of name elements has expected length.
+     * Assert that array of structure elements has expected length.
      *
-     * @param actual array of name elements
+     * @param actual array of structure elements
      * @param expectedLength expected length of array
      */
-    static void assertContentLength(NameElement[] actual, int expectedLength) {
+    static void assertContentLength(StructureElement[] actual, int expectedLength) {
         assertNotNull(actual);
         assertEquals(expectedLength, actual.length);
     }
 
     /**
-     * Assert that array of name elements has length one and name element is available.
+     * Assert that array of structure elements has length one and structure element is available.
      *
-     * @param actual array of name elements
-     * @return name element
+     * @param actual array of structure elements
+     * @return structure element
      */
-    static NameElement assertContentLengthOne(NameElement[] actual) {
+    static StructureElement assertContentLengthOne(StructureElement[] actual) {
         assertContentLength(actual, 1);
         assertNotNull(actual[0]);
         return actual[0];
     }
 
-    /**
-     * Assert content of name element.
-     *
-     * @param actual name element
-     * @param expectedUuid expected uuid
-     * @param expectedSystemgroup expected system group
-     * @param expectedSystem expected system
-     * @param expectedSubsystem expected subsystem
-     * @param expectedDevicetype expected device type
-     * @param expectedSystemstructure expected system structure
-     * @param expectedDevicestructure expected device structure
-     * @param expectedIndex expected index
-     * @param expectedName expected name
-     * @param expectedDescription expected description
-     * @param expectedStatus expected status
-     * @param expectedIsLatest expected latest
-     * @param expectedIsDeleted expected deleted
-     * @param expectedWho expected who
-     * @param expectedComment expected comment
-     */
-    static void assertContent(NameElement actual,
-            UUID expectedUuid, UUID expectedSystemgroup, UUID expectedSystem, UUID expectedSubsystem, UUID expectedDevicetype,
-            String expectedSystemstructure, String expectedDevicestructure,
-            String expectedIndex, String expectedName,
-            String expectedDescription, Status expectedStatus, Boolean expectedIsLatest, Boolean expectedIsDeleted,
-            String expectedWho, String expectedComment) {
-        assertNotNull(actual);
-        assertEquals(expectedUuid, actual.getUuid());
-        assertEquals(expectedSystemgroup, actual.getSystemgroup());
-        assertEquals(expectedSystem, actual.getSystem());
-        assertEquals(expectedSubsystem, actual.getSubsystem());
-        assertEquals(expectedDevicetype, actual.getDevicetype());
-        assertEquals(expectedSystemstructure, actual.getSystemstructure());
-        assertEquals(expectedDevicestructure, actual.getDevicestructure());
-        assertEquals(expectedIndex, actual.getIndex());
-        assertEquals(expectedName, actual.getName());
-        assertEquals(expectedDescription, actual.getDescription());
-        assertEquals(expectedStatus, actual.getStatus());
-        assertEquals(expectedIsLatest, actual.isLatest());
-        assertEquals(expectedIsDeleted, actual.isDeleted());
-        assertNotNull(actual.getWhen());
-        assertEquals(expectedWho, actual.getWho());
-        assertEquals(expectedComment, actual.getComment());
-    }
-
-    /**
-     * Assert that arrays are equal with same length and same content in each array position.
-     *
-     * @param actual actual array of name elements
-     * @param expected expected arbitrary number of name elements
-     */
-    static void assertEqualsNameElements(NameElement[] actual, NameElement... expected) {
-        if (expected != null) {
-            assertNotNull(actual);
-            assertEquals(expected.length, actual.length);
-            for (int i=0; i<expected.length; i++) {
-                assertTrue(expected[i].equals(actual[i]));
-            }
-        } else {
-            assertNull(actual);
-        }
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * Utility method to create a name element and assert result.
-     *
-     * @param nameElement name element
-     * @return created name element
-     */
-    static NameElement assertCreate(NameElement nameElement) {
-        try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-            UUID uuid = null;
-
-            NameElement[] createdNameElements = null;
-            NameElement   createdNameElement  = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            createdNameElements = mapper.readValue(response[1], NameElement[].class);
-            createdNameElement = ITUtilNameStructureElement.assertContentLengthOne(createdNameElements);
-            assertNotNull(createdNameElement.getUuid());
-
-            uuid = createdNameElement.getUuid();
-            nameElement.setUuid(uuid);
-
-            ITUtilNameStructureElement.assertContent(createdNameElement,
-                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
-                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
-                    nameElement.getIndex(), nameElement.getName(),
-                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.FALSE,
-                    "test who", nameElement.getComment());
-            assertNotNull(createdNameElement.getWhen());
-
-            return createdNameElement;
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return null;
-    }
-
-    /**
-     * Utility method to update a name element and assert result.
-     *
-     * @param nameElement name element
-     * @return updated name element
-     */
-    static NameElement assertUpdate(NameElement nameElement) {
-        try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-            UUID uuid = null;
-
-            NameElement[] updatedNameElements = null;
-            NameElement   updatedNameElement  = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlPutPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            updatedNameElements = mapper.readValue(response[1], NameElement[].class);
-            updatedNameElement = ITUtilNameStructureElement.assertContentLengthOne(updatedNameElements);
-            assertNotNull(updatedNameElement.getUuid());
-
-            uuid = updatedNameElement.getUuid();
-            nameElement.setUuid(uuid);
-
-            ITUtilNameStructureElement.assertContent(updatedNameElement,
-                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
-                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
-                    nameElement.getIndex(), nameElement.getName(),
-                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.FALSE,
-                    "test who", nameElement.getComment());
-            assertNotNull(updatedNameElement.getWhen());
-
-            return updatedNameElement;
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return null;
-    }
-
-    /**
-     * Utility method to delete a name element and assert result.
-     *
-     * @param nameElement name element
-     * @return deleted name element
-     */
-    static NameElement assertDelete(NameElement nameElement) {
-        try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-            UUID uuid = null;
-
-            NameElement[] deletedNameElements = null;
-            NameElement   deletedNameElement  = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlDeletePathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            deletedNameElements = mapper.readValue(response[1], NameElement[].class);
-            deletedNameElement = ITUtilNameStructureElement.assertContentLengthOne(deletedNameElements);
-            assertNotNull(deletedNameElement.getUuid());
-
-            uuid = deletedNameElement.getUuid();
-            nameElement.setUuid(uuid);
-
-            ITUtilNameStructureElement.assertContent(deletedNameElement,
-                    uuid, nameElement.getSystemgroup(), nameElement.getSystem(), nameElement.getSubsystem(), nameElement.getDevicetype(),
-                    nameElement.getSystemstructure(), nameElement.getDevicestructure(),
-                    nameElement.getIndex(), nameElement.getName(),
-                    nameElement.getDescription(), nameElement.getStatus(), Boolean.TRUE, Boolean.TRUE,
-                    "test who", nameElement.getComment());
-            assertNotNull(deletedNameElement.getWhen());
-
-            return deletedNameElement;
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return null;
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
     /**
      * Assert that response page with list of structure elements has expected length.
      *
@@ -380,26 +105,21 @@ public class ITUtilNameStructureElement {
     // ----------------------------------------------------------------------------------------------------
 
     /**
-     * Assert that array of structure elements has expected length.
-     *
-     * @param actual array of structure elements
-     * @param expectedLength expected length of array
-     */
-    static void assertContentLength(StructureElement[] actual, int expectedLength) {
-        assertNotNull(actual);
-        assertEquals(expectedLength, actual.length);
-    }
-
-    /**
-     * Assert that array of structure elements has length one and structure element is available.
+     * Assert that arrays are equal with same length and same content in each array position.
      *
-     * @param actual array of structure elements
-     * @return structure element
+     * @param actual actual array of structure elements
+     * @param expected expected arbitrary number of structure elements
      */
-    static StructureElement assertContentLengthOne(StructureElement[] actual) {
-        assertContentLength(actual, 1);
-        assertNotNull(actual[0]);
-        return actual[0];
+    static void assertEqualsStructureElements(StructureElement[] actual, StructureElement... expected) {
+        if (expected != null) {
+            assertNotNull(actual);
+            assertEquals(expected.length, actual.length);
+            for (int i=0; i<expected.length; i++) {
+                assertTrue(expected[i].equals(actual[i]));
+            }
+        } else {
+            assertNull(actual);
+        }
     }
 
     /**
@@ -442,24 +162,58 @@ public class ITUtilNameStructureElement {
         assertEquals(expectedComment, actual.getComment());
     }
 
+    // ----------------------------------------------------------------------------------------------------
+
     /**
-     * Assert that arrays are equal with same length and same content in each array position.
+     * Utility method to validate and assert expected response.
      *
-     * @param actual actual array of structure elements
-     * @param expected expected arbitrary number of structure elements
-     */
-    static void assertEqualsStructureElements(StructureElement[] actual, StructureElement... expected) {
-        if (expected != null) {
-            assertNotNull(actual);
-            assertEquals(expected.length, actual.length);
-            for (int i=0; i<expected.length; i++) {
-                assertTrue(expected[i].equals(actual[i]));
-            }
-        } else {
-            assertNull(actual);
+     * @param structureElement structure element
+     * @param structureChoice structure choice
+     * @param expected expected response
+     */
+    public static void assertValidate(StructureElement structureElement, StructureChoice structureChoice, Boolean expected) {
+    	String validatePath = "";
+    	switch (structureChoice) {
+    		case CREATE:
+    			validatePath = "/validatecreate";
+    			break;
+    		case UPDATE:
+    			validatePath = "/validateupdate";
+    			break;
+    		case DELETE:
+    			validatePath = "/validatedelete";
+    			break;
+    		case APPROVE:
+    			validatePath = "/validateapprove";
+    			break;
+    		case CANCEL:
+    			validatePath = "/validatecancel";
+    			break;
+    		case REJECT:
+    			validatePath = "/validatereject";
+    			break;
+    		default:
+    			fail();
+    			break;
+    	}
+
+    	try {
+            ObjectMapper mapper = new ObjectMapper();
+            String[] response = null;
+
+	        response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, validatePath, "[" + mapper.writeValueAsString(structureElement) + "]"));
+	        ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
+	        ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), expected);
+        } catch (IOException e) {
+            fail();
+        } catch (InterruptedException e) {
+            fail();
+        } catch (Exception e) {
+            fail();
         }
     }
 
+
     // ----------------------------------------------------------------------------------------------------
 
     /**
@@ -484,13 +238,13 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             createdStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            createdStructureElement = ITUtilNameStructureElement.assertContentLengthOne(createdStructureElements);
+            createdStructureElement = ITUtilStructureElement.assertContentLengthOne(createdStructureElements);
             assertNotNull(createdStructureElement.getUuid());
 
             uuid = createdStructureElement.getUuid();
             structureElement.setUuid(uuid);
 
-            ITUtilNameStructureElement.assertContent(createdStructureElement,
+            ITUtilStructureElement.assertContent(createdStructureElement,
                     structureElement.getType(), uuid, structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
@@ -531,13 +285,13 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlPutPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             updatedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            updatedStructureElement = ITUtilNameStructureElement.assertContentLengthOne(updatedStructureElements);
+            updatedStructureElement = ITUtilStructureElement.assertContentLengthOne(updatedStructureElements);
             assertNotNull(updatedStructureElement.getUuid());
 
             uuid = updatedStructureElement.getUuid();
             structureElement.setUuid(uuid);
 
-            ITUtilNameStructureElement.assertContent(updatedStructureElement,
+            ITUtilStructureElement.assertContent(updatedStructureElement,
                     structureElement.getType(), uuid, structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
@@ -578,13 +332,13 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlDeletePathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             deletedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            deletedStructureElement = ITUtilNameStructureElement.assertContentLengthOne(deletedStructureElements);
+            deletedStructureElement = ITUtilStructureElement.assertContentLengthOne(deletedStructureElements);
             assertNotNull(deletedStructureElement.getUuid());
 
             uuid = deletedStructureElement.getUuid();
             structureElement.setUuid(uuid);
 
-            ITUtilNameStructureElement.assertContent(deletedStructureElement,
+            ITUtilStructureElement.assertContent(deletedStructureElement,
                     structureElement.getType(), uuid, structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
@@ -624,8 +378,8 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/approve", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             approvedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            approvedStructureElement = ITUtilNameStructureElement.assertContentLengthOne(approvedStructureElements);
-            ITUtilNameStructureElement.assertContent(approvedStructureElement,
+            approvedStructureElement = ITUtilStructureElement.assertContentLengthOne(approvedStructureElements);
+            ITUtilStructureElement.assertContent(approvedStructureElement,
                     structureElement.getType(), structureElement.getUuid(), structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.APPROVED, Boolean.TRUE, structureElement.isDeleted(),
@@ -665,8 +419,8 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/cancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             cancelledStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            cancelledStructureElement = ITUtilNameStructureElement.assertContentLengthOne(cancelledStructureElements);
-            ITUtilNameStructureElement.assertContent(cancelledStructureElement,
+            cancelledStructureElement = ITUtilStructureElement.assertContentLengthOne(cancelledStructureElements);
+            ITUtilStructureElement.assertContent(cancelledStructureElement,
                     structureElement.getType(), structureElement.getUuid(), structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.CANCELLED, Boolean.FALSE, structureElement.isDeleted(),
@@ -706,8 +460,8 @@ public class ITUtilNameStructureElement {
             response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/reject", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             rejectedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-            rejectedStructureElement = ITUtilNameStructureElement.assertContentLengthOne(rejectedStructureElements);
-            ITUtilNameStructureElement.assertContent(rejectedStructureElement,
+            rejectedStructureElement = ITUtilStructureElement.assertContentLengthOne(rejectedStructureElements);
+            ITUtilStructureElement.assertContent(rejectedStructureElement,
                     structureElement.getType(), structureElement.getUuid(), structureElement.getParent(),
                     structureElement.getName(), structureElement.getMnemonic(), structureElement.getMnemonicpath(), structureElement.getLevel(),
                     structureElement.getDescription(), Status.REJECTED, Boolean.FALSE, structureElement.isDeleted(),
diff --git a/src/test/java/org/openepics/names/docker/NamesIT.java b/src/test/java/org/openepics/names/docker/NamesIT.java
index 3d4225e9..c4c4739f 100644
--- a/src/test/java/org/openepics/names/docker/NamesIT.java
+++ b/src/test/java/org/openepics/names/docker/NamesIT.java
@@ -36,6 +36,7 @@ import org.openepics.names.rest.beans.NameElement;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.NameChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
 import org.openepics.names.util.response.ResponseBooleanList;
@@ -89,7 +90,7 @@ public class NamesIT {
                 "Accelerator", "Acc", "Acc", 1,
                 "The ESS Linear Accelerator", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "approved by alfio");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemGroupAcc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -97,7 +98,7 @@ public class NamesIT {
                 "Radio Frequency Quadrupole", "RFQ", "Acc-RFQ", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemRFQ = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -105,7 +106,7 @@ public class NamesIT {
                 "01 Phase Reference Line", "010PRL", "Acc-RFQ-010PRL", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystem010PRL = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -113,7 +114,7 @@ public class NamesIT {
                 "RFQ-010", "010", "Acc-RFQ-010", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystem010 = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -121,7 +122,7 @@ public class NamesIT {
                 "Power switch board 01", "N1U1", "Acc-RFQ-N1U1", 3,
                 "Electrical power cabinets", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystemN1U1 = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -129,7 +130,7 @@ public class NamesIT {
                 "Electromagnetic Resonators", "EMR", "EMR", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -137,7 +138,7 @@ public class NamesIT {
                 "Control", null, "EMR", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "These names are needed now, so I am approving, but please add a description to these later.");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -145,7 +146,7 @@ public class NamesIT {
                 "Flow Switch", "FS", "EMR-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approve names added from misc device group");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceTypeFS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -153,7 +154,7 @@ public class NamesIT {
                 "RF Antenna", "RFA", "EMR-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approve names added from misc device group");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceTypeRFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -161,7 +162,7 @@ public class NamesIT {
                 "Temperature Transmitter", "TT", "EMR-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approve names added from misc device group");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceTypeTT = approvedStructureElement.getUuid();
     }
 
@@ -184,7 +185,7 @@ public class NamesIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/exists/RFQ-010PRL:EMR-RFA-051");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/islegacy/RFQ-010PRL:EMR-RFA-051");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -202,66 +203,50 @@ public class NamesIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setSubsystem(subsystem010PRL);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             nameElement.setName("RFQ-010PRL");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // ----------
 
             nameElement.setName("RFQ-010PRL:EMR-RFA-051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setIndex("051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setDevicetype(deviceTypeRFA);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // ----------
 
@@ -273,39 +258,29 @@ public class NamesIT {
             // ----------
 
             nameElement.setSystem(systemRFQ);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             nameElement.setName("RFQ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // ----------
 
             nameElement.setName("RFQ:EMR-RFA-051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setIndex("051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setDevicetype(deviceTypeRFA);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // ----------
 
@@ -317,44 +292,32 @@ public class NamesIT {
             // ----------
 
             nameElement.setSystemgroup(systemGroupAcc);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             nameElement.setName("Acc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // ----------
 
             nameElement.setName("Acc:EMR-RFA-051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setIndex("051");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "", "[" + mapper.writeValueAsString(nameElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             nameElement.setDevicetype(deviceTypeTT);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.FALSE);
 
             nameElement.setDevicetype(deviceTypeRFA);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -405,7 +368,7 @@ public class NamesIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/exists/RFQ-010PRL:EMR-RFA-052");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/islegacy/RFQ-010PRL:EMR-RFA-052");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -419,12 +382,10 @@ public class NamesIT {
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatecreate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, Boolean.TRUE);
 
             // create
-            createdNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
             nameElement = createdNameElement;
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/exists/RFQ-010PRL:EMR-RFA-052");
@@ -466,9 +427,6 @@ public class NamesIT {
         //     create in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             NameElement nameElement        = null;
             NameElement createdNameElement = null;
 
@@ -481,112 +439,70 @@ public class NamesIT {
                     null, "test who", "comment");
 
             // create
-            createdNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
             nameElement = createdNameElement;
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setDescription("checkUpdate");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setComment("checkUpdate");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setSubsystem(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setSystemgroup(systemGroupAcc);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setSystemgroup(null);
             nameElement.setSystem(systemRFQ);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setSystem(null);
             nameElement.setSubsystem(subsystemN1U1);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setSubsystem(subsystem010PRL);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setDevicetype(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setDevicetype(deviceGroupEMR);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setDevicetype(deviceTypeFS);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setDevicetype(deviceTypeTT);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setDevicetype(deviceTypeRFA);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setName("RFQ-010PRL:EMR-RFA-053");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setIndex(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             nameElement.setIndex("053");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             // system structure, device structure not used for validation
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
         } catch (Exception e) {
             fail();
         }
@@ -607,9 +523,6 @@ public class NamesIT {
         //     create in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             NameElement nameElement        = null;
             NameElement createdNameElement = null;
             NameElement updatedNameElement = null;
@@ -622,36 +535,24 @@ public class NamesIT {
                     "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                     null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.FALSE);
 
             // create
-            createdNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
             nameElement = createdNameElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             nameElement.setDescription("updated description");
             nameElement.setComment("updated comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
 
             // update
-            updatedNameElement = ITUtilNameStructureElement.assertUpdate(nameElement);
+            updatedNameElement = ITUtilNameElement.assertUpdate(nameElement);
             nameElement = updatedNameElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validateupdate", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -672,9 +573,6 @@ public class NamesIT {
         //     create in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             NameElement nameElement        = null;
             NameElement createdNameElement = null;
 
@@ -687,79 +585,51 @@ public class NamesIT {
                     null, "test who", "comment");
 
             // create
-            createdNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
             nameElement = createdNameElement;
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             nameElement.setDescription("checkDelete");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             nameElement.setComment("checkDelete");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setSystemgroup(systemGroupAcc);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             nameElement.setSystemgroup(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setSystem(systemRFQ);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             nameElement.setSystem(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setSubsystem(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             nameElement.setSubsystem(subsystem010PRL);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             // device type not used for validation
 
             nameElement.setDevicetype(deviceTypeRFA);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             // name, index not used for validation
 
             // system structure, device structure not used for validation
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
         } catch (Exception e) {
             fail();
         }
@@ -780,9 +650,6 @@ public class NamesIT {
         //     create in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             NameElement nameElement        = null;
             NameElement createdNameElement = null;
             NameElement deletedNameElement = null;
@@ -795,37 +662,25 @@ public class NamesIT {
                     "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                     null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
 
             // create
-            createdNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+            createdNameElement = ITUtilNameElement.assertCreate(nameElement);
             nameElement = createdNameElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             nameElement.setDescription("deleted description");
             nameElement.setComment("deleted comment");
             nameElement.setDeleted(Boolean.TRUE);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.TRUE);
 
             // delete
-            deletedNameElement = ITUtilNameStructureElement.assertDelete(nameElement);
+            deletedNameElement = ITUtilNameElement.assertDelete(nameElement);
             nameElement = deletedNameElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.NAMES, "/validatedelete", "[" + mapper.writeValueAsString(nameElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilNameElement.assertValidate(nameElement, NameChoice.DELETE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -858,7 +713,7 @@ public class NamesIT {
                 null, "test who", "comment");
 
         // create
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
         nameElement1 = responseNameElement;
         uuid = responseNameElement.getUuid();
 
@@ -869,7 +724,7 @@ public class NamesIT {
                 "002", "RFQ-010:EMR-FS-002",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
         uuid2 = responseNameElement.getUuid();
 
         nameElement = new NameElement(
@@ -879,7 +734,7 @@ public class NamesIT {
                 "003", "RFQ-010:EMR-FS-003",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
 
         nameElement = new NameElement(
                 null,
@@ -888,7 +743,7 @@ public class NamesIT {
                 "004", "RFQ-010:EMR-FS-004",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
 
         nameElement = new NameElement(
                 null,
@@ -897,7 +752,7 @@ public class NamesIT {
                 "005", "RFQ-010:EMR-FS-005",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
 
         nameElement = new NameElement(
                 null,
@@ -906,7 +761,7 @@ public class NamesIT {
                 "006", "RFQ-010:EMR-FS-006",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
 
         nameElement = new NameElement(
                 null,
@@ -915,7 +770,7 @@ public class NamesIT {
                 "007", "RFQ-010:EMR-FS-007",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
         nameElement7 = responseNameElement;
 
         nameElement = new NameElement(
@@ -925,7 +780,7 @@ public class NamesIT {
                 "008", "RFQ-010:EMR-FS-008",
                 "description", Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 null, "test who", "comment");
-        responseNameElement = ITUtilNameStructureElement.assertCreate(nameElement);
+        responseNameElement = ITUtilNameElement.assertCreate(nameElement);
         nameElement8 = responseNameElement;
 
         // update element 1 twice
@@ -933,18 +788,18 @@ public class NamesIT {
         nameElement.setDescription("updated description");
         nameElement.setComment("updated comment");
 
-        responseNameElement = ITUtilNameStructureElement.assertUpdate(nameElement);
+        responseNameElement = ITUtilNameElement.assertUpdate(nameElement);
         nameElement = responseNameElement;
 
         nameElement.setDescription("updated description again");
         nameElement.setComment("updated comment again");
 
-        responseNameElement = ITUtilNameStructureElement.assertUpdate(nameElement);
+        responseNameElement = ITUtilNameElement.assertUpdate(nameElement);
         nameElement = responseNameElement;
 
         // delete element 7, 8
-        responseNameElement = ITUtilNameStructureElement.assertDelete(nameElement7);
-        responseNameElement = ITUtilNameStructureElement.assertDelete(nameElement8);
+        responseNameElement = ITUtilNameElement.assertDelete(nameElement7);
+        responseNameElement = ITUtilNameElement.assertDelete(nameElement8);
 
         try {
             ObjectMapper mapper = new ObjectMapper();
@@ -962,7 +817,7 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "?queryFields=UUID&queryValues=" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 1);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "?queryFields=NAMEEQUIVALENCE&queryValues=RFQ-10%25");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -982,12 +837,12 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/RFQ-010:EMR-FS-005");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 1);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/RFQ-010:EMR-FS-0");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/RFQ-010:EMR-FS-0__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1007,7 +862,7 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/systemstructure/RFQ-0");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/systemstructure/RFQ-0__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1017,7 +872,7 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/systemstructure/RFQ-N1U1");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/devicestructure/EMR-FS");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1027,7 +882,7 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/devicestructure/EMR-F");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/devicestructure/EMR-F_");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1037,24 +892,24 @@ public class NamesIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/devicestructure/EMR-TT");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             // history
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/history/" + systemRFQ.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 0);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/history/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 3);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 3);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_NAMES + "/history/" + uuid2.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageNameElements = mapper.readValue(response[1], ResponsePageNameElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageNameElements, 1);
+            ITUtilNameElement.assertContentLength(responsePageNameElements, 1);
         } catch (IOException e) {
             fail();
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index 9a5ed1e1..c72d809a 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -35,9 +35,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -95,7 +95,7 @@ public class StructuresDeviceGroupIT {
               "name", "Di", "Di", 1,
               "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
               null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineUuid = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -103,7 +103,7 @@ public class StructuresDeviceGroupIT {
                 "name", "Di2", "Di2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-          approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+          approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
           discipline2Uuid = approvedStructureElement.getUuid();
     }
 
@@ -125,7 +125,7 @@ public class StructuresDeviceGroupIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/DEVICEGROUP/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/DEVICEGROUP/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -137,65 +137,49 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.DEVICEGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setParent(disciplineUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICEGROUP);
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -217,9 +201,7 @@ public class StructuresDeviceGroupIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.DEVICEGROUP);
             structureElement.setParent(disciplineUuid);
@@ -230,150 +212,90 @@ public class StructuresDeviceGroupIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Grp ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Grp");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Grp0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Grp:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Grp:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -394,9 +316,6 @@ public class StructuresDeviceGroupIT {
         //     create in order to approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -407,32 +326,19 @@ public class StructuresDeviceGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -453,9 +359,6 @@ public class StructuresDeviceGroupIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -466,32 +369,19 @@ public class StructuresDeviceGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -512,9 +402,6 @@ public class StructuresDeviceGroupIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -525,32 +412,19 @@ public class StructuresDeviceGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -573,8 +447,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -586,94 +458,58 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICEGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setParent(disciplineUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -696,9 +532,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -709,41 +542,24 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -768,9 +584,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -782,41 +595,25 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -841,9 +638,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -855,41 +649,25 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -912,8 +690,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -925,94 +701,58 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICEGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setParent(disciplineUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -1035,9 +775,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1048,42 +785,25 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1108,9 +828,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1122,41 +839,25 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1181,9 +882,6 @@ public class StructuresDeviceGroupIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1195,41 +893,25 @@ public class StructuresDeviceGroupIT {
                     "name", null, "Di", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1264,7 +946,7 @@ public class StructuresDeviceGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1298,37 +980,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1341,7 +1023,7 @@ public class StructuresDeviceGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP");
@@ -1374,37 +1056,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1451,7 +1133,7 @@ public class StructuresDeviceGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1485,37 +1167,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1528,7 +1210,7 @@ public class StructuresDeviceGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP");
@@ -1561,37 +1243,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1638,7 +1320,7 @@ public class StructuresDeviceGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1672,37 +1354,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1715,7 +1397,7 @@ public class StructuresDeviceGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP");
@@ -1748,37 +1430,37 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1821,7 +1503,7 @@ public class StructuresDeviceGroupIT {
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1829,133 +1511,133 @@ public class StructuresDeviceGroupIT {
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1967,190 +1649,190 @@ public class StructuresDeviceGroupIT {
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICEGROUP, null, discipline2Uuid,
                 "name", null, "Di2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 device group entries
 
@@ -2167,107 +1849,107 @@ public class StructuresDeviceGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             // 5, not 10
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             // 0, not 5
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             // 5, not 10
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             // 25, not 30 or 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 25);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 25);
 
             // 15, not 30
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             // 0, not 5
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&statuses=PENDING&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             // 0, not 5
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&statuses=CANCELLED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             // 0, not 5
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&statuses=REJECTED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             // 15, not 20
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&statuses=PENDING&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&statuses=CANCELLED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&statuses=REJECTED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICEGROUP?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONICPATH&queryValues=Di2");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/DEVICEGROUP/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/DISCIPLINE/" + disciplineUuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index c4d3f80d..4510bab1 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -35,9 +35,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -95,7 +95,7 @@ public class StructuresDeviceTypeIT {
               "name", "Di", "Di", 1,
               "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
               null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineUuid = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -103,7 +103,7 @@ public class StructuresDeviceTypeIT {
                 "name", null, "Di", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupUuid = approvedStructureElement.getUuid();
     }
 
@@ -125,7 +125,7 @@ public class StructuresDeviceTypeIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/DEVICETYPE/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/DEVICETYPE/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -145,68 +145,52 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.DEVICETYPE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setParent(deviceGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -228,9 +212,7 @@ public class StructuresDeviceTypeIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.DEVICETYPE);
             structureElement.setParent(deviceGroupUuid);
@@ -241,150 +223,90 @@ public class StructuresDeviceTypeIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dev ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dev");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Dev0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dev:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dev:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -405,9 +327,6 @@ public class StructuresDeviceTypeIT {
         //     create in order to approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -418,32 +337,19 @@ public class StructuresDeviceTypeIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -464,9 +370,6 @@ public class StructuresDeviceTypeIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -477,32 +380,19 @@ public class StructuresDeviceTypeIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -523,9 +413,6 @@ public class StructuresDeviceTypeIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -536,32 +423,19 @@ public class StructuresDeviceTypeIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -584,8 +458,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -597,94 +469,58 @@ public class StructuresDeviceTypeIT {
                     "name", "Cu", "Di-Cu", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SUBSYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICETYPE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setParent(deviceGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -707,9 +543,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -720,41 +553,24 @@ public class StructuresDeviceTypeIT {
                     "name", "Ua", "Di-Ua", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -779,9 +595,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -793,41 +606,25 @@ public class StructuresDeviceTypeIT {
                     "name", "Uc", "Di-Uc", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -852,9 +649,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -866,41 +660,25 @@ public class StructuresDeviceTypeIT {
                     "name", "Ur", "Di-Ur", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -923,8 +701,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -936,94 +712,58 @@ public class StructuresDeviceTypeIT {
                     "name", "Cd", "Di-Cd", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SUBSYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICETYPE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setParent(deviceGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -1046,9 +786,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1059,42 +796,25 @@ public class StructuresDeviceTypeIT {
                     "name", "Da", "Di-Da", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1119,9 +839,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1133,41 +850,25 @@ public class StructuresDeviceTypeIT {
                     "name", "Dc", "Di-Dc", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1192,9 +893,6 @@ public class StructuresDeviceTypeIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1206,41 +904,25 @@ public class StructuresDeviceTypeIT {
                     "name", "Dr", "Di-Dr", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1275,7 +957,7 @@ public class StructuresDeviceTypeIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1309,42 +991,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1352,7 +1034,7 @@ public class StructuresDeviceTypeIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE");
@@ -1385,42 +1067,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1462,7 +1144,7 @@ public class StructuresDeviceTypeIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1476,7 +1158,7 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1496,42 +1178,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1539,7 +1221,7 @@ public class StructuresDeviceTypeIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE");
@@ -1552,7 +1234,7 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1572,42 +1254,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1649,7 +1331,7 @@ public class StructuresDeviceTypeIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1683,42 +1365,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1726,7 +1408,7 @@ public class StructuresDeviceTypeIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE");
@@ -1739,7 +1421,7 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1759,42 +1441,42 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Di-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1832,7 +1514,7 @@ public class StructuresDeviceTypeIT {
                 "name", "AA1", "Di-AA1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1840,133 +1522,133 @@ public class StructuresDeviceTypeIT {
                 "name", "AA2", "Di-AA2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AA3", "Di-AA3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AA4", "Di-AA4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AA5", "Di-AA5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AB1", "Di-AB1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AB2", "Di-AB2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AB3", "Di-AB3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AB4", "Di-AB4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AB5", "Di-AB5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AC1", "Di-AC1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AC2", "Di-AC2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AC3", "Di-AC3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AC4", "Di-AC4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AC5", "Di-AC5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AD1", "Di-AD1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AD2", "Di-AD2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AD3", "Di-AD3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AD4", "Di-AD4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AD5", "Di-AD5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1978,190 +1660,190 @@ public class StructuresDeviceTypeIT {
                 "name", "AE1", "Di-AE1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AE2", "Di-AE2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AE3", "Di-AE3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AE4", "Di-AE4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AE5", "Di-AE5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AF1", "Di-AF1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AF2", "Di-AF2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AF3", "Di-AF3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AF4", "Di-AF4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AF5", "Di-AF5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AG1", "Di-AG1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AG2", "Di-AG2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AG3", "Di-AG3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AG4", "Di-AG4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DEVICETYPE, null, deviceGroupUuid,
                 "name", "AG5", "Di-AG5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 device type entries
 
@@ -2178,99 +1860,99 @@ public class StructuresDeviceTypeIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 45);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 45);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 30, not 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DEVICETYPE?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/DEVICETYPE/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/DEVICEGROUP/" + deviceGroupUuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index 28eed8a5..2526cd0f 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -34,9 +34,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -97,7 +97,7 @@ public class StructuresDisciplineIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/DISCIPLINE/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/DISCIPLINE/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -109,59 +109,45 @@ public class StructuresDisciplineIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.DISCIPLINE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -183,9 +169,7 @@ public class StructuresDisciplineIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.DISCIPLINE);
             structureElement.setName("name");
@@ -195,150 +179,90 @@ public class StructuresDisciplineIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dis ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dis");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Dis0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dis:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Dis:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -359,9 +283,6 @@ public class StructuresDisciplineIT {
         //     create in order to approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -372,32 +293,19 @@ public class StructuresDisciplineIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -418,9 +326,6 @@ public class StructuresDisciplineIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -431,32 +336,19 @@ public class StructuresDisciplineIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -477,9 +369,6 @@ public class StructuresDisciplineIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -490,32 +379,19 @@ public class StructuresDisciplineIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -538,8 +414,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -551,84 +425,52 @@ public class StructuresDisciplineIT {
                     "name", "Cu", "Cu", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEMGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DISCIPLINE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -651,9 +493,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -664,41 +503,24 @@ public class StructuresDisciplineIT {
                   "name", "Ua", "Ua", 1,
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -723,9 +545,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -737,41 +556,25 @@ public class StructuresDisciplineIT {
                     "name", "Uc", "Uc", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -796,9 +599,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -810,41 +610,25 @@ public class StructuresDisciplineIT {
                     "name", "Ur", "Ur", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -867,8 +651,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -880,84 +662,52 @@ public class StructuresDisciplineIT {
                     "name", "Cd", "Cd", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEMGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DISCIPLINE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -980,9 +730,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -993,42 +740,25 @@ public class StructuresDisciplineIT {
                   "name", "Da", "Da", 1,
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1053,9 +783,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1067,41 +794,25 @@ public class StructuresDisciplineIT {
                     "name", "Dc", "Dc", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1126,9 +837,6 @@ public class StructuresDisciplineIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1140,41 +848,25 @@ public class StructuresDisciplineIT {
                     "name", "Dr", "Dr", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1209,7 +901,7 @@ public class StructuresDisciplineIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1243,37 +935,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1281,7 +973,7 @@ public class StructuresDisciplineIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE");
@@ -1314,37 +1006,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1386,7 +1078,7 @@ public class StructuresDisciplineIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1420,37 +1112,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1458,7 +1150,7 @@ public class StructuresDisciplineIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE");
@@ -1491,37 +1183,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1563,7 +1255,7 @@ public class StructuresDisciplineIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1597,37 +1289,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1635,7 +1327,7 @@ public class StructuresDisciplineIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE");
@@ -1668,37 +1360,37 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1736,7 +1428,7 @@ public class StructuresDisciplineIT {
                 "name", "AA1", "AA1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1744,133 +1436,133 @@ public class StructuresDisciplineIT {
                 "name", "AA2", "AA2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AA3", "AA3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AA4", "AA4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AA5", "AA5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AB1", "AB1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AB2", "AB2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AB3", "AB3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AB4", "AB4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AB5", "AB5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AC1", "AC1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AC2", "AC2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AC3", "AC3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AC4", "AC4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AC5", "AC5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AD1", "AD1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AD2", "AD2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AD3", "AD3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AD4", "AD4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AD5", "AD5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1882,190 +1574,190 @@ public class StructuresDisciplineIT {
                 "name", "AE1", "AE1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AE2", "AE2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AE3", "AE3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AE4", "AE4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AE5", "AE5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AF1", "AF1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AF2", "AF2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AF3", "AF3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AF4", "AF4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AF5", "AF5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AG1", "AG1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AG2", "AG2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AG3", "AG3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AG4", "AG4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.DISCIPLINE, null, null,
                 "name", "AG5", "AG5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 discipline entries
 
@@ -2082,99 +1774,99 @@ public class StructuresDisciplineIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 45);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 45);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 30, not 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/DISCIPLINE?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/DISCIPLINE/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
         } catch (IOException e) {
             fail();
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index 6a70eba5..c5b450e8 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -35,9 +35,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -95,7 +95,7 @@ public class StructuresSubsystemIT {
               "name", "Sg", "Sg", 1,
               "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
               null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemGroupUuid = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -103,7 +103,7 @@ public class StructuresSubsystemIT {
                 "name", "Sys", "Sg-Sys", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemUuid = approvedStructureElement.getUuid();
     }
 
@@ -129,7 +129,7 @@ public class StructuresSubsystemIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/SUBSYSTEM/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/SUBSYSTEM/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -161,68 +161,52 @@ public class StructuresSubsystemIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.SUBSYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setParent(systemUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -244,9 +228,7 @@ public class StructuresSubsystemIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.SUBSYSTEM);
             structureElement.setParent(systemUuid);
@@ -257,150 +239,90 @@ public class StructuresSubsystemIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sub ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sub");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Sub0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sub:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sub:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -421,9 +343,6 @@ public class StructuresSubsystemIT {
         //     create in order to approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -434,32 +353,19 @@ public class StructuresSubsystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -480,9 +386,6 @@ public class StructuresSubsystemIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -493,32 +396,19 @@ public class StructuresSubsystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -539,9 +429,6 @@ public class StructuresSubsystemIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -552,32 +439,19 @@ public class StructuresSubsystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -600,8 +474,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -613,94 +485,58 @@ public class StructuresSubsystemIT {
                     "name", "Cu", "Sg-Sys-Cu", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICETYPE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SUBSYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setParent(systemUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -723,9 +559,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -736,41 +569,24 @@ public class StructuresSubsystemIT {
                     "name", "Ua", "Sg-Sys-Ua", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -795,9 +611,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -809,41 +622,25 @@ public class StructuresSubsystemIT {
                     "name", "Uc", "Sg-Sys-Uc", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -868,9 +665,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -882,41 +676,25 @@ public class StructuresSubsystemIT {
                     "name", "Ur", "Sg-Sys-Ur", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -939,8 +717,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -952,94 +728,58 @@ public class StructuresSubsystemIT {
                     "name", "Cd", "Sg-Sys-Cd", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICETYPE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SUBSYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setParent(systemGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -1062,9 +802,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1075,42 +812,25 @@ public class StructuresSubsystemIT {
                     "name", "Da", "Sg-Sys-Da", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1135,9 +855,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1149,41 +866,25 @@ public class StructuresSubsystemIT {
                     "name", "Dc", "Sg-Sys-Dc", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1208,9 +909,6 @@ public class StructuresSubsystemIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1222,41 +920,25 @@ public class StructuresSubsystemIT {
                     "name", "Dr", "Sg-Sys-Dr", 3,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1291,7 +973,7 @@ public class StructuresSubsystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1325,42 +1007,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1368,7 +1050,7 @@ public class StructuresSubsystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM");
@@ -1401,42 +1083,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1478,7 +1160,7 @@ public class StructuresSubsystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1512,42 +1194,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1555,7 +1237,7 @@ public class StructuresSubsystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM");
@@ -1588,42 +1270,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1665,7 +1347,7 @@ public class StructuresSubsystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1699,42 +1381,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1742,7 +1424,7 @@ public class StructuresSubsystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM");
@@ -1775,42 +1457,42 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Sys-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1848,7 +1530,7 @@ public class StructuresSubsystemIT {
                 "name", "AA1", "Sg-Sys-AA1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1856,133 +1538,133 @@ public class StructuresSubsystemIT {
                 "name", "AA2", "Sg-Sys-AA2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AA3", "Sg-Sys-AA3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AA4", "Sg-Sys-AA4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AA5", "Sg-Sys-AA5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AB1", "Sg-Sys-AB1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AB2", "Sg-Sys-AB2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AB3", "Sg-Sys-AB3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AB4", "Sg-Sys-AB4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AB5", "Sg-Sys-AB5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AC1", "Sg-Sys-AC1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AC2", "Sg-Sys-AC2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AC3", "Sg-Sys-AC3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AC4", "Sg-Sys-AC4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AC5", "Sg-Sys-AC5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AD1", "Sg-Sys-AD1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AD2", "Sg-Sys-AD2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AD3", "Sg-Sys-AD3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AD4", "Sg-Sys-AD4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AD5", "Sg-Sys-AD5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1994,190 +1676,190 @@ public class StructuresSubsystemIT {
                 "name", "AE1", "Sg-Sys-AE1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AE2", "Sg-Sys-AE2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AE3", "Sg-Sys-AE3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AE4", "Sg-Sys-AE4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AE5", "Sg-Sys-AE5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AF1", "Sg-Sys-AF1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AF2", "Sg-Sys-AF2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AF3", "Sg-Sys-AF3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AF4", "Sg-Sys-AF4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AF5", "Sg-Sys-AF5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AG1", "Sg-Sys-AG1", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AG2", "Sg-Sys-AG2", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AG3", "Sg-Sys-AG3", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AG4", "Sg-Sys-AG4", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SUBSYSTEM, null, systemUuid,
                 "name", "AG5", "Sg-Sys-AG5", 3,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 subsystem entries
 
@@ -2194,99 +1876,99 @@ public class StructuresSubsystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 45);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 45);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 30, not 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SUBSYSTEM?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/SUBSYSTEM/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/SYSTEM/" + systemUuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index ac97a11c..d9ac91fd 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -35,9 +35,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -101,7 +101,7 @@ public class StructuresSystemGroupIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/SYSTEMGROUP/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/SYSTEMGROUP/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -115,69 +115,51 @@ public class StructuresSystemGroupIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.SYSTEMGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -199,9 +181,7 @@ public class StructuresSystemGroupIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.SYSTEMGROUP);
             structureElement.setName("name");
@@ -211,160 +191,96 @@ public class StructuresSystemGroupIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Sys0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Ac1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Acc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -386,9 +302,6 @@ public class StructuresSystemGroupIT {
         //     with and without mnemonic
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -400,29 +313,20 @@ public class StructuresSystemGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
             uuid = createdStructureElement.getUuid();
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
             structureElement = new StructureElement(
@@ -430,7 +334,7 @@ public class StructuresSystemGroupIT {
                     "name2", null, null, 1,
                     "description2", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "comment2");
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             uuid2 = createdStructureElement.getUuid();
 
             // create
@@ -439,16 +343,12 @@ public class StructuresSystemGroupIT {
                     "name3", null, null, 1,
                     "description3", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "comment3");
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             uuid3 = createdStructureElement.getUuid();
 
             assertNotEquals(uuid, uuid2);
             assertNotEquals(uuid, uuid3);
             assertNotEquals(uuid2, uuid3);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
         } catch (Exception e) {
             fail();
         }
@@ -469,9 +369,6 @@ public class StructuresSystemGroupIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -482,32 +379,19 @@ public class StructuresSystemGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -528,9 +412,6 @@ public class StructuresSystemGroupIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -541,32 +422,19 @@ public class StructuresSystemGroupIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -589,8 +457,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -602,84 +468,52 @@ public class StructuresSystemGroupIT {
                     "name", "Cu", "Cu", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DISCIPLINE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEMGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -702,9 +536,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -715,42 +546,25 @@ public class StructuresSystemGroupIT {
                   "name", "Ua", "Ua", 1,
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setDescription("description update approve check");
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -775,9 +589,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -789,42 +600,26 @@ public class StructuresSystemGroupIT {
                     "name", "Uc", "Uc", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setDescription("description update cancel check");
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -849,9 +644,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -863,42 +655,26 @@ public class StructuresSystemGroupIT {
                     "name", "Ur", "Ur", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setDescription("description update reject check");
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -921,8 +697,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -934,84 +708,52 @@ public class StructuresSystemGroupIT {
                     "name", "Cd", "Cd", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DISCIPLINE);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEMGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -1034,9 +776,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1047,42 +786,25 @@ public class StructuresSystemGroupIT {
                   "name", "Da", "Da", 1,
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1107,9 +829,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1121,41 +840,25 @@ public class StructuresSystemGroupIT {
                     "name", "Dc", "Dc", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1180,9 +883,6 @@ public class StructuresSystemGroupIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1194,41 +894,25 @@ public class StructuresSystemGroupIT {
                     "name", "Dr", "Dr", 1,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1263,7 +947,7 @@ public class StructuresSystemGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1297,37 +981,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1335,7 +1019,7 @@ public class StructuresSystemGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP");
@@ -1368,37 +1052,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1440,7 +1124,7 @@ public class StructuresSystemGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1474,37 +1158,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1512,7 +1196,7 @@ public class StructuresSystemGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP");
@@ -1545,37 +1229,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1617,7 +1301,7 @@ public class StructuresSystemGroupIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1651,37 +1335,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1689,7 +1373,7 @@ public class StructuresSystemGroupIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP");
@@ -1722,37 +1406,37 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1790,7 +1474,7 @@ public class StructuresSystemGroupIT {
                 "name", "AA1", "AA1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1798,133 +1482,133 @@ public class StructuresSystemGroupIT {
                 "name", "AA2", "AA2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AA3", "AA3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AA4", "AA4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AA5", "AA5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AB1", "AB1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AB2", "AB2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AB3", "AB3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AB4", "AB4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AB5", "AB5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AC1", "AC1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AC2", "AC2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AC3", "AC3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AC4", "AC4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AC5", "AC5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AD1", "AD1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AD2", "AD2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AD3", "AD3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AD4", "AD4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AD5", "AD5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1936,190 +1620,190 @@ public class StructuresSystemGroupIT {
                 "name", "AE1", "AE1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AE2", "AE2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AE3", "AE3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AE4", "AE4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AE5", "AE5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AF1", "AF1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AF2", "AF2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AF3", "AF3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AF4", "AF4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AF5", "AF5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AG1", "AG1", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AG2", "AG2", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AG3", "AG3", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AG4", "AG4", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEMGROUP, null, null,
                 "name", "AG5", "AG5", 1,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 system group entries
 
@@ -2136,99 +1820,99 @@ public class StructuresSystemGroupIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 45);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 45);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 30, not 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEMGROUP?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/SYSTEMGROUP/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
         } catch (IOException e) {
             fail();
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index b2cfff4e..4d1425c8 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -35,9 +35,9 @@ import org.openepics.names.docker.ITUtil.EndpointChoice;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.StructureChoice;
 import org.openepics.names.util.response.Response;
 import org.openepics.names.util.response.ResponseBoolean;
-import org.openepics.names.util.response.ResponseBooleanList;
 import org.openepics.names.util.response.ResponsePageStructureElements;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -94,7 +94,7 @@ public class StructuresSystemIT {
               "name", "Sg", "Sg", 1,
               "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
               null, "test who", "test comment");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemGroupUuid = approvedStructureElement.getUuid();
     }
 
@@ -119,7 +119,7 @@ public class StructuresSystemIT {
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/exists/SYSTEM/Cc");
             ITUtil.assertResponseLength2CodeOK(response);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE);
+            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBoolean.class), Boolean.FALSE, Boolean.TRUE);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/isvalidtocreate/SYSTEM/Sg-Cc");
             ITUtil.assertResponseLength2CodeOK(response);
@@ -147,68 +147,52 @@ public class StructuresSystemIT {
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[{asdf]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setType(Type.SYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setParent(systemGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             response = ITUtil.runShellCommand(ITUtil.curlPostPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "", "[" + mapper.writeValueAsString(structureElement) + "]"));
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_BAD_REQUEST);
             ITUtil.assertMessageNotEmpty(mapper.readValue(response[1], Response.class));
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
         } catch (IOException e) {
             fail();
         } catch (InterruptedException e) {
@@ -230,9 +214,7 @@ public class StructuresSystemIT {
         // note
         //     mnemonic
         try {
-            ObjectMapper mapper = new ObjectMapper();
             StructureElement structureElement = new StructureElement();
-            String[] response = null;
 
             structureElement.setType(Type.SYSTEM);
             structureElement.setParent(systemGroupUuid);
@@ -243,150 +225,89 @@ public class StructuresSystemIT {
             // mnemonic rules
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
-            structureElement.setMnemonic("");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("C");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Cccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Ccccccccc");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             // mnemonic rules (2)
 
             structureElement.setMnemonic(" ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("000");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("Sys0");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic(":");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys:");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Sys:   ");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 
             structureElement.setMnemonic("1");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("1234567");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("12345678");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.TRUE);
 
             structureElement.setMnemonic("123456789");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecreate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-	    } catch (IOException e) {
-	        fail();
-	    } catch (InterruptedException e) {
-	        fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CREATE, Boolean.FALSE);
 	    } catch (Exception e) {
 	        fail();
 	    }
@@ -407,9 +328,6 @@ public class StructuresSystemIT {
         //     create in order to approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -420,32 +338,19 @@ public class StructuresSystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
+            structureElement = approvedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -466,9 +371,6 @@ public class StructuresSystemIT {
         //     create in order to cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement createdStructureElement   = null;
             StructureElement cancelledStructureElement = null;
@@ -479,32 +381,19 @@ public class StructuresSystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -525,9 +414,6 @@ public class StructuresSystemIT {
         //     create in order to reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement createdStructureElement  = null;
             StructureElement rejectedStructureElement = null;
@@ -538,32 +424,19 @@ public class StructuresSystemIT {
                   "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                   null, "test who", "comment");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -586,8 +459,6 @@ public class StructuresSystemIT {
         //     create, approve in order to update
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement structureElement         = new StructureElement();
@@ -599,94 +470,58 @@ public class StructuresSystemIT {
                     "name", "Cu", "Sg-Cu", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate update
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICEGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setParent(systemGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cu");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -709,9 +544,6 @@ public class StructuresSystemIT {
         //     create, approve in order to update, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -722,41 +554,24 @@ public class StructuresSystemIT {
                     "name", "Ua", "Sg-Ua", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -781,9 +596,6 @@ public class StructuresSystemIT {
         //     create, approve in order to update, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement updatedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -795,41 +607,25 @@ public class StructuresSystemIT {
                     "name", "Uc", "Sg-Uc", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update cancel check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -854,9 +650,6 @@ public class StructuresSystemIT {
         //     create, approve in order to update, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement updatedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -868,41 +661,25 @@ public class StructuresSystemIT {
                     "name", "Ur", "Sg-Ur", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.UPDATE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // update
-            updatedStructureElement = ITUtilNameStructureElement.assertUpdate(structureElement);
+            updatedStructureElement = ITUtilStructureElement.assertUpdate(structureElement);
             structureElement = updatedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -925,8 +702,6 @@ public class StructuresSystemIT {
         //     create, approve in order to delete
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
             UUID uuid = null;
 
             StructureElement   structureElement         = new StructureElement();
@@ -938,94 +713,58 @@ public class StructuresSystemIT {
                     "name", "Cd", "Sg-Cd", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
             uuid = approvedStructureElement.getUuid();
 
             // validate delete
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setType(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.DEVICEGROUP);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setType(Type.SYSTEM);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setUuid(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setUuid(uuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setParent(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setParent(systemGroupUuid);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setName(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setName("name");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setMnemonic(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setMnemonic("Cd");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setDescription(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setDescription("description");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
 
             structureElement.setComment(null);
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBooleanMessageNotEmpty(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.FALSE);
 
             structureElement.setComment("comment");
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
         } catch (Exception e) {
             fail();
         }
@@ -1048,9 +787,6 @@ public class StructuresSystemIT {
         //     create, approve in order to delete, approve
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1061,42 +797,25 @@ public class StructuresSystemIT {
                     "name", "Da", "Sg-Da", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete approve check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE,  Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
 
             // delete
             structureElement.setDeleted(Boolean.TRUE);
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.TRUE);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateapprove", "[" + mapper.writeValueAsString(approvedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.APPROVE, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1121,9 +840,6 @@ public class StructuresSystemIT {
         //     create, approve in order to delete, cancel
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement          = null;
             StructureElement deletedStructureElement   = null;
             StructureElement approvedStructureElement  = null;
@@ -1135,41 +851,25 @@ public class StructuresSystemIT {
                     "name", "Dc", "Sg-Dc", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment update delete check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatedelete", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.TRUE);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
+            structureElement = cancelledStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatecancel", "[" + mapper.writeValueAsString(cancelledStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.CANCEL, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1194,9 +894,6 @@ public class StructuresSystemIT {
         //     create, approve in order to delete, reject
 
         try {
-            ObjectMapper mapper = new ObjectMapper();
-            String[] response = null;
-
             StructureElement structureElement         = null;
             StructureElement deletedStructureElement  = null;
             StructureElement approvedStructureElement = null;
@@ -1208,41 +905,25 @@ public class StructuresSystemIT {
                     "name", "Dr", "Sg-Dr", 2,
                     "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                     null, "test who", "test comment");
-            approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
             structureElement = approvedStructureElement;
 
             structureElement.setComment("comment delete reject check");
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validateupdate", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.DELETE, Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
 
             // delete
-            deletedStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+            deletedStructureElement = ITUtilStructureElement.assertDelete(structureElement);
             structureElement = deletedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.TRUE);
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.TRUE);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
-
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(structureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
+            structureElement = rejectedStructureElement;
 
-            response = ITUtil.runShellCommand(ITUtil.curlGetPathJson(AuthorizationChoice.NONE, EndpointChoice.STRUCTURES, "/validatereject", "[" + mapper.writeValueAsString(rejectedStructureElement) + "]"));
-            ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
-            ITUtil.assertEqualsResponseBoolean(mapper.readValue(response[1], ResponseBooleanList.class), Boolean.FALSE);
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
+            ITUtilStructureElement.assertValidate(structureElement, StructureChoice.REJECT, Boolean.FALSE);
         } catch (Exception e) {
             fail();
         }
@@ -1277,7 +958,7 @@ public class StructuresSystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1311,42 +992,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1354,7 +1035,7 @@ public class StructuresSystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // approve
-            approvedStructureElement = ITUtilNameStructureElement.assertApprove(structureElement);
+            approvedStructureElement = ITUtilStructureElement.assertApprove(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM");
@@ -1387,42 +1068,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rsha");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + approvedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1464,7 +1145,7 @@ public class StructuresSystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1498,42 +1179,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1541,7 +1222,7 @@ public class StructuresSystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // cancel
-            cancelledStructureElement = ITUtilNameStructureElement.assertCancel(structureElement);
+            cancelledStructureElement = ITUtilStructureElement.assertCancel(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM");
@@ -1574,42 +1255,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rshc");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + cancelledStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1651,7 +1332,7 @@ public class StructuresSystemIT {
                   null, "test who", "comment");
 
             // create
-            createdStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement = ITUtilStructureElement.assertCreate(structureElement);
             structureElement = createdStructureElement;
 
             // read (1)
@@ -1685,42 +1366,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLengthOne(responsePageStructureElements);
+            ITUtilStructureElement.assertContentLengthOne(responsePageStructureElements);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + createdStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1728,7 +1409,7 @@ public class StructuresSystemIT {
             assertTrue(responsePageStructureElements.getListSize() >= 1);
 
             // reject
-            rejectedStructureElement = ITUtilNameStructureElement.assertReject(structureElement);
+            rejectedStructureElement = ITUtilStructureElement.assertReject(structureElement);
 
             // read (2)
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM");
@@ -1761,42 +1442,42 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 1);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 1);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonic/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/mnemonicpath/Sg-Rshr");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/history/" + rejectedStructureElement.getUuid().toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
@@ -1834,7 +1515,7 @@ public class StructuresSystemIT {
                 "name", "AA1", "Sg-AA1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         uuid = responseStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -1842,133 +1523,133 @@ public class StructuresSystemIT {
                 "name", "AA2", "Sg-AA2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AA3", "Sg-AA3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AA4", "Sg-AA4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AA5", "Sg-AA5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AB1", "Sg-AB1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AB2", "Sg-AB2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AB3", "Sg-AB3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AB4", "Sg-AB4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AB5", "Sg-AB5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateCancel(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateCancel(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AC1", "Sg-AC1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AC2", "Sg-AC2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AC3", "Sg-AC3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AC4", "Sg-AC4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AC5", "Sg-AC5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AD1", "Sg-AD1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AD2", "Sg-AD2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AD3", "Sg-AD3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AD4", "Sg-AD4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AD5", "Sg-AD5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreate(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreate(structureElement);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
@@ -1980,190 +1661,190 @@ public class StructuresSystemIT {
                 "name", "AE1", "Sg-AE1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AE2", "Sg-AE2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AE3", "Sg-AE3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AE4", "Sg-AE4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AE5", "Sg-AE5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description2);
         structureElement.setComment(comment2);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDescription(description3);
         structureElement.setComment(comment3);
-        responseStructureElement = ITUtilNameStructureElement.assertUpdateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertUpdateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteReject(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteReject(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AF1", "Sg-AF1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AF2", "Sg-AF2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AF3", "Sg-AF3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AF4", "Sg-AF4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AF5", "Sg-AF5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDeleteApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDeleteApprove(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AG1", "Sg-AG1", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AG2", "Sg-AG2", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AG3", "Sg-AG3", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AG4", "Sg-AG4", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         structureElement = new StructureElement(
                 Type.SYSTEM, null, systemGroupUuid,
                 "name", "AG5", "Sg-AG5", 2,
                 "description", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "test comment");
-        responseStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         structureElement = responseStructureElement;
         structureElement.setDeleted(Boolean.FALSE);
-        responseStructureElement = ITUtilNameStructureElement.assertDelete(structureElement);
+        responseStructureElement = ITUtilStructureElement.assertDelete(structureElement);
 
         // 60 system entries
 
@@ -2180,99 +1861,99 @@ public class StructuresSystemIT {
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 45);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 45);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 20, not 35
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             // 30, not 45
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 30);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 30);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=false&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 20);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 20);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 15);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 15);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&statuses=PENDING&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&statuses=CANCELLED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&statuses=REJECTED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 5);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 5);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/SYSTEM?deleted=true&statuses=PENDING&statuses=APPROVED&queryFields=MNEMONIC&queryValues=A__");
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 10);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 10);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/SYSTEM/" + uuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
             responsePageStructureElements = mapper.readValue(response[1], ResponsePageStructureElements.class);
-            ITUtilNameStructureElement.assertContentLength(responsePageStructureElements, 0);
+            ITUtilStructureElement.assertContentLength(responsePageStructureElements, 0);
 
             response = ITUtil.doGetJson(ITUtil.HTTP_IP_PORT_NAMING_API_V1_STRUCTURES + "/children/SYSTEMGROUP/" + systemGroupUuid.toString());
             ITUtil.assertResponseLength2Code(response, HttpURLConnection.HTTP_OK);
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 ca93f5fa..68c23454 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
@@ -24,11 +24,13 @@ import java.util.UUID;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.openepics.names.docker.ITUtil;
-import org.openepics.names.docker.ITUtilNameStructureElement;
+import org.openepics.names.docker.ITUtilNameElement;
+import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.NameElement;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
+import org.openepics.names.util.EnumUtil.NameChoice;
 import org.testcontainers.containers.DockerComposeContainer;
 import org.testcontainers.containers.wait.strategy.Wait;
 import org.testcontainers.junit.jupiter.Container;
@@ -139,7 +141,7 @@ public class NamesInstanceIndexIT {
                 "Accelerator", "Acc", "Acc", 1,
                 "The ESS Linear Accelerator", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "approved by alfio");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemGroupAcc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -147,7 +149,7 @@ public class NamesInstanceIndexIT {
                 "Radio Frequency Quadrupole", "RFQ", "Acc-RFQ", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemRFQ = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -155,7 +157,7 @@ public class NamesInstanceIndexIT {
                 "01 Phase Reference Line", "010PRL", "Acc-RFQ-010PRL", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystem010PRL = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -163,7 +165,7 @@ public class NamesInstanceIndexIT {
                 "RFQ-010", "010", "Acc-RFQ-010", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystem010 = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -171,7 +173,7 @@ public class NamesInstanceIndexIT {
                 "Power switch board 01", "N1U1", "Acc-RFQ-N1U1", 3,
                 "Electrical power cabinets", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "Approved by Daniel Piso");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         subsystemN1U1 = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -181,7 +183,7 @@ public class NamesInstanceIndexIT {
                 "Cryogenics", "Cryo", "Cryo", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineCryo = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -189,7 +191,7 @@ public class NamesInstanceIndexIT {
                 "Electromagnetic Resonators", "EMR", "EMR", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -197,7 +199,7 @@ public class NamesInstanceIndexIT {
                 "Heating, Cooling and Air Conditioning", "HVAC", "HVAC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineHVAC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -205,7 +207,7 @@ public class NamesInstanceIndexIT {
                 "General Process Control", "Proc", "Proc", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineProc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -213,7 +215,7 @@ public class NamesInstanceIndexIT {
                 "Software Controllers", "SC", "SC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineSC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -221,7 +223,7 @@ public class NamesInstanceIndexIT {
                 "Vacuum", "Vac", "Vac", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineVac = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -229,7 +231,7 @@ public class NamesInstanceIndexIT {
                 "Water Cooling", "WtrC", "WtrC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineWtrC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -237,7 +239,7 @@ public class NamesInstanceIndexIT {
                 "Beam Magnets and Deflectors", "BMD", "BMD", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineBMD = approvedStructureElement.getUuid();
 
 
@@ -248,7 +250,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "Cryo", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupCryo = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -256,7 +258,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "EMR", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -264,7 +266,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "HVAC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupHVAC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -272,7 +274,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "Proc", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupProc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -280,7 +282,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "SC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupSC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -288,7 +290,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "Vac", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupVac = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -296,7 +298,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "WtrC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupWtrC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -304,7 +306,7 @@ public class NamesInstanceIndexIT {
                 "empty", null, "BMD", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupBMD = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -314,7 +316,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "Cryo-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Cryo_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -322,7 +324,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "Cryo-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Cryo_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -330,7 +332,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "Cryo-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Cryo_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -338,7 +340,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "Cryo-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Cryo_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -348,7 +350,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "EMR-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_EMR_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -356,7 +358,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "EMR-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_EMR_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -364,7 +366,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "EMR-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_EMR_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -372,7 +374,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "EMR-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_EMR_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -382,7 +384,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "HVAC-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_HVAC_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -390,7 +392,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "HVAC-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_HVAC_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -398,7 +400,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "HVAC-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_HVAC_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -406,7 +408,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "HVAC-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_HVAC_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -416,7 +418,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "Proc-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Proc_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -424,7 +426,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "Proc-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Proc_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -432,7 +434,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "Proc-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Proc_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -440,7 +442,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "Proc-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Proc_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -450,7 +452,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "SC-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_SC_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -458,7 +460,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "SC-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_SC_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -466,7 +468,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "SC-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_SC_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -474,7 +476,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "SC-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_SC_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -484,7 +486,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "Vac-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Vac_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -492,7 +494,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "Vac-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Vac_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -500,7 +502,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "Vac-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Vac_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -508,7 +510,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "Vac-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_Vac_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -518,7 +520,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "WtrC-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_WtrC_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -526,7 +528,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "WtrC-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_WtrC_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -534,7 +536,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "WtrC-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_WtrC_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -542,7 +544,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "WtrC-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_WtrC_TT = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -552,7 +554,7 @@ public class NamesInstanceIndexIT {
                 "Flow Switch", "FS", "BMD-FS", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_BMD_FS = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -560,7 +562,7 @@ public class NamesInstanceIndexIT {
                 "Input Output Controller", "IOC", "BMD-IOC", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_BMD_IOC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -568,7 +570,7 @@ public class NamesInstanceIndexIT {
                 "RF Antenna", "RFA", "BMD-RFA", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_BMD_RFA = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -576,7 +578,7 @@ public class NamesInstanceIndexIT {
                 "Temperature Transmitter", "TT", "BMD-TT", 3,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceType_BMD_TT = approvedStructureElement.getUuid();
     }
 
@@ -602,121 +604,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_Cryo_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_Cryo_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Cryo-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Cryo-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -741,121 +743,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_EMR_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_EMR_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:EMR-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:EMR-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -880,121 +882,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_HVAC_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_HVAC_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:HVAC-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:HVAC-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1019,121 +1021,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_Proc_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_Proc_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Proc-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Proc-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1158,121 +1160,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_SC_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000a",       "000a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ab",      "000ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000abc",     "000abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123a",       "123a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ab",      "123ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123abc",     "123abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_SC_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:SC-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:SC-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1297,121 +1299,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_Vac_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_Vac_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:Vac-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:Vac-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1436,121 +1438,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_WtrC_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_WtrC_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12",         "12",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1234",       "1234",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000a",       "000a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ab",      "000ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000abc",     "000abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123a",       "123a",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ab",      "123ab",     Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123abc",     "123abc",    Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-01",         "01",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0001",       "0001",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-0110",       "0110",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-10",         "10",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-1000",       "1000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:WtrC-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-12",         "12",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-1234",       "1234",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000a",       "000a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000ab",      "000ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000abc",     "000abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123a",       "123a",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123ab",      "123ab",     Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123abc",     "123abc",    Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-1",          "1",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-01",         "01",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-0001",       "0001",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-0110",       "0110",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-10",         "10",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-1000",       "1000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:WtrC-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
   @Test
@@ -1575,121 +1577,121 @@ public class NamesInstanceIndexIT {
 
       nameElement.setDevicetype(deviceType_BMD_IOC);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12",         "12",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1234",       "1234",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000a",       "000a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ab",      "000ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000abc",     "000abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123a",       "123a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ab",      "123ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123abc",     "123abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-01",         "01",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0001",       "0001",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-0110",       "0110",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-10",         "10",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-1000",       "1000",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-IOC-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-12",         "12",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-1234",       "1234",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-1",          "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-01",         "01",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-0001",       "0001",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-0110",       "0110",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-10",         "10",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-1000",       "1000",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-IOC-a!",         "a!",        Boolean.FALSE);
 
       nameElement.setDevicetype(deviceType_BMD_RFA);
 
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-051",        "051",       Boolean.TRUE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0",          "0",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00",         "00",        Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000",        "000",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0000",       "0000",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00000",      "00000",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000000",     "000000",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0000000",    "0000000",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-00000000",   "00000000",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000000000",  "000000000", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12",         "12",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123",        "123",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1234",       "1234",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12345",      "12345",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123456",     "123456",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1234567",    "1234567",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-12345678",   "12345678",  Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123456789",  "123456789", Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000a",       "000a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ab",      "000ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000abc",     "000abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000abcd",    "000abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000A",       "000A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000AB",      "000AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ABC",     "000ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123a",       "123a",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ab",      "123ab",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123abc",     "123abc",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123abcd",    "123abcd",   Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123A",       "123A",      Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123AB",      "123AB",     Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ABC",     "123ABC",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-01",         "01",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-001",        "001",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0001",       "0001",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-0110",       "0110",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-10",         "10",        Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-100",        "100",       Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-1000",       "1000",      Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-10001",      "10001",     Boolean.FALSE);
-
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA",            "",          Boolean.TRUE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA ",           " ",         Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-Idx",        "Idx",       Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-abcdef",     "abcdef",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-abc123",     "abc123",    Boolean.FALSE);
-      ITUtilNameStructureElement.assertValidateCreate(nameElement, "RFQ-010PRL:BMD-RFA-a!",         "a!",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-051",        "051",       Boolean.TRUE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-0",          "0",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-00",         "00",        Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000",        "000",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-0000",       "0000",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-00000",      "00000",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000000",     "000000",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-0000000",    "0000000",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-00000000",   "00000000",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000000000",  "000000000", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-12",         "12",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123",        "123",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-1234",       "1234",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-12345",      "12345",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123456",     "123456",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-1234567",    "1234567",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-12345678",   "12345678",  Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123456789",  "123456789", Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000a",       "000a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000ab",      "000ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000abc",     "000abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000abcd",    "000abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000A",       "000A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000AB",      "000AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000ABC",     "000ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-000ABCD",    "000ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123a",       "123a",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123ab",      "123ab",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123abc",     "123abc",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123abcd",    "123abcd",   Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123A",       "123A",      Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123AB",      "123AB",     Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123ABC",     "123ABC",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-123ABCD",    "123ABCD",   Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-1",          "1",         Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-01",         "01",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-001",        "001",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-0001",       "0001",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-0110",       "0110",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-10",         "10",        Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-100",        "100",       Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-1000",       "1000",      Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-10001",      "10001",     Boolean.FALSE);
+
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA",            "",          Boolean.TRUE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA ",           " ",         Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-Idx",        "Idx",       Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-abcdef",     "abcdef",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-abc123",     "abc123",    Boolean.FALSE);
+      ITUtilNameElement.assertValidate(nameElement, NameChoice.CREATE, "RFQ-010PRL:BMD-RFA-a!",         "a!",        Boolean.FALSE);
   }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresCreateLevel3IT.java b/src/test/java/org/openepics/names/docker/complex/StructuresCreateLevel3IT.java
index 50a0aee2..6a85029e 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresCreateLevel3IT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresCreateLevel3IT.java
@@ -27,7 +27,7 @@ import java.util.UUID;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.openepics.names.docker.ITUtil;
-import org.openepics.names.docker.ITUtilNameStructureElement;
+import org.openepics.names.docker.ITUtilStructureElement;
 import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.StructureElement;
 import org.openepics.names.rest.beans.Type;
@@ -133,7 +133,7 @@ public class StructuresCreateLevel3IT {
                 "Accelerator", "Acc", "Acc", 1,
                 "The ESS Linear Accelerator", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "approved by alfio");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemGroupAcc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -141,7 +141,7 @@ public class StructuresCreateLevel3IT {
                 "Radio Frequency Quadrupole", "RFQ", "Acc-RFQ", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         systemRFQ = approvedStructureElement.getUuid();
 
         // ----------------------------------------------------------------------------------------------------
@@ -151,7 +151,7 @@ public class StructuresCreateLevel3IT {
                 "Cryogenics", "Cryo", "Cryo", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineCryo = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -159,7 +159,7 @@ public class StructuresCreateLevel3IT {
                 "Electromagnetic Resonators", "EMR", "EMR", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -167,7 +167,7 @@ public class StructuresCreateLevel3IT {
                 "Heating, Cooling and Air Conditioning", "HVAC", "HVAC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineHVAC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -175,7 +175,7 @@ public class StructuresCreateLevel3IT {
                 "General Process Control", "Proc", "Proc", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineProc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -183,7 +183,7 @@ public class StructuresCreateLevel3IT {
                 "Software Controllers", "SC", "SC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineSC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -191,7 +191,7 @@ public class StructuresCreateLevel3IT {
                 "Vacuum", "Vac", "Vac", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineVac = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -199,7 +199,7 @@ public class StructuresCreateLevel3IT {
                 "Water Cooling", "WtrC", "WtrC", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineWtrC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -207,7 +207,7 @@ public class StructuresCreateLevel3IT {
                 "Beam Magnets and Deflectors", "BMD", "BMD", 1,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         disciplineBMD = approvedStructureElement.getUuid();
 
 
@@ -218,7 +218,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "Cryo", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupCryo = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -226,7 +226,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "EMR", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupEMR = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -234,7 +234,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "HVAC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupHVAC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -242,7 +242,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "Proc", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupProc = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -250,7 +250,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "SC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupSC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -258,7 +258,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "Vac", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupVac = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -266,7 +266,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "WtrC", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupWtrC = approvedStructureElement.getUuid();
 
         structureElement = new StructureElement(
@@ -274,7 +274,7 @@ public class StructuresCreateLevel3IT {
                 "empty", null, "BMD", 2,
                 "empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
                 null, "test who", "empty");
-        approvedStructureElement = ITUtilNameStructureElement.assertCreateApprove(structureElement);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
         deviceGroupBMD = approvedStructureElement.getUuid();
     }
 
@@ -306,29 +306,29 @@ public class StructuresCreateLevel3IT {
         			"01 Phase Reference Line", "010PRL", "Acc-RFQ-010PRL", 3,
         			"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
         			null, "test who", "Approved by Daniel Piso");
-        	createdStructureElement_010PRL = ITUtilNameStructureElement.assertCreate(structureElement);
+        	createdStructureElement_010PRL = ITUtilStructureElement.assertCreate(structureElement);
 
         	structureElement = new StructureElement(
         			Type.SUBSYSTEM, null, systemRFQ,
         			"RFQ-010", "010", "Acc-RFQ-010", 3,
         			"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
         			null, "test who", "Approved by Daniel Piso");
-        	createdStructureElement_010 = ITUtilNameStructureElement.assertCreate(structureElement);
+        	createdStructureElement_010 = ITUtilStructureElement.assertCreate(structureElement);
 
         	structureElement = new StructureElement(
         			Type.SUBSYSTEM, null, systemRFQ,
         			"Power switch board 01", "N1U1", "Acc-RFQ-N1U1", 3,
         			"Electrical power cabinets", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
         			null, "test who", "Approved by Daniel Piso");
-        	createdStructureElement_N1U1 = ITUtilNameStructureElement.assertCreate(structureElement);
+        	createdStructureElement_N1U1 = ITUtilStructureElement.assertCreate(structureElement);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_010PRL);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_010PRL);
         	subsystem010PRL = approvedStructureElement.getUuid();
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_010);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_010);
         	subsystem010 = approvedStructureElement.getUuid();
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_N1U1);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_N1U1);
         	subsystemN1U1 = approvedStructureElement.getUuid();
 
         	assertNotNull(subsystem010PRL);
@@ -407,28 +407,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "Cryo-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Cryo_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Cryo_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupCryo,
             		"Input Output Controller", "IOC", "Cryo-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Cryo_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Cryo_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupCryo,
             		"RF Antenna", "RFA", "Cryo-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Cryo_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Cryo_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupCryo,
             		"Temperature Transmitter", "TT", "Cryo-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Cryo_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Cryo_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -437,28 +437,28 @@ public class StructuresCreateLevel3IT {
             		"Input Output Controller", "IOC", "EMR-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_EMR_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_EMR_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupEMR,
             		"Flow Switch", "FS", "EMR-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_EMR_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_EMR_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupEMR,
             		"RF Antenna", "RFA", "EMR-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_EMR_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_EMR_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupEMR,
             		"Temperature Transmitter", "TT", "EMR-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_EMR_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_EMR_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -467,28 +467,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "HVAC-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_HVAC_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_HVAC_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupHVAC,
             		"Input Output Controller", "IOC", "HVAC-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_HVAC_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_HVAC_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupHVAC,
             		"RF Antenna", "RFA", "HVAC-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_HVAC_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_HVAC_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupHVAC,
             		"Temperature Transmitter", "TT", "HVAC-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_HVAC_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_HVAC_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -497,28 +497,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "Proc-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Proc_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Proc_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupProc,
             		"Input Output Controller", "IOC", "Proc-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Proc_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Proc_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupProc,
             		"RF Antenna", "RFA", "Proc-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Proc_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Proc_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupProc,
             		"Temperature Transmitter", "TT", "Proc-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Proc_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Proc_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -527,28 +527,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "SC-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_SC_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_SC_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupSC,
             		"Input Output Controller", "IOC", "SC-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_SC_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_SC_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupSC,
             		"RF Antenna", "RFA", "SC-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_SC_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_SC_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupSC,
             		"Temperature Transmitter", "TT", "SC-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_SC_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_SC_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -557,28 +557,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "Vac-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Vac_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Vac_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupVac,
             		"Input Output Controller", "IOC", "Vac-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Vac_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Vac_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupVac,
             		"RF Antenna", "RFA", "Vac-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Vac_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Vac_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupVac,
             		"Temperature Transmitter", "TT", "Vac-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_Vac_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_Vac_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -587,28 +587,28 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "WtrC-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_WtrC_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_WtrC_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupWtrC,
             		"Input Output Controller", "IOC", "WtrC-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_WtrC_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_WtrC_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupWtrC,
             		"RF Antenna", "RFA", "WtrC-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_WtrC_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_WtrC_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupWtrC,
             		"Temperature Transmitter", "TT", "WtrC-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_WtrC_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_WtrC_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
@@ -617,38 +617,38 @@ public class StructuresCreateLevel3IT {
             		"Flow Switch", "FS", "BMD-FS", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_BMD_FS = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_BMD_FS = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupBMD,
             		"Input Output Controller", "IOC", "BMD-IOC", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_BMD_IOC = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_BMD_IOC = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupBMD,
             		"RF Antenna", "RFA", "BMD-RFA", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_BMD_RFA = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_BMD_RFA = ITUtilStructureElement.assertCreate(structureElement);
 
             structureElement = new StructureElement(
             		Type.DEVICETYPE, null, deviceGroupBMD,
             		"Temperature Transmitter", "TT", "BMD-TT", 3,
             		"empty", Status.PENDING, Boolean.FALSE, Boolean.FALSE,
             		null, "test who", "empty");
-            createdStructureElement_BMD_TT = ITUtilNameStructureElement.assertCreate(structureElement);
+            createdStructureElement_BMD_TT = ITUtilStructureElement.assertCreate(structureElement);
 
             // ----------------------------------------------------------------------------------------------------
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Cryo_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Cryo_FS);
         	deviceType_Cryo_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Cryo_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Cryo_IOC);
         	deviceType_Cryo_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Cryo_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Cryo_RFA);
         	deviceType_Cryo_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Cryo_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Cryo_TT);
         	deviceType_Cryo_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_Cryo_FS);
@@ -656,13 +656,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_Cryo_RFA);
         	assertNotNull(deviceType_Cryo_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_EMR_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_EMR_FS);
         	deviceType_EMR_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_EMR_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_EMR_IOC);
         	deviceType_EMR_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_EMR_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_EMR_RFA);
         	deviceType_EMR_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_EMR_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_EMR_TT);
         	deviceType_EMR_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_EMR_FS);
@@ -670,13 +670,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_EMR_RFA);
         	assertNotNull(deviceType_EMR_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_HVAC_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_HVAC_FS);
         	deviceType_HVAC_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_HVAC_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_HVAC_IOC);
         	deviceType_HVAC_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_HVAC_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_HVAC_RFA);
         	deviceType_HVAC_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_HVAC_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_HVAC_TT);
         	deviceType_HVAC_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_HVAC_FS);
@@ -684,13 +684,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_HVAC_RFA);
         	assertNotNull(deviceType_HVAC_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Proc_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Proc_FS);
         	deviceType_Proc_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Proc_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Proc_IOC);
         	deviceType_Proc_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Proc_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Proc_RFA);
         	deviceType_Proc_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Proc_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Proc_TT);
         	deviceType_Proc_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_Proc_FS);
@@ -698,13 +698,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_Proc_RFA);
         	assertNotNull(deviceType_Proc_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_SC_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_SC_FS);
         	deviceType_SC_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_SC_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_SC_IOC);
         	deviceType_SC_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_SC_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_SC_RFA);
         	deviceType_SC_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_SC_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_SC_TT);
         	deviceType_SC_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_SC_FS);
@@ -712,13 +712,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_SC_RFA);
         	assertNotNull(deviceType_SC_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Vac_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Vac_FS);
         	deviceType_Vac_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Vac_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Vac_IOC);
         	deviceType_Vac_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Vac_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Vac_RFA);
         	deviceType_Vac_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_Vac_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_Vac_TT);
         	deviceType_Vac_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_Vac_FS);
@@ -726,13 +726,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_Vac_RFA);
         	assertNotNull(deviceType_Vac_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_WtrC_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_WtrC_FS);
         	deviceType_WtrC_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_WtrC_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_WtrC_IOC);
         	deviceType_WtrC_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_WtrC_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_WtrC_RFA);
         	deviceType_WtrC_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_WtrC_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_WtrC_TT);
         	deviceType_WtrC_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_WtrC_FS);
@@ -740,13 +740,13 @@ public class StructuresCreateLevel3IT {
         	assertNotNull(deviceType_WtrC_RFA);
         	assertNotNull(deviceType_WtrC_TT);
 
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_BMD_FS);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_BMD_FS);
         	deviceType_BMD_FS = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_BMD_IOC);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_BMD_IOC);
         	deviceType_BMD_IOC = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_BMD_RFA);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_BMD_RFA);
         	deviceType_BMD_RFA = approvedStructureElement.getUuid();
-        	approvedStructureElement = ITUtilNameStructureElement.assertApprove(createdStructureElement_BMD_TT);
+        	approvedStructureElement = ITUtilStructureElement.assertApprove(createdStructureElement_BMD_TT);
         	deviceType_BMD_TT = approvedStructureElement.getUuid();
 
         	assertNotNull(deviceType_BMD_FS);
-- 
GitLab