diff --git a/docker-compose-integrationtest.yml b/docker-compose-integrationtest.yml
index 844c43a9ffe88e70113f12d56de8054abb75b14d..9125770c2b27a127475511b3fcc0b50c88892a01 100644
--- a/docker-compose-integrationtest.yml
+++ b/docker-compose-integrationtest.yml
@@ -47,6 +47,7 @@ services:
       - ./src/main/resources/db/migration/V2__Commit_Msg_to_Device.sql:/docker-entrypoint-initdb.d/V2__Commit_Msg_to_Device.sql
       - ./src/main/resources/db/migration/V3__Notification_CC_List.sql:/docker-entrypoint-initdb.d/V3__Notification_CC_List.sql
       - ./src/main/resources/db/migration/V4__Schema_data_migration.sql:/docker-entrypoint-initdb.d/V4__Schema_data_migration.sql
+      - ./src/main/resources/db/migration/V5.2__Data_transformation_status_deleted.sql:/docker-entrypoint-initdb.d/V5.2__Data_transformation_status_deleted.sql
 
 volumes:
   naming-data:
diff --git a/docs/about/naming_rest_api_brief_introduction.docx b/docs/about/naming_rest_api_brief_introduction.docx
index beb50b56371cff8bacfecebbcc8af86fbbfb8fc0..f0fea57cdce32cfe454227409c601e8060cc97f3 100644
Binary files a/docs/about/naming_rest_api_brief_introduction.docx and b/docs/about/naming_rest_api_brief_introduction.docx differ
diff --git a/docs/about/naming_rest_api_brief_introduction.pdf b/docs/about/naming_rest_api_brief_introduction.pdf
index 054e86fde272b2076949c614d9d72b8ff04c8f9f..5edc1bc49af1aaef32afbceb136e3796cd18bf8c 100644
Binary files a/docs/about/naming_rest_api_brief_introduction.pdf and b/docs/about/naming_rest_api_brief_introduction.pdf differ
diff --git a/docs/about/naming_rest_api_cheat_sheet.pdf b/docs/about/naming_rest_api_cheat_sheet.pdf
index 28ec42d80e47d239757ceebfedb3d4b387a19b8e..81b692bb4c3b790166199789aa9f8bfce540b75b 100644
Binary files a/docs/about/naming_rest_api_cheat_sheet.pdf and b/docs/about/naming_rest_api_cheat_sheet.pdf differ
diff --git a/docs/about/naming_rest_api_cheat_sheet.pptx b/docs/about/naming_rest_api_cheat_sheet.pptx
index a9a8024f95a847e58f3d09bafa9e8f8542006e87..8a9c8fa594dc6a38467474a1f869dd70d327e029 100644
Binary files a/docs/about/naming_rest_api_cheat_sheet.pptx and b/docs/about/naming_rest_api_cheat_sheet.pptx differ
diff --git a/docs/about/naming_rest_api_excel_guide.docx b/docs/about/naming_rest_api_excel_guide.docx
index 8d2e717e580d803dd90f056ed463984da2fe99f8..1145e4371e1460ed56ed29ce135149947d9f445e 100644
Binary files a/docs/about/naming_rest_api_excel_guide.docx and b/docs/about/naming_rest_api_excel_guide.docx differ
diff --git a/docs/about/naming_rest_api_excel_guide.pdf b/docs/about/naming_rest_api_excel_guide.pdf
index 71980d08c53c4fa9a4cbc7d3cc375ad5a568a4b4..655a029d74b7cfd0c3859cca0bd823716f07c686 100644
Binary files a/docs/about/naming_rest_api_excel_guide.pdf and b/docs/about/naming_rest_api_excel_guide.pdf differ
diff --git a/docs/about/naming_rest_api_migration.docx b/docs/about/naming_rest_api_migration.docx
index 2b6a462435f1cbd7270742627cd781d8975263cb..e70dd5183457f6a3bf80fe69e6bdda73828da653 100644
Binary files a/docs/about/naming_rest_api_migration.docx and b/docs/about/naming_rest_api_migration.docx differ
diff --git a/docs/about/naming_rest_api_migration.pdf b/docs/about/naming_rest_api_migration.pdf
index 62dceedfed2d3480b7630c9ee36191417c768a4d..b812a718585810139afc1f3000c16980f97770c8 100644
Binary files a/docs/about/naming_rest_api_migration.pdf and b/docs/about/naming_rest_api_migration.pdf differ
diff --git a/docs/developer/naming_architecture_code.docx b/docs/developer/naming_architecture_code.docx
index 626d4f1570d8a728424c9c2c4f469313f41efc20..250dcaa483668efd7abf1ff0214f4e085a5c2ccb 100644
Binary files a/docs/developer/naming_architecture_code.docx and b/docs/developer/naming_architecture_code.docx differ
diff --git a/docs/developer/naming_architecture_code.pdf b/docs/developer/naming_architecture_code.pdf
index 08135f10b5465c60c7cebb789b437fbb35883aab..40fa47b623c43e8d3a906ca1e5c065a57a98d196 100644
Binary files a/docs/developer/naming_architecture_code.pdf and b/docs/developer/naming_architecture_code.pdf differ
diff --git a/docs/useful/useful.odg b/docs/useful/useful.odg
index 9db61bdb3ec6cf345952e97cbb926eb9e1ff041e..aa618b21bde4f435f52e848b85c261cac07cd654 100644
Binary files a/docs/useful/useful.odg and b/docs/useful/useful.odg differ
diff --git a/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java b/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
index f76ad2b6deada753f5a18a5cc3ff21bd9b5664bc..63b65a039f3f7d7a0cf39f844c058700754c6f49 100644
--- a/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/DeviceGroupRepository.java
@@ -56,7 +56,6 @@ public class DeviceGroupRepository {
     /**
      * Count device groups.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -68,14 +67,13 @@ public class DeviceGroupRepository {
      * @param includeHistory include history
      * @return count of device groups
      */
-    public Long countDeviceGroups(Status[] statuses, Boolean deleted,
+    public Long countDeviceGroups(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -83,7 +81,7 @@ public class DeviceGroupRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<DeviceGroup> from = cq.from(DeviceGroup.class);
 
-        cq.where(cb.and(preparePredicatesDeviceGroups(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDeviceGroups(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -94,7 +92,6 @@ public class DeviceGroupRepository {
     /**
      * Find device groups.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -105,10 +102,10 @@ public class DeviceGroupRepository {
      * @param who who
      * @return list of device groups
      */
-    public List<DeviceGroup> readDeviceGroups(Status status, Boolean deleted,
+    public List<DeviceGroup> readDeviceGroups(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readDeviceGroups(status != null ? new Status[] {status} : null, deleted,
+        return readDeviceGroups(deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -116,7 +113,6 @@ public class DeviceGroupRepository {
     /**
      * Find device groups.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -132,14 +128,13 @@ public class DeviceGroupRepository {
      * @param limit limit
      * @return list of device groups
      */
-    public List<DeviceGroup> readDeviceGroups(Status[] statuses, Boolean deleted,
+    public List<DeviceGroup> readDeviceGroups(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
         // order
@@ -151,7 +146,7 @@ public class DeviceGroupRepository {
         CriteriaQuery<DeviceGroup> cq = cb.createQuery(DeviceGroup.class);
         Root<DeviceGroup> from = cq.from(DeviceGroup.class);
 
-        cq.where(cb.and(preparePredicatesDeviceGroups(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDeviceGroups(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -180,7 +175,6 @@ public class DeviceGroupRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -192,7 +186,7 @@ public class DeviceGroupRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesDeviceGroups(CriteriaBuilder cb, CriteriaQuery cq, Root<DeviceGroup> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesDeviceGroups(CriteriaBuilder cb, CriteriaQuery cq, Root<DeviceGroup> from, Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -258,13 +252,6 @@ public class DeviceGroupRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -292,7 +279,7 @@ public class DeviceGroupRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -319,7 +306,7 @@ public class DeviceGroupRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -353,7 +340,7 @@ public class DeviceGroupRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<DeviceGroup> fromSub = sub.from(DeviceGroup.class);
-        sub.where(cb.and(preparePredicatesDeviceGroups(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDeviceGroups(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -399,7 +386,7 @@ public class DeviceGroupRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<DeviceGroup> fromSub = sub.from(DeviceGroup.class);
-        sub.where(cb.and(preparePredicatesDeviceGroups(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDeviceGroups(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java b/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
index 85691a57a753dbf10758083468307c76415ba15f..772f16f24cbe42b0e5e684d342fad85bb520de33 100644
--- a/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
+++ b/src/main/java/org/openepics/names/repository/DeviceTypeRepository.java
@@ -56,7 +56,6 @@ public class DeviceTypeRepository {
     /**
      * Count device types.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -68,14 +67,13 @@ public class DeviceTypeRepository {
      * @param includeHistory include history
      * @return count of device types
      */
-    public Long countDeviceTypes(Status[] statuses, Boolean deleted,
+    public Long countDeviceTypes(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -83,7 +81,7 @@ public class DeviceTypeRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<DeviceType> from = cq.from(DeviceType.class);
 
-        cq.where(cb.and(preparePredicatesDeviceTypes(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDeviceTypes(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -94,7 +92,6 @@ public class DeviceTypeRepository {
     /**
      * Find device types.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -105,10 +102,10 @@ public class DeviceTypeRepository {
      * @param who who
      * @return list of device types
      */
-    public List<DeviceType> readDeviceTypes(Status status, Boolean deleted,
+    public List<DeviceType> readDeviceTypes(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readDeviceTypes(status != null ? new Status[] {status} : null, deleted,
+        return readDeviceTypes(deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -116,7 +113,6 @@ public class DeviceTypeRepository {
     /**
      * Find device types.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -132,14 +128,13 @@ public class DeviceTypeRepository {
      * @param limit limit
      * @return list of device types
      */
-    public List<DeviceType> readDeviceTypes(Status[] statuses, Boolean deleted,
+    public List<DeviceType> readDeviceTypes(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
         // order
@@ -151,7 +146,7 @@ public class DeviceTypeRepository {
         CriteriaQuery<DeviceType> cq = cb.createQuery(DeviceType.class);
         Root<DeviceType> from = cq.from(DeviceType.class);
 
-        cq.where(cb.and(preparePredicatesDeviceTypes(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDeviceTypes(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -180,7 +175,6 @@ public class DeviceTypeRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -192,7 +186,7 @@ public class DeviceTypeRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesDeviceTypes(CriteriaBuilder cb, CriteriaQuery cq, Root<DeviceType> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesDeviceTypes(CriteriaBuilder cb, CriteriaQuery cq, Root<DeviceType> from, Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -258,13 +252,6 @@ public class DeviceTypeRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -292,7 +279,7 @@ public class DeviceTypeRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -319,7 +306,7 @@ public class DeviceTypeRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -353,7 +340,7 @@ public class DeviceTypeRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<DeviceType> fromSub = sub.from(DeviceType.class);
-        sub.where(cb.and(preparePredicatesDeviceTypes(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDeviceTypes(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -399,7 +386,7 @@ public class DeviceTypeRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<DeviceType> fromSub = sub.from(DeviceType.class);
-        sub.where(cb.and(preparePredicatesDeviceTypes(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDeviceTypes(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/DisciplineRepository.java b/src/main/java/org/openepics/names/repository/DisciplineRepository.java
index a7a953f868ed634032baf32c638688527b4c33cd..546de456de6b57f41ff27aeaab5a78afb7a55cf6 100644
--- a/src/main/java/org/openepics/names/repository/DisciplineRepository.java
+++ b/src/main/java/org/openepics/names/repository/DisciplineRepository.java
@@ -56,7 +56,6 @@ public class DisciplineRepository {
     /**
      * Count disciplines.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -67,14 +66,13 @@ public class DisciplineRepository {
      * @param includeHistory include history
      * @return count of disciplines
      */
-    public Long countDisciplines(Status[] statuses, Boolean deleted,
+    public Long countDisciplines(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -82,7 +80,7 @@ public class DisciplineRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<Discipline> from = cq.from(Discipline.class);
 
-        cq.where(cb.and(preparePredicatesDisciplines(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDisciplines(cb, cq, from, deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -93,7 +91,6 @@ public class DisciplineRepository {
     /**
      * Find disciplines.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -103,10 +100,10 @@ public class DisciplineRepository {
      * @param who who
      * @return list of disciplines
      */
-    public List<Discipline> readDisciplines(Status status, Boolean deleted,
+    public List<Discipline> readDisciplines(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readDisciplines(status != null ? new Status[] {status} : null, deleted,
+        return readDisciplines(deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -114,7 +111,6 @@ public class DisciplineRepository {
     /**
      * Find disciplines.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -129,14 +125,13 @@ public class DisciplineRepository {
      * @param limit limit
      * @return list of disciplines
      */
-    public List<Discipline> readDisciplines(Status[] statuses, Boolean deleted,
+    public List<Discipline> readDisciplines(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     latest, deleted
         //     queryFields, queryValues
         // order
@@ -148,7 +143,7 @@ public class DisciplineRepository {
         CriteriaQuery<Discipline> cq = cb.createQuery(Discipline.class);
         Root<Discipline> from = cq.from(Discipline.class);
 
-        cq.where(cb.and(preparePredicatesDisciplines(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesDisciplines(cb, cq, from, deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -177,7 +172,6 @@ public class DisciplineRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -188,7 +182,7 @@ public class DisciplineRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesDisciplines(CriteriaBuilder cb, CriteriaQuery cq, Root<Discipline> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesDisciplines(CriteriaBuilder cb, CriteriaQuery cq, Root<Discipline> from, Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -254,13 +248,6 @@ public class DisciplineRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -285,7 +272,7 @@ public class DisciplineRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -312,7 +299,7 @@ public class DisciplineRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -344,7 +331,7 @@ public class DisciplineRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<Discipline> fromSub = sub.from(Discipline.class);
-        sub.where(cb.and(preparePredicatesDisciplines(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDisciplines(cb, cq, fromSub, null,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -388,7 +375,7 @@ public class DisciplineRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<Discipline> fromSub = sub.from(Discipline.class);
-        sub.where(cb.and(preparePredicatesDisciplines(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesDisciplines(cb, cq, fromSub, null,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/INameRepository.java b/src/main/java/org/openepics/names/repository/INameRepository.java
index 933755b6fd33adb3699fd40e98709b8b9296f787..0358dace0d7710041a2229d5750ded76a64ee0c3 100644
--- a/src/main/java/org/openepics/names/repository/INameRepository.java
+++ b/src/main/java/org/openepics/names/repository/INameRepository.java
@@ -105,36 +105,41 @@ public interface INameRepository extends JpaRepository<Name, Long> {
 
     @Query("SELECT n FROM Name n, SystemGroup sg "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND sg.uuid = n.systemGroupUuid "
             + "AND sg.latest = true "
             + "AND sg.uuid = ?1")
-    List<Name> findLatestBySystemGroupUuid(String uuid);
+    List<Name> findLatestNotDeletedBySystemGroupUuid(String uuid);
 
     @Query("SELECT n FROM Name n, System sys "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND sys.uuid = n.systemUuid "
             + "AND sys.latest = true "
             + "AND sys.uuid = ?1")
-    List<Name> findLatestBySystemUuid(String uuid);
+    List<Name> findLatestNotDeletedBySystemUuid(String uuid);
 
     @Query("SELECT n FROM Name n, Subsystem sub, System sys "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND sub.uuid = n.subsystemUuid "
             + "AND sub.latest = true "
             + "AND sys.uuid = sub.parentUuid  "
             + "AND sys.latest = true "
             + "AND sys.uuid = ?1")
-    List<Name> findLatestBySystemUuidThroughSubsystem(String uuid);
+    List<Name> findLatestNotDeletedBySystemUuidThroughSubsystem(String uuid);
 
     @Query("SELECT n FROM Name n, Subsystem sub "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND sub.uuid = n.subsystemUuid "
             + "AND sub.latest = true "
             + "AND sub.uuid = ?1")
-    List<Name> findLatestBySubsystemUuid(String uuid);
+    List<Name> findLatestNotDeletedBySubsystemUuid(String uuid);
 
     @Query("SELECT n FROM Name n, DeviceType dt, DeviceGroup dg, Discipline di "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND dt.uuid = n.deviceTypeUuid "
             + "AND dt.latest = true "
             + "AND dg.uuid = dt.parentUuid "
@@ -142,14 +147,15 @@ public interface INameRepository extends JpaRepository<Name, Long> {
             + "AND di.uuid = dg.parentUuid "
             + "AND di.latest = true "
             + "AND di.uuid = ?1")
-    List<Name> findLatestByDisciplineUuidThroughDeviceType(String uuid);
+    List<Name> findLatestNotDeletedByDisciplineUuidThroughDeviceType(String uuid);
 
     @Query("SELECT n FROM Name n, DeviceType dt "
             + "WHERE n.latest = true "
+            + "AND n.deleted = false "
             + "AND dt.uuid = n.deviceTypeUuid "
             + "AND dt.latest = true "
             + "AND dt.uuid = ?1")
-    List<Name> findLatestByDeviceTypeUuid(String uuid);
+    List<Name> findLatestNotDeletedByDeviceTypeUuid(String uuid);
 
     // ----------------------------------------------------------------------------------------------------
 
diff --git a/src/main/java/org/openepics/names/repository/SubsystemRepository.java b/src/main/java/org/openepics/names/repository/SubsystemRepository.java
index 8683018b11fd879f1f6a4479d517a7a8a2e36578..3ad59f3daeb3fd366374bc0eb021ea6bb52bc7cf 100644
--- a/src/main/java/org/openepics/names/repository/SubsystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/SubsystemRepository.java
@@ -56,7 +56,6 @@ public class SubsystemRepository {
     /**
      * Count subsystems.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -68,14 +67,13 @@ public class SubsystemRepository {
      * @param includeHistory include history
      * @return count of subsystems
      */
-    public Long countSubsystems(Status[] statuses, Boolean deleted,
+    public Long countSubsystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -83,7 +81,7 @@ public class SubsystemRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<Subsystem> from = cq.from(Subsystem.class);
 
-        cq.where(cb.and(preparePredicatesSubsystems(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSubsystems(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -94,7 +92,6 @@ public class SubsystemRepository {
     /**
      * Find subsystems.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -105,10 +102,10 @@ public class SubsystemRepository {
      * @param who who
      * @return list of subsystems
      */
-    public List<Subsystem> readSubsystems(Status status, Boolean deleted,
+    public List<Subsystem> readSubsystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readSubsystems(status != null ? new Status[] {status} : null, deleted,
+        return readSubsystems(deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -116,7 +113,6 @@ public class SubsystemRepository {
     /**
      * Find subsystems.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -132,14 +128,13 @@ public class SubsystemRepository {
      * @param limit limit
      * @return list of subsystems
      */
-    public List<Subsystem> readSubsystems(Status[] statuses, Boolean deleted,
+    public List<Subsystem> readSubsystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
         // order
@@ -151,7 +146,7 @@ public class SubsystemRepository {
         CriteriaQuery<Subsystem> cq = cb.createQuery(Subsystem.class);
         Root<Subsystem> from = cq.from(Subsystem.class);
 
-        cq.where(cb.and(preparePredicatesSubsystems(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSubsystems(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -180,7 +175,6 @@ public class SubsystemRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -192,7 +186,7 @@ public class SubsystemRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesSubsystems(CriteriaBuilder cb, CriteriaQuery cq, Root<Subsystem> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesSubsystems(CriteriaBuilder cb, CriteriaQuery cq, Root<Subsystem> from, Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -258,13 +252,6 @@ public class SubsystemRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -292,7 +279,7 @@ public class SubsystemRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -319,7 +306,7 @@ public class SubsystemRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -353,7 +340,7 @@ public class SubsystemRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<Subsystem> fromSub = sub.from(Subsystem.class);
-        sub.where(cb.and(preparePredicatesSubsystems(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSubsystems(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -399,7 +386,7 @@ public class SubsystemRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<Subsystem> fromSub = sub.from(Subsystem.class);
-        sub.where(cb.and(preparePredicatesSubsystems(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSubsystems(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/SystemGroupRepository.java b/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
index a40f2e04748ffc71f037312f101cbfce32ba934a..53ee2440a85907838cd9157f20051ddd0fa52f82 100644
--- a/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/SystemGroupRepository.java
@@ -56,7 +56,6 @@ public class SystemGroupRepository {
     /**
      * Count system groups.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -67,12 +66,11 @@ public class SystemGroupRepository {
      * @param includeHistory include history
      * @return count of system groups
      */
-    public Long countSystemGroups(Status[] statuses, Boolean deleted,
+    public Long countSystemGroups(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -80,7 +78,7 @@ public class SystemGroupRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<SystemGroup> from = cq.from(SystemGroup.class);
 
-        cq.where(cb.and(preparePredicatesSystemGroups(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSystemGroups(cb, cq, from, deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -91,7 +89,6 @@ public class SystemGroupRepository {
     /**
      * Find system groups.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -101,10 +98,10 @@ public class SystemGroupRepository {
      * @param who who
      * @return list of system groups
      */
-    public List<SystemGroup> readSystemGroups(Status status, Boolean deleted,
+    public List<SystemGroup> readSystemGroups(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readSystemGroups(status != null ? new Status[] {status} : null, deleted,
+        return readSystemGroups(deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -112,7 +109,6 @@ public class SystemGroupRepository {
     /**
      * Find system groups.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -127,12 +123,11 @@ public class SystemGroupRepository {
      * @param limit limit
      * @return list of system groups
      */
-    public List<SystemGroup> readSystemGroups(Status[] statuses, Boolean deleted,
+    public List<SystemGroup> readSystemGroups(Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // where
-        //     statuses,
         //     deleted
         //     queryFields, queryValues
         // order
@@ -144,7 +139,7 @@ public class SystemGroupRepository {
         CriteriaQuery<SystemGroup> cq = cb.createQuery(SystemGroup.class);
         Root<SystemGroup> from = cq.from(SystemGroup.class);
 
-        cq.where(cb.and(preparePredicatesSystemGroups(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSystemGroups(cb, cq, from, deleted,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -173,7 +168,6 @@ public class SystemGroupRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param mnemonic mnemonic
@@ -184,7 +178,7 @@ public class SystemGroupRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesSystemGroups(CriteriaBuilder cb, CriteriaQuery cq, Root<SystemGroup> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesSystemGroups(CriteriaBuilder cb, CriteriaQuery cq, Root<SystemGroup> from, Boolean deleted,
             String uuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -250,13 +244,6 @@ public class SystemGroupRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -281,7 +268,7 @@ public class SystemGroupRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -308,7 +295,7 @@ public class SystemGroupRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -340,7 +327,7 @@ public class SystemGroupRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<SystemGroup> fromSub = sub.from(SystemGroup.class);
-        sub.where(cb.and(preparePredicatesSystemGroups(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSystemGroups(cb, cq, fromSub, null,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -384,7 +371,7 @@ public class SystemGroupRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<SystemGroup> fromSub = sub.from(SystemGroup.class);
-        sub.where(cb.and(preparePredicatesSystemGroups(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSystemGroups(cb, cq, fromSub, null,
                 uuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/SystemRepository.java b/src/main/java/org/openepics/names/repository/SystemRepository.java
index c0f23a84f0b3c8984ea3e0c9b284abe72039bcbd..ce1e949dad2bf8810cda262cff0e479084becffe 100644
--- a/src/main/java/org/openepics/names/repository/SystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/SystemRepository.java
@@ -56,7 +56,6 @@ public class SystemRepository {
     /**
      * Count systems.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -68,14 +67,13 @@ public class SystemRepository {
      * @param includeHistory include history
      * @return count of systems
      */
-    public Long countSystems(Status[] statuses, Boolean deleted,
+    public Long countSystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
 
@@ -83,7 +81,7 @@ public class SystemRepository {
         CriteriaQuery<Long> cq = cb.createQuery(Long.class);
         Root<System> from = cq.from(System.class);
 
-        cq.where(cb.and(preparePredicatesSystems(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSystems(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(cb.count(from));
@@ -94,7 +92,6 @@ public class SystemRepository {
     /**
      * Find systems.
      *
-     * @param status status
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -105,10 +102,10 @@ public class SystemRepository {
      * @param who who
      * @return list of systems
      */
-    public List<System> readSystems(Status status, Boolean deleted,
+    public List<System> readSystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who) {
 
-        return readSystems(status != null ? new Status[] {status} : null, deleted,
+        return readSystems(deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.FALSE, null, null, null, null);
     }
@@ -116,7 +113,6 @@ public class SystemRepository {
     /**
      * Find systems.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -132,14 +128,13 @@ public class SystemRepository {
      * @param limit limit
      * @return list of systems
      */
-    public List<System> readSystems(Status[] statuses, Boolean deleted,
+    public List<System> readSystems(Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
         // note
         //     use of function for mnemonic path
         // where
-        //     statuses
         //     deleted
         //     queryFields, queryValues
         // order
@@ -151,7 +146,7 @@ public class SystemRepository {
         CriteriaQuery<System> cq = cb.createQuery(System.class);
         Root<System> from = cq.from(System.class);
 
-        cq.where(cb.and(preparePredicatesSystems(cb, cq, from, statuses, deleted,
+        cq.where(cb.and(preparePredicatesSystems(cb, cq, from, deleted,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 includeHistory).toArray(new Predicate[0])));
         cq.select(from);
@@ -180,7 +175,6 @@ public class SystemRepository {
      * @param cb criteria builder
      * @param cq criteria query
      * @param from criteria query root
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parentUuid parent uuid
@@ -192,7 +186,7 @@ public class SystemRepository {
      * @param includeHistory include history
      * @return list of predicates
      */
-    private List<Predicate> preparePredicatesSystems(CriteriaBuilder cb, CriteriaQuery cq, Root<System> from, Status[] statuses, Boolean deleted,
+    private List<Predicate> preparePredicatesSystems(CriteriaBuilder cb, CriteriaQuery cq, Root<System> from, Boolean deleted,
             String uuid, String parentUuid, String mnemonic, String mnemonicEquivalence, String mnemonicPath, String description, String who,
             Boolean includeHistory) {
 
@@ -258,13 +252,6 @@ public class SystemRepository {
             predicates.add(predicateExclude);
         }
 
-        if (statuses != null) {
-            List<Predicate> predicatesStatus = new ArrayList<>();
-            for (Status status : statuses) {
-                predicatesStatus.add(cb.equal(from.get(NameStructure.FIELD_STATUS), status));
-            }
-            predicates.add(cb.or(predicatesStatus.toArray(new Predicate[0])));
-        }
         if (deleted != null) {
             predicates.add(cb.equal(from.get(NameStructure.FIELD_DELETED), deleted));
         }
@@ -292,7 +279,7 @@ public class SystemRepository {
             predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_DESCRIPTION), RepositoryUtil.preparePattern(description))));
         }
         if (!StringUtils.isEmpty(who)) {
-            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_REQUESTED_BY), RepositoryUtil.preparePattern(who))));
+            predicates.add(cb.and(cb.like(from.get(NameStructure.FIELD_PROCESSED_BY), RepositoryUtil.preparePattern(who))));
         }
 
         return predicates;
@@ -319,7 +306,7 @@ public class SystemRepository {
         } else if (FieldStructure.DESCRIPTION.equals(orderBy)) {
             return root.get(NameStructure.FIELD_DESCRIPTION);
         } else if (FieldStructure.WHEN.equals(orderBy)) {
-            return root.get(NameStructure.FIELD_REQUESTED);
+            return root.get(NameStructure.FIELD_PROCESSED);
         } else {
             return root.get(Structure.FIELD_MNEMONIC);
         }
@@ -353,7 +340,7 @@ public class SystemRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<System> fromSub = sub.from(System.class);
-        sub.where(cb.and(preparePredicatesSystems(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSystems(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
@@ -399,7 +386,7 @@ public class SystemRepository {
 
         Subquery<String> sub = cq.subquery(String.class);
         Root<System> fromSub = sub.from(System.class);
-        sub.where(cb.and(preparePredicatesSystems(cb, cq, fromSub, null, null,
+        sub.where(cb.and(preparePredicatesSystems(cb, cq, fromSub, null,
                 uuid, parentUuid, mnemonic, mnemonicEquivalence, mnemonicPath, description, who,
                 Boolean.TRUE).toArray(new Predicate[0])));
         sub.select(fromSub.get(NameStructure.FIELD_UUID));
diff --git a/src/main/java/org/openepics/names/repository/model/DeviceGroup.java b/src/main/java/org/openepics/names/repository/model/DeviceGroup.java
index 56e0c20f6819acf0843ffb6fed1873aea62ef2e2..a75133e299fdad8579c56d870399d8f17c744bb5 100644
--- a/src/main/java/org/openepics/names/repository/model/DeviceGroup.java
+++ b/src/main/java/org/openepics/names/repository/model/DeviceGroup.java
@@ -67,17 +67,17 @@ public class DeviceGroup extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public DeviceGroup(UUID uuid, UUID parentUuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
         this.parentUuid = parentUuid != null ? parentUuid.toString() : null;
     }
 
diff --git a/src/main/java/org/openepics/names/repository/model/DeviceType.java b/src/main/java/org/openepics/names/repository/model/DeviceType.java
index 266786b085885a1c6c6163e2b955f44c4e4709a6..a7ca0ba4f126b3b88d56b6d9da53759e07f13f04 100644
--- a/src/main/java/org/openepics/names/repository/model/DeviceType.java
+++ b/src/main/java/org/openepics/names/repository/model/DeviceType.java
@@ -67,17 +67,17 @@ public class DeviceType extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public DeviceType(UUID uuid, UUID parentUuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
         this.parentUuid = parentUuid != null ? parentUuid.toString() : null;
     }
 
diff --git a/src/main/java/org/openepics/names/repository/model/Discipline.java b/src/main/java/org/openepics/names/repository/model/Discipline.java
index 23a0eafc6526336a0921b7bd76a038fa5811922e..8d399c9fcc0e6d46d9a67974c465d209033e7588 100644
--- a/src/main/java/org/openepics/names/repository/model/Discipline.java
+++ b/src/main/java/org/openepics/names/repository/model/Discipline.java
@@ -58,17 +58,17 @@ public class Discipline extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public Discipline(UUID uuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
     }
 
     @Override
diff --git a/src/main/java/org/openepics/names/repository/model/Structure.java b/src/main/java/org/openepics/names/repository/model/Structure.java
index bf86987a20f2f8e214558b82413ea64a144f20dd..5834488de0d62a88ecbc28eb912bde598e8f4433 100644
--- a/src/main/java/org/openepics/names/repository/model/Structure.java
+++ b/src/main/java/org/openepics/names/repository/model/Structure.java
@@ -68,13 +68,13 @@ public class Structure extends NameStructure implements Serializable {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public Structure(UUID uuid, String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         setUuid(uuid);
         setMnemonic(mnemonic);
         setMnemonicEquivalence(mnemonicEquivalence);
@@ -83,9 +83,9 @@ public class Structure extends NameStructure implements Serializable {
         setStatus(status);
         setLatest(latest);
         setDeleted(deleted);
-        setRequested(requested);
-        setRequestedBy(requestedBy);
-        setRequestedComment(requestedComment);
+        setProcessed(processed);
+        setProcessedBy(processedBy);
+        setProcessedComment(processedComment);
     }
 
     public String getMnemonic() {
diff --git a/src/main/java/org/openepics/names/repository/model/Subsystem.java b/src/main/java/org/openepics/names/repository/model/Subsystem.java
index a7bf9bc51fee3d36f2647d098b88edf168665d04..d2c7566f9c4a26381e25971e76f289c7bc73bacd 100644
--- a/src/main/java/org/openepics/names/repository/model/Subsystem.java
+++ b/src/main/java/org/openepics/names/repository/model/Subsystem.java
@@ -67,17 +67,17 @@ public class Subsystem extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public Subsystem(UUID uuid, UUID parentUuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
         this.parentUuid = parentUuid != null ? parentUuid.toString() : null;
     }
 
diff --git a/src/main/java/org/openepics/names/repository/model/System.java b/src/main/java/org/openepics/names/repository/model/System.java
index fe23b24ed4fb8b4def127dff211a8df1b33677f0..06fdd37705cf746d4c56f0c1ea2ad8f0a2bba68a 100644
--- a/src/main/java/org/openepics/names/repository/model/System.java
+++ b/src/main/java/org/openepics/names/repository/model/System.java
@@ -67,17 +67,17 @@ public class System extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public System(UUID uuid, UUID parentUuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
         this.parentUuid = parentUuid != null ? parentUuid.toString() : null;
     }
 
diff --git a/src/main/java/org/openepics/names/repository/model/SystemGroup.java b/src/main/java/org/openepics/names/repository/model/SystemGroup.java
index 1d36fc53cbdc0f05fe9686911dc4bbd8a79fe5a4..8ffa171fc73e18e68c035f553e24d681a68d05ef 100644
--- a/src/main/java/org/openepics/names/repository/model/SystemGroup.java
+++ b/src/main/java/org/openepics/names/repository/model/SystemGroup.java
@@ -58,17 +58,17 @@ public class SystemGroup extends Structure {
      * @param status status
      * @param latest latest
      * @param deleted deleted
-     * @param requested requested
-     * @param requestedBy requested by
-     * @param requestedComment requested comment
+     * @param processed processed
+     * @param processedBy processed by
+     * @param processedComment processed comment
      */
     public SystemGroup(UUID uuid,
             String mnemonic, String mnemonicEquivalence, Integer ordering,
             String description, Status status, Boolean latest, Boolean deleted,
-            Date requested, String requestedBy, String requestedComment) {
+            Date processed, String processedBy, String processedComment) {
         super(uuid, mnemonic, mnemonicEquivalence, ordering,
                 description, status, latest, deleted,
-                requested, requestedBy, requestedComment);
+                processed, processedBy, processedComment);
     }
 
     @Override
diff --git a/src/main/java/org/openepics/names/rest/api/v1/INames.java b/src/main/java/org/openepics/names/rest/api/v1/INames.java
index 42308ac6d69bb9f436441b022184cfa29eea5e7b..ddc6d88965de367bff59262b6745a37ef91a1573 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/INames.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/INames.java
@@ -112,8 +112,8 @@ public interface INames {
                    user          - create, update, delete
                  ( administrator )
            default for read is to have lifecycle attributes unless query for specific resource or specific use case
-               status, latest, deleted
-               note - status not applicable as all entries have APPROVED status, latest handled by history
+               latest, deleted
+               note - latest handled by history
      */
 
     public static final String DEFAULT_PAGE            = "0";
diff --git a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
index 9bd727e3f72c1aeccb96583d6e278d9ce4dda12d..5a5def29dba5b2b114d0d18674e87176244aa409 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
@@ -21,7 +21,6 @@ package org.openepics.names.rest.api.v1;
 import java.util.List;
 
 import org.openepics.names.rest.beans.FieldStructure;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommandConfirm;
@@ -34,7 +33,6 @@ import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PatchMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -102,26 +100,19 @@ public interface IStructures {
            read      GET    /structures/validateCreate                        - validateStructuresCreate       hidden from Swagger UI
            read      GET    /structures/validateUpdate                        - validateStructuresUpdate       hidden from Swagger UI
            read      GET    /structures/validateDelete                        - validateStructuresDelete       hidden from Swagger UI
-           read      GET    /structures/validateApprove                       - validateStructuresApprove      hidden from Swagger UI
-           read      GET    /structures/validateCancel                        - validateStructuresCancel       hidden from Swagger UI
-           read      GET    /structures/validateReject                        - validateStructuresReject       hidden from Swagger UI
            ----------------------------------------------------------------------------------------------------
            update    PUT    /structures                                       - updateStructures
            ----------------------------------------------------------------------------------------------------
            delete    DELETE /structures                                       - deleteStructures
-           ----------------------------------------------------------------------------------------------------
-           update    PATCH  /structures/approve                               - approveStructures
-           update    PATCH  /structures/cancel                                - cancelStructures
-           update    PATCH  /structures/reject                                - rejectStructures
 
        Note
            authentication/authorization
                3 levels - no, user, administrator
                    no            - read
-                   user          - create, update, delete
-                   administrator - approve, cancel, reject
+                 ( user )
+                   administrator - create, update, delete
            default for read is to have lifecycle attributes unless query for specific resource or specific use case
-               status, latest, deleted
+               latest, deleted
                note - latest handled by history
            mnemonic path for structure includes all levels of mnemonics
      */
@@ -218,10 +209,9 @@ public interface IStructures {
     /**
      * Find valid structures (search).
      * Return list of structure elements.
-     * Use statuses (APPROVED) and deleted (false) to query for active structures.
+     * Use deleted (false) to query for active structures.
      *
      * @param type type of structure
-     * @param statuses statuses for structures
      * @param deleted if deleted structures are to be selected or not, omitted for both deleted and non-deleted structures
      * (true for deleted structures, false for non-deleted structures, omitted for both deleted and non-deleted structures)
      * @param parent parent uuid
@@ -241,7 +231,7 @@ public interface IStructures {
                           Find valid structures (search).
                           Return array of structure elements.
 
-                          Use statuses (APPROVED) and deleted (false) to query for active structures.
+                          Use deleted (false) to query for active structures.
                           """
     )
     @ApiResponses(value = {
@@ -274,7 +264,6 @@ public interface IStructures {
             produces = {"application/json"})
     public ResponsePageStructureElements readStructures(
             @Parameter(in = ParameterIn.QUERY, description = "search by type of structure") @RequestParam(required = false) Type type,
-            @Parameter(in = ParameterIn.QUERY, description = "search by statuses") @RequestParam(required = false) Status[] statuses,
             @Parameter(in = ParameterIn.QUERY, description = "if deleted structures are to be selected or not, omitted for both deleted and non-deleted structures") @RequestParam(required = false) Boolean deleted,
             @Parameter(in = ParameterIn.QUERY, description = "search by parent uuid") @RequestParam(required = false) String parent,
             @Parameter(in = ParameterIn.QUERY, description = "search by mnemonic") @RequestParam(required = false) String mnemonic,
@@ -289,7 +278,6 @@ public interface IStructures {
     /**
      * Find valid structure by uuid (exact match).
      * Return list of structure elements.
-     * Maximum number of elements will be two (PENDING, APPROVED) for given uuid.
      *
      * @param uuid uuid
      * @return list of structure elements.
@@ -299,8 +287,6 @@ public interface IStructures {
             description = """
                           Find valid structure by uuid (exact match).
                           Return list of structure elements.
-
-                          Maximum number of elements will be two (PENDING, APPROVED) for given uuid.
                           """
     )
     @ApiResponses(value = {
@@ -344,10 +330,9 @@ public interface IStructures {
     /**
      * Find valid children structures by parent uuid (exact match).
      * Return list of structure elements.
-     * Use statuses (APPROVED) and deleted (false) to query for active structures.
+     * Use deleted (false) to query for active structures.
      *
      * @param uuid uuid
-     * @param statuses statuses for structures
      * @param deleted if deleted structures are to be selected or not, omitted for both deleted and non-deleted structures
      * (true for deleted structures, false for non-deleted structures, omitted for both deleted and non-deleted structures)
      * @param orderBy order by field
@@ -362,7 +347,7 @@ public interface IStructures {
                           Find valid children structures by parent uuid (exact match).
                           Return array of structure elements.
 
-                          Use statuses (APPROVED) and deleted (false) to query for active structures.
+                          Use deleted (false) to query for active structures.
                           """
     )
     @ApiResponses(value = {
@@ -402,7 +387,6 @@ public interface IStructures {
             produces = {"application/json"})
     public ResponseEntity<ResponsePageStructureElements> readStructuresChildren(
             @Parameter(in = ParameterIn.PATH,  description = "find by uuid") @PathVariable("uuid") String uuid,
-            @Parameter(in = ParameterIn.QUERY, description = "search by statuses") @RequestParam(required = false) Status[] statuses,
             @Parameter(in = ParameterIn.QUERY, description = "if deleted structures are to be selected or not, omitted for both deleted and non-deleted structures", required = false) @RequestParam(required = false) Boolean deleted,
             @Parameter(in = ParameterIn.QUERY, description = "order by field") @RequestParam(required = false) FieldStructure orderBy,
             @Parameter(in = ParameterIn.QUERY, description = "sort order, ascending or descending") @RequestParam(required = false) Boolean isAsc,
@@ -815,216 +799,6 @@ public interface IStructures {
                                             requiredProperties = {"uuid","type"}))))
             @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
 
-    /**
-     * Return if structures are valid to approve by list of structure elements.
-     * If structures are valid to approve, successful approve of structures can be expected.
-     *
-     * <p>
-     * Returned object has five fields (message, details, field, value, list).
-     * <ul>
-     * <li>message:   reason, if method fails</li>
-     * <li>details:   details, if method fails</li>
-     * <li>field:     field, if method fails</li>
-     * <li>value:     boolean (true/false), overall result of method</li>
-     * <li>list:      list of response objects (with fields reason, details, field, value), one for each input element</li>
-     * </ul>
-     * </p>
-     *
-     * @param structureElementCommands list of structure elements
-     * @return if list of structures is valid to approve
-     */
-    @Hidden
-    @Operation(
-            summary     = "Return if structures are valid to approve by list of structure elements",
-            description = """
-                          Return if structures are valid to approve by list of structure elements.
-                          If structures are valid to approve, successful approve of structures can be expected.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = """
-                                   OK. Response is true if all structure elements validated ok, false otherwise.
-                                   Responses contain array with result for each structure element. Message and details are available if no response is available.
-                                   """,
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = ResponseBooleanList.class))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description  = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @GetMapping(
-            value = "/validateApprove",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public ResponseEntity<ResponseBooleanList> validateStructuresApprove(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
-    /**
-     * Return if structures are valid to cancel by list of structure elements.
-     * If structures are valid to cancel, successful cancel of structures can be expected.
-     *
-     * <p>
-     * Returned object has five fields (message, details, field, value, list).
-     * <ul>
-     * <li>message:   reason, if method fails</li>
-     * <li>details:   details, if method fails</li>
-     * <li>field:     field, if method fails</li>
-     * <li>value:     boolean (true/false), overall result of method</li>
-     * <li>list:      list of response objects (with fields reason, details, field, value), one for each input element</li>
-     * </ul>
-     * </p>
-     *
-     * @param structureElementCommands list of structure elements
-     * @return if list of structures is valid to cancel
-     */
-    @Hidden
-    @Operation(
-            summary     = "Return if structures are valid to cancel by list of structure elements",
-            description = """
-                          Return if structures are valid to cancel by list of structure elements.
-                          If structures are valid to cancel, successful cancel of structures can be expected.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = """
-                                   OK. Response is true if all structure elements validated ok, false otherwise.
-                                   Responses contain array with result for each structure element. Message and details are available if no response is available.
-                                   """,
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = ResponseBooleanList.class))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description  = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @GetMapping(
-            value = "/validateCancel",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public ResponseEntity<ResponseBooleanList> validateStructuresCancel(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
-    /**
-     * Return if structures are valid to reject by list of structure elements.
-     * If structures are valid to reject, successful reject of structures can be expected.
-     *
-     * <p>
-     * Returned object has five fields (message, details, field, value, list).
-     * <ul>
-     * <li>message:   reason, if method fails</li>
-     * <li>details:   details, if method fails</li>
-     * <li>field:     field, if method fails</li>
-     * <li>value:     boolean (true/false), overall result of method</li>
-     * <li>list:      list of response objects (with fields reason, details, field, value), one for each input element</li>
-     * </ul>
-     * </p>
-     *
-     * @param structureElementCommands list of structure elements
-     * @return if list of structures is valid to reject
-     */
-    @Hidden
-    @Operation(
-            summary     = "Return if structures are valid to reject by list of structure elements",
-            description = """
-                          Return if structures are valid to reject by list of structure elements.
-                          If structures are valid to reject, successful reject of structures can be expected.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = """
-                                   OK. Response is true if all structure elements validated ok, false otherwise.
-                                   Responses contain array with result for each structure element. Message and details are available if no response is available.
-                                   """,
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = ResponseBooleanList.class))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description  = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @GetMapping(
-            value = "/validateReject",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public ResponseEntity<ResponseBooleanList> validateStructuresReject(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
     // ----------------------------------------------------------------------------------------------------
 
     /**
@@ -1173,213 +947,4 @@ public interface IStructures {
                                             requiredProperties = {"uuid","type"}))))
             @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
 
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * Approve structures (proposals) by list of structure elements.
-     * Return list of structure elements for approved structures.
-     *
-     * <p>
-     * Name is automatically created name when creation of system structure is approved.
-     * </p>
-     *
-     * @param structureElementCommands list of structure elements
-     * @return list of structure elements for approved structures
-     */
-    @Operation(
-            summary     = "Approve structures (proposals) by array of structure elements",
-            description = """
-                          Approve structures (proposals) by array of structure elements.
-                          Return array of structure elements for approved structures.
-
-                          Name is automatically created name when creation of system structure is approved.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = "OK. Return array of structure elements for approved structures.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(schema = @Schema(implementation = StructureElement.class)))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "404",
-                    description  = "Not Found. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "422",
-                    description  = "Unprocessable entity. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description  = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @PatchMapping(
-            value = "/approve",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public List<StructureElement> approveStructures(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
-    /**
-     * Cancel structures (proposals) by list of structure elements.
-     * Return list of cancelled structure elements.
-     *
-     * @param structureElementCommands list of structure elements
-     * @return list of structure elements for cancelled structures
-     */
-    @Operation(
-            summary     = "Cancel structures (proposals) by array of structure elements",
-            description = """
-                          Cancel structures (proposals) by array of structure elements.
-                          Return array of structure elements for cancelled structures.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = "OK. Return array of structure elements for cancelled structures.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(schema = @Schema(implementation = StructureElement.class)))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "404",
-                    description  = "Not Found. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "422",
-                    description  = "Unprocessable entity. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description  = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @PatchMapping(
-            value = "/cancel",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public List<StructureElement> cancelStructures(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
-    /**
-     * Reject structures (proposals) by list of structure elements.
-     * Return list of rejected structure elements.
-     *
-     * @param structureElementCommands list of structure elements
-     * @return list of structure elements for rejected structures
-     */
-    @Operation(
-            summary     = "Reject structures (proposals) by array of structure elements",
-            description = """
-                          Reject structures (proposals) by array of structure elements.
-                          Return array of structure elements for rejected structures.
-
-                          Required attributes:
-                          - uuid
-                          - type
-                          """
-    )
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = "200",
-                    description  = "OK. Return array of structure elements for rejected structures.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(schema = @Schema(implementation = StructureElement.class)))),
-            @ApiResponse(
-                    responseCode = "400",
-                    description  = "Bad request. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "404",
-                    description  = "Not Found. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "422",
-                    description  = "Unprocessable entity. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class))),
-            @ApiResponse(
-                    responseCode = "500",
-                    description = "Internal server error. Reason and information such as message, details, field are available.",
-                    content = @Content(
-                            mediaType = "application/json",
-                            schema = @Schema(implementation = Response.class)))
-    })
-    @PatchMapping(
-            value = "/reject",
-            produces = {"application/json"},
-            consumes = {"application/json"})
-    public List<StructureElement> rejectStructures(
-            @Parameter(
-                    in = ParameterIn.DEFAULT,
-                    description = "array of structure elements",
-                    required = true,
-                    content = @Content(
-                            mediaType = "application/json",
-                            array = @ArraySchema(
-                                    schema = @Schema(
-                                            implementation = StructureElementCommandConfirm.class,
-                                            requiredProperties = {"uuid","type"}))))
-            @RequestBody List<StructureElementCommandConfirm> structureElementCommands);
-
 }
diff --git a/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java b/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
index 00fe0668755a12642eab2b3efef30dbfb745f9c9..1bba0aecb0ad45d76bfc25bf42560ebb680e06d9 100644
--- a/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
+++ b/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
@@ -34,7 +34,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
  */
 @Schema(description = """
                       A collection of attributes that is used to encapsulate a command for a structure entry from client to server.
-                      It is used to create, update, delete and validate  and approve, cancel, reject a structure entry.
+                      It is used to create, update, delete and validate a structure entry.
                       """)
 public class StructureElementCommand implements Serializable {
 
diff --git a/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java b/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
index ea62b67cff479aa94959aad054d6aab627d62bd7..dc62dc85d7ce28edeec5a860610b7f7041535a0b 100644
--- a/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
+++ b/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
@@ -45,9 +45,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 @EnableAutoConfiguration
 public class HealthcheckController {
 
-    // note
-    //     global exception handler available
-    //
     // methods
     //     read      GET /healthcheck - readHealthcheck()
 
diff --git a/src/main/java/org/openepics/names/rest/controller/NamesController.java b/src/main/java/org/openepics/names/rest/controller/NamesController.java
index 0dfbcd49b7cebf7841540495ae9271a2544b95ea..ada3a8f2f084bfe4904b4f7d9880618a88d1ed91 100644
--- a/src/main/java/org/openepics/names/rest/controller/NamesController.java
+++ b/src/main/java/org/openepics/names/rest/controller/NamesController.java
@@ -58,7 +58,6 @@ import com.google.common.collect.Lists;
 public class NamesController implements INames {
 
     // note
-    //     global exception handler available
     //     controller layer to call validation prior to invoking service layer
     //         business logic may be validation
     //         different kinds of validation
diff --git a/src/main/java/org/openepics/names/rest/controller/ReportController.java b/src/main/java/org/openepics/names/rest/controller/ReportController.java
index 0884ee6f6181c7c8e3d277e580199c5254c0c522..c6fdba20730afc2b8c52070eb24ff827c39b8f1a 100644
--- a/src/main/java/org/openepics/names/rest/controller/ReportController.java
+++ b/src/main/java/org/openepics/names/rest/controller/ReportController.java
@@ -68,9 +68,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 @EnableAutoConfiguration
 public class ReportController {
 
-    // note
-    //     global exception handler available
-
     private static final String NEWLINE       = "\n";
     private static final String SPACE         = " ";
 
@@ -180,12 +177,12 @@ public class ReportController {
         //     read structures  - latest
         //     count structures - status
         //     count structures - history
-        ResponsePageStructureElements structureElementsSystemGroup = structuresService.readStructures(Type.SYSTEMGROUP, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
-        ResponsePageStructureElements structureElementsSystem = structuresService.readStructures(Type.SYSTEM, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
-        ResponsePageStructureElements structureElementsSubsystem = structuresService.readStructures(Type.SUBSYSTEM, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
-        ResponsePageStructureElements structureElementsDiscipline = structuresService.readStructures(Type.DISCIPLINE, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
-        ResponsePageStructureElements structureElementsDeviceGroup = structuresService.readStructures(Type.DEVICEGROUP, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
-        ResponsePageStructureElements structureElementsDeviceType = structuresService.readStructures(Type.DEVICETYPE, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsSystemGroup = structuresService.readStructures(Type.SYSTEMGROUP, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsSystem = structuresService.readStructures(Type.SYSTEM, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsSubsystem = structuresService.readStructures(Type.SUBSYSTEM, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsDiscipline = structuresService.readStructures(Type.DISCIPLINE, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsDeviceGroup = structuresService.readStructures(Type.DEVICEGROUP, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
+        ResponsePageStructureElements structureElementsDeviceType = structuresService.readStructures(Type.DEVICETYPE, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
 
         HolderReportStructure holderReportStructureSystemGroup = new HolderReportStructure(structureElementsSystemGroup);
         HolderReportStructure holderReportStructureSystem = new HolderReportStructure(structureElementsSystem);
@@ -488,6 +485,11 @@ public class ReportController {
                         && Boolean.TRUE.equals(structureElement.isLatest())
                         && Boolean.TRUE.equals(structureElement.isDeleted())) {
                     nbrDeleted++;
+                } else if (Boolean.TRUE.equals(structureElement.isLatest())
+                        && Boolean.TRUE.equals(structureElement.isDeleted())) {
+                    // ref. V5__Data_transformation_status_deleted.sql
+                    // migration script to transform data to not rely on status attribute
+                    nbrDeleted++;
                 } else if (Status.PENDING.equals(structureElement.getStatus())) {
                     nbrPending++;
                 } else if (Status.CANCELLED.equals(structureElement.getStatus())) {
diff --git a/src/main/java/org/openepics/names/rest/controller/StructuresController.java b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
index a14eb6bedc6b69198fb5494aecc432cb3bf90c30..5b2666133638e60c41725dd7e930d720ebef89f4 100644
--- a/src/main/java/org/openepics/names/rest/controller/StructuresController.java
+++ b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
@@ -25,7 +25,6 @@ import java.util.logging.Logger;
 import org.openepics.names.exception.ServiceException;
 import org.openepics.names.rest.api.v1.IStructures;
 import org.openepics.names.rest.beans.FieldStructure;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
@@ -60,7 +59,6 @@ import com.google.common.collect.Lists;
 public class StructuresController implements IStructures {
 
     // note
-    //     global exception handler available
     //     controller layer to call validation prior to invoking service layer
     //         business logic may be validation
     //         different kinds of validation
@@ -102,17 +100,17 @@ public class StructuresController implements IStructures {
     // ----------------------------------------------------------------------------------------------------
 
     @Override
-    public ResponsePageStructureElements readStructures(Type type, Status[] statuses, Boolean deleted,
+    public ResponsePageStructureElements readStructures(Type type, Boolean deleted,
             String parent, String mnemonic, String mnemonicPath, String description, String who,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
         // validate
         // read structures
 
         try {
-            ValidateStructureElementUtil.validateStructuresInputRead(type, statuses, deleted,
+            ValidateStructureElementUtil.validateStructuresInputRead(type, deleted,
                     null, parent, mnemonic, mnemonicPath, description, who,
                     null, orderBy, isAsc, page, pageSize);
-            return structuresService.readStructures(type, statuses, deleted,
+            return structuresService.readStructures(type, deleted,
                     null, parent, mnemonic, mnemonicPath, description, who,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -136,7 +134,7 @@ public class StructuresController implements IStructures {
             //     have limit for size of search result
 
             ValidateUtil.validateInputUuid(uuid);
-            ResponsePageStructureElements structureElements = structuresService.readStructures(null, null, null,
+            ResponsePageStructureElements structureElements = structuresService.readStructures(null, null,
                     uuid, null, null, null, null, null,
                     null, null, Integer.valueOf(IStructures.DEFAULT_PAGE), Integer.valueOf(IStructures.DEFAULT_PAGE_SIZE));
 
@@ -159,14 +157,14 @@ public class StructuresController implements IStructures {
     }
 
     @Override
-    public ResponseEntity<ResponsePageStructureElements> readStructuresChildren(String uuid, Status[] statuses, Boolean deleted,
+    public ResponseEntity<ResponsePageStructureElements> readStructuresChildren(String uuid, Boolean deleted,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
         // validate
         // read structures
 
         try {
             ValidateUtil.validateInputUuid(uuid);
-            ResponsePageStructureElements structureElements = structuresService.readStructuresChildren(uuid, statuses, deleted,
+            ResponsePageStructureElements structureElements = structuresService.readStructuresChildren(uuid, deleted,
                     orderBy, isAsc, page, pageSize);
 
             HttpStatus status = null;
@@ -356,104 +354,6 @@ public class StructuresController implements IStructures {
         return new ResponseEntity<>(new ResponseBooleanList(responses, Boolean.valueOf(response), reason), Response.getHeaderJson(), HttpStatus.OK);
     }
 
-    @Override
-    public ResponseEntity<ResponseBooleanList> validateStructuresApprove(List<StructureElementCommandConfirm> structureElementCommands) {
-        // convert
-        // validate
-
-        List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-        boolean response = true;
-        String reason = "";
-        List<ResponseBoolean> responses = Lists.newArrayList();
-        for (StructureElementCommand command : commands) {
-            try {
-                structuresService.validateStructuresApprove(command);
-                responses.add(new ResponseBoolean(Boolean.TRUE));
-            } catch (ServiceException e) {
-                logService.logServiceException(LOGGER, Level.WARNING, e);
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
-            } catch (Exception e) {
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED));
-            }
-        }
-        return new ResponseEntity<>(new ResponseBooleanList(responses, Boolean.valueOf(response), reason), Response.getHeaderJson(), HttpStatus.OK);
-    }
-
-    @Override
-    public ResponseEntity<ResponseBooleanList> validateStructuresCancel(List<StructureElementCommandConfirm> structureElementCommands) {
-        // validate
-
-        List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-        boolean response = true;
-        String reason = "";
-        List<ResponseBoolean> responses = Lists.newArrayList();
-        for (StructureElementCommand command : commands) {
-            try {
-                structuresService.validateStructuresCancel(command);
-                responses.add(new ResponseBoolean(Boolean.TRUE));
-            } catch (ServiceException e) {
-                logService.logServiceException(LOGGER, Level.WARNING, e);
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
-            } catch (Exception e) {
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED));
-            }
-        }
-        return new ResponseEntity<>(new ResponseBooleanList(responses, Boolean.valueOf(response), reason), Response.getHeaderJson(), HttpStatus.OK);
-    }
-
-    @Override
-    public ResponseEntity<ResponseBooleanList> validateStructuresReject(List<StructureElementCommandConfirm> structureElementCommands) {
-        // convert
-        // validate
-
-        List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-        boolean response = true;
-        String reason = "";
-        List<ResponseBoolean> responses = Lists.newArrayList();
-        for (StructureElementCommand command : commands) {
-            try {
-                structuresService.validateStructuresReject(command);
-                responses.add(new ResponseBoolean(Boolean.TRUE));
-            } catch (ServiceException e) {
-                logService.logServiceException(LOGGER, Level.WARNING, e);
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
-            } catch (Exception e) {
-                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-                if (response) {
-                    response = false;
-                    reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
-                }
-                responses.add(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED));
-            }
-        }
-        return new ResponseEntity<>(new ResponseBooleanList(responses, Boolean.valueOf(response), reason), Response.getHeaderJson(), HttpStatus.OK);
-    }
-
     // ----------------------------------------------------------------------------------------------------
 
     @Override
@@ -501,69 +401,4 @@ public class StructuresController implements IStructures {
         }
     }
 
-    // ----------------------------------------------------------------------------------------------------
-
-    @Override
-    public List<StructureElement> approveStructures(List<StructureElementCommandConfirm> structureElementCommands) {
-        // validate authority - admin
-        // convert
-        // validate
-        // approve structures
-
-        try {
-            List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-            structuresService.validateStructuresApprove(commands);
-            return structuresService.approveStructures(commands, TextUtil.TEST_WHO);
-        } catch (ServiceException e) {
-            logService.logServiceException(LOGGER, Level.WARNING, e);
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        } catch (Exception e) {
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        }
-    }
-
-    @Override
-    public List<StructureElement> cancelStructures(List<StructureElementCommandConfirm> structureElementCommands) {
-        // validate authority - admin
-        // convert
-        // validate
-        // cancel structures
-
-        try {
-            List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-            structuresService.validateStructuresCancel(commands);
-            return structuresService.cancelStructures(commands, TextUtil.TEST_WHO);
-        } catch (ServiceException e) {
-            logService.logServiceException(LOGGER, Level.WARNING, e);
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        } catch (Exception e) {
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        }
-    }
-
-    @Override
-    public List<StructureElement> rejectStructures(List<StructureElementCommandConfirm> structureElementCommands) {
-        // validate authority - admin
-        // convert
-        // validate
-        // reject structures
-
-        try {
-            List<StructureElementCommand> commands = StructureElementUtil.convertCommandConfirm2Command(structureElementCommands);
-            structuresService.validateStructuresReject(commands);
-            return structuresService.rejectStructures(commands, TextUtil.TEST_WHO);
-        } catch (ServiceException e) {
-            logService.logServiceException(LOGGER, Level.WARNING, e);
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        } catch (Exception e) {
-            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
-            throw e;
-        }
-    }
-
 }
diff --git a/src/main/java/org/openepics/names/rest/controller/VerificationController.java b/src/main/java/org/openepics/names/rest/controller/VerificationController.java
index 383afa51eccaeb5b5dc4cc03fa36b90403ea42ba..9098baeb992937a10ebff1469ef17b9ab64fa936 100644
--- a/src/main/java/org/openepics/names/rest/controller/VerificationController.java
+++ b/src/main/java/org/openepics/names/rest/controller/VerificationController.java
@@ -140,9 +140,6 @@ import io.swagger.v3.oas.annotations.Hidden;
 @EnableAutoConfiguration
 public class VerificationController {
 
-    // note
-    //     global exception handler available
-    //
     // methods
     //     read      GET /verification/migration_namepartrevision - readMigrationStructures
     //     read      GET /verification/migration_devicerevision   - readMigrationNames
@@ -388,8 +385,8 @@ public class VerificationController {
             namePartRevision = mapIdNamePartRevision.get(system.getId());
 
             check = namePartRevision != null
-                    && equals(system, namePartRevision, mapUuidMaxIdSystem)
-                    && system.getParentUuid().equals(namePartRevision.getParent().getUuid());
+                    && system.getParentUuid().equals(namePartRevision.getParent().getUuid())
+                    && equals(system, namePartRevision, mapUuidMaxIdSystem);
 
             // add to count
             if (check) {
@@ -407,8 +404,8 @@ public class VerificationController {
             namePartRevision = mapIdNamePartRevision.get(subsystem.getId());
 
             check = namePartRevision != null
-                    && equals(subsystem, namePartRevision, mapUuidMaxIdSubsystem)
-                    && subsystem.getParentUuid().equals(namePartRevision.getParent().getUuid());
+                    && subsystem.getParentUuid().equals(namePartRevision.getParent().getUuid())
+                    && equals(subsystem, namePartRevision, mapUuidMaxIdSubsystem);
 
             // add to count
             if (check) {
@@ -445,8 +442,8 @@ public class VerificationController {
             namePartRevision = mapIdNamePartRevision.get(deviceGroup.getId());
 
             check = namePartRevision != null
-                    && equals(deviceGroup, namePartRevision, mapUuidMaxIdDeviceGroup)
-                    && deviceGroup.getParentUuid().equals(namePartRevision.getParent().getUuid());
+                    && deviceGroup.getParentUuid().equals(namePartRevision.getParent().getUuid())
+                    && equals(deviceGroup, namePartRevision, mapUuidMaxIdDeviceGroup);
 
             // add to count
             if (check) {
@@ -464,8 +461,8 @@ public class VerificationController {
             namePartRevision = mapIdNamePartRevision.get(deviceType.getId());
 
             check = namePartRevision != null
-                    && equals(deviceType, namePartRevision, mapUuidMaxIdDeviceType)
-                    && deviceType.getParentUuid().equals(namePartRevision.getParent().getUuid());
+                    && deviceType.getParentUuid().equals(namePartRevision.getParent().getUuid())
+                    && equals(deviceType, namePartRevision, mapUuidMaxIdDeviceType);
 
             // add to count
             if (check) {
@@ -1054,6 +1051,9 @@ public class VerificationController {
         //     system.processed            = namepartrevision.processdate
         //     system.processed_by         = namepartrevision.processedby_id   (useraccount.id --> useraccount.username)
         //     system.processed_comment    = namepartrevision.processorcomment
+        //
+        //     check if deleted && (cancelled, rejected, pending) &&  no approved in line of uuid, then it might be ok from that perspective
+        //     consider - status, latest, deleted
 
         if (ValidateUtil.isAnyNull(structure, namePartRevision, mapUuidMaxId)) {
             return false;
@@ -1087,9 +1087,16 @@ public class VerificationController {
 
         // latest
         //     true if id = get max id for uuid
-        //     special rules for pending, not consider pending
-        check = check && structure.isLatest() == structure.getId().equals(mapUuidMaxId.get(structure.getUuid()));
-        check = check && structure.isDeleted() == namePartRevision.isDeleted();
+        //     special rules
+        //         for pending, not consider pending
+        //         for latest, deleted but not approved - ok because there are erroneous entries in database
+        //             handled with V5__Data_transformation_status_deleted.sql
+        check = check &&
+                (structure.isLatest() == structure.getId().equals(mapUuidMaxId.get(structure.getUuid()))
+                ||  structure.isLatest() && structure.isDeleted());
+        check = check &&
+                (structure.isDeleted() == namePartRevision.isDeleted()
+                ||  structure.isLatest() && structure.isDeleted());
 
         // date may be in different format for different objects, to be formatted before being compared
         check = check && ((structure.getRequested() == null && namePartRevision.getRequestDate() == null)
@@ -1200,10 +1207,10 @@ public class VerificationController {
         check = check && ((name.getRequested() == null && deviceRevision.getRequestDate() == null)
                             || StringUtils.equals(SDF.format(name.getRequested()), SDF.format(deviceRevision.getRequestDate())));
         check = check && StringUtils.equals(name.getRequestedBy(), deviceRevision.getRequestedBy().getUsername());
-        check = check && name.getRequestedComment() == null;
+        check = check && StringUtils.equals(name.getRequestedComment(), deviceRevision.getProcessorComment());
         check = check && name.getProcessed() == null;
         check = check && name.getProcessedBy() == null;
-        check = check && StringUtils.equals(name.getProcessedComment(), deviceRevision.getProcessorComment());
+        check = check && name.getProcessedComment() == null;
 
         return check;
     }
diff --git a/src/main/java/org/openepics/names/service/DeviceGroupService.java b/src/main/java/org/openepics/names/service/DeviceGroupService.java
index 19d2600e2c3f4ea539cdbbb24b0105ba5b004be7..7edcda9cbe56f1c2991538f69b1495a60c4eefe9 100644
--- a/src/main/java/org/openepics/names/service/DeviceGroupService.java
+++ b/src/main/java/org/openepics/names/service/DeviceGroupService.java
@@ -39,7 +39,6 @@ import org.openepics.names.util.HolderStructures;
 import org.openepics.names.util.StructureChoice;
 import org.openepics.names.util.StructureCommand;
 import org.openepics.names.util.StructureElementUtil;
-import org.openepics.names.util.StructureUtil;
 import org.openepics.names.util.TextUtil;
 import org.openepics.names.util.ValidateUtil;
 import org.openepics.names.util.notification.NotificationUtil;
@@ -58,31 +57,23 @@ import com.google.common.collect.Lists;
 @Service
 public class DeviceGroupService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(DeviceGroupService.class.getName());
 
     private IDeviceGroupRepository iDeviceGroupRepository;
     private IDeviceTypeRepository iDeviceTypeRepository;
     private DeviceGroupRepository deviceGroupRepository;
     private DeviceTypeService deviceTypeService;
-    private NamesService namesService;
 
     @Autowired
     public DeviceGroupService(
             IDeviceGroupRepository iDeviceGroupRepository,
             IDeviceTypeRepository iDeviceTypeRepository,
             DeviceGroupRepository deviceGroupRepository,
-            DeviceTypeService deviceTypeService,
-            NamesService namesService) {
+            DeviceTypeService deviceTypeService) {
         this.iDeviceGroupRepository = iDeviceGroupRepository;
         this.iDeviceTypeRepository = iDeviceTypeRepository;
         this.deviceGroupRepository = deviceGroupRepository;
         this.deviceTypeService = deviceTypeService;
-        this.namesService = namesService;
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -90,8 +81,7 @@ public class DeviceGroupService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
         //     return
         //         structure element for created structure
         //         notification
@@ -110,13 +100,15 @@ public class DeviceGroupService {
         // create
         DeviceGroup deviceGroup = new DeviceGroup(UUID.randomUUID(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         deviceGroupRepository.createDeviceGroup(deviceGroup);
 
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceGroup),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.CREATE, null, null, deviceGroup, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(deviceGroup, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.CREATE, null, deviceGroup, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -124,9 +116,9 @@ public class DeviceGroupService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
         //     return
         //         structure element for updated structure
         //         notification
@@ -138,87 +130,51 @@ public class DeviceGroupService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Boolean.FALSE, uuid, null, null, null, null, null, null);
+        DeviceGroup deviceGroup = null;
+        if (ValidateUtil.isSize(deviceGroups, 1)) {
+            deviceGroup = deviceGroups.get(0);
+
+            // update not latest
+            deviceGroup.setLatest(Boolean.FALSE);
+            deviceGroupRepository.updateDeviceGroup(deviceGroup);
+        }
+
         // create
-        DeviceGroup deviceGroup = new DeviceGroup(structureElementCommand.getUuid(), structureElementCommand.getParent(),
+        deviceGroup = new DeviceGroup(structureElementCommand.getUuid(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         deviceGroupRepository.createDeviceGroup(deviceGroup);
 
         // previous
-        List<DeviceGroup> previouses = iDeviceGroupRepository.findPreviousByUuidAndId(deviceGroup.getUuid().toString(),  deviceGroup.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceGroup),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        // find
-        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) {
-            return null;
-        }
-        DeviceGroup toBeDeleted = deviceGroups.get(0);
+        List<DeviceGroup> previouses = iDeviceGroupRepository.findPreviousByUuidAndId(deviceGroup.getUuid().toString(), deviceGroup.getId());
+        DeviceGroup previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // create
-        DeviceGroup deviceGroup = new DeviceGroup(toBeDeleted.getUuid(), toBeDeleted.getParentUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        deviceGroupRepository.createDeviceGroup(deviceGroup);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceGroup),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.DELETE, null, null, deviceGroup, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(deviceGroup, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.UPDATE, previous, deviceGroup, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //                 system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete sub structures (and related names)
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -227,7 +183,7 @@ public class DeviceGroupService {
         String uuid = structureElementCommand.getUuid().toString();
 
         // find
-        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null, null);
+        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Boolean.FALSE, uuid, null, null, null, null, null, null);
         DeviceGroup deviceGroup = null;
         if (ValidateUtil.isSize(deviceGroups, 1)) {
             deviceGroup = deviceGroups.get(0);
@@ -235,130 +191,37 @@ public class DeviceGroupService {
             // update not latest
             deviceGroup.setLatest(Boolean.FALSE);
             deviceGroupRepository.updateDeviceGroup(deviceGroup);
-        }
-
-        // find
-        deviceGroups = deviceGroupRepository.readDeviceGroups(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) {
+        } else {
             return null;
         }
-        deviceGroup = deviceGroups.get(0);
 
-        // approve
-        deviceGroup.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        deviceGroup.setLatest(Boolean.TRUE);
-        deviceGroupRepository.updateDeviceGroup(deviceGroup);
+        // create
+        deviceGroup = new DeviceGroup(deviceGroup.getUuid(), deviceGroup.getParentUuid(),
+                deviceGroup.getMnemonic(), deviceGroup.getMnemonicEquivalence(), deviceGroup.getOrdering(),
+                deviceGroup.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        deviceGroupRepository.createDeviceGroup(deviceGroup);
 
         // previous
         List<DeviceGroup> previouses = iDeviceGroupRepository.findPreviousByUuidAndId(uuid, deviceGroup.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, deviceGroup);
         DeviceGroup previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // will propagate to sub structures and related names
-
-            // delete sub structures - delete, approve
-            List<StructureElementCommand> commands = Lists.newArrayList();
-            List<DeviceType> deviceTypes = iDeviceTypeRepository.findLatestNotDeletedByParent(uuid);
-            for (DeviceType deviceType : deviceTypes) {
-                commands.add(new StructureElementCommand(deviceType.getUuid(), Type.DEVICETYPE, null, null, null, null));
-            }
-            for (StructureElementCommand command : commands) {
-                deviceTypeService.deleteStructure(command, when, username, holderStructures);
-            }
-            for (StructureElementCommand command : commands) {
-                deviceTypeService.approveStructure(command, when, username, holderStructures);
-            }
-        }
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(deviceGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, structureCommandCUD, StructureCommand.APPROVE, previous, deviceGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) {
-            return null;
+        //     will propagate to sub structures
+        List<StructureElementCommand> commands = Lists.newArrayList();
+        List<DeviceType> deviceTypes = iDeviceTypeRepository.findLatestNotDeletedByParent(uuid);
+        for (DeviceType deviceType : deviceTypes) {
+            commands.add(new StructureElementCommand(deviceType.getUuid(), Type.DEVICETYPE, null, null, null, null));
         }
-        DeviceGroup deviceGroup = deviceGroups.get(0);
-
-        // cancel
-        deviceGroup.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        deviceGroupRepository.updateDeviceGroup(deviceGroup);
-
-        // previous
-        List<DeviceGroup> previouses = iDeviceGroupRepository.findPreviousByUuidAndId(uuid, deviceGroup.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, deviceGroup);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(deviceGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<DeviceGroup> deviceGroups = deviceGroupRepository.readDeviceGroups(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceGroups, 1)) {
-            return null;
+        for (StructureElementCommand command : commands) {
+            deviceTypeService.deleteStructure(command, when, username, holderStructures);
         }
-        DeviceGroup deviceGroup = deviceGroups.get(0);
-
-        // reject
-        deviceGroup.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        deviceGroupRepository.updateDeviceGroup(deviceGroup);
-
-        // previous
-        List<DeviceGroup> previouses = iDeviceGroupRepository.findPreviousByUuidAndId(uuid, deviceGroup.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, deviceGroup);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(deviceGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICEGROUP, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceGroup, holderStructures));
+                NotificationUtil.prepareNotification(Type.DEVICEGROUP, StructureCommand.DELETE, previous, deviceGroup, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/service/DeviceTypeService.java b/src/main/java/org/openepics/names/service/DeviceTypeService.java
index bf6e61fbabfac848986b5cee42387cdc95bf09ff..169907c1dacf9c42fbf8b1d71cf2027b62e93463 100644
--- a/src/main/java/org/openepics/names/service/DeviceTypeService.java
+++ b/src/main/java/org/openepics/names/service/DeviceTypeService.java
@@ -37,7 +37,6 @@ import org.openepics.names.util.HolderStructures;
 import org.openepics.names.util.StructureChoice;
 import org.openepics.names.util.StructureCommand;
 import org.openepics.names.util.StructureElementUtil;
-import org.openepics.names.util.StructureUtil;
 import org.openepics.names.util.TextUtil;
 import org.openepics.names.util.ValidateUtil;
 import org.openepics.names.util.notification.NotificationUtil;
@@ -54,11 +53,6 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class DeviceTypeService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(DeviceTypeService.class.getName());
 
     private IDeviceTypeRepository iDeviceTypeRepository;
@@ -80,8 +74,7 @@ public class DeviceTypeService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
         //     return
         //         structure element for created structure
         //         notification
@@ -100,13 +93,15 @@ public class DeviceTypeService {
         // create
         DeviceType deviceType = new DeviceType(UUID.randomUUID(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         deviceTypeRepository.createDeviceType(deviceType);
 
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceType),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.CREATE, null, null, deviceType, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(deviceType, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.CREATE, null, deviceType, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -114,9 +109,10 @@ public class DeviceTypeService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
+        //     additional - update related names
         //     return
         //         structure element for updated structure
         //         notification
@@ -128,87 +124,54 @@ public class DeviceTypeService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Boolean.FALSE, uuid, null, null, null, null, null, null);
+        DeviceType deviceType = null;
+        if (ValidateUtil.isSize(deviceTypes, 1)) {
+            deviceType = deviceTypes.get(0);
+
+            // update not latest
+            deviceType.setLatest(Boolean.FALSE);
+            deviceTypeRepository.updateDeviceType(deviceType);
+        }
+
         // create
-        DeviceType deviceType = new DeviceType(structureElementCommand.getUuid(), structureElementCommand.getParent(),
+        deviceType = new DeviceType(structureElementCommand.getUuid(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         deviceTypeRepository.createDeviceType(deviceType);
 
         // previous
-        List<DeviceType> previouses = iDeviceTypeRepository.findPreviousByUuidAndId(deviceType.getUuid().toString(),  deviceType.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceType),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceType, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
+        List<DeviceType> previouses = iDeviceTypeRepository.findPreviousByUuidAndId(deviceType.getUuid().toString(), deviceType.getId());
+        DeviceType previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // find
-        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) {
-            return null;
-        }
-        DeviceType toBeDeleted = deviceTypes.get(0);
+        // additional
+        namesService.updateNames(previous, deviceType, username);
 
-        // create
-        DeviceType deviceType = new DeviceType(toBeDeleted.getUuid(), toBeDeleted.getParentUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        deviceTypeRepository.createDeviceType(deviceType);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(deviceType),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.DELETE, null, null, deviceType, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(deviceType, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.UPDATE, previous, deviceType, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //             system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete related names
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -217,7 +180,7 @@ public class DeviceTypeService {
         String uuid = structureElementCommand.getUuid().toString();
 
         // find
-        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null, null);
+        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Boolean.FALSE, uuid, null, null, null, null, null, null);
         DeviceType deviceType = null;
         if (ValidateUtil.isSize(deviceTypes, 1)) {
             deviceType = deviceTypes.get(0);
@@ -225,120 +188,29 @@ public class DeviceTypeService {
             // update not latest
             deviceType.setLatest(Boolean.FALSE);
             deviceTypeRepository.updateDeviceType(deviceType);
-        }
-
-        // find
-        deviceTypes = deviceTypeRepository.readDeviceTypes(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) {
+        } else {
             return null;
         }
-        deviceType = deviceTypes.get(0);
 
-        // approve
-        deviceType.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        deviceType.setLatest(Boolean.TRUE);
-        deviceTypeRepository.updateDeviceType(deviceType);
+        // create
+        deviceType = new DeviceType(deviceType.getUuid(), deviceType.getParentUuid(),
+                deviceType.getMnemonic(), deviceType.getMnemonicEquivalence(), deviceType.getOrdering(),
+                deviceType.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        deviceTypeRepository.createDeviceType(deviceType);
 
         // previous
         List<DeviceType> previouses = iDeviceTypeRepository.findPreviousByUuidAndId(uuid, deviceType.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, deviceType);
         DeviceType previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.UPDATE.equals(structureCommandCUD)) {
-            // update related names
-            namesService.updateNames(previous, deviceType, username);
-        } else if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // delete related names
-            namesService.deleteNames(deviceType, username);
-        }
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(deviceType, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, structureCommandCUD, StructureCommand.APPROVE, previous, deviceType, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) {
-            return null;
-        }
-        DeviceType deviceType = deviceTypes.get(0);
-
-        // cancel
-        deviceType.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        deviceTypeRepository.updateDeviceType(deviceType);
-
-        // previous
-        List<DeviceType> previouses = iDeviceTypeRepository.findPreviousByUuidAndId(uuid, deviceType.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, deviceType);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(deviceType, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceType, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<DeviceType> deviceTypes = deviceTypeRepository.readDeviceTypes(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(deviceTypes, 1)) {
-            return null;
-        }
-        DeviceType deviceType = deviceTypes.get(0);
-
-        // reject
-        deviceType.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        deviceTypeRepository.updateDeviceType(deviceType);
-
-        // previous
-        List<DeviceType> previouses = iDeviceTypeRepository.findPreviousByUuidAndId(uuid, deviceType.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, deviceType);
+        namesService.deleteNames(deviceType, username);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(deviceType, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DEVICETYPE, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, deviceType, holderStructures));
+                NotificationUtil.prepareNotification(Type.DEVICETYPE, StructureCommand.DELETE, previous, deviceType, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/service/DisciplineService.java b/src/main/java/org/openepics/names/service/DisciplineService.java
index b88016e71798b974ce1ff0319b906172c14d93bf..052d298754218aed0912ad63f5d78f59a26bb467 100644
--- a/src/main/java/org/openepics/names/service/DisciplineService.java
+++ b/src/main/java/org/openepics/names/service/DisciplineService.java
@@ -39,7 +39,6 @@ import org.openepics.names.util.HolderStructures;
 import org.openepics.names.util.StructureChoice;
 import org.openepics.names.util.StructureCommand;
 import org.openepics.names.util.StructureElementUtil;
-import org.openepics.names.util.StructureUtil;
 import org.openepics.names.util.TextUtil;
 import org.openepics.names.util.ValidateUtil;
 import org.openepics.names.util.notification.NotificationUtil;
@@ -58,11 +57,6 @@ import com.google.common.collect.Lists;
 @Service
 public class DisciplineService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(DisciplineService.class.getName());
 
     private IDisciplineRepository iDisciplineRepository;
@@ -90,8 +84,7 @@ public class DisciplineService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
         //     return
         //         structure element for created structure
         //         notification
@@ -110,13 +103,15 @@ public class DisciplineService {
         // create
         Discipline discipline = new Discipline(UUID.randomUUID(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         disciplineRepository.createDiscipline(discipline);
 
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(discipline),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.CREATE, null, null, discipline, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(discipline, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.CREATE, null, discipline, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -124,9 +119,10 @@ public class DisciplineService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
+        //     additional - update related names
         //     return
         //         structure element for updated structure
         //         notification
@@ -138,87 +134,54 @@ public class DisciplineService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<Discipline> disciplines = disciplineRepository.readDisciplines(Boolean.FALSE, uuid, null, null, null, null, null);
+        Discipline discipline = null;
+        if (ValidateUtil.isSize(disciplines, 1)) {
+            discipline = disciplines.get(0);
+
+            // update not latest
+            discipline.setLatest(Boolean.FALSE);
+            disciplineRepository.updateDiscipline(discipline);
+        }
+
         // create
-        Discipline discipline = new Discipline(structureElementCommand.getUuid(),
+        discipline = new Discipline(structureElementCommand.getUuid(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         disciplineRepository.createDiscipline(discipline);
 
         // previous
-        List<Discipline> previouses = iDisciplineRepository.findPreviousByUuidAndId(discipline.getUuid().toString(),  discipline.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(discipline),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, discipline, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
+        List<Discipline> previouses = iDisciplineRepository.findPreviousByUuidAndId(discipline.getUuid().toString(), discipline.getId());
+        Discipline previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // find
-        List<Discipline> disciplines = disciplineRepository.readDisciplines(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(disciplines, 1)) {
-            return null;
-        }
-        Discipline toBeDeleted = disciplines.get(0);
+        // additional
+        namesService.updateNames(previous, discipline, username);
 
-        // create
-        Discipline discipline = new Discipline(toBeDeleted.getUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        disciplineRepository.createDiscipline(discipline);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(discipline),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.DELETE, null, null, discipline, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(discipline, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.UPDATE, previous, discipline, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //                 system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete related names, delete sub structures (and related names)
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -226,7 +189,8 @@ public class DisciplineService {
 
         String uuid = structureElementCommand.getUuid().toString();
 
-        List<Discipline> disciplines = disciplineRepository.readDisciplines(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null);
+        // find
+        List<Discipline> disciplines = disciplineRepository.readDisciplines(Boolean.FALSE, uuid, null, null, null, null, null);
         Discipline discipline = null;
         if (ValidateUtil.isSize(disciplines, 1)) {
             discipline = disciplines.get(0);
@@ -234,136 +198,39 @@ public class DisciplineService {
             // update not latest
             discipline.setLatest(Boolean.FALSE);
             disciplineRepository.updateDiscipline(discipline);
-        }
-
-        // find
-        disciplines = disciplineRepository.readDisciplines(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(disciplines, 1)) {
+        } else {
             return null;
         }
-        discipline = disciplines.get(0);
 
-        // approve
-        discipline.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        discipline.setLatest(Boolean.TRUE);
-        disciplineRepository.updateDiscipline(discipline);
+        // create
+        discipline = new Discipline(discipline.getUuid(),
+                discipline.getMnemonic(), discipline.getMnemonicEquivalence(), discipline.getOrdering(),
+                discipline.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        disciplineRepository.createDiscipline(discipline);
 
         // previous
         List<Discipline> previouses = iDisciplineRepository.findPreviousByUuidAndId(uuid, discipline.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, discipline);
         Discipline previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.UPDATE.equals(structureCommandCUD)) {
-            // update related names
-            namesService.updateNames(previous, discipline, username);
-        } else if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // will propagate to sub structures and related names
-
-            // delete related names
-            namesService.deleteNames(discipline, username);
-
-            // delete sub structures - delete, approve
-            List<StructureElementCommand> commands = Lists.newArrayList();
-            List<DeviceGroup> deviceGroups = iDeviceGroupRepository.findLatestNotDeletedByParent(uuid);
-            for (DeviceGroup deviceGroup : deviceGroups) {
-                commands.add(new StructureElementCommand(deviceGroup.getUuid(), Type.DEVICEGROUP, null, null, null, null));
-            }
-            for (StructureElementCommand command : commands) {
-                deviceGroupService.deleteStructure(command, when, username, holderStructures);
-            }
-            for (StructureElementCommand command : commands) {
-                deviceGroupService.approveStructure(command, when, username, holderStructures);
-            }
-        }
+        //     will propagate to sub structures
+        namesService.deleteNames(discipline, username);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(discipline, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, structureCommandCUD, StructureCommand.APPROVE, previous, discipline, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<Discipline> disciplines = disciplineRepository.readDisciplines(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(disciplines, 1)) {
-            return null;
+        List<StructureElementCommand> commands = Lists.newArrayList();
+        List<DeviceGroup> deviceGroups = iDeviceGroupRepository.findLatestNotDeletedByParent(uuid);
+        for (DeviceGroup deviceGroup : deviceGroups) {
+            commands.add(new StructureElementCommand(deviceGroup.getUuid(), Type.DEVICEGROUP, null, null, null, null));
         }
-        Discipline discipline = disciplines.get(0);
-
-        // cancel
-        discipline.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        disciplineRepository.updateDiscipline(discipline);
-
-        // previous
-        List<Discipline> previouses = iDisciplineRepository.findPreviousByUuidAndId(uuid, discipline.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, discipline);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(discipline, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, discipline, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<Discipline> disciplines = disciplineRepository.readDisciplines(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(disciplines, 1)) {
-            return null;
+        for (StructureElementCommand command : commands) {
+            deviceGroupService.deleteStructure(command, when, username, holderStructures);
         }
-        Discipline discipline = disciplines.get(0);
-
-        // reject
-        discipline.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        disciplineRepository.updateDiscipline(discipline);
-
-        // previous
-        List<Discipline> previouses = iDisciplineRepository.findPreviousByUuidAndId(uuid, discipline.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, discipline);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(discipline, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.DISCIPLINE, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, discipline, holderStructures));
+                NotificationUtil.prepareNotification(Type.DISCIPLINE, StructureCommand.DELETE, previous, discipline, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/service/MetricsService.java b/src/main/java/org/openepics/names/service/MetricsService.java
index cf7f9d5da3237b1a11e87f658840b615066f3ca9..104de407be7f689e8da1160db85e2c0c306e336d 100644
--- a/src/main/java/org/openepics/names/service/MetricsService.java
+++ b/src/main/java/org/openepics/names/service/MetricsService.java
@@ -25,7 +25,6 @@ import org.openepics.names.repository.NameRepository;
 import org.openepics.names.repository.SubsystemRepository;
 import org.openepics.names.repository.SystemGroupRepository;
 import org.openepics.names.repository.SystemRepository;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.util.HolderRepositories;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -113,13 +112,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.systemGroupRepository().countSystemGroups(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null))
+                () -> holderRepositories.systemGroupRepository().countSystemGroups(Boolean.FALSE, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SYSTEMGROUP.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.systemGroupRepository().countSystemGroups(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null))
+                () -> holderRepositories.systemGroupRepository().countSystemGroups(Boolean.TRUE, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SYSTEMGROUP.toString())
                 .tag(STATUS, STATUS_METRICS[2])
@@ -132,13 +131,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.systemRepository().countSystems(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.systemRepository().countSystems(Boolean.FALSE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SYSTEM.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.systemRepository().countSystems(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.systemRepository().countSystems(Boolean.TRUE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SYSTEM.toString())
                 .tag(STATUS, STATUS_METRICS[2])
@@ -151,13 +150,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.subsystemRepository().countSubsystems(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.subsystemRepository().countSubsystems(Boolean.FALSE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SUBSYSTEM.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.subsystemRepository().countSubsystems(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.subsystemRepository().countSubsystems(Boolean.TRUE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.SUBSYSTEM.toString())
                 .tag(STATUS, STATUS_METRICS[2])
@@ -170,13 +169,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.disciplineRepository().countDisciplines(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null))
+                () -> holderRepositories.disciplineRepository().countDisciplines(Boolean.FALSE, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DISCIPLINE.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.disciplineRepository().countDisciplines(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null))
+                () -> holderRepositories.disciplineRepository().countDisciplines(Boolean.TRUE, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DISCIPLINE.toString())
                 .tag(STATUS, STATUS_METRICS[2])
@@ -189,13 +188,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.deviceGroupRepository().countDeviceGroups(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.deviceGroupRepository().countDeviceGroups(Boolean.FALSE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DEVICEGROUP.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.deviceGroupRepository().countDeviceGroups(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.deviceGroupRepository().countDeviceGroups(Boolean.TRUE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DEVICEGROUP.toString())
                 .tag(STATUS, STATUS_METRICS[2])
@@ -208,13 +207,13 @@ public class MetricsService {
                 .tag(STATUS, STATUS_METRICS[0])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.deviceTypeRepository().countDeviceTypes(new Status[] {Status.APPROVED}, Boolean.FALSE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.deviceTypeRepository().countDeviceTypes(Boolean.FALSE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DEVICETYPE.toString())
                 .tag(STATUS, STATUS_METRICS[1])
                 .register(meterRegistry);
         Gauge.builder(METRICS_STRUCTURE[0],
-                () -> holderRepositories.deviceTypeRepository().countDeviceTypes(new Status[] {Status.APPROVED}, Boolean.TRUE, null, null, null, null, null, null, null, null))
+                () -> holderRepositories.deviceTypeRepository().countDeviceTypes(Boolean.TRUE, null, null, null, null, null, null, null, null))
                 .description(METRICS_STRUCTURE[1])
                 .tag(TYPE, Type.DEVICETYPE.toString())
                 .tag(STATUS, STATUS_METRICS[2])
diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java
index 3663acbda2afd634374efacd77b44d9d4f7f51a7..c7699eeb7d815ab7a2de3759a16521a0562eec97 100644
--- a/src/main/java/org/openepics/names/service/NamesService.java
+++ b/src/main/java/org/openepics/names/service/NamesService.java
@@ -90,11 +90,11 @@ public class NamesService {
 
     private static final Logger LOGGER = Logger.getLogger(NamesService.class.getName());
 
+    private EssNamingConvention namingConvention;
     private HolderIRepositories holderIRepositories;
     private HolderRepositories holderRepositories;
     // convenience, also part of holderRepositories
     private NameRepository nameRepository;
-    private EssNamingConvention namingConvention;
 
     @Autowired
     public NamesService(
@@ -425,10 +425,7 @@ public class NamesService {
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateNameElementUtil.validateNameElementInputCreate(nameElement);
-
-        // validate data
         ValidateNameElementUtil.validateNameElementDataCreate(nameElement, namingConvention, holderIRepositories, nameRepository, holderStructures);
     }
     public void validateNamesCreate(List<NameElementCommand> nameElements) {
@@ -451,10 +448,7 @@ public class NamesService {
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateNameElementUtil.validateNameElementInputUpdate(nameElement);
-
-        // validate data
         ValidateNameElementUtil.validateNameElementDataUpdate(nameElement, namingConvention, holderIRepositories, nameRepository, holderStructures);
     }
     public void validateNamesUpdate(List<NameElementCommand> nameElements) {
@@ -477,10 +471,7 @@ public class NamesService {
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateNameElementUtil.validateNameElementInputDelete(nameElement);
-
-        // validate data
         ValidateNameElementUtil.validateNameElementDataDelete(nameElement, namingConvention, holderIRepositories, nameRepository, holderStructures);
     }
     public void validateNamesDelete(List<NameElementCommand> nameElements) {
@@ -614,7 +605,7 @@ public class NamesService {
             if (previousStructure instanceof SystemGroup && structure instanceof SystemGroup) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySystemGroupUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySystemGroupUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -624,7 +615,7 @@ public class NamesService {
             } else if (previousStructure instanceof System && structure instanceof System) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySystemUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySystemUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -632,7 +623,7 @@ public class NamesService {
                                     name.getInstanceIndex(), name.getDescription()));
                 }
 
-                names = holderIRepositories.nameRepository().findLatestBySystemUuidThroughSubsystem(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySystemUuidThroughSubsystem(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -642,7 +633,7 @@ public class NamesService {
             } else if (previousStructure instanceof Subsystem && structure instanceof Subsystem) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySubsystemUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySubsystemUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -652,7 +643,7 @@ public class NamesService {
             } else if (previousStructure instanceof Discipline && structure instanceof Discipline) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestByDisciplineUuidThroughDeviceType(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedByDisciplineUuidThroughDeviceType(structure.getUuid().toString());
                 for (Name name : names) {
                     parentSystemStructure = NameUtil.getParentSystemStructure(name);
                     nameElements.add(
@@ -663,7 +654,7 @@ public class NamesService {
             } else if (previousStructure instanceof DeviceType && structure instanceof DeviceType) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestByDeviceTypeUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedByDeviceTypeUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     parentSystemStructure = NameUtil.getParentSystemStructure(name);
                     nameElements.add(
@@ -763,7 +754,7 @@ public class NamesService {
             if (structure instanceof SystemGroup) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySystemGroupUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySystemGroupUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -773,7 +764,7 @@ public class NamesService {
             } else if (structure instanceof System) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySystemUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySystemUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -783,7 +774,7 @@ public class NamesService {
             } else if (structure instanceof Subsystem) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestBySubsystemUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedBySubsystemUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     nameElements.add(
                             new NameElementCommand(
@@ -793,7 +784,7 @@ public class NamesService {
             } else if (structure instanceof DeviceType) {
                 // find
                 // prepare
-                names = holderIRepositories.nameRepository().findLatestByDeviceTypeUuid(structure.getUuid().toString());
+                names = holderIRepositories.nameRepository().findLatestNotDeletedByDeviceTypeUuid(structure.getUuid().toString());
                 for (Name name : names) {
                     parentSystemStructure = NameUtil.getParentSystemStructure(name);
                     nameElements.add(
diff --git a/src/main/java/org/openepics/names/service/NotificationService.java b/src/main/java/org/openepics/names/service/NotificationService.java
index 70e25f418b9eacd53553ccf0972a443a1b9daa5a..74d906d239e5d7c5632fe16b451fcf1074f8431f 100644
--- a/src/main/java/org/openepics/names/service/NotificationService.java
+++ b/src/main/java/org/openepics/names/service/NotificationService.java
@@ -52,13 +52,11 @@ public class NotificationService {
 
     private static final String NOTIFY_NAMES_CREATED_UPDATED_DELETED =
             "Notify names, # created: {0}, # updated: {1}, # deleted: {2}";
-    private static final String NOTIFY_STRUCTURES_CREATED_UPDATED_DELETED_APPROVED_CANCELLED_REJECTED =
-            "Notify structures, # created: {0}, # updated: {1}, # deleted: {2}"
-            + ", # approved: {3}, # cancelled: {4}, # rejected: {5}";
+    private static final String NOTIFY_STRUCTURES_CREATED_UPDATED_DELETED =
+            "Notify structures, # created: {0}, # updated: {1}, # deleted: {2}";
 
-    private static final String CHANGES_NOTIFICATION_NAMES             = "[Changes for names]";
-    private static final String CHANGES_NOTIFICATION_STRUCTURES        = "[Changes for structures]";
-    private static final String CHANGES_NOTIFICATION_STRUCTURES_ACTION = "[Changes for structures - need action]";
+    private static final String CHANGES_NOTIFICATION_NAMES      = "[Changes for names]";
+    private static final String CHANGES_NOTIFICATION_STRUCTURES = "[Changes for structures]";
 
     private static final String ADD_FOOTER  = "addfooter";
     private static final String BACKEND_URL = "backendurl";
@@ -155,17 +153,11 @@ public class NotificationService {
      */
     public void notifyStructures(List<NotificationStructure> notifications, StructureCommand structureCommand) {
         if (StructureCommand.CREATE.equals(structureCommand)) {
-            notifyStructures(notifications, null, null, null, null, null);
+            notifyStructures(notifications, null, null);
         } else if (StructureCommand.UPDATE.equals(structureCommand)) {
-            notifyStructures(null, notifications, null, null, null, null);
+            notifyStructures(null, notifications, null);
         } else if (StructureCommand.DELETE.equals(structureCommand)) {
-            notifyStructures(null, null, notifications, null, null, null);
-        } else if (StructureCommand.APPROVE.equals(structureCommand)) {
-            notifyStructures(null, null, null, notifications, null, null);
-        } else if (StructureCommand.CANCEL.equals(structureCommand)) {
-            notifyStructures(null, null, null, null, notifications, null);
-        } else if (StructureCommand.REJECT.equals(structureCommand)) {
-            notifyStructures(null, null, null, null, null, notifications);
+            notifyStructures(null, null, notifications);
         }
     }
 
@@ -175,43 +167,28 @@ public class NotificationService {
      * @param created list of notifications for created structures
      * @param updated list of notifications for updated structures
      * @param deleted list of notifications for deleted structures
-     * @param approved list of notifications for approved structures
-     * @param cancelled list of notifications for cancelled structures
-     * @param rejected list of notifications for rejected structures
      */
     public void notifyStructures(
             List<NotificationStructure> created,
             List<NotificationStructure> updated,
-            List<NotificationStructure> deleted,
-            List<NotificationStructure> approved,
-            List<NotificationStructure> cancelled,
-            List<NotificationStructure> rejected) {
+            List<NotificationStructure> deleted) {
 
         NotificationUtil.sortByNewMnemonicpath(created);
         NotificationUtil.sortByNewMnemonicpath(updated);
         NotificationUtil.sortByNewMnemonicpath(deleted);
-        NotificationUtil.sortByNewMnemonicpath(approved);
-        NotificationUtil.sortByNewMnemonicpath(cancelled);
-        NotificationUtil.sortByNewMnemonicpath(rejected);
 
         int numberCreated   = getListSize(created);
         int numberUpdated   = getListSize(updated);
         int numberDeleted   = getListSize(deleted);
-        int numberApproved  = getListSize(approved);
-        int numberCancelled = getListSize(cancelled);
-        int numberRejected  = getListSize(rejected);
 
         LOGGER.log(Level.INFO,
                 () -> MessageFormat.format(
-                        NOTIFY_STRUCTURES_CREATED_UPDATED_DELETED_APPROVED_CANCELLED_REJECTED,
+                        NOTIFY_STRUCTURES_CREATED_UPDATED_DELETED,
                         numberCreated,
                         numberUpdated,
-                        numberDeleted,
-                        numberApproved,
-                        numberCancelled,
-                        numberRejected));
+                        numberDeleted));
 
-        if (ValidateUtil.areAllZero(numberCreated, numberUpdated, numberDeleted, numberApproved, numberCancelled, numberRejected)) {
+        if (ValidateUtil.areAllZero(numberCreated, numberUpdated, numberDeleted)) {
             return;
         }
 
@@ -220,15 +197,9 @@ public class NotificationService {
         ctx.setVariable("numberCreated",   numberCreated);
         ctx.setVariable("numberUpdated",   numberUpdated);
         ctx.setVariable("numberDeleted",   numberDeleted);
-        ctx.setVariable("numberApproved",  numberApproved);
-        ctx.setVariable("numberCancelled", numberCancelled);
-        ctx.setVariable("numberRejected",  numberRejected);
         ctx.setVariable("created",   created);
         ctx.setVariable("updated",   updated);
         ctx.setVariable("deleted",   deleted);
-        ctx.setVariable("approved",  approved);
-        ctx.setVariable("cancelled", cancelled);
-        ctx.setVariable("rejected",  rejected);
         ctx.setVariable(ADD_FOOTER, true);
         ctx.setVariable(BACKEND_URL, namingBackendSwaggerUrl);
         TemplateEngine engine = generateTemplateEngine();
@@ -239,9 +210,7 @@ public class NotificationService {
                 : null;
         String[] ccEmailAddresses = null;
         String[] replyToEmailAddresses = null;
-        String subject = numberCreated > 0 || numberUpdated > 0 || numberDeleted > 0
-                ? CHANGES_NOTIFICATION_STRUCTURES_ACTION + " - " + namingBackendSwaggerUrl
-                : CHANGES_NOTIFICATION_STRUCTURES        + " - " + namingBackendSwaggerUrl;
+        String subject = CHANGES_NOTIFICATION_STRUCTURES + " - " + namingBackendSwaggerUrl;
         mailService.sendEmail(toEmailAddresses, ccEmailAddresses, replyToEmailAddresses,
                 subject, engine.process("templates/notification_structures.html", ctx), false, null, null);
     }
diff --git a/src/main/java/org/openepics/names/service/StructuresService.java b/src/main/java/org/openepics/names/service/StructuresService.java
index 31e588789a7aab6383dd5dfb86205e4534f54d14..64b450958cc11d1179d634a23c15bb817d9d961b 100644
--- a/src/main/java/org/openepics/names/service/StructuresService.java
+++ b/src/main/java/org/openepics/names/service/StructuresService.java
@@ -46,7 +46,6 @@ import org.openepics.names.repository.model.Subsystem;
 import org.openepics.names.repository.model.System;
 import org.openepics.names.repository.model.SystemGroup;
 import org.openepics.names.rest.beans.FieldStructure;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.StructureElement;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
@@ -85,12 +84,12 @@ public class StructuresService {
     //         otherwise refer to history
     //     structurecommand
     //         cud - create update delete
-    //         acr - approve cancel reject
 
     private static final Logger LOGGER = Logger.getLogger(StructuresService.class.getName());
 
     protected static final String SYSTEM_STRUCTURE_ONLY                 = "System structure only";
 
+    private EssNamingConvention namingConvention;
     private HolderIRepositories holderIRepositories;
     private HolderRepositories holderRepositories;
     private SystemGroupService systemGroupService;
@@ -100,7 +99,6 @@ public class StructuresService {
     private DeviceGroupService deviceGroupService;
     private DeviceTypeService deviceTypeService;
     private NotificationService notificationService;
-    private EssNamingConvention namingConvention;
 
     @Autowired
     public StructuresService(
@@ -215,15 +213,15 @@ public class StructuresService {
 
     // ----------------------------------------------------------------------------------------------------
 
-    public ResponsePageStructureElements readStructures(Type type, Status[] statuses, Boolean deleted,
+    public ResponsePageStructureElements readStructures(Type type, Boolean deleted,
             String uuid, String parent, String mnemonic, String mnemonicPath, String description, String who,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
-        return readStructures(type, statuses, deleted,
+        return readStructures(type, deleted,
                 uuid, parent, mnemonic, mnemonicPath, description, who,
                 Boolean.FALSE, orderBy, isAsc, offset, limit, StructureChoice.STRUCTURE);
     }
 
-    public ResponsePageStructureElements readStructures(Type type, Status[] statuses, Boolean deleted,
+    public ResponsePageStructureElements readStructures(Type type, Boolean deleted,
             String uuid, String parent, String mnemonic, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit,
             StructureChoice structureChoice) {
@@ -233,7 +231,6 @@ public class StructuresService {
 
         if (LOGGER.isLoggable(Level.FINE)) {
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "type", type));
-            LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "statuses.length", Utilities.getLength(statuses)));
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "deleted", deleted));
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "uuid", uuid));
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "parent", parent));
@@ -247,11 +244,6 @@ public class StructuresService {
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "offset", offset));
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "limit", limit));
             LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "structureChoice", structureChoice));
-            if (statuses != null) {
-                for (Status status : statuses) {
-                    LOGGER.log(Level.FINE, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.READ_STRUCTURES, "status", status));
-                }
-            }
         }
 
         // initiate holder of system and device structure content, for performance reasons
@@ -281,7 +273,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 systemGroups = holderRepositories.systemGroupRepository().readSystemGroupsHistory(uuid, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(statuses, deleted, uuid, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(deleted, uuid, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForSystemGroups(systemGroups, holderStructures, structureChoice));
         }
@@ -291,7 +283,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 systems = holderRepositories.systemRepository().readSystemsHistory(uuid, parent, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                systems = holderRepositories.systemRepository().readSystems(statuses, deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                systems = holderRepositories.systemRepository().readSystems(deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForSystems(systems, holderStructures, structureChoice));
         }
@@ -301,7 +293,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 subsystems = holderRepositories.subsystemRepository().readSubsystemsHistory(uuid, parent, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                subsystems = holderRepositories.subsystemRepository().readSubsystems(statuses, deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                subsystems = holderRepositories.subsystemRepository().readSubsystems(deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForSubsystems(subsystems, holderStructures, structureChoice));
         }
@@ -311,7 +303,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 disciplines = holderRepositories.disciplineRepository().readDisciplinesHistory(uuid, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                disciplines = holderRepositories.disciplineRepository().readDisciplines(statuses, deleted, uuid, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                disciplines = holderRepositories.disciplineRepository().readDisciplines(deleted, uuid, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForDisciplines(disciplines, holderStructures, structureChoice));
         }
@@ -321,7 +313,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 deviceGroups = holderRepositories.deviceGroupRepository().readDeviceGroupsHistory(uuid, parent, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                deviceGroups = holderRepositories.deviceGroupRepository().readDeviceGroups(statuses, deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                deviceGroups = holderRepositories.deviceGroupRepository().readDeviceGroups(deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForDeviceGroups(deviceGroups, holderStructures, structureChoice));
         }
@@ -331,7 +323,7 @@ public class StructuresService {
             if (Boolean.TRUE.equals(includeHistory)) {
                 deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypesHistory(uuid, parent, mnemonic, null, mnemonicPath, description, who, orderBy, isAsc);
             } else {
-                deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(statuses, deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
+                deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(deleted, uuid, parent, mnemonic, null, mnemonicPath, description, who, includeHistory, orderBy, isAsc, null, null);
             }
             structureElements.addAll(StructureElementUtil.getStructureElementsForDeviceTypes(deviceTypes, holderStructures, structureChoice));
         }
@@ -368,7 +360,7 @@ public class StructuresService {
     }
 
     public ResponsePageStructureElements readStructuresChildren(String uuid,
-            Status[] statuses, Boolean deleted,
+            Boolean deleted,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
         // validation outside method
         // read structure latest by uuid for type
@@ -385,10 +377,10 @@ public class StructuresService {
         //     uuid in 0 or 1 of kind of structure
         //     negligible impact on performance for going through different structures
 
-        ResponsePageStructureElements responseSystemGroup = readStructures(Type.SYSTEM,      statuses, deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
-        ResponsePageStructureElements responseSystem      = readStructures(Type.SUBSYSTEM,   statuses, deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
-        ResponsePageStructureElements responseDiscipline  = readStructures(Type.DEVICEGROUP, statuses, deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
-        ResponsePageStructureElements responseDeviceGroup = readStructures(Type.DEVICETYPE,  statuses, deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
+        ResponsePageStructureElements responseSystemGroup = readStructures(Type.SYSTEM,      deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
+        ResponsePageStructureElements responseSystem      = readStructures(Type.SUBSYSTEM,   deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
+        ResponsePageStructureElements responseDiscipline  = readStructures(Type.DEVICEGROUP, deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
+        ResponsePageStructureElements responseDeviceGroup = readStructures(Type.DEVICETYPE,  deleted, null, uuid, null, null, null, null, orderBy, isAsc, offset, limit);
 
         structureElements.addAll(responseSystemGroup.getList());
         structureElements.addAll(responseSystem.getList());
@@ -423,12 +415,12 @@ public class StructuresService {
         // go through structures and see if / where uuid is found
         //     uuid in 0 or 1 kind of structures
         //     uuid is in max one kind of structure
-        ResponsePageStructureElements response = readStructures(Type.SYSTEMGROUP, null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY);
-        response = response.getTotalCount() == 0 ? readStructures(Type.SYSTEM,      null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
-        response = response.getTotalCount() == 0 ? readStructures(Type.SUBSYSTEM,   null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
-        response = response.getTotalCount() == 0 ? readStructures(Type.DISCIPLINE,  null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
-        response = response.getTotalCount() == 0 ? readStructures(Type.DEVICEGROUP, null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
-        response = response.getTotalCount() == 0 ? readStructures(Type.DEVICETYPE,  null, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
+        ResponsePageStructureElements response = readStructures(Type.SYSTEMGROUP, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY);
+        response = response.getTotalCount() == 0 ? readStructures(Type.SYSTEM,      null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
+        response = response.getTotalCount() == 0 ? readStructures(Type.SUBSYSTEM,   null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
+        response = response.getTotalCount() == 0 ? readStructures(Type.DISCIPLINE,  null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
+        response = response.getTotalCount() == 0 ? readStructures(Type.DEVICEGROUP, null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
+        response = response.getTotalCount() == 0 ? readStructures(Type.DEVICETYPE,  null, uuid, null, null, null, null, null, Boolean.TRUE, FieldStructure.WHEN, Boolean.TRUE, offset, limit, StructureChoice.HISTORY) : response;
         return response;
     }
 
@@ -444,21 +436,21 @@ public class StructuresService {
         }
 
         if (Type.SYSTEMGROUP.equals(type)) {
-            List<SystemGroup> systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(Status.APPROVED, false, null, null, null, mnemonicPath, null, null);
+            List<SystemGroup> systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(false, null, null, null, mnemonicPath, null, null);
             return !systemGroups.isEmpty();
         } else if (Type.SYSTEM.equals(type)) {
-            List<System> systems = holderRepositories.systemRepository().readSystems(Status.APPROVED, false, null, null, null, null, mnemonicPath, null, null);
+            List<System> systems = holderRepositories.systemRepository().readSystems(false, null, null, null, null, mnemonicPath, null, null);
             return !systems.isEmpty();
         } else if (Type.SUBSYSTEM.equals(type)) {
-            List<Subsystem> subsystems = holderRepositories.subsystemRepository().readSubsystems(Status.APPROVED, false, null, null, null, null, mnemonicPath, null, null);
+            List<Subsystem> subsystems = holderRepositories.subsystemRepository().readSubsystems(false, null, null, null, null, mnemonicPath, null, null);
             return !subsystems.isEmpty();
         } else if (Type.DISCIPLINE.equals(type)) {
-            List<Discipline> disciplines = holderRepositories.disciplineRepository().readDisciplines(Status.APPROVED, false, null, null, null, mnemonicPath, null, null);
+            List<Discipline> disciplines = holderRepositories.disciplineRepository().readDisciplines(false, null, null, null, mnemonicPath, null, null);
             return !disciplines.isEmpty();
         } else if (Type.DEVICEGROUP.equals(type)) {
             return Boolean.FALSE;
         } else if (Type.DEVICETYPE.equals(type)) {
-            List<DeviceType> deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(Status.APPROVED, false, null, null, null, null, mnemonicPath, null, null);
+            List<DeviceType> deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(false, null, null, null, null, mnemonicPath, null, null);
             return !deviceTypes.isEmpty();
         }
 
@@ -491,16 +483,12 @@ public class StructuresService {
     public void validateStructuresCreate(StructureElementCommand structureElement, HolderStructures holderStructures) {
         // validate structure element
         //     input
-        //         type
         //         input itself
         //     data
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateStructureElementUtil.validateStructureElementInputCreate(structureElement, namingConvention);
-
-        // validate data
         ValidateStructureElementUtil.validateStructureElementDataCreate(structureElement, namingConvention, holderRepositories, holderStructures);
     }
     public void validateStructuresCreate(List<StructureElementCommand> structureElements) {
@@ -518,16 +506,12 @@ public class StructuresService {
     public void validateStructuresUpdate(StructureElementCommand structureElement, HolderStructures holderStructures) {
         // validate structure element
         //     input
-        //         type
         //         input itself
         //     data
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateStructureElementUtil.validateStructureElementInputUpdate(structureElement, namingConvention);
-
-        // validate data
         ValidateStructureElementUtil.validateStructureElementDataUpdate(structureElement, namingConvention, holderRepositories, holderStructures);
     }
     public void validateStructuresUpdate(List<StructureElementCommand> structureElements) {
@@ -545,16 +529,12 @@ public class StructuresService {
     public void validateStructuresDelete(StructureElementCommand structureElement, HolderStructures holderStructures) {
         // validate structure element
         //     input
-        //         type
         //         input itself
         //     data
         //         data itself
         //         relative other data
 
-        // validate input
         ValidateStructureElementUtil.validateStructureElementInputDelete(structureElement, namingConvention);
-
-        // validate data
         ValidateStructureElementUtil.validateStructureElementDataDelete(structureElement, namingConvention, holderRepositories, holderStructures);
     }
     public void validateStructuresDelete(List<StructureElementCommand> structureElements) {
@@ -566,87 +546,6 @@ public class StructuresService {
         }
     }
 
-    public void validateStructuresApprove(StructureElementCommand structureElement) {
-        validateStructuresApprove(structureElement, new HolderStructures(holderIRepositories));
-    }
-    public void validateStructuresApprove(StructureElementCommand structureElement, HolderStructures holderStructures) {
-        // validate structure element
-        //     input
-        //         type
-        //         input itself
-        //     data
-        //         data itself
-        //         relative other data
-
-        // validate input
-        ValidateStructureElementUtil.validateStructureElementInputApprove(structureElement, namingConvention);
-
-        // validate data
-        ValidateStructureElementUtil.validateStructureElementDataApprove(structureElement, namingConvention, holderRepositories, holderStructures);
-    }
-    public void validateStructuresApprove(List<StructureElementCommand> structureElements) {
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        for (StructureElementCommand structureElement : structureElements) {
-            validateStructuresApprove(structureElement, holderStructures);
-        }
-    }
-
-    public void validateStructuresCancel(StructureElementCommand structureElement) {
-        validateStructuresCancel(structureElement, new HolderStructures(holderIRepositories));
-    }
-    public void validateStructuresCancel(StructureElementCommand structureElement, HolderStructures holderStructures) {
-        // validate structure element
-        //     input
-        //         type
-        //         input itself
-        //     data
-        //         data itself
-        //         relative other data
-
-        // validate input
-        ValidateStructureElementUtil.validateStructureElementInputCancel(structureElement, namingConvention);
-
-        // validate data
-        ValidateStructureElementUtil.validateStructureElementDataCancel(structureElement, namingConvention, holderRepositories, holderStructures);
-    }
-    public void validateStructuresCancel(List<StructureElementCommand> structureElements) {
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        for (StructureElementCommand structureElement : structureElements) {
-            validateStructuresCancel(structureElement, holderStructures);
-        }
-    }
-
-    public void validateStructuresReject(StructureElementCommand structureElement) {
-        validateStructuresReject(structureElement, new HolderStructures(holderIRepositories));
-    }
-    public void validateStructuresReject(StructureElementCommand structureElement, HolderStructures holderStructures) {
-        // validate structure element
-        //     input
-        //         type
-        //         input itself
-        //     data
-        //         data itself
-        //         relative other data
-
-        // validate input
-        ValidateStructureElementUtil.validateStructureElementInputReject(structureElement, namingConvention);
-
-        // validate data
-        ValidateStructureElementUtil.validateStructureElementDataReject(structureElement, namingConvention, holderRepositories, holderStructures);
-    }
-    public void validateStructuresReject(List<StructureElementCommand> structureElements) {
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        for (StructureElementCommand structureElement : structureElements) {
-            validateStructuresReject(structureElement, holderStructures);
-        }
-    }
-
     // ----------------------------------------------------------------------------------------------------
 
     @Transactional
@@ -773,196 +672,4 @@ public class StructuresService {
         return deletedStructureElements;
     }
 
-    // ----------------------------------------------------------------------------------------------------
-
-    @Transactional
-    public List<StructureElement> approveStructures(List<StructureElementCommand> structureElements, String username) {
-        // validation outside method
-        // transaction
-        //     for each structure element command
-        //         approve structure
-        //         handle
-        //             notification
-        //             structure element for approved structure
-        //     notify
-        //     return structure elements for approved structures
-
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        // approve
-        //     set not latest for current latest
-        //     set approved, latest for pending
-        //     delete
-        //         delete sub structures
-        //         delete names
-
-        Date when = new Date();
-        List<NotificationStructure> notifications = Lists.newArrayList();
-        final List<StructureElement> approvedStructureElements = Lists.newArrayList();
-        for (StructureElementCommand structureElement : structureElements) {
-            Type type = structureElement.getType();
-            StructureElementNotification structureElementNotification = null;
-
-            if (Type.SYSTEMGROUP.equals(type)) {
-                structureElementNotification = systemGroupService.approveStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SYSTEM.equals(type)) {
-                structureElementNotification = systemService.approveStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SUBSYSTEM.equals(type)) {
-                structureElementNotification = subsystemService.approveStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DISCIPLINE.equals(type)) {
-                structureElementNotification = disciplineService.approveStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICEGROUP.equals(type)) {
-                structureElementNotification = deviceGroupService.approveStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICETYPE.equals(structureElement.getType())) {
-                structureElementNotification = deviceTypeService.approveStructure(structureElement, when, username, holderStructures);
-            } else {
-                continue;
-            }
-
-            Utilities.addToCollection(notifications, structureElementNotification.notificationStructure());
-            Utilities.addToCollection(approvedStructureElements, structureElementNotification.structureElement());
-
-            if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, "type", type));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.ELEMENT_IN, structureElement));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.ELEMENT_OUT, structureElementNotification.structureElement()));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.NOTIFICATION, structureElementNotification.notificationStructure()));
-            }
-        }
-
-        // notify
-        notificationService.notifyStructures(notifications, StructureCommand.APPROVE);
-
-        LOGGER.log(Level.INFO,
-                () -> MessageFormat.format(
-                        TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
-                        "Approve structures",
-                        structureElements.size(),
-                        approvedStructureElements.size()));
-        return approvedStructureElements;
-    }
-
-    @Transactional
-    public List<StructureElement> cancelStructures(List<StructureElementCommand> structureElements, String username) {
-        // validation outside method
-        // transaction
-        //     for each structure element command
-        //         cancel structure
-        //         handle
-        //             notification
-        //             structure element for cancelled structure
-        //     notify
-        //     return structure elements for cancelled structures
-
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        Date when = new Date();
-        List<NotificationStructure> notifications = Lists.newArrayList();
-        final List<StructureElement> cancelledStructureElements = Lists.newArrayList();
-        for (StructureElementCommand structureElement : structureElements) {
-            Type type = structureElement.getType();
-            StructureElementNotification structureElementNotification = null;
-
-            if (Type.SYSTEMGROUP.equals(type)) {
-                structureElementNotification = systemGroupService.cancelStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SYSTEM.equals(type)) {
-                structureElementNotification = systemService.cancelStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SUBSYSTEM.equals(type)) {
-                structureElementNotification = subsystemService.cancelStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DISCIPLINE.equals(type)) {
-                structureElementNotification = disciplineService.cancelStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICEGROUP.equals(type)) {
-                structureElementNotification = deviceGroupService.cancelStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICETYPE.equals(structureElement.getType())) {
-                structureElementNotification = deviceTypeService.cancelStructure(structureElement, when, username, holderStructures);
-            } else {
-                continue;
-            }
-
-            Utilities.addToCollection(notifications, structureElementNotification.notificationStructure());
-            Utilities.addToCollection(cancelledStructureElements, structureElementNotification.structureElement());
-
-            if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, "type", type));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.ELEMENT_IN, structureElement));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.ELEMENT_OUT, structureElementNotification.structureElement()));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.NOTIFICATION, structureElementNotification.notificationStructure()));
-            }
-        }
-
-        // notify
-        notificationService.notifyStructures(notifications, StructureCommand.CANCEL);
-
-        LOGGER.log(Level.INFO,
-                () -> MessageFormat.format(
-                        TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
-                        "Cancel structures",
-                        structureElements.size(),
-                        cancelledStructureElements.size()));
-        return cancelledStructureElements;
-    }
-
-    @Transactional
-    public List<StructureElement> rejectStructures(List<StructureElementCommand> structureElements, String username) {
-        // validation outside method
-        // transaction
-        //     for each structure element command
-        //         reject structure
-        //         handle
-        //             notification
-        //             structure element for rejected structure
-        //     notify
-        //     return structure elements for rejected structures
-
-        // initiate holder of system and device structure content, for performance reasons
-        HolderStructures holderStructures = new HolderStructures(holderIRepositories);
-
-        Date when = new Date();
-        List<NotificationStructure> notifications = Lists.newArrayList();
-        final List<StructureElement> rejectedStructureElements = Lists.newArrayList();
-        for (StructureElementCommand structureElement : structureElements) {
-            Type type = structureElement.getType();
-            StructureElementNotification structureElementNotification = null;
-
-            if (Type.SYSTEMGROUP.equals(type)) {
-                structureElementNotification = systemGroupService.rejectStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SYSTEM.equals(type)) {
-                structureElementNotification = systemService.rejectStructure(structureElement, when, username, holderStructures);
-            } else if (Type.SUBSYSTEM.equals(type)) {
-                structureElementNotification = subsystemService.rejectStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DISCIPLINE.equals(type)) {
-                structureElementNotification = disciplineService.rejectStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICEGROUP.equals(type)) {
-                structureElementNotification = deviceGroupService.rejectStructure(structureElement, when, username, holderStructures);
-            } else if (Type.DEVICETYPE.equals(structureElement.getType())) {
-                structureElementNotification = deviceTypeService.rejectStructure(structureElement, when, username, holderStructures);
-            } else {
-                continue;
-            }
-
-            Utilities.addToCollection(notifications, structureElementNotification.notificationStructure());
-            Utilities.addToCollection(rejectedStructureElements, structureElementNotification.structureElement());
-
-            if (LOGGER.isLoggable(Level.FINER)) {
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, "type", type));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.ELEMENT_IN, structureElement));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.ELEMENT_OUT, structureElementNotification.structureElement()));
-                LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.NOTIFICATION, structureElementNotification.notificationStructure()));
-            }
-        }
-
-        // notify
-        notificationService.notifyStructures(notifications, StructureCommand.REJECT);
-
-        LOGGER.log(Level.INFO,
-                () -> MessageFormat.format(
-                        TextUtil.DESCRIPTION_NUMBER_ELEMENTS_IN_OUT,
-                        "Reject structures",
-                        structureElements.size(),
-                        rejectedStructureElements.size()));
-        return rejectedStructureElements;
-    }
-
 }
diff --git a/src/main/java/org/openepics/names/service/SubsystemService.java b/src/main/java/org/openepics/names/service/SubsystemService.java
index 755c6ecef5f3704c261a53bdc92953acf1f7517f..697c761bdb53900f02efa7ed0ba3159eae2744cf 100644
--- a/src/main/java/org/openepics/names/service/SubsystemService.java
+++ b/src/main/java/org/openepics/names/service/SubsystemService.java
@@ -55,11 +55,6 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class SubsystemService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(SubsystemService.class.getName());
 
     private ISubsystemRepository iSubsystemRepository;
@@ -81,8 +76,13 @@ public class SubsystemService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
+        //     additional
+        //         automatically create name when system structure is created
+        //         condition on name and structure entry
+        //             system structure should exist (uuid), one entry that is not deleted
+        //             name should not exist (system structure mnemonic path)
+        //         within current transaction
         //     return
         //         structure element for created structure
         //         notification
@@ -101,13 +101,23 @@ public class SubsystemService {
         // create
         Subsystem subsystem = new Subsystem(UUID.randomUUID(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         subsystemRepository.createSubsystem(subsystem);
 
+        // additional
+        boolean hasMnemonic = !StringUtils.isEmpty(subsystem.getMnemonic());
+        boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(subsystem, holderStructures));
+        if (hasMnemonic && !existsName) {
+            NameElementCommand nameElement = new NameElementCommand(null, subsystem.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
+            namesService.createName(nameElement, when, username, holderStructures);
+        }
+
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(subsystem),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.CREATE, null, null, subsystem, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(subsystem, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.CREATE, null, subsystem, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -115,9 +125,10 @@ public class SubsystemService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
+        //     additional - update related names
         //     return
         //         structure element for updated structure
         //         notification
@@ -129,87 +140,54 @@ public class SubsystemService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Boolean.FALSE, uuid, null, null, null, null, null, null);
+        Subsystem subsystem = null;
+        if (ValidateUtil.isSize(subsystems, 1)) {
+            subsystem = subsystems.get(0);
+
+            // update not latest
+            subsystem.setLatest(Boolean.FALSE);
+            subsystemRepository.updateSubsystem(subsystem);
+        }
+
         // create
-        Subsystem subsystem = new Subsystem(structureElementCommand.getUuid(), structureElementCommand.getParent(),
+        subsystem = new Subsystem(structureElementCommand.getUuid(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         subsystemRepository.createSubsystem(subsystem);
 
         // previous
-        List<Subsystem> previouses = iSubsystemRepository.findPreviousByUuidAndId(subsystem.getUuid().toString(),  subsystem.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(subsystem),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, subsystem, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
+        List<Subsystem> previouses = iSubsystemRepository.findPreviousByUuidAndId(subsystem.getUuid().toString(), subsystem.getId());
+        Subsystem previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // find
-        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(subsystems, 1)) {
-            return null;
-        }
-        Subsystem toBeDeleted = subsystems.get(0);
+        // additional
+        namesService.updateNames(previous, subsystem, username);
 
-        // create
-        Subsystem subsystem = new Subsystem(toBeDeleted.getUuid(), toBeDeleted.getParentUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        subsystemRepository.createSubsystem(subsystem);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(subsystem),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.DELETE, null, null, subsystem, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(subsystem, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.UPDATE, previous, subsystem, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //                 system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete related names
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -218,7 +196,7 @@ public class SubsystemService {
         String uuid = structureElementCommand.getUuid().toString();
 
         // find
-        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null, null);
+        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Boolean.FALSE, uuid, null, null, null, null, null, null);
         Subsystem subsystem = null;
         if (ValidateUtil.isSize(subsystems, 1)) {
             subsystem = subsystems.get(0);
@@ -226,128 +204,29 @@ public class SubsystemService {
             // update not latest
             subsystem.setLatest(Boolean.FALSE);
             subsystemRepository.updateSubsystem(subsystem);
-        }
-
-        // find
-        subsystems = subsystemRepository.readSubsystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(subsystems, 1)) {
+        } else {
             return null;
         }
-        subsystem = subsystems.get(0);
 
-        // approve
-        subsystem.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        subsystem.setLatest(Boolean.TRUE);
-        subsystemRepository.updateSubsystem(subsystem);
+        // create
+        subsystem = new Subsystem(subsystem.getUuid(), subsystem.getParentUuid(),
+                subsystem.getMnemonic(), subsystem.getMnemonicEquivalence(), subsystem.getOrdering(),
+                subsystem.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        subsystemRepository.createSubsystem(subsystem);
 
         // previous
         List<Subsystem> previouses = iSubsystemRepository.findPreviousByUuidAndId(uuid, subsystem.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, subsystem);
         Subsystem previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.CREATE.equals(structureCommandCUD)) {
-            boolean hasMnemonic = !StringUtils.isEmpty(subsystem.getMnemonic());
-            boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(subsystem, holderStructures));
-            if (hasMnemonic && !existsName) {
-                NameElementCommand nameElement = new NameElementCommand(null, subsystem.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
-                namesService.createName(nameElement, when, username, holderStructures);
-            }
-        } else if (StructureCommand.UPDATE.equals(structureCommandCUD)) {
-            // update related names
-            namesService.updateNames(previous, subsystem, username);
-        } else if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // delete related names
-            namesService.deleteNames(subsystem, username);
-        }
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(subsystem, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, structureCommandCUD, StructureCommand.APPROVE, previous, subsystem, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(subsystems, 1)) {
-            return null;
-        }
-        Subsystem subsystem = subsystems.get(0);
-
-        // cancel
-        subsystem.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        subsystemRepository.updateSubsystem(subsystem);
-
-        // previous
-        List<Subsystem> previouses = iSubsystemRepository.findPreviousByUuidAndId(uuid, subsystem.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, subsystem);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(subsystem, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, subsystem, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<Subsystem> subsystems = subsystemRepository.readSubsystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(subsystems, 1)) {
-            return null;
-        }
-        Subsystem subsystem = subsystems.get(0);
-
-        // reject
-        subsystem.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        subsystemRepository.updateSubsystem(subsystem);
-
-        // previous
-        List<Subsystem> previouses = iSubsystemRepository.findPreviousByUuidAndId(uuid, subsystem.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, subsystem);
+        namesService.deleteNames(subsystem, username);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(subsystem, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SUBSYSTEM, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, subsystem, holderStructures));
+                NotificationUtil.prepareNotification(Type.SUBSYSTEM, StructureCommand.DELETE, previous, subsystem, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/service/SystemGroupService.java b/src/main/java/org/openepics/names/service/SystemGroupService.java
index 7700cbfe7a6dd62d3da0b8bd286398690d27542b..69d02e6591376fe789b21449f0e3b79dec9dd7a5 100644
--- a/src/main/java/org/openepics/names/service/SystemGroupService.java
+++ b/src/main/java/org/openepics/names/service/SystemGroupService.java
@@ -59,11 +59,6 @@ import com.google.common.collect.Lists;
 @Service
 public class SystemGroupService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(SystemGroupService.class.getName());
 
     private ISystemGroupRepository iSystemGroupRepository;
@@ -91,8 +86,13 @@ public class SystemGroupService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
+        //     additional
+        //         automatically create name when system structure is created
+        //         condition on name and structure entry
+        //             system structure should exist (uuid), one entry that is not deleted
+        //             name should not exist (system structure mnemonic path)
+        //         within current transaction
         //     return
         //         structure element for created structure
         //         notification
@@ -111,13 +111,23 @@ public class SystemGroupService {
         // create
         SystemGroup systemGroup = new SystemGroup(UUID.randomUUID(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         systemGroupRepository.createSystemGroup(systemGroup);
 
+        // additional
+        boolean hasMnemonic = !StringUtils.isEmpty(systemGroup.getMnemonic());
+        boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(systemGroup, holderStructures));
+        if (hasMnemonic && !existsName) {
+            NameElementCommand nameElement = new NameElementCommand(null, systemGroup.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
+            namesService.createName(nameElement, when, username, holderStructures);
+        }
+
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(systemGroup),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.CREATE, null, null, systemGroup, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(systemGroup, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.CREATE, null, systemGroup, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -125,9 +135,10 @@ public class SystemGroupService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
+        //     additional - update related names
         //     return
         //         structure element for updated structure
         //         notification
@@ -139,87 +150,54 @@ public class SystemGroupService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Boolean.FALSE, uuid, null, null, null, null, null);
+        SystemGroup systemGroup = null;
+        if (ValidateUtil.isSize(systemGroups, 1)) {
+            systemGroup = systemGroups.get(0);
+
+            // update not latest
+            systemGroup.setLatest(Boolean.FALSE);
+            systemGroupRepository.updateSystemGroup(systemGroup);
+        }
+
         // create
-        SystemGroup systemGroup = new SystemGroup(structureElementCommand.getUuid(),
+        systemGroup = new SystemGroup(structureElementCommand.getUuid(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         systemGroupRepository.createSystemGroup(systemGroup);
 
         // previous
-        List<SystemGroup> previouses = iSystemGroupRepository.findPreviousByUuidAndId(systemGroup.getUuid().toString(),  systemGroup.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(systemGroup),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, systemGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
+        List<SystemGroup> previouses = iSystemGroupRepository.findPreviousByUuidAndId(uuid, systemGroup.getId());
+        SystemGroup previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // find
-        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) {
-            return null;
-        }
-        SystemGroup toBeDeleted = systemGroups.get(0);
+        // additional
+        namesService.updateNames(previous, systemGroup, username);
 
-        // create
-        SystemGroup systemGroup = new SystemGroup(toBeDeleted.getUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        systemGroupRepository.createSystemGroup(systemGroup);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(systemGroup),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.DELETE, null, null, systemGroup, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(systemGroup, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.UPDATE, previous, systemGroup, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //                 system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete related names, delete sub structures (and related names)
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -228,7 +206,7 @@ public class SystemGroupService {
         String uuid = structureElementCommand.getUuid().toString();
 
         // find
-        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null);
+        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Boolean.FALSE, uuid, null, null, null, null, null);
         SystemGroup systemGroup = null;
         if (ValidateUtil.isSize(systemGroups, 1)) {
             systemGroup = systemGroups.get(0);
@@ -236,143 +214,39 @@ public class SystemGroupService {
             // update not latest
             systemGroup.setLatest(Boolean.FALSE);
             systemGroupRepository.updateSystemGroup(systemGroup);
-        }
-
-        // find
-        systemGroups = systemGroupRepository.readSystemGroups(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) {
+        } else {
             return null;
         }
-        systemGroup = systemGroups.get(0);
 
-        // approve
-        systemGroup.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        systemGroup.setLatest(Boolean.TRUE);
-        systemGroupRepository.updateSystemGroup(systemGroup);
+        // create
+        systemGroup = new SystemGroup(systemGroup.getUuid(),
+                systemGroup.getMnemonic(), systemGroup.getMnemonicEquivalence(), systemGroup.getOrdering(),
+                systemGroup.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        systemGroupRepository.createSystemGroup(systemGroup);
 
         // previous
         List<SystemGroup> previouses = iSystemGroupRepository.findPreviousByUuidAndId(uuid, systemGroup.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, systemGroup);
         SystemGroup previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.CREATE.equals(structureCommandCUD)) {
-            boolean hasMnemonic = !StringUtils.isEmpty(systemGroup.getMnemonic());
-            boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(systemGroup, holderStructures));
-            if (hasMnemonic && !existsName) {
-                NameElementCommand nameElement = new NameElementCommand(null, systemGroup.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
-                namesService.createName(nameElement, when, username, holderStructures);
-            }
-        } else if (StructureCommand.UPDATE.equals(structureCommandCUD)) {
-            // update related names
-            namesService.updateNames(previous, systemGroup, username);
-        } else if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // will propagate to sub structures and related names
-
-            // delete related names
-            namesService.deleteNames(systemGroup, username);
-
-            // delete sub structures - delete, approve
-            List<StructureElementCommand> commands = Lists.newArrayList();
-            List<System> systems = iSystemRepository.findLatestNotDeletedByParent(uuid);
-            for (System system : systems) {
-                commands.add(new StructureElementCommand(system.getUuid(), Type.SYSTEM, null, null, null, null));
-            }
-            for (StructureElementCommand command : commands) {
-                systemService.deleteStructure(command, when, username, holderStructures);
-            }
-            for (StructureElementCommand command : commands) {
-                systemService.approveStructure(command, when, username, holderStructures);
-            }
-        }
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(systemGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, structureCommandCUD, StructureCommand.APPROVE, previous, systemGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
+        //     will propagate to sub structures
+        namesService.deleteNames(systemGroup, username);
 
-        // find
-        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) {
-            return null;
+        List<StructureElementCommand> commands = Lists.newArrayList();
+        List<System> systems = iSystemRepository.findLatestNotDeletedByParent(uuid);
+        for (System system : systems) {
+            commands.add(new StructureElementCommand(system.getUuid(), Type.SYSTEM, null, null, null, null));
         }
-        SystemGroup systemGroup = systemGroups.get(0);
-
-        // cancel
-        systemGroup.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        systemGroupRepository.updateSystemGroup(systemGroup);
-
-        // previous
-        List<SystemGroup> previouses = iSystemGroupRepository.findPreviousByUuidAndId(uuid, systemGroup.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, systemGroup);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(systemGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, systemGroup, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<SystemGroup> systemGroups = systemGroupRepository.readSystemGroups(Status.PENDING, null, uuid, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systemGroups, 1)) {
-            return null;
+        for (StructureElementCommand command : commands) {
+            systemService.deleteStructure(command, when, username, holderStructures);
         }
-        SystemGroup systemGroup = systemGroups.get(0);
-
-        // reject
-        systemGroup.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        systemGroupRepository.updateSystemGroup(systemGroup);
-
-        // previous
-        List<SystemGroup> previouses = iSystemGroupRepository.findPreviousByUuidAndId(uuid, systemGroup.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, systemGroup);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(systemGroup, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, systemGroup, holderStructures));
+                NotificationUtil.prepareNotification(Type.SYSTEMGROUP, StructureCommand.DELETE, previous, systemGroup, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/service/SystemService.java b/src/main/java/org/openepics/names/service/SystemService.java
index 067b14e3fa884c7293b40cc5414049414c53cee5..6d8794acd504fe86bc396f5948b6ec45eda94e63 100644
--- a/src/main/java/org/openepics/names/service/SystemService.java
+++ b/src/main/java/org/openepics/names/service/SystemService.java
@@ -59,11 +59,6 @@ import com.google.common.collect.Lists;
 @Service
 public class SystemService {
 
-    // note
-    //     structurecommand
-    //         cud - create update delete
-    //         acr - approve cancel reject
-
     private static final Logger LOGGER = Logger.getLogger(SystemService.class.getName());
 
     private ISystemRepository iSystemRepository;
@@ -91,8 +86,13 @@ public class SystemService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
+        //     create structure - approved, latest, not deleted
+        //     additional
+        //         automatically create name when system structure is created
+        //         condition on name and structure entry
+        //             system structure should exist (uuid), one entry that is not deleted
+        //             name should not exist (system structure mnemonic path)
+        //         within current transaction
         //     return
         //         structure element for created structure
         //         notification
@@ -111,13 +111,23 @@ public class SystemService {
         // create
         System system = new System(UUID.randomUUID(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         systemRepository.createSystem(system);
 
+        // additional
+        boolean hasMnemonic = !StringUtils.isEmpty(system.getMnemonic());
+        boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(system, holderStructures));
+        if (hasMnemonic && !existsName) {
+            NameElementCommand nameElement = new NameElementCommand(null, system.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
+            namesService.createName(nameElement, when, username, holderStructures);
+        }
+
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CREATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.CREATE));
+
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(system),
-                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.CREATE, null, null, system, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(system, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.CREATE, null, system, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
@@ -125,9 +135,10 @@ public class SystemService {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     create structure to pending, not latest, not deleted, with data
-        //     find out previous
+        //     update not latest
+        //     create structure - approved, latest, not deleted
+        //     previous for notification
+        //     additional - update related names
         //     return
         //         structure element for updated structure
         //         notification
@@ -139,87 +150,54 @@ public class SystemService {
         //     namingConvention.equivalenceClassRepresentative return null for null input
         //     rules for mnemonic
 
+        String uuid = structureElementCommand.getUuid().toString();
         String mnemonic = structureElementCommand.getMnemonic();
         mnemonic = StringUtils.isEmpty(mnemonic) ? null : mnemonic;
         String equivalenceClassRepresentative = namingConvention.equivalenceClassRepresentative(mnemonic);
 
+        // find
+        List<System> systems = systemRepository.readSystems(Boolean.FALSE, uuid, null, null, null, null, null, null);
+        System system = null;
+        if (ValidateUtil.isSize(systems, 1)) {
+            system = systems.get(0);
+
+            // update not latest
+            system.setLatest(Boolean.FALSE);
+            systemRepository.updateSystem(system);
+        }
+
         // create
-        System system = new System(structureElementCommand.getUuid(), structureElementCommand.getParent(),
+        system = new System(structureElementCommand.getUuid(), structureElementCommand.getParent(),
                 mnemonic, equivalenceClassRepresentative, structureElementCommand.getOrdering(),
-                structureElementCommand.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.FALSE,
+                structureElementCommand.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.FALSE,
                 when, username, null);
         systemRepository.createSystem(system);
 
         // previous
-        List<System> previouses = iSystemRepository.findPreviousByUuidAndId(system.getUuid().toString(),  system.getId());
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(system),
-                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.UPDATE, null,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, system, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     create structure to pending, not latest, deleted, with data
-        //     return
-        //         structure element for deleted structure
-        //         notification
-        //
-        // attributes
-        //     uuid
+        List<System> previouses = iSystemRepository.findPreviousByUuidAndId(system.getUuid().toString(), system.getId());
+        System previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
-        // find
-        List<System> systems = systemRepository.readSystems(Status.APPROVED, Boolean.FALSE, structureElementCommand.getUuid().toString(), null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systems, 1)) {
-            return null;
-        }
-        System toBeDeleted = systems.get(0);
+        // additional
+        namesService.updateNames(previous, system, username);
 
-        // create
-        System system = new System(toBeDeleted.getUuid(), toBeDeleted.getParentUuid(),
-                toBeDeleted.getMnemonic(), toBeDeleted.getMnemonicEquivalence(), toBeDeleted.getOrdering(),
-                toBeDeleted.getDescription(), Status.PENDING, Boolean.FALSE, Boolean.TRUE,
-                when, username, null);
-        systemRepository.createSystem(system);
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.UPDATE_STRUCTURE, TextUtil.COMMAND, StructureCommand.UPDATE));
 
         return new StructureElementNotification(
-                StructureElementUtil.getStructureElementRequested(system),
-                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.DELETE, null, null, system, holderStructures));
+                StructureElementUtil.getStructureElementProcessed(system, holderStructures, StructureChoice.STRUCTURE),
+                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.UPDATE, previous, system, holderStructures));
     }
 
     @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification approveStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
+    public StructureElementNotification deleteStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
         // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
         //     update not latest
-        //     find
-        //     approve - update structure to status APPROVED, latest to true
-        //     additional
-        //         find out previous to find out what is approved - create update delete
-        //         approve create
-        //             automatically create name when system structure is approved
-        //             condition on name and structure entry
-        //                 system structure should exist (uuid), one entry that is not deleted
-        //                 name should not exist (system structure mnemonic)
-        //             within current transaction
-        //         approve update
-        //             update related names
-        //             for different mnemonic
-        //             not for device group
-        //         approve delete
-        //             delete related names
-        //             delete sub structures
+        //     create structure - approved, latest, deleted
+        //     previous for notification
+        //     additional - delete related names, delete sub structures (and related names)
         //     return
-        //         structure element for approved structure
+        //         structure element for deleted structure
         //         notification
         //
         // attributes
@@ -228,7 +206,7 @@ public class SystemService {
         String uuid = structureElementCommand.getUuid().toString();
 
         // find
-        List<System> systems = systemRepository.readSystems(Status.APPROVED, Boolean.FALSE, uuid, null, null, null, null, null, null);
+        List<System> systems = systemRepository.readSystems(Boolean.FALSE, uuid, null, null, null, null, null, null);
         System system = null;
         if (ValidateUtil.isSize(systems, 1)) {
             system = systems.get(0);
@@ -236,143 +214,39 @@ public class SystemService {
             // update not latest
             system.setLatest(Boolean.FALSE);
             systemRepository.updateSystem(system);
-        }
-
-        // find
-        systems = systemRepository.readSystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systems, 1)) {
+        } else {
             return null;
         }
-        system = systems.get(0);
 
-        // approve
-        system.setAttributesStatusProcessed(Status.APPROVED, when, username, null);
-        system.setLatest(Boolean.TRUE);
-        systemRepository.updateSystem(system);
+        // create
+        system = new System(system.getUuid(), system.getParentUuid(),
+                system.getMnemonic(), system.getMnemonicEquivalence(), system.getOrdering(),
+                system.getDescription(), Status.APPROVED, Boolean.TRUE, Boolean.TRUE,
+                when, username, null);
+        systemRepository.createSystem(system);
 
         // previous
         List<System> previouses = iSystemRepository.findPreviousByUuidAndId(uuid, system.getId());
-        StructureCommand structureCommandCUD = StructureUtil.getStructureCommandCUD(previouses, system);
         System previous = previouses != null && !previouses.isEmpty() ? previouses.get(0) : null;
 
         // additional
-        if (StructureCommand.CREATE.equals(structureCommandCUD)) {
-            boolean hasMnemonic = !StringUtils.isEmpty(system.getMnemonic());
-            boolean existsName = hasMnemonic && namesService.existsName(StructureUtil.getMnemonicPath(system, holderStructures));
-            if (hasMnemonic && !existsName) {
-                NameElementCommand nameElement = new NameElementCommand(null, system.getUuid(), null, null, StructuresService.SYSTEM_STRUCTURE_ONLY);
-                namesService.createName(nameElement, when, username, holderStructures);
-            }
-        } else if (StructureCommand.UPDATE.equals(structureCommandCUD)) {
-            // update related names
-            namesService.updateNames(previous, system, username);
-        } else if (StructureCommand.DELETE.equals(structureCommandCUD)) {
-            // will propagate to sub structures and related names
-
-            // delete related names
-            namesService.deleteNames(system, username);
-
-            // delete sub structures - delete, approve
-            List<StructureElementCommand> commands = Lists.newArrayList();
-            List<Subsystem> subsystems = iSubsystemRepository.findLatestNotDeletedByParent(uuid);
-            for (Subsystem subsystem : subsystems) {
-                commands.add(new StructureElementCommand(subsystem.getUuid(), Type.SUBSYSTEM, null, null, null, null));
-            }
-            for (StructureElementCommand command : commands) {
-                subsystemService.deleteStructure(command, when, username, holderStructures);
-            }
-            for (StructureElementCommand command : commands) {
-                subsystemService.approveStructure(command, when, username, holderStructures);
-            }
-        }
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.APPROVE_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(system, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEM, structureCommandCUD, StructureCommand.APPROVE, previous, system, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification cancelStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     cancel - update structure to status CANCELLED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
+        //     will propagate to sub structures
+        namesService.deleteNames(system, username);
 
-        // find
-        List<System> systems = systemRepository.readSystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systems, 1)) {
-            return null;
+        List<StructureElementCommand> commands = Lists.newArrayList();
+        List<Subsystem> subsystems = iSubsystemRepository.findLatestNotDeletedByParent(uuid);
+        for (Subsystem subsystem : subsystems) {
+            commands.add(new StructureElementCommand(subsystem.getUuid(), Type.SUBSYSTEM, null, null, null, null));
         }
-        System system = systems.get(0);
-
-        // cancel
-        system.setAttributesStatusProcessed(Status.CANCELLED, when, username, null);
-        systemRepository.updateSystem(system);
-
-        // previous
-        List<System> previouses = iSystemRepository.findPreviousByUuidAndId(uuid, system.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, system);
-
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.CANCEL_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
-
-        return new StructureElementNotification(
-                StructureElementUtil.getStructureElementProcessed(system, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEM, structureCommandCUD, StructureCommand.CANCEL,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, system, holderStructures));
-    }
-
-    @Transactional(propagation = Propagation.MANDATORY)
-    public StructureElementNotification rejectStructure(StructureElementCommand structureElementCommand, Date when, String username, HolderStructures holderStructures) {
-        // validation outside method
-        // transaction
-        //     support a current transaction, throw an exception if none exists
-        //     attributes
-        //     find
-        //     reject - update structure to status REJECTED
-        //     find out previous
-        //     return
-        //         structure element for created structure
-        //         notification
-        //
-        // attributes
-        //     uuid
-
-        String uuid = structureElementCommand.getUuid().toString();
-
-        // find
-        List<System> systems = systemRepository.readSystems(Status.PENDING, null, uuid, null, null, null, null, null, null);
-        if (ValidateUtil.isNullOrNotSize(systems, 1)) {
-            return null;
+        for (StructureElementCommand command : commands) {
+            subsystemService.deleteStructure(command, when, username, holderStructures);
         }
-        System system = systems.get(0);
-
-        // reject
-        system.setAttributesStatusProcessed(Status.REJECTED, when, username, null);
-        systemRepository.updateSystem(system);
-
-        // previous
-        List<System> previouses = iSystemRepository.findPreviousByUuidAndId(uuid, system.getId());
-        StructureCommand structureCommandCUD = NotificationUtil.getStructureCommandCUD(previouses, system);
 
-        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.REJECT_STRUCTURE, TextUtil.COMMAND, structureCommandCUD));
+        LOGGER.log(Level.FINE, () -> MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.DELETE_STRUCTURE, TextUtil.COMMAND, StructureCommand.DELETE));
 
         return new StructureElementNotification(
                 StructureElementUtil.getStructureElementProcessed(system, holderStructures, StructureChoice.STRUCTURE),
-                NotificationUtil.prepareNotification(Type.SYSTEM, structureCommandCUD, StructureCommand.REJECT,
-                        previouses != null && !previouses.isEmpty() ? previouses.get(0) : null, system, holderStructures));
+                NotificationUtil.prepareNotification(Type.SYSTEM, StructureCommand.DELETE, previous, system, holderStructures));
     }
 
 }
diff --git a/src/main/java/org/openepics/names/util/NameElementUtil.java b/src/main/java/org/openepics/names/util/NameElementUtil.java
index 0eca6a21af9b5b0c6039a86a9a37eed1a37fc13e..1e511320edccbecebb3fdce9937dadf390435569 100644
--- a/src/main/java/org/openepics/names/util/NameElementUtil.java
+++ b/src/main/java/org/openepics/names/util/NameElementUtil.java
@@ -47,9 +47,7 @@ import com.google.common.collect.Lists;
 public class NameElementUtil {
 
     // note
-    //     handling of system structure, device structure
-    //         parent system structure uuid (system group, system, subsystem) - ability to find structure
-    //         parent device structure uuid (device type)
+    //     requested attributes for names are used, not processed attributes
 
     /**
      * This class is not to be instantiated.
diff --git a/src/main/java/org/openepics/names/util/StructureCommand.java b/src/main/java/org/openepics/names/util/StructureCommand.java
index aa2bf5eac79a5d520646664bb5d86e86cb722b5c..3914faab06549600bf74683aaecd24bc62f1ab8f 100644
--- a/src/main/java/org/openepics/names/util/StructureCommand.java
+++ b/src/main/java/org/openepics/names/util/StructureCommand.java
@@ -25,6 +25,6 @@ package org.openepics.names.util;
  */
 public enum StructureCommand {
 
-    CREATE, UPDATE, DELETE, APPROVE, CANCEL, REJECT;
+    CREATE, UPDATE, DELETE;
 
 }
diff --git a/src/main/java/org/openepics/names/util/StructureElementUtil.java b/src/main/java/org/openepics/names/util/StructureElementUtil.java
index 8fe20cb65288b336460c5f611e8f9ebdee11ada5..dff1ff6d9f0f0fe8a8c8bb97b7edcd0ba07a7b1b 100644
--- a/src/main/java/org/openepics/names/util/StructureElementUtil.java
+++ b/src/main/java/org/openepics/names/util/StructureElementUtil.java
@@ -45,6 +45,10 @@ import com.google.common.collect.Lists;
  */
 public class StructureElementUtil {
 
+    // note
+    //     processed attributes for structures are used, not requested attributes
+    //         requested attributes also used prior to removal of use of status attribute
+
     /**
      * This class is not to be instantiated.
      */
@@ -58,32 +62,15 @@ public class StructureElementUtil {
      * @param systemGroups system groups
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForSystemGroups(List<SystemGroup> systemGroups, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (SystemGroup systemGroup : systemGroups) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (systemGroup.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(systemGroup));
-                    structureElements.add(getStructureElementProcessed(systemGroup, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(systemGroup));
-                }
-            } else {
-                if (Status.PENDING.equals(systemGroup.getStatus())) {
-                    structureElements.add(getStructureElementRequested(systemGroup));
-                } else {
-                    structureElements.add(getStructureElementProcessed(systemGroup, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(systemGroup, holderStructures, structureChoice));
         }
         return structureElements;
     }
@@ -93,32 +80,15 @@ public class StructureElementUtil {
      * @param systems systems
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForSystems(List<System> systems, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (System system : systems) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (system.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(system));
-                    structureElements.add(getStructureElementProcessed(system, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(system));
-                }
-            } else {
-                if (Status.PENDING.equals(system.getStatus())) {
-                    structureElements.add(getStructureElementRequested(system));
-                } else {
-                    structureElements.add(getStructureElementProcessed(system, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(system, holderStructures, structureChoice));
         }
         return structureElements;
     }
@@ -128,32 +98,15 @@ public class StructureElementUtil {
      * @param subsystems subsystems
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForSubsystems(List<Subsystem> subsystems, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (Subsystem subsystem : subsystems) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (subsystem.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(subsystem));
-                    structureElements.add(getStructureElementProcessed(subsystem, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(subsystem));
-                }
-            } else {
-                if (Status.PENDING.equals(subsystem.getStatus())) {
-                    structureElements.add(getStructureElementRequested(subsystem));
-                } else {
-                    structureElements.add(getStructureElementProcessed(subsystem, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(subsystem, holderStructures, structureChoice));
         }
         return structureElements;
     }
@@ -164,32 +117,15 @@ public class StructureElementUtil {
      * @param disciplines disciplines
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForDisciplines(List<Discipline> disciplines, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (Discipline discipline : disciplines) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (discipline.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(discipline));
-                    structureElements.add(getStructureElementProcessed(discipline, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(discipline));
-                }
-            } else {
-                if (Status.PENDING.equals(discipline.getStatus())) {
-                    structureElements.add(getStructureElementRequested(discipline));
-                } else {
-                    structureElements.add(getStructureElementProcessed(discipline, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(discipline, holderStructures, structureChoice));
         }
         return structureElements;
     }
@@ -199,32 +135,15 @@ public class StructureElementUtil {
      * @param deviceGroups device groups
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForDeviceGroups(List<DeviceGroup> deviceGroups, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (DeviceGroup deviceGroup : deviceGroups) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (deviceGroup.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(deviceGroup));
-                    structureElements.add(getStructureElementProcessed(deviceGroup, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(deviceGroup));
-                }
-            } else {
-                if (Status.PENDING.equals(deviceGroup.getStatus())) {
-                    structureElements.add(getStructureElementRequested(deviceGroup));
-                } else {
-                    structureElements.add(getStructureElementProcessed(deviceGroup, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(deviceGroup, holderStructures, structureChoice));
         }
         return structureElements;
     }
@@ -234,60 +153,19 @@ public class StructureElementUtil {
      * @param deviceTypes device types
      * @param holderStructures holder of system and device structure content
      * @param structureChoice whether to consider content from structure perspective or history perspective.
-     *                        Structure perspective gives one StructureElement object (processed).
-     *                        History perspective gives one or two StructureElement objects (requested, processed).
+     *                        Structure perspective will give mnemonic path.
+     *                        History perspective may give empty mnemonic path as non-trivial to find out for history.
      *                        If choice not given then default as structure perspective (processed).
      * @return list of structure elements
      */
     public static List<StructureElement> getStructureElementsForDeviceTypes(List<DeviceType> deviceTypes, HolderStructures holderStructures, StructureChoice structureChoice) {
         List<StructureElement> structureElements = Lists.newArrayList();
         for (DeviceType deviceType : deviceTypes) {
-            // one or two return elements for history
-            //     processed != null --> two entries (requested, processed)
-            //     processed == null --> one entry   (requested)
-
-            if (StructureChoice.HISTORY.equals(structureChoice)) {
-                if (deviceType.getProcessed() != null) {
-                    structureElements.add(getStructureElementRequested(deviceType));
-                    structureElements.add(getStructureElementProcessed(deviceType, holderStructures, structureChoice));
-                } else {
-                    structureElements.add(getStructureElementRequested(deviceType));
-                }
-            } else {
-                if (Status.PENDING.equals(deviceType.getStatus())) {
-                    structureElements.add(getStructureElementRequested(deviceType));
-                } else {
-                    structureElements.add(getStructureElementProcessed(deviceType, holderStructures, structureChoice));
-                }
-            }
+            structureElements.add(getStructureElementProcessed(deviceType, holderStructures, structureChoice));
         }
         return structureElements;
     }
 
-    /**
-     * Populate and return structure element for system group with focus on requested.
-     *
-     * @param systemGroup system group
-     * @return structure element
-     */
-    public static StructureElement getStructureElementRequested(SystemGroup systemGroup) {
-        if (systemGroup == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not for history of structure
-        //     for latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                systemGroup.getUuid(), Type.SYSTEMGROUP, null,
-                systemGroup.getMnemonic(), systemGroup.getOrdering(), systemGroup.getDescription(),
-                mnemonicPath, 1,
-                Status.PENDING, Boolean.FALSE, systemGroup.isDeleted(),
-                systemGroup.getRequested(), systemGroup.getRequestedBy(), systemGroup.getRequestedComment());
-    }
     /**
      * Populate and return structure element for system group with focus on processed.
      *
@@ -316,30 +194,6 @@ public class StructureElementUtil {
                 systemGroup.getStatus(), systemGroup.isLatest(), systemGroup.isDeleted(),
                 systemGroup.getProcessed(), systemGroup.getProcessedBy(), systemGroup.getProcessedComment());
     }
-    /**
-     * Populate and return structure element for system group with focus on requested.
-     *
-     * @param system system
-     * @return structure element
-     */
-    public static StructureElement getStructureElementRequested(System system) {
-        if (system == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not history of structure
-        //     latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                system.getUuid(), Type.SYSTEM, system.getParentUuid(),
-                system.getMnemonic(), system.getOrdering(), system.getDescription(),
-                mnemonicPath, 2,
-                Status.PENDING, Boolean.FALSE, system.isDeleted(),
-                system.getRequested(), system.getRequestedBy(), system.getRequestedComment());
-    }
     /**
      * Populate and return structure element for system with focus on processed.
      *
@@ -368,30 +222,6 @@ public class StructureElementUtil {
                 system.getStatus(), system.isLatest(), system.isDeleted(),
                 system.getProcessed(), system.getProcessedBy(), system.getProcessedComment());
     }
-    /**
-     * Populate and return structure element for subsystem with focus on requested.
-     *
-     * @param subsystem subsystem
-     * @return structure element
-     */
-    public static StructureElement getStructureElementRequested(Subsystem subsystem) {
-        if (subsystem == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not history of structure
-        //     latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                subsystem.getUuid(), Type.SUBSYSTEM, subsystem.getParentUuid(),
-                subsystem.getMnemonic(), subsystem.getOrdering(), subsystem.getDescription(),
-                mnemonicPath, 3,
-                Status.PENDING, Boolean.FALSE, subsystem.isDeleted(),
-                subsystem.getRequested(), subsystem.getRequestedBy(), subsystem.getRequestedComment());
-    }
     /**
      * Populate and return structure element for subsystem with focus on processed.
      *
@@ -421,30 +251,6 @@ public class StructureElementUtil {
                 subsystem.getProcessed(), subsystem.getProcessedBy(), subsystem.getProcessedComment());
     }
 
-    /**
-     * Populate and return structure element for discipline with focus on requested.
-     *
-     * @param discipline discipline
-     * @return structure element
-     */
-    public static StructureElement getStructureElementRequested(Discipline discipline) {
-        if (discipline == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not history of structure
-        //     latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                discipline.getUuid(), Type.DISCIPLINE, null,
-                discipline.getMnemonic(), discipline.getOrdering(), discipline.getDescription(),
-                mnemonicPath, 1,
-                Status.PENDING, Boolean.FALSE, discipline.isDeleted(),
-                discipline.getRequested(), discipline.getRequestedBy(), discipline.getRequestedComment());
-    }
     /**
      * Populate and return structure element for discipline with focus on processed.
      *
@@ -473,30 +279,6 @@ public class StructureElementUtil {
                 discipline.getStatus(), discipline.isLatest(), discipline.isDeleted(),
                 discipline.getProcessed(), discipline.getProcessedBy(), discipline.getProcessedComment());
     }
-    /**
-     * Populate and return structure element for device group with focus on requested.
-     *
-     * @param deviceGroup device group
-     * @return structure element
-     */
-    public static StructureElement getStructureElementRequested(DeviceGroup deviceGroup) {
-        if (deviceGroup == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not history of structure
-        //     latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                deviceGroup.getUuid(), Type.DEVICEGROUP, deviceGroup.getParentUuid(),
-                deviceGroup.getMnemonic(), deviceGroup.getOrdering(), deviceGroup.getDescription(),
-                mnemonicPath, 2,
-                Status.PENDING, Boolean.FALSE, deviceGroup.isDeleted(),
-                deviceGroup.getRequested(), deviceGroup.getRequestedBy(), deviceGroup.getRequestedComment());
-    }
     /**
      * Populate and return structure element for device group with focus on processed.
      *
@@ -525,30 +307,6 @@ public class StructureElementUtil {
                 deviceGroup.getStatus(), deviceGroup.isLatest(), deviceGroup.isDeleted(),
                 deviceGroup.getProcessed(), deviceGroup.getProcessedBy(), deviceGroup.getProcessedComment());
     }
-    /**
-     * Populate and return structure element for device type with focus on requested.
-     *
-     * @param deviceType device type
-     * @return  structure element
-     */
-    public static StructureElement getStructureElementRequested(DeviceType deviceType) {
-        if (deviceType == null) {
-            return null;
-        }
-
-        // mnemonic path
-        //     ambiguous if considered in past (requested, processed)
-        //     not history of structure
-        //     latest & approved status
-        String mnemonicPath = null;
-
-        return getStructureElement(
-                deviceType.getUuid(), Type.DEVICETYPE, deviceType.getParentUuid(),
-                deviceType.getMnemonic(), deviceType.getOrdering(), deviceType.getDescription(),
-                mnemonicPath, 3,
-                Status.PENDING, Boolean.FALSE, deviceType.isDeleted(),
-                deviceType.getRequested(), deviceType.getRequestedBy(), deviceType.getRequestedComment());
-    }
     /**
      * Populate and return structure element for device type with focus on processed.
      *
@@ -880,5 +638,4 @@ public class StructureElementUtil {
         return structureElementCommands;
     }
 
-
 }
diff --git a/src/main/java/org/openepics/names/util/StructureUtil.java b/src/main/java/org/openepics/names/util/StructureUtil.java
index ca9848c0f83adbf12566f9a4b011695985783b78..45536727a3556b745790835d146f636d76c66647 100644
--- a/src/main/java/org/openepics/names/util/StructureUtil.java
+++ b/src/main/java/org/openepics/names/util/StructureUtil.java
@@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.openepics.names.repository.model.DeviceGroup;
 import org.openepics.names.repository.model.DeviceType;
 import org.openepics.names.repository.model.Discipline;
-import org.openepics.names.repository.model.Structure;
 import org.openepics.names.repository.model.Subsystem;
 import org.openepics.names.repository.model.System;
 import org.openepics.names.repository.model.SystemGroup;
@@ -278,24 +277,6 @@ public class StructureUtil {
 
     // --------------------------------------------------
 
-    /**
-     * Highly specialized method to find out kind of structure command (create, update, delete).
-     * Intended to be used for services purposes, including notification, in approve, cancel, reject operations.
-     *
-     * @param previous list of previous structures
-     * @param structure structure
-     * @return structure command
-     */
-    public static StructureCommand getStructureCommandCUD(List<?> previous, Structure structure) {
-        if (previous == null || previous.isEmpty()) {
-            return StructureCommand.CREATE;
-        } else if (structure != null && Boolean.TRUE.equals(structure.isDeleted())) {
-            return StructureCommand.DELETE;
-        } else {
-            return StructureCommand.UPDATE;
-        }
-    }
-
     protected static List<UUID> listSystemGroup2Uuid(List<SystemGroup> systemGroups) {
         final List<UUID> listUuid = Lists.newArrayList();
         for (SystemGroup systemGroup : systemGroups) {
diff --git a/src/main/java/org/openepics/names/util/TextUtil.java b/src/main/java/org/openepics/names/util/TextUtil.java
index 4ea9b985a053c93554c0ffaa06365f831d59b2f8..2dcf9e62c0583db19d882cae12c06156661a2630 100644
--- a/src/main/java/org/openepics/names/util/TextUtil.java
+++ b/src/main/java/org/openepics/names/util/TextUtil.java
@@ -49,7 +49,6 @@ public class TextUtil {
     public static final String PARENT                          = "parent";
     public static final String PARENTDEVICESTRUCTURE           = "parentDeviceStructure";
     public static final String PARENTSYSTEMSTRUCTURE           = "parentSystemStructure";
-    public static final String STATUS                          = "status";
     public static final String TYPE                            = "type";
     public static final String UUID                            = "uuid";
 
@@ -160,9 +159,6 @@ public class TextUtil {
     public static final String READ_STRUCTURES_MNEMONIC_PATH      = "Read structures mnemonic path";
     public static final String EXISTS_STRUCTURE                   = "Exists structure";
     public static final String IS_VALID_TO_CREATE_STRUCTURE       = "Is valid to create structure";
-    public static final String APPROVE_STRUCTURE                  = "Approve structure";
-    public static final String CANCEL_STRUCTURE                   = "Cancel structure";
-    public static final String REJECT_STRUCTURE                   = "Reject structure";
 
     // process variable name property validation
     //     . character to be present
diff --git a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
index cc35e6c0b4ffeb4f57abb61dfa730de7f001365f..b149030c53add23a9295714b6f0b81106fb1f201 100644
--- a/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateNameElementUtil.java
@@ -28,7 +28,6 @@ import org.openepics.names.repository.model.Subsystem;
 import org.openepics.names.repository.model.System;
 import org.openepics.names.repository.model.SystemGroup;
 import org.openepics.names.rest.beans.FieldName;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.element.NameElementCommand;
 
 /**
@@ -39,10 +38,6 @@ import org.openepics.names.rest.beans.element.NameElementCommand;
 public class ValidateNameElementUtil {
 
     // note
-    //     handling of system structure, device structure
-    //         parent system structure uuid (system group, system, subsystem)
-    //         parent device structure uuid (device type)
-    //
     //     NameElement
     //         uuid,
     //         systemGroup, system, subsystem, deviceType, systemStructure, deviceStructure,
@@ -131,11 +126,6 @@ public class ValidateNameElementUtil {
         //	   delete - uuid
         //
         //     create, update - optional - parentDeviceStructure, index
-        //
-        // logic
-        //     update, delete
-        //     create, update
-        //     create, update, delete
 
         if (ValidateUtil.isAnyNull(nameElementCommand, nameCommand)) {
             return;
@@ -147,6 +137,15 @@ public class ValidateNameElementUtil {
         String index = nameElementCommand.getIndex();
         String description = nameElementCommand.getDescription();
 
+        // validate input
+        //     update, delete
+        //         uuid
+        //     create, update
+        //         parentSystemStructure
+        //         parentDeviceStructure
+        //         index
+        //         description
+
         if (ValidateUtil.isAnyEqual(nameCommand, NameCommand.UPDATE, NameCommand.DELETE)) {
             ValidateUtil.validateInputUuid(uuid != null ? uuid.toString() : null);
         }
@@ -243,9 +242,14 @@ public class ValidateNameElementUtil {
         UUID parentDevicestructure = nameElementCommand.getParentDeviceStructure();
         String index = nameElementCommand.getIndex();
 
-        // name
-        //     update, delete - uuid available, not deleted
-        //     retrieve for uuid and check
+        // validate data
+        //     update, delete
+        //         uuid available, not deleted
+        //     create, update
+        //         parentSystemstructure - systemgroup, system, subsystem
+        //         parentDevicestructure - devicetype
+        //         index                 - index, name
+
         if (ValidateUtil.isAnyEqual(nameCommand, NameCommand.UPDATE, NameCommand.DELETE)) {
             List<Name> names = nameRepository.readNames(false, uuid.toString(), null, null, null, null, null, null, null);
             ExceptionUtil.validateConditionDataNotFoundException(ValidateUtil.isSize(names, 1),
@@ -328,7 +332,7 @@ public class ValidateNameElementUtil {
             if (NameCommand.CREATE.equals(nameCommand)) {
                 condition = ValidateUtil.isNullOrEmpty(names);
             } else {
-                // NameCommand.UPDATE.equals(nameCommand)
+                // NameCommand.UPDATE
                 condition = ValidateUtil.isNullOrEmpty(names) || names.size() == 1 && names.get(0).getUuid().equals(uuid);
             }
             ExceptionUtil.validateConditionDataConflictException(condition,
@@ -424,16 +428,16 @@ public class ValidateNameElementUtil {
 
         // device structure
         if (!StringUtils.isEmpty(dt)) {
-            List<DeviceType> deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(Status.APPROVED, false, null, null, null, null, mnemonicPathDeviceStructure, null, null);
+            List<DeviceType> deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(false, null, null, null, null, mnemonicPathDeviceStructure, null, null);
             ExceptionUtil.validateConditionDataNotFoundException(ValidateUtil.isSize(deviceTypes, 1),
                     TextUtil.DEVICE_STRUCTURE_IS_NOT_FOUND, details, field);
             deviceType = deviceTypes.get(0);
         }
 
         // system structure
-        List<Subsystem>   subsystems   = holderRepositories.subsystemRepository().readSubsystems(Status.APPROVED, false, null, null, null, null, mnemonicPathSystemStructure, null, null);
-        List<System>      systems      = holderRepositories.systemRepository().readSystems(Status.APPROVED, false, null, null, null, null, mnemonicPathSystemStructure, null, null);
-        List<SystemGroup> systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(Status.APPROVED, false, null, null, null, mnemonicPathSystemStructure, null, null);
+        List<Subsystem>   subsystems   = holderRepositories.subsystemRepository().readSubsystems(false, null, null, null, null, mnemonicPathSystemStructure, null, null);
+        List<System>      systems      = holderRepositories.systemRepository().readSystems(false, null, null, null, null, mnemonicPathSystemStructure, null, null);
+        List<SystemGroup> systemGroups = holderRepositories.systemGroupRepository().readSystemGroups(false, null, null, null, mnemonicPathSystemStructure, null, null);
 
         if (ValidateUtil.isSize(subsystems, 1)) {
             subsystem = subsystems.get(0);
diff --git a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
index 3bcea2a6114c93c871ce00c2cb0ce38b20344587..93bda4b047c071b7de8fd07462650eb7aa46bb4e 100644
--- a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
@@ -22,14 +22,10 @@ import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
 import org.openepics.names.exception.DataConflictException;
-import org.openepics.names.repository.model.DeviceGroup;
-import org.openepics.names.repository.model.DeviceType;
 import org.openepics.names.repository.model.Discipline;
-import org.openepics.names.repository.model.Subsystem;
 import org.openepics.names.repository.model.System;
 import org.openepics.names.repository.model.SystemGroup;
 import org.openepics.names.rest.beans.FieldStructure;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 import org.openepics.names.rest.beans.element.StructureElementCommand;
 
@@ -43,10 +39,6 @@ import com.google.common.collect.Lists;
 public class ValidateStructureElementUtil {
 
     // note
-    //     handling of system structure, device structure
-    //         parent system structure uuid (system group, system, subsystem)
-    //         parent device structure uuid (device type)
-    //
     //     StructureElement
     //         type, uuid, parent,
     //         mnemonic, ordering, description,
@@ -58,9 +50,6 @@ public class ValidateStructureElementUtil {
     //	       create  -       type, parent, mnemonic, ordering, description
     //	       update  - uuid, type, parent, mnemonic, ordering, description
     //	       delete  - uuid, type
-    //	       approve - uuid, type
-    //	       cancel  - uuid, type
-    //	       reject  - uuid, type
 
     /**
      * This class is not to be instantiated.
@@ -72,7 +61,6 @@ public class ValidateStructureElementUtil {
     /**
      * Validate parameters for read structures.
      *
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parent parent uuid
@@ -86,7 +74,7 @@ public class ValidateStructureElementUtil {
      * @param offset offset
      * @param limit limit
      */
-    public static void validateStructuresInputRead(Status[] statuses, Boolean deleted,
+    public static void validateStructuresInputRead(Boolean deleted,
             String uuid, String parent, String mnemonic, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
@@ -106,7 +94,6 @@ public class ValidateStructureElementUtil {
      * Validate parameters for read structures.
      *
      * @param type type
-     * @param statuses statuses
      * @param deleted deleted
      * @param uuid uuid
      * @param parent parent uuid
@@ -120,7 +107,7 @@ public class ValidateStructureElementUtil {
      * @param offset offset
      * @param limit limit
      */
-    public static void validateStructuresInputRead(Type type, Status[] statuses, Boolean deleted,
+    public static void validateStructuresInputRead(Type type, Boolean deleted,
             String uuid, String parent, String mnemonic, String mnemonicPath, String description, String who,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
 
@@ -128,7 +115,7 @@ public class ValidateStructureElementUtil {
         //     uuid
         //     parent
 
-        validateStructuresInputRead(statuses, deleted,
+        validateStructuresInputRead(deleted,
                 uuid, parent, mnemonic, mnemonicPath, description, who,
                 includeHistory, orderBy, isAsc, offset, limit);
     }
@@ -160,33 +147,6 @@ public class ValidateStructureElementUtil {
         validateStructureElementInput(structureElementCommand, namingConvention, StructureCommand.DELETE);
     }
 
-    /**
-     * Validate structure element command parameters (input) for approve.
-     *
-     * @param structureElementCommand structure element command
-     */
-    public static void validateStructureElementInputApprove(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention) {
-        validateStructureElementInput(structureElementCommand, namingConvention, StructureCommand.APPROVE);
-    }
-
-    /**
-     * Validate structure element command parameters (input) for cancel.
-     *
-     * @param structureElementCommand structure element command
-     */
-    public static void validateStructureElementInputCancel(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention) {
-        validateStructureElementInput(structureElementCommand, namingConvention, StructureCommand.CANCEL);
-    }
-
-    /**
-     * Validate structure element command parameters (input) for reject.
-     *
-     * @param structureElementCommand structure element command
-     */
-    public static void validateStructureElementInputReject(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention) {
-        validateStructureElementInput(structureElementCommand, namingConvention, StructureCommand.REJECT);
-    }
-
     /**
      * Validate structure element command parameters (input).
      *
@@ -198,16 +158,8 @@ public class ValidateStructureElementUtil {
         //     create  -       type, parent, mnemonic, ordering, description
         //	   update  - uuid, type, parent, mnemonic, ordering, description
         //	   delete  - uuid, type
-        //	   approve - uuid, type
-        //	   cancel  - uuid, type
-        //	   reject  - uuid, type
         //
         //     create, update - optional - parent, mnemonic
-        //
-        // logic
-        //     update, delete, approve, cancel, reject
-        //     create, update
-        //     create, update, delete, approve, cancel, reject
 
         if (ValidateUtil.isAnyNull(structureElementCommand, namingConvention, structureCommand)) {
             return;
@@ -219,7 +171,17 @@ public class ValidateStructureElementUtil {
         String mnemonic = structureElementCommand.getMnemonic();
         String description = structureElementCommand.getDescription();
 
-        if (ValidateUtil.isAnyEqual(structureCommand, StructureCommand.UPDATE, StructureCommand.DELETE, StructureCommand.APPROVE, StructureCommand.CANCEL, StructureCommand.REJECT)) {
+        // validate input
+        //     update, delete
+        //         uuid
+        //     all
+        //         type
+        //     create. update
+        //         parent
+        //         mnemonic
+        //         description
+
+        if (ValidateUtil.isAnyEqual(structureCommand, StructureCommand.UPDATE, StructureCommand.DELETE)) {
             ValidateUtil.validateInputUuid(uuid != null ? uuid.toString() : null);
         }
 
@@ -284,45 +246,6 @@ public class ValidateStructureElementUtil {
         validateStructureElementDataRelativeOtherData(structureElementCommand, namingConvention, holderRepositories, holderStructures, StructureCommand.DELETE);
     }
 
-    /**
-     * Validate structure element command data for approve.
-     *
-     * @param structureElementCommand structure element command
-     * @param namingConvention naming convention
-     * @param holderRepositories holder repositories
-     * @param holderStructures holder of system and device structure content
-     */
-    public static void validateStructureElementDataApprove(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention, HolderRepositories holderRepositories, HolderStructures holderStructures) {
-        validateStructureElementDataInItself(structureElementCommand, holderRepositories, StructureCommand.APPROVE);
-        validateStructureElementDataRelativeOtherData(structureElementCommand, namingConvention, holderRepositories, holderStructures, StructureCommand.APPROVE);
-    }
-
-    /**
-     * Validate structure element command data for cancel.
-     *
-     * @param structureElementCommand structure element command
-     * @param namingConvention naming convention
-     * @param holderRepositories holder repositories
-     * @param holderStructures holder of system and device structure content
-     */
-    public static void validateStructureElementDataCancel(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention, HolderRepositories holderRepositories, HolderStructures holderStructures) {
-        validateStructureElementDataInItself(structureElementCommand, holderRepositories, StructureCommand.CANCEL);
-        validateStructureElementDataRelativeOtherData(structureElementCommand, namingConvention, holderRepositories, holderStructures, StructureCommand.CANCEL);
-    }
-
-    /**
-     * Validate structure element command data for reject.
-     *
-     * @param structureElementCommand structure element command
-     * @param namingConvention naming convention
-     * @param holderRepositories holder repositories
-     * @param holderStructures holder of system and device structure content
-     */
-    public static void validateStructureElementDataReject(StructureElementCommand structureElementCommand, EssNamingConvention namingConvention, HolderRepositories holderRepositories, HolderStructures holderStructures) {
-        validateStructureElementDataInItself(structureElementCommand, holderRepositories, StructureCommand.REJECT);
-        validateStructureElementDataRelativeOtherData(structureElementCommand, namingConvention, holderRepositories, holderStructures, StructureCommand.REJECT);
-    }
-
     /**
      * Validate structure element command data in itself.
      *
@@ -335,19 +258,14 @@ public class ValidateStructureElementUtil {
         //     create  -       type, parent, mnemonic, ordering, description
         //	   update  - uuid, type, parent, mnemonic, ordering, description
         //	   delete  - uuid, type
-        //	   approve - uuid, type
-        //	   cancel  - uuid, type
-        //	   reject  - uuid, type
         //
         //     create, update - optional - parent, mnemonic
         //
         // check structure element data in itself
         //     update, delete
         //         definitely (not possibly)
-        //             no pending entry waiting to be approved, cancelled, rejected (pending with higher id than currently approved)
+        //             no pending entry waiting to be handled (pending with higher id than currently approved)
         //         uuid - approved, latest, not deleted - list size 1
-        //     approve, reject, cancel
-        //         uuid - pending, latest, not deleted  - list size 1
 
         if (ValidateUtil.isAnyNull(structureElementCommand, holderRepositories, structureCommand)) {
             return;
@@ -365,24 +283,15 @@ public class ValidateStructureElementUtil {
         //     systemgroup, discipline
         //         not have parent
         //     update, delete
-        //         entry not pending
-        //         entry approved and not deleted
-        //     approve, cancel, reject
-        //         entry pending
+        //         entry found
+        //         entry not deleted
 
         if (ValidateUtil.isAnyEqual(type, Type.SYSTEMGROUP, Type.DISCIPLINE) && parent != null) {
             throw ExceptionUtil.createDataNotCorrectException(TextUtil.PARENT_IS_NOT_CORRECT, details, field);
         } else if (ValidateUtil.isAnyEqual(structureCommand, StructureCommand.UPDATE, StructureCommand.DELETE)) {
             validateStructuresFound(uuid, type,
                     holderRepositories, message, details, field);
-            validateStructuresValidSize0(uuid, type, Status.PENDING, null,
-                    holderRepositories, message, details, field);
-            validateStructuresValidSize1(uuid, type, Status.APPROVED, Boolean.FALSE,
-                    holderRepositories, message, details, field);
-        } else if (ValidateUtil.isAnyEqual(structureCommand, StructureCommand.APPROVE, StructureCommand.CANCEL, StructureCommand.REJECT)) {
-            validateStructuresFound(uuid, type,
-                    holderRepositories, message, details, field);
-            validateStructuresValidSize1(uuid, type, Status.PENDING, null,
+            validateStructuresValidSize1(uuid, type, Boolean.FALSE,
                     holderRepositories, message, details, field);
         }
     }
@@ -390,32 +299,27 @@ public class ValidateStructureElementUtil {
     private static void validateStructuresFound(UUID uuid, Type type,
             HolderRepositories holderRepositories, String message, String details, String field) {
         ExceptionUtil.validateConditionDataNotFoundException(
-                getStructuresSize(uuid, type, null, null, holderRepositories) > 0, message, details, field);
-    }
-    private static void validateStructuresValidSize0(UUID uuid, Type type, Status status, Boolean deleted,
-            HolderRepositories holderRepositories, String message, String details, String field) {
-        ExceptionUtil.validateConditionDataNotValidException(
-                getStructuresSize(uuid, type, status, deleted, holderRepositories) == 0, message, details, field);
+                getStructuresSize(uuid, type, null, holderRepositories) > 0, message, details, field);
     }
-    private static void validateStructuresValidSize1(UUID uuid, Type type, Status status, Boolean deleted,
+    private static void validateStructuresValidSize1(UUID uuid, Type type, Boolean deleted,
             HolderRepositories holderRepositories, String message, String details, String field) {
         ExceptionUtil.validateConditionDataNotValidException(
-                getStructuresSize(uuid, type, status, deleted, holderRepositories) == 1, message, details, field);
+                getStructuresSize(uuid, type, deleted, holderRepositories) == 1, message, details, field);
     }
-    private static int getStructuresSize(UUID uuid, Type type, Status status, Boolean deleted,
+    private static int getStructuresSize(UUID uuid, Type type, Boolean deleted,
             HolderRepositories holderRepositories) {
         if (Type.SYSTEMGROUP.equals(type)) {
-            return holderRepositories.systemGroupRepository().readSystemGroups(status, deleted, uuid.toString(), null, null, null, null, null).size();
+            return holderRepositories.systemGroupRepository().readSystemGroups(deleted, uuid.toString(), null, null, null, null, null).size();
         } else if (Type.SYSTEM.equals(type)) {
-            return holderRepositories.systemRepository().readSystems(status, deleted, uuid.toString(), null, null, null, null, null, null).size();
+            return holderRepositories.systemRepository().readSystems(deleted, uuid.toString(), null, null, null, null, null, null).size();
         } else if (Type.SUBSYSTEM.equals(type)) {
-            return holderRepositories.subsystemRepository().readSubsystems(status, deleted, uuid.toString(), null, null, null, null, null, null).size();
+            return holderRepositories.subsystemRepository().readSubsystems(deleted, uuid.toString(), null, null, null, null, null, null).size();
         } else if (Type.DISCIPLINE.equals(type)) {
-            return holderRepositories.disciplineRepository().readDisciplines(status, deleted, uuid.toString(), null, null, null, null, null).size();
+            return holderRepositories.disciplineRepository().readDisciplines(deleted, uuid.toString(), null, null, null, null, null).size();
         } else if (Type.DEVICEGROUP.equals(type)) {
-            return holderRepositories.deviceGroupRepository().readDeviceGroups(status, deleted, uuid.toString(), null, null, null, null, null, null).size();
+            return holderRepositories.deviceGroupRepository().readDeviceGroups(deleted, uuid.toString(), null, null, null, null, null, null).size();
         } else if (Type.DEVICETYPE.equals(type)) {
-            return holderRepositories.deviceTypeRepository().readDeviceTypes(status, deleted, uuid.toString(), null, null, null, null, null, null).size();
+            return holderRepositories.deviceTypeRepository().readDeviceTypes(deleted, uuid.toString(), null, null, null, null, null, null).size();
         }
         return 0;
     }
@@ -434,9 +338,6 @@ public class ValidateStructureElementUtil {
         //     create  -       type, parent, mnemonic, ordering, description
         //	   update  - uuid, type, parent, mnemonic, ordering, description
         //	   delete  - uuid, type
-        //	   approve - uuid, type
-        //	   cancel  - uuid, type
-        //	   reject  - uuid, type
         //
         //     create, update - optional - parent, mnemonic
         //
@@ -469,183 +370,100 @@ public class ValidateStructureElementUtil {
 
         // validate data relative other data
         //     create, update
-        //         entry (uuid,) status, mnemonic
-        //         entry (uuid,) status, mnemonic equivalence
-        //     approve
-        //         entry uuid, status
+        //         entry parent
+        //         entry mnemonic
+        //         entry mnemonic equivalence
 
         if (ValidateUtil.isAnyEqual(structureCommand, StructureCommand.CREATE, StructureCommand.UPDATE)) {
             if (Type.SYSTEMGROUP.equals(type)) {
                 // note rules for mnemonic for system group
                 if (!StringUtils.isEmpty(mnemonic)) {
-                    // status, mnemonic
+                    // mnemonic
                     message = TextUtil.SYSTEMGROUP_IS_NOT_CORRECT;
-                    validateStructuresStatusMnemonic(uuid, type, parent, mnemonic,
+                    validateStructuresMnemonic(uuid, type, parent, mnemonic,
                             namingConvention, holderRepositories, structureCommand, message, details, field);
 
-                    // status, mnemonic equivalence
-                    validateStructuresStatusMnemonicequivalence(uuid, type, parent, mnemonic,
+                    // mnemonic equivalence
+                    validateStructuresMnemonicequivalence(uuid, type, parent, mnemonic,
                             namingConvention, holderRepositories, structureCommand, message, details, field);
                 }
             } else if (Type.SYSTEM.equals(type)) {
-                // status, parent
+                // parent
                 message = TextUtil.SYSTEMGROUP_IS_NOT_CORRECT;
-                validateStructuresParent(type, parent, Status.APPROVED, false,
+                validateStructuresParent(type, parent, false,
                         holderRepositories, message, details, field);
 
-                // status, mnemonic
+                // mnemonic
                 message = TextUtil.SYSTEM_IS_NOT_CORRECT;
-                validateStructuresStatusMnemonic(uuid, type, parent, mnemonic,
+                validateStructuresMnemonic(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
 
-                // status, mnemonic equivalence
-                validateStructuresStatusMnemonicequivalence(uuid, type, parent, mnemonic,
+                // mnemonic equivalence
+                validateStructuresMnemonicequivalence(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
             } else if (Type.SUBSYSTEM.equals(type)) {
-                // status, parent
+                // parent
                 message = TextUtil.SYSTEM_IS_NOT_CORRECT;
-                validateStructuresParent(type, parent, Status.APPROVED, false,
+                validateStructuresParent(type, parent, false,
                         holderRepositories, message, details, field);
 
-                // status, mnemonic
+                // mnemonic
                 message = TextUtil.SUBSYSTEM_IS_NOT_CORRECT;
-                validateStructuresStatusMnemonic(uuid, type, parent, mnemonic,
+                validateStructuresMnemonic(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
 
-                // status, mnemonic equivalence
-                validateStructuresStatusMnemonicequivalence(uuid, type, parent, mnemonic,
+                // mnemonic equivalence
+                validateStructuresMnemonicequivalence(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
             } else if (Type.DISCIPLINE.equals(type)) {
                 message = TextUtil.DISCIPLINE_IS_NOT_CORRECT;
 
-                // status, mnemonic
-                validateStructuresStatusMnemonic(uuid, type, parent, mnemonic,
+                // mnemonic
+                validateStructuresMnemonic(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
 
-                // status, mnemonic equivalence
-                validateStructuresStatusMnemonicequivalence(uuid, type, parent, mnemonic,
+                // mnemonic equivalence
+                validateStructuresMnemonicequivalence(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
             } else if (Type.DEVICEGROUP.equals(type)) {
-                // status, parent
+                // parent
                 message = TextUtil.DISCIPLINE_IS_NOT_CORRECT;
-                List<Discipline> disciplines = holderRepositories.disciplineRepository().readDisciplines(Status.APPROVED, false, parent.toString(), null, null, null, null, null);
+                List<Discipline> disciplines = holderRepositories.disciplineRepository().readDisciplines(false, parent.toString(), null, null, null, null, null);
                 ExceptionUtil.validateConditionDataNotFoundException(ValidateUtil.isSize(disciplines, 1),
                         message, details, TextUtil.PARENT);
 
                 // note rules for mnemonic for device group
 
                 // mnemonic
+                //     fits logic here but really validateStructureElementDataInItself
                 message = TextUtil.DEVICEGROUP_IS_NOT_CORRECT;
                 ExceptionUtil.validateConditionDataConflictException(StringUtils.isEmpty(mnemonic), message, details, field);
             } else if (Type.DEVICETYPE.equals(type)) {
-                // status, parent
+                // parent
                 message = TextUtil.DEVICEGROUP_IS_NOT_CORRECT;
-                validateStructuresParent(type, parent, Status.APPROVED, false,
+                validateStructuresParent(type, parent, false,
                         holderRepositories, message, details, field);
 
-                // status, mnemonic
+                // mnemonic
                 message = TextUtil.DEVICETYPE_IS_NOT_CORRECT;
-                validateStructuresStatusMnemonic(uuid, type, parent, mnemonic,
+                validateStructuresMnemonic(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
 
-                // status, mnemonic equivalence
-                validateStructuresStatusMnemonicequivalence(uuid, type, parent, mnemonic,
+                // mnemonic equivalence
+                validateStructuresMnemonicequivalence(uuid, type, parent, mnemonic,
                         namingConvention, holderRepositories, structureCommand, message, details, field);
             }
-        } else if (StructureCommand.APPROVE.equals(structureCommand)) {
-            // possibly additional checks to ensure (status, mnemonic) and (status, mnemonic equivalence)
-            // however that would be duplicate checks as already checked at time of create, update
-
-            if (Type.SYSTEMGROUP.equals(type)) {
-                // status, uuid
-                message = TextUtil.SYSTEMGROUP_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-            } else if (Type.SYSTEM.equals(type)) {
-                // status, uuid
-                message = TextUtil.SYSTEM_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-
-                List<System> systems = holderRepositories.systemRepository().readSystems(Status.PENDING, null, uuid.toString(), null, null, null, null, null, null);
-
-                // status, parent
-                message = TextUtil.SYSTEMGROUP_IS_NOT_CORRECT;
-                validateStructuresFound(systems.get(0).getParentUuid(), Type.SYSTEMGROUP,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(systems.get(0).getParentUuid(), Type.SYSTEMGROUP, Status.APPROVED, false,
-                        holderRepositories, message, details, field);
-            } else if (Type.SUBSYSTEM.equals(type)) {
-                // status, uuid
-                message = TextUtil.SUBSYSTEM_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-
-                List<Subsystem> subsystems = holderRepositories.subsystemRepository().readSubsystems(Status.PENDING, null, uuid.toString(), null, null, null, null, null, null);
-
-                // status, parent
-                message = TextUtil.SYSTEM_IS_NOT_CORRECT;
-                validateStructuresFound(subsystems.get(0).getParentUuid(), Type.SYSTEM,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(subsystems.get(0).getParentUuid(), Type.SYSTEM, Status.APPROVED, false,
-                        holderRepositories, message, details, field);
-            } else if (Type.DISCIPLINE.equals(type)) {
-                // status, uuid
-                message = TextUtil.DISCIPLINE_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-            } else if (Type.DEVICEGROUP.equals(type)) {
-                // status, uuid
-                message = TextUtil.DEVICEGROUP_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-
-                List<DeviceGroup> deviceGroups = holderRepositories.deviceGroupRepository().readDeviceGroups(Status.PENDING, null, uuid.toString(), null, null, null, null, null, null);
-
-                // status, parent
-                message = TextUtil.DISCIPLINE_IS_NOT_CORRECT;
-                validateStructuresFound(deviceGroups.get(0).getParentUuid(), Type.DISCIPLINE,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(deviceGroups.get(0).getParentUuid(), Type.DISCIPLINE, Status.APPROVED, false,
-                        holderRepositories, message, details, field);
-            } else if (Type.DEVICETYPE.equals(type)) {
-                // status, uuid
-                message = TextUtil.DEVICETYPE_IS_NOT_CORRECT;
-                validateStructuresFound(uuid, type,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(uuid, type, Status.PENDING, null,
-                        holderRepositories, message, details, field);
-
-                List<DeviceType> deviceTypes = holderRepositories.deviceTypeRepository().readDeviceTypes(Status.PENDING, null, uuid.toString(), null, null, null, null, null, null);
-
-                // status, parent
-                message = TextUtil.DISCIPLINE_IS_NOT_CORRECT;
-                validateStructuresFound(deviceTypes.get(0).getParentUuid(), Type.DEVICEGROUP,
-                        holderRepositories, message, details, field);
-                validateStructuresValidSize1(deviceTypes.get(0).getParentUuid(), Type.DEVICEGROUP, Status.APPROVED, false,
-                        holderRepositories, message, details, field);
-            }
         }
     }
 
-    private static void validateStructuresParent(Type type, UUID parent, Status status, Boolean deleted,
+    private static void validateStructuresParent(Type type, UUID parent, Boolean deleted,
             HolderRepositories holderRepositories, String message, String details, String field){
         // about finding out if structures are in place in order for structure operation to be allowed
 
         ExceptionUtil.validateConditionDataNotFoundException(
-                getStructuresParentSize(type, parent, status, deleted, holderRepositories) == 1, message, details, field);
+                getStructuresParentSize(type, parent, deleted, holderRepositories) == 1, message, details, field);
     }
-    private static void validateStructuresStatusMnemonic(UUID uuid, Type type, UUID parent, String mnemonic,
+    private static void validateStructuresMnemonic(UUID uuid, Type type, UUID parent, String mnemonic,
             EssNamingConvention namingConvention, HolderRepositories holderRepositories, StructureCommand structureCommand,
             String message, String details, String field){
         // about finding out if structures are in place in order for structure operation to be allowed
@@ -653,15 +471,11 @@ public class ValidateStructureElementUtil {
         // parent may be null
         List<UUID> listUuid = null;
 
-        listUuid = getStructures(type, parent, mnemonic, Status.PENDING, false, false, namingConvention, holderRepositories);
-        validateConditionIfStructureCommand(StructureCommand.CREATE, structureCommand, listUuid.isEmpty(), message, details, field);
-        validateConditionIfStructureCommand(StructureCommand.UPDATE, structureCommand, ValidateUtil.isEmptyOrEquals(listUuid, uuid), message, details, field);
-
-        listUuid = getStructures(type, parent, mnemonic, Status.APPROVED, false, false, namingConvention, holderRepositories);
+        listUuid = getStructures(type, parent, mnemonic, false, false, namingConvention, holderRepositories);
         validateConditionIfStructureCommand(StructureCommand.CREATE, structureCommand, listUuid.isEmpty(), message, details, field);
         validateConditionIfStructureCommand(StructureCommand.UPDATE, structureCommand, ValidateUtil.isEmptyOrEquals(listUuid, uuid), message, details, field);
     }
-    private static void validateStructuresStatusMnemonicequivalence(UUID uuid, Type type, UUID parent, String mnemonic,
+    private static void validateStructuresMnemonicequivalence(UUID uuid, Type type, UUID parent, String mnemonic,
             EssNamingConvention namingConvention, HolderRepositories holderRepositories, StructureCommand structureCommand,
             String message, String details, String field){
         // about finding out if structures are in place in order for structure operation to be allowed
@@ -669,29 +483,25 @@ public class ValidateStructureElementUtil {
         // parent may be null
         List<UUID> listUuid = null;
 
-        listUuid = getStructures(type, parent, mnemonic, Status.PENDING, false, true, namingConvention, holderRepositories);
-        validateConditionIfStructureCommand(StructureCommand.CREATE, structureCommand, listUuid.isEmpty(), message, details, field);
-        validateConditionIfStructureCommand(StructureCommand.UPDATE, structureCommand, ValidateUtil.isEmptyOrEquals(listUuid, uuid), message, details, field);
-
-        listUuid = getStructures(type, parent, mnemonic, Status.APPROVED, false, true, namingConvention, holderRepositories);
+        listUuid = getStructures(type, parent, mnemonic, false, true, namingConvention, holderRepositories);
         validateConditionIfStructureCommand(StructureCommand.CREATE, structureCommand, listUuid.isEmpty(), message, details, field);
         validateConditionIfStructureCommand(StructureCommand.UPDATE, structureCommand, ValidateUtil.isEmptyOrEquals(listUuid, uuid), message, details, field);
     }
-    private static int getStructuresParentSize(Type type, UUID parent, Status status, Boolean deleted,
+    private static int getStructuresParentSize(Type type, UUID parent, Boolean deleted,
             HolderRepositories holderRepositories) {
         String queryValue = parent.toString();
         if (Type.SYSTEM.equals(type)) {
-            return holderRepositories.systemGroupRepository().readSystemGroups(status, deleted, queryValue, null, null, null, null, null).size();
+            return holderRepositories.systemGroupRepository().readSystemGroups(deleted, queryValue, null, null, null, null, null).size();
         } else if (Type.SUBSYSTEM.equals(type)) {
-            return holderRepositories.systemRepository().readSystems(status, deleted, queryValue, null, null, null, null, null, null).size();
+            return holderRepositories.systemRepository().readSystems(deleted, queryValue, null, null, null, null, null, null).size();
         } else if (Type.DEVICEGROUP.equals(type)) {
-            return holderRepositories.disciplineRepository().readDisciplines(status, deleted, queryValue, null, null, null, null, null).size();
+            return holderRepositories.disciplineRepository().readDisciplines(deleted, queryValue, null, null, null, null, null).size();
         } else if (Type.DEVICETYPE.equals(type)) {
-            return holderRepositories.deviceGroupRepository().readDeviceGroups(status, deleted, queryValue, null, null, null, null, null, null).size();
+            return holderRepositories.deviceGroupRepository().readDeviceGroups(deleted, queryValue, null, null, null, null, null, null).size();
         }
         return 0;
     }
-    private static List<UUID> getStructures(Type type, UUID parent, String mnemonic, Status status, Boolean deleted, Boolean equivalence,
+    private static List<UUID> getStructures(Type type, UUID parent, String mnemonic, Boolean deleted, Boolean equivalence,
             EssNamingConvention namingConvention, HolderRepositories holderRepositories) {
         // get structures to be used in validation
         // may be difficult to understand, need context of how and where it is used
@@ -737,31 +547,31 @@ public class ValidateStructureElementUtil {
         // query table and return list with uuid
         if (Type.SYSTEMGROUP.equals(type)) {
             return StructureUtil.listSystemGroup2Uuid(
-                    holderRepositories.systemGroupRepository().readSystemGroups(status, deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                    holderRepositories.systemGroupRepository().readSystemGroups(deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
         } else if (Type.SYSTEM.equals(type)) {
             if (queryParentTable) {
-                return StructureUtil.listSystemGroup2Uuid(holderRepositories.systemGroupRepository().readSystemGroups(status, deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listSystemGroup2Uuid(holderRepositories.systemGroupRepository().readSystemGroups(deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             } else {
-                return StructureUtil.listSystem2Uuid(holderRepositories.systemRepository().readSystems(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listSystem2Uuid(holderRepositories.systemRepository().readSystems(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             }
         } else if (Type.SUBSYSTEM.equals(type)) {
             if (queryParentTable) {
-                return StructureUtil.listSystem2Uuid(holderRepositories.systemRepository().readSystems(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listSystem2Uuid(holderRepositories.systemRepository().readSystems(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             } else {
-                return StructureUtil.listSubsystem2Uuid(holderRepositories.subsystemRepository().readSubsystems(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listSubsystem2Uuid(holderRepositories.subsystemRepository().readSubsystems(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             }
         } else if (Type.DISCIPLINE.equals(type)) {
-            return StructureUtil.listDiscipline2Uuid(holderRepositories.disciplineRepository().readDisciplines(status, deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+            return StructureUtil.listDiscipline2Uuid(holderRepositories.disciplineRepository().readDisciplines(deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
         } else if (Type.DEVICEGROUP.equals(type)) {
             if (queryParentTable) {
-                return StructureUtil.listDiscipline2Uuid(holderRepositories.disciplineRepository().readDisciplines(status, deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listDiscipline2Uuid(holderRepositories.disciplineRepository().readDisciplines(deleted, queryUuid, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             } else {
-                return StructureUtil.listDeviceGroup2Uuid(holderRepositories.deviceGroupRepository().readDeviceGroups(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));            }
+                return StructureUtil.listDeviceGroup2Uuid(holderRepositories.deviceGroupRepository().readDeviceGroups(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));            }
         } else if (Type.DEVICETYPE.equals(type)) {
             if (queryParentTable) {
-                return StructureUtil.listDeviceGroup2Uuid(holderRepositories.deviceGroupRepository().readDeviceGroups(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listDeviceGroup2Uuid(holderRepositories.deviceGroupRepository().readDeviceGroups(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             } else {
-                return StructureUtil.listDeviceType2Uuid(holderRepositories.deviceTypeRepository().readDeviceTypes(status, deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
+                return StructureUtil.listDeviceType2Uuid(holderRepositories.deviceTypeRepository().readDeviceTypes(deleted, queryUuid, queryParent, queryMnemonic, queryMnemonicEquivalence, null, null, null));
             }
         }
         return Lists.newArrayList();
diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java
index c56f81fe0341cdb70acfdbe3498027853cf7f656..f2816e1b2d78e47ae7b697f4b464b4f14c3ecd04 100644
--- a/src/main/java/org/openepics/names/util/ValidateUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateUtil.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
-import org.openepics.names.rest.beans.Status;
 import org.openepics.names.rest.beans.Type;
 
 /**
@@ -95,33 +94,6 @@ public class ValidateUtil {
                 TextUtil.VALUE_IS_NOT_AVAILABLE, name, TextUtil.NAME);
     }
 
-    /**
-     * Validate status.
-     *
-     * @param status status
-     */
-    public static void validateInputStatus(Status status) {
-        validateInputStatus(status, null);
-    }
-
-    /**
-     * Validate status.
-     *
-     * @param status status
-     * @param expected expected status
-     */
-    public static void validateInputStatus(Status status, Status expected) {
-        // available
-        ExceptionUtil.validateConditionInputNotAvailableException(status != null,
-                TextUtil.VALUE_IS_NOT_AVAILABLE, null, TextUtil.STATUS);
-
-        // expected status
-        if (expected != null) {
-            ExceptionUtil.validateConditionInputNotCorrectException(expected.equals(status),
-                    TextUtil.VALUE_IS_NOT_CORRECT, status.toString(), TextUtil.STATUS);
-        }
-    }
-
     /**
      * Validate type.
      *
diff --git a/src/main/java/org/openepics/names/util/notification/NotificationStructure.java b/src/main/java/org/openepics/names/util/notification/NotificationStructure.java
index a3357a7238002b589821fc165179ed9998c747de..33ea0035b96d5a965a8dca93c689f1294baac274 100644
--- a/src/main/java/org/openepics/names/util/notification/NotificationStructure.java
+++ b/src/main/java/org/openepics/names/util/notification/NotificationStructure.java
@@ -31,11 +31,10 @@ import org.openepics.names.util.StructureCommand;
  */
 public class NotificationStructure {
 
-    // cud - create update delete
-    // acr - approve cancel reject
+    // note
+    //     cud - create update delete
 
     private StructureCommand structureCommandCUD;
-    private StructureCommand structureCommandACR;
     private UUID uuid;
     private Type type;
     private String oldMnemonic;
@@ -51,7 +50,6 @@ public class NotificationStructure {
      * Public constructor.
      *
      * @param structureCommandCUD structure command (create update delete)
-     * @param structureCommandACR structure command (approve cancel reject)
      * @param type type
      * @param uuid uuid
      * @param oldMnemonic old mnemonic
@@ -63,14 +61,13 @@ public class NotificationStructure {
      * @param when when
      * @param who who
      */
-    public NotificationStructure(StructureCommand structureCommandCUD, StructureCommand structureCommandACR,
+    public NotificationStructure(StructureCommand structureCommandCUD,
             Type type, UUID uuid,
             String oldMnemonic, String oldMnemonicpath, String oldDescription,
             String newMnemonic, String newMnemonicpath, String newDescription,
             Date when, String who) {
         super();
         this.structureCommandCUD = structureCommandCUD;
-        this.structureCommandACR = structureCommandACR;
         this.type = type;
         this.uuid = uuid;
         this.oldMnemonic = oldMnemonic;
@@ -86,9 +83,6 @@ public class NotificationStructure {
     public StructureCommand getStructureCommandCUD() {
         return structureCommandCUD;
     }
-    public StructureCommand getStructureCommandACR() {
-        return structureCommandACR;
-    }
     public Type getType() {
         return type;
     }
@@ -125,7 +119,6 @@ public class NotificationStructure {
         StringBuilder sb = new StringBuilder();
         sb.append("{");
         sb.append("\"structureCommandCUD\": "   + getStructureCommandCUD());
-        sb.append(", \"structureCommandACR\": " + getStructureCommandACR());
         sb.append(", \"uuid\": "                + getUuid());
         sb.append(", \"type\": "                + getType());
         sb.append(", \"oldMnemonic\": "         + getOldMnemonic());
diff --git a/src/main/java/org/openepics/names/util/notification/NotificationUtil.java b/src/main/java/org/openepics/names/util/notification/NotificationUtil.java
index b3fdad7aad1e2ffbe4a3c0b94ecd7f68a9f322b8..df7d8f4c4ba2b2ee117323ba947687e8c9405fe6 100644
--- a/src/main/java/org/openepics/names/util/notification/NotificationUtil.java
+++ b/src/main/java/org/openepics/names/util/notification/NotificationUtil.java
@@ -60,24 +60,6 @@ public class NotificationUtil {
         throw new IllegalStateException("Utility class");
     }
 
-    /**
-     * Highly specialized method to find out kind of structure command (create, update, delete) for notification purposes.
-     * Intended to be used for notification purposes in approve, cancel, reject operations.
-     *
-     * @param previous list of previous structures
-     * @param structure structure
-     * @return structure command
-     */
-    public static StructureCommand getStructureCommandCUD(List<?> previous, Structure structure) {
-        if (previous == null || previous.isEmpty()) {
-            return StructureCommand.CREATE;
-        } else if (structure != null && Boolean.TRUE.equals(structure.isDeleted())) {
-            return StructureCommand.DELETE;
-        } else {
-            return StructureCommand.UPDATE;
-        }
-    }
-
     /**
      * Prepare notification and add to list of notifications if notification is available.
      *
@@ -164,19 +146,18 @@ public class NotificationUtil {
      * @param notifications list of notifications
      * @param type type
      * @param structureCommandCUD structure command (create update delete)
-     * @param structureCommandACR structure command (approve cancel reject)
      * @param previous previous (structure)
      * @param structure structure
      * @param holderStructures holder of system and device structure content
      */
     public static void prepareAddNotification(List<NotificationStructure> notifications,
-            Type type, StructureCommand structureCommandCUD, StructureCommand structureCommandACR,
+            Type type, StructureCommand structureCommandCUD,
             Structure previous, Structure structure, HolderStructures holderStructures) {
         if (notifications == null) {
             return;
         }
 
-        NotificationStructure notification = NotificationUtil.prepareNotification(type, structureCommandCUD, structureCommandACR, previous, structure, holderStructures);
+        NotificationStructure notification = NotificationUtil.prepareNotification(type, structureCommandCUD, previous, structure, holderStructures);
         if (notification != null) {
             notifications.add(notification);
         }
@@ -188,18 +169,16 @@ public class NotificationUtil {
      *
      * @param type type
      * @param structureCommandCUD structure command (create update delete)
-     * @param structureCommandACR structure command (approve cancel reject)
      * @param previous previous (structure)
      * @param structure structure
      * @param holderStructures holder of system and device structure content
      * @return notification
      */
-    public static NotificationStructure prepareNotification(Type type, StructureCommand structureCommandCUD, StructureCommand structureCommandACR,
+    public static NotificationStructure prepareNotification(Type type, StructureCommand structureCommandCUD,
             Structure previous, Structure structure, HolderStructures holderStructures) {
         if (LOGGER.isLoggable(Level.FINER)) {
             LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.PREPARE_NOTIFICATION, "type", type));
             LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.PREPARE_NOTIFICATION, "structureCommandCUD", structureCommandCUD));
-            LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.PREPARE_NOTIFICATION, "structureCommandACR", structureCommandACR));
             LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.PREPARE_NOTIFICATION, "previous", previous));
             LOGGER.log(Level.FINER, MessageFormat.format(TextUtil.DESCRIPTION_NAME_VALUE, TextUtil.PREPARE_NOTIFICATION, "structure", structure));
         }
@@ -207,12 +186,6 @@ public class NotificationUtil {
         if (ValidateUtil.isAnyNull(holderStructures, type, structureCommandCUD, structure)) {
             return null;
         }
-        if (ValidateUtil.isAnyEqual(structureCommandCUD, StructureCommand.APPROVE, StructureCommand.CANCEL, StructureCommand.REJECT)) {
-            return null;
-        }
-        if (ValidateUtil.isAnyEqual(structureCommandACR, StructureCommand.CREATE, StructureCommand.UPDATE, StructureCommand.DELETE)) {
-            return null;
-        }
         if (ValidateUtil.isAnyEqual(structureCommandCUD, StructureCommand.UPDATE) && previous == null) {
             return null;
         }
@@ -230,17 +203,8 @@ public class NotificationUtil {
         //     to be able to notify about change
         //     ------------------------------------------------
         //     create                             structure
-        //     create + approve                   structure
-        //     create + cancel                    structure
-        //     create + reject                    structure
         //     update                  previous + structure
-        //     update + approve        previous + structure
-        //     update + cancel         previous + structure
-        //     update + reject         previous + structure
         //     delete                             structure
-        //     delete + approve                   structure
-        //     delete + cancel                    structure
-        //     delete + reject                    structure
         // support fields
         //     mnemonic
         //     mnemonic path - to support hierarchy
@@ -253,16 +217,8 @@ public class NotificationUtil {
         String newMnemonicpath = EMPTY;
         String newDescription = EMPTY;
 
-        Date when = null;
-        String who = EMPTY;
-
-        if (structureCommandACR == null) {
-            when = structure.getRequested();
-            who = structure.getRequestedBy();
-        } else {
-            when = structure.getProcessed();
-            who = structure.getProcessedBy();
-        }
+        Date when = structure.getProcessed();
+        String who = structure.getProcessedBy();
 
         who = StringUtils.stripToEmpty(who);
 
@@ -305,7 +261,6 @@ public class NotificationUtil {
 
         return new NotificationStructure(
                 structureCommandCUD,
-                structureCommandACR,
                 type,
                 structure.getUuid(),
                 oldMnemonic,
diff --git a/src/main/resources/db/migration/V5.1__Data_transformation_status_deleted.sql b/src/main/resources/db/migration/V5.1__Data_transformation_status_deleted.sql
new file mode 100644
index 0000000000000000000000000000000000000000..5a172a122931b9c2f70dfeec3a8d57289225ed4e
--- /dev/null
+++ b/src/main/resources/db/migration/V5.1__Data_transformation_status_deleted.sql
@@ -0,0 +1,48 @@
+-- --------------------------------------------------------------------------------
+-- About
+--     transformation script
+--     postgresql 9.6.7
+-- Content
+--     data structures
+--         set most recent content (without latest) to deleted = true
+-- Note
+--     to have most recent in line of uuid without latest as deleted in order to be possible to query and find data when status attribute is removed as query parameter
+--         may affect entries with statuses PENDING, CANCELLED, REJECTED
+--         will not affect entries considered history
+--     strong (!) recommendation to make sure that no items with status pending exist prior to running this script (any such to be approved, cancelled, rejected)
+--     order of items is important
+-- --------------------------------------------------------------------------------
+
+-- --------------------------------------------------------------------------------
+-- structures
+--     systemgroup
+--     system
+--     subsystem
+--     discipline
+--     devicegroup
+--     devicetype
+-- --------------------------------------------------------------------------------
+
+update systemgroup s set latest = true, deleted = true where (
+                 not exists (select s2.id from systemgroup s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from systemgroup s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
+
+update system s set latest = true, deleted = true where (
+                 not exists (select s2.id from system s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from system s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
+
+update subsystem s set latest = true, deleted = true where (
+                 not exists (select s2.id from subsystem s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from subsystem s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
+
+update discipline s set latest = true, deleted = true where (
+                 not exists (select s2.id from discipline s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from discipline s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
+
+update devicegroup s set latest = true, deleted = true where (
+                 not exists (select s2.id from devicegroup s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from devicegroup s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
+
+update devicetype s set latest = true, deleted = true where (
+                 not exists (select s2.id from devicetype s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from devicetype s2 where s2."uuid" = s."uuid" and s2.latest=false)
+);
diff --git a/src/main/resources/db/migration/V5.2__Data_transformation_status_deleted.sql b/src/main/resources/db/migration/V5.2__Data_transformation_status_deleted.sql
new file mode 100644
index 0000000000000000000000000000000000000000..5b86c90271af5b330c05f2d9a52dc7e85cbbe7f1
--- /dev/null
+++ b/src/main/resources/db/migration/V5.2__Data_transformation_status_deleted.sql
@@ -0,0 +1,63 @@
+-- --------------------------------------------------------------------------------
+-- About
+--     transformation script
+--     postgresql 9.6.7
+-- Content
+--     data structures
+--         set most recent content (without latest) to deleted = true
+-- Note
+--     delete line of line of uuid without latest
+--         may affect entries with statuses PENDING, CANCELLED, REJECTED
+--         will not affect entries considered history
+--     reason is that such entries have never been active and while removing them will delete some part of history,
+--         the benefit is unambiguous content is database. Alternative is deleted entries with statuses
+--         pending, cancelled, rejected which may be ambiguous.
+--     strong (!) requirement to make sure that no items with status pending exist prior to running this script (any such to be approved, cancelled, rejected)
+--     order of items is important
+-- --------------------------------------------------------------------------------
+
+-- --------------------------------------------------------------------------------
+-- structures
+--     systemgroup
+--     system
+--     subsystem
+--     discipline
+--     devicegroup
+--     devicetype
+-- --------------------------------------------------------------------------------
+
+delete from systemgroup where uuid in (
+    select s.uuid from systemgroup s where (
+                 not exists (select s2.id from systemgroup s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from systemgroup s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
+
+delete from system where uuid in (
+    select s.uuid from system s where (
+                 not exists (select s2.id from system s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from system s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
+
+delete from subsystem where uuid in (
+    select s.uuid from subsystem s where (
+                 not exists (select s2.id from subsystem s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from subsystem s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
+
+delete from discipline where uuid in (
+    select s.uuid from discipline s where (
+                 not exists (select s2.id from discipline s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from discipline s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
+
+delete from devicegroup where uuid in (
+    select s.uuid from devicegroup s where (
+                 not exists (select s2.id from devicegroup s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from devicegroup s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
+
+delete from devicetype s0 where s0."uuid" in (
+    select s.uuid from devicetype s where (
+                 not exists (select s2.id from devicetype s2 where s2."uuid" = s."uuid" and s2.latest=true) and s.id = (select max(s2.id) from devicetype s2 where s2."uuid" = s."uuid" and s2.latest=false)
+    )
+);
diff --git a/src/main/resources/static/images/naming_backend_data_access.png b/src/main/resources/static/images/naming_backend_data_access.png
index 0c4a8bd88f1e40a718ab5e423b5d3db9024552f9..13cbadfbbc26755a3d1e80cca913468a77ff7b1d 100644
Binary files a/src/main/resources/static/images/naming_backend_data_access.png and b/src/main/resources/static/images/naming_backend_data_access.png differ
diff --git a/src/main/resources/static/images/naming_backend_lifecycle.png b/src/main/resources/static/images/naming_backend_lifecycle.png
index dddff37736bd0cee72c56f4149276a47c568fe3e..b2f012d3590b7c15d31ced5ae9bb3d965eca2109 100644
Binary files a/src/main/resources/static/images/naming_backend_lifecycle.png and b/src/main/resources/static/images/naming_backend_lifecycle.png differ
diff --git a/src/main/resources/templates/notification_structures.html b/src/main/resources/templates/notification_structures.html
index 3b6d4cc345a8859fee4b5cddc1f3714eac134ae5..f49ed9839b5aeb8931dc64de53640bdb84a60577 100644
--- a/src/main/resources/templates/notification_structures.html
+++ b/src/main/resources/templates/notification_structures.html
@@ -30,29 +30,14 @@
             <tr th:if="${numberCreated > 0}">
                 <td style="padding-left: 0px;">Number of created structures: </td>
                 <td th:text="${numberCreated}"/>
-                <td>that need APPROVE, CANCEL, REJECT</td>
             </tr>
             <tr th:if="${numberUpdated > 0}">
                 <td style="padding-left: 0px;">Number of updated structures: </td>
                 <td th:text="${numberUpdated}"/>
-                <td>that need APPROVE, CANCEL, REJECT</td>
             </tr>
             <tr th:if="${numberDeleted > 0}">
                 <td style="padding-left: 0px;">Number of deleted structures: </td>
                 <td th:text="${numberDeleted}"/>
-                <td>that need APPROVE, CANCEL, REJECT</td>
-            </tr>
-            <tr th:if="${numberApproved > 0}">
-                <td style="padding-left: 0px;">Number of approved structures: </td>
-                <td th:text="${numberApproved}"/>
-            </tr>
-            <tr th:if="${numberCancelled > 0}">
-                <td style="padding-left: 0px;">Number of cancelled structures: </td>
-                <td th:text="${numberCancelled}"/>
-            </tr>
-            <tr th:if="${numberRejected > 0}">
-                <td style="padding-left: 0px;">Number of rejected structures: </td>
-                <td th:text="${numberRejected}"/>
             </tr>
         </table>
         <br/>
@@ -67,7 +52,6 @@
                     <tr>
                         <th>Type</th>
                         <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
 
                         <th>Old</th>
                         <th/>
@@ -81,7 +65,6 @@
                     <tr th:each="row: ${created}">
                         <td th:text="${row.getType()}"/>
                         <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
 
                         <td style="font-weight: bold;">
                           <div>
@@ -118,7 +101,6 @@
                     <tr>
                         <th>Type</th>
                         <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
 
                         <th>Old</th>
                         <th/>
@@ -132,7 +114,6 @@
                     <tr th:each="row: ${updated}">
                         <td th:text="${row.getType()}"/>
                         <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
 
                         <td style="font-weight: bold;">
                           <div>
@@ -169,7 +150,6 @@
                     <tr>
                         <th>Type</th>
                         <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
 
                         <th>Old</th>
                         <th/>
@@ -183,160 +163,6 @@
                     <tr th:each="row: ${deleted}">
                         <td th:text="${row.getType()}"/>
                         <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
-
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getOldMnemonic()}></div>
-                            <div th:text=${row.getOldMnemonicpath()}></div>
-                            <div th:text=${row.getOldDescription()}></div>
-                          </div>
-                        </td>
-                        <td style="text-align: center; white-space: nowrap;" th:text="' -> '"/>
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getNewMnemonic()}></div>
-                            <div th:text=${row.getNewMnemonicpath()}></div>
-                            <div th:text=${row.getNewDescription()}></div>
-                          </div>
-                        </td>
-
-                        <td th:text="${#dates.format(row.getWhen(), 'yyyy.MM.dd HH:mm')}"/>
-                        <td th:text="${row.getWho()}"/>
-                    </tr>
-                </tbody>
-            </table>
-            <br/>
-            <hr>
-        </div>
-
-        <div th:if="${numberApproved > 0}">
-            <div style="padding-bottom: 10px;">
-                <h3>Approved</h3>
-            </div>
-
-            <table style="padding-bottom: 10px; width: 90%">
-                <thead>
-                    <tr>
-                        <th>Type</th>
-                        <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
-
-                        <th>Old</th>
-                        <th/>
-                        <th>New</th>
-
-                        <th>When</th>
-                        <th>Who</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    <tr th:each="row: ${approved}">
-                        <td th:text="${row.getType()}"/>
-                        <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
-
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getOldMnemonic()}></div>
-                            <div th:text=${row.getOldMnemonicpath()}></div>
-                            <div th:text=${row.getOldDescription()}></div>
-                          </div>
-                        </td>
-                        <td style="text-align: center; white-space: nowrap;" th:text="' -> '"/>
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getNewMnemonic()}></div>
-                            <div th:text=${row.getNewMnemonicpath()}></div>
-                            <div th:text=${row.getNewDescription()}></div>
-                          </div>
-                        </td>
-
-                        <td th:text="${#dates.format(row.getWhen(), 'yyyy.MM.dd HH:mm')}"/>
-                        <td th:text="${row.getWho()}"/>
-                    </tr>
-                </tbody>
-            </table>
-            <br/>
-            <hr>
-        </div>
-
-        <div th:if="${numberCancelled > 0}">
-            <div style="padding-bottom: 10px;">
-                <h3>Cancelled</h3>
-            </div>
-
-            <table style="padding-bottom: 10px; width: 90%">
-                <thead>
-                    <tr>
-                        <th>Type</th>
-                        <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
-
-                        <th>Old</th>
-                        <th/>
-                        <th>New</th>
-
-                        <th>When</th>
-                        <th>Who</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    <tr th:each="row: ${cancelled}">
-                        <td th:text="${row.getType()}"/>
-                        <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
-
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getOldMnemonic()}></div>
-                            <div th:text=${row.getOldMnemonicpath()}></div>
-                            <div th:text=${row.getOldDescription()}></div>
-                          </div>
-                        </td>
-                        <td style="text-align: center; white-space: nowrap;" th:text="' -> '"/>
-                        <td style="font-weight: bold;">
-                          <div>
-                            <div th:text=${row.getNewMnemonic()}></div>
-                            <div th:text=${row.getNewMnemonicpath()}></div>
-                            <div th:text=${row.getNewDescription()}></div>
-                          </div>
-                        </td>
-
-                        <td th:text="${#dates.format(row.getWhen(), 'yyyy.MM.dd HH:mm')}"/>
-                        <td th:text="${row.getWho()}"/>
-                    </tr>
-                </tbody>
-            </table>
-            <br/>
-            <hr>
-        </div>
-
-        <div th:if="${numberRejected > 0}">
-            <div style="padding-bottom: 10px;">
-                <h3>Rejected</h3>
-            </div>
-
-            <table style="padding-bottom: 10px; width: 90%">
-                <thead>
-                    <tr>
-                        <th>Type</th>
-                        <th>Create Update Delete</th>
-                        <th>Approve Cancel Reject</th>
-
-                        <th>Old</th>
-                        <th/>
-                        <th>New</th>
-
-                        <th>When</th>
-                        <th>Who</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    <tr th:each="row: ${rejected}">
-                        <td th:text="${row.getType()}"/>
-                        <td th:text="${row.getStructureCommandCUD()}"/>
-                        <td th:text="${row.getStructureCommandACR()}"/>
 
                         <td style="font-weight: bold;">
                           <div>
diff --git a/src/test/java/org/openepics/names/docker/ConvertIT.java b/src/test/java/org/openepics/names/docker/ConvertIT.java
index 6da5404b9c2ef5ed6002774acf1f4f468a01ce20..ab41f9c1dc262f52a2e253e3bbe14391055261f1 100644
--- a/src/test/java/org/openepics/names/docker/ConvertIT.java
+++ b/src/test/java/org/openepics/names/docker/ConvertIT.java
@@ -85,48 +85,48 @@ class ConvertIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         NameElementCommandCreate[] nameElementCommandsCreate = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010PRL", null, "01 Phase Reference Line"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "N1U1",   null, "Power switch board 01. Electrical power cabinets")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010 = approvedStructureElements[1].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010 = structureElements[1].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "EMR", null, "Electromagnetic Resonators")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineEMR, null, null, "Control")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "FS",  null, "Flow Switch"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "RFA", null, "RF Antenna"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "TT",  null, "Temperature Transmitter")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceTypeFS = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceTypeFS = structureElements[0].getUuid();
 
         nameElementCommandsCreate = new NameElementCommandCreate[] {
                 new NameElementCommandCreate(subsystem010, deviceTypeFS, "001", "description"),
diff --git a/src/test/java/org/openepics/names/docker/ITUtilNames.java b/src/test/java/org/openepics/names/docker/ITUtilNames.java
index 156a960a387d84db78bdb3428bed05759f6f25aa..fa427dc576e9e8f4b571fd10124371a439e319d2 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilNames.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilNames.java
@@ -524,18 +524,18 @@ public class ITUtilNames {
      * @see ITUtilNames#assertCreate(AuthorizationChoice, String, int)
      */
     public static NameElement assertCreate(NameElementCommandCreate nameElementCommand) {
-        NameElement[] createdNameElements = assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), HttpURLConnection.HTTP_CREATED);
-        return createdNameElements != null
-                ? createdNameElements[0]
+        NameElement[] nameElements = assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), HttpURLConnection.HTTP_CREATED);
+        return nameElements != null
+                ? nameElements[0]
                 : null;
     }
     /**
      * @see ITUtilNames#assertCreate(AuthorizationChoice, String, int)
      */
     public static NameElement assertCreate(NameElementCommandCreate nameElementCommand, int expectedResponseCode) {
-        NameElement[] createdNameElements = assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), expectedResponseCode);
-        return createdNameElements != null
-                ? createdNameElements[0]
+        NameElement[] nameElements = assertCreate(AuthorizationChoice.NONE, object2Json(new NameElementCommandCreate[] {nameElementCommand}), expectedResponseCode);
+        return nameElements != null
+                ? nameElements[0]
                 : null;
     }
     /**
@@ -559,7 +559,7 @@ public class ITUtilNames {
      * @return created name element
      */
     public static NameElement[] assertCreate(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        NameElement[] createdNameElements = null;
+        NameElement[] nameElements = null;
 
         try {
             String[] response = null;
@@ -568,9 +568,9 @@ public class ITUtilNames {
             ITUtil.assertResponseLength2Code(response, expectedResponseCode);
 
             if (HttpURLConnection.HTTP_CREATED == expectedResponseCode) {
-                createdNameElements = mapper.readValue(response[1], NameElement[].class);
+                nameElements = mapper.readValue(response[1], NameElement[].class);
 
-                for (NameElement createdNameElement : createdNameElements) {
+                for (NameElement createdNameElement : nameElements) {
                     assertNotNull(createdNameElement.getUuid());
                     assertEquals(Boolean.TRUE, createdNameElement.isLatest());
                     assertEquals(Boolean.FALSE, createdNameElement.isDeleted());
@@ -588,7 +588,7 @@ public class ITUtilNames {
             fail();
         }
 
-        return createdNameElements;
+        return nameElements;
     }
 
     // ----------------------------------------------------------------------------------------------------
@@ -597,18 +597,18 @@ public class ITUtilNames {
      * @see ITUtilNames#assertUpdate(AuthorizationChoice, String, int)
      */
     public static NameElement assertUpdate(NameElementCommandUpdate nameElementCommand) {
-        NameElement[] updatedNameElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new NameElementCommandUpdate[] {nameElementCommand}), HttpURLConnection.HTTP_OK);
-        return updatedNameElements != null
-                ? updatedNameElements[0]
+        NameElement[] nameElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new NameElementCommandUpdate[] {nameElementCommand}), HttpURLConnection.HTTP_OK);
+        return nameElements != null
+                ? nameElements[0]
                 : null;
     }
     /**
      * @see ITUtilNames#assertUpdate(AuthorizationChoice, String, int)
      */
     public static NameElement assertUpdate(NameElementCommandUpdate nameElementCommand, int expectedResponseCode) {
-        NameElement[] updatedNameElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new NameElementCommandUpdate[] {nameElementCommand}), expectedResponseCode);
-        return updatedNameElements != null
-                ? updatedNameElements[0]
+        NameElement[] nameElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new NameElementCommandUpdate[] {nameElementCommand}), expectedResponseCode);
+        return nameElements != null
+                ? nameElements[0]
                 : null;
     }
     /**
@@ -626,7 +626,7 @@ public class ITUtilNames {
      * @return updated name element
      */
     public static NameElement[] assertUpdate(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        NameElement[] updatedNameElements = null;
+        NameElement[] nameElements = null;
 
         try {
             String[] response = null;
@@ -635,9 +635,9 @@ public class ITUtilNames {
             ITUtil.assertResponseLength2Code(response, expectedResponseCode);
 
             if (HttpURLConnection.HTTP_OK == expectedResponseCode) {
-                updatedNameElements = mapper.readValue(response[1], NameElement[].class);
+                nameElements = mapper.readValue(response[1], NameElement[].class);
 
-                for (NameElement updatedNameElement : updatedNameElements) {
+                for (NameElement updatedNameElement : nameElements) {
                     assertNotNull(updatedNameElement.getUuid());
                     assertEquals(Boolean.TRUE, updatedNameElement.isLatest());
                     assertEquals(Boolean.FALSE, updatedNameElement.isDeleted());
@@ -652,7 +652,7 @@ public class ITUtilNames {
             fail();
         }
 
-        return updatedNameElements;
+        return nameElements;
     }
 
     // ----------------------------------------------------------------------------------------------------
diff --git a/src/test/java/org/openepics/names/docker/ITUtilStructures.java b/src/test/java/org/openepics/names/docker/ITUtilStructures.java
index 46dd69224605f541b4bcfddde41bc70a7b3e32db..5c3fc955c8739f2e99a3d9f2258bd532760660da 100644
--- a/src/test/java/org/openepics/names/docker/ITUtilStructures.java
+++ b/src/test/java/org/openepics/names/docker/ITUtilStructures.java
@@ -44,7 +44,6 @@ import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
 import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
 import org.openepics.names.util.StructureCommand;
-import org.openepics.names.util.StructureElementUtil;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -206,7 +205,6 @@ public class ITUtilStructures {
      * @return response page structure elements
      */
     public static ResponsePageStructureElements assertFind(String queryString, int expectedResponseCode) {
-        // maximum number of elements will be two (PENDING, APPROVED) for given uuid
         try {
             String[] response = null;
             ResponsePageStructureElements responsePageStructureElements = null;
@@ -517,15 +515,6 @@ public class ITUtilStructures {
             case DELETE:
                 validatePath = "/validateDelete";
                 break;
-            case APPROVE:
-                validatePath = "/validateApprove";
-                break;
-            case CANCEL:
-                validatePath = "/validateCancel";
-                break;
-            case REJECT:
-                validatePath = "/validateReject";
-                break;
             default:
                 break;
         }
@@ -538,18 +527,18 @@ public class ITUtilStructures {
      * @see ITUtilStructures#assertCreate(AuthorizationChoice, String, int)
      */
     public static StructureElement assertCreate(StructureElementCommandCreate structureElementCommand) {
-        StructureElement[] createdStructureElements = assertCreate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandCreate[] {structureElementCommand}), HttpURLConnection.HTTP_CREATED);
-        return createdStructureElements != null
-                ? createdStructureElements[0]
+        StructureElement[] structureElements = assertCreate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandCreate[] {structureElementCommand}), HttpURLConnection.HTTP_CREATED);
+        return structureElements != null
+                ? structureElements[0]
                 : null;
     }
     /**
      * @see ITUtilStructures#assertCreate(AuthorizationChoice, String, int)
      */
     public static StructureElement assertCreate(StructureElementCommandCreate structureElementCommand, int expectedResponseCode) {
-        StructureElement[] createdStructureElements = assertCreate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandCreate[] {structureElementCommand}), expectedResponseCode);
-        return createdStructureElements != null
-                ? createdStructureElements[0]
+        StructureElement[] structureElements = assertCreate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandCreate[] {structureElementCommand}), expectedResponseCode);
+        return structureElements != null
+                ? structureElements[0]
                 : null;
     }
     /**
@@ -573,7 +562,7 @@ public class ITUtilStructures {
      * @return created structure element
      */
     public static StructureElement[] assertCreate(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        StructureElement[] createdStructureElements  = null;
+        StructureElement[] structureElements  = null;
 
         try {
             String[] response = null;
@@ -582,13 +571,13 @@ public class ITUtilStructures {
             ITUtil.assertResponseLength2Code(response, expectedResponseCode);
 
             if (HttpURLConnection.HTTP_CREATED == expectedResponseCode) {
-                createdStructureElements = mapper.readValue(response[1], StructureElement[].class);
+                structureElements = mapper.readValue(response[1], StructureElement[].class);
 
-                for (StructureElement createdStructureElement : createdStructureElements) {
+                for (StructureElement createdStructureElement : structureElements) {
                     assertNotNull(createdStructureElement.getUuid());
-                    assertEquals(Status.PENDING, createdStructureElement.getStatus());
-                    assertEquals(Boolean.FALSE, createdStructureElement.isLatest());
-                    assertEquals(Boolean.FALSE, createdStructureElement.isDeleted());
+                    assertEquals(Status.APPROVED, createdStructureElement.getStatus());
+                    assertEquals(Boolean.TRUE,    createdStructureElement.isLatest());
+                    assertEquals(Boolean.FALSE,   createdStructureElement.isDeleted());
                     assertNotNull(createdStructureElement.getWhen());
                 }
 
@@ -603,7 +592,7 @@ public class ITUtilStructures {
             fail();
         }
 
-        return createdStructureElements;
+        return structureElements;
     }
 
     // ----------------------------------------------------------------------------------------------------
@@ -612,18 +601,18 @@ public class ITUtilStructures {
      * @see ITUtilStructures#assertUpdate(AuthorizationChoice, String, int)
      */
     public static StructureElement assertUpdate(StructureElementCommandUpdate structureElementCommand) {
-        StructureElement[] updatedStructureElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandUpdate[] {structureElementCommand}), HttpURLConnection.HTTP_OK);
-        return updatedStructureElements != null
-                ? updatedStructureElements[0]
+        StructureElement[] structureElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandUpdate[] {structureElementCommand}), HttpURLConnection.HTTP_OK);
+        return structureElements != null
+                ? structureElements[0]
                 : null;
     }
     /**
      * @see ITUtilStructures#assertUpdate(AuthorizationChoice, String, int)
      */
     public static StructureElement assertUpdate(StructureElementCommandUpdate structureElementCommand, int expectedResponseCode) {
-        StructureElement[] updatedStructureElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandUpdate[] {structureElementCommand}), expectedResponseCode);
-        return updatedStructureElements != null
-                ? updatedStructureElements[0]
+        StructureElement[] structureElements = assertUpdate(AuthorizationChoice.NONE, object2Json(new StructureElementCommandUpdate[] {structureElementCommand}), expectedResponseCode);
+        return structureElements != null
+                ? structureElements[0]
                 : null;
     }
     /**
@@ -641,7 +630,7 @@ public class ITUtilStructures {
      * @return updated structure element
      */
     public static StructureElement[] assertUpdate(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        StructureElement[] updatedStructureElements  = null;
+        StructureElement[] structureElements  = null;
 
         try {
             String[] response = null;
@@ -650,13 +639,13 @@ public class ITUtilStructures {
             ITUtil.assertResponseLength2Code(response, expectedResponseCode);
 
             if (HttpURLConnection.HTTP_OK == expectedResponseCode) {
-                updatedStructureElements = mapper.readValue(response[1], StructureElement[].class);
+                structureElements = mapper.readValue(response[1], StructureElement[].class);
 
-                for (StructureElement updatedStructureElement : updatedStructureElements) {
+                for (StructureElement updatedStructureElement : structureElements) {
                     assertNotNull(updatedStructureElement.getUuid());
-                    assertEquals(Status.PENDING, updatedStructureElement.getStatus());
-                    assertEquals(Boolean.FALSE, updatedStructureElement.isLatest());
-                    assertEquals(Boolean.FALSE, updatedStructureElement.isDeleted());
+                    assertEquals(Status.APPROVED, updatedStructureElement.getStatus());
+                    assertEquals(Boolean.TRUE,    updatedStructureElement.isLatest());
+                    assertEquals(Boolean.FALSE,   updatedStructureElement.isDeleted());
                     assertNotNull(updatedStructureElement.getWhen());
                 }
             }
@@ -668,7 +657,7 @@ public class ITUtilStructures {
             fail();
         }
 
-        return updatedStructureElements;
+        return structureElements;
     }
 
     // ----------------------------------------------------------------------------------------------------
@@ -713,378 +702,4 @@ public class ITUtilStructures {
         }
     }
 
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * @see ITUtilStructures#assertApprove(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertApprove(StructureElementCommandConfirm structureElementCommand) {
-        StructureElement[] approvedStructureElements = assertApprove(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), HttpURLConnection.HTTP_OK);
-        return approvedStructureElements != null
-                ? approvedStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertApprove(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertApprove(StructureElementCommandConfirm structureElementCommand, int expectedResponseCode) {
-        StructureElement[] approvedStructureElements = assertApprove(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), expectedResponseCode);
-        return approvedStructureElements != null
-                ? approvedStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertApprove(AuthorizationChoice, String, int)
-     */
-    public static StructureElement[] assertApprove(StructureElementCommandConfirm[] structureElementCommands) {
-        return assertApprove(AuthorizationChoice.NONE, object2Json(structureElementCommands), HttpURLConnection.HTTP_OK);
-    }
-    /**
-     * Utility method to approve json (structure elements) and assert result and response code.
-     *
-     * @param authorizationChoice authorization choice (none, user, admin)
-     * @param json json
-     * @param expectedResponseCode expected response code
-     * @return approved structure element
-     */
-    public static StructureElement[] assertApprove(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        StructureElement[] approvedStructureElements = null;
-
-        try {
-            String[] response = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(authorizationChoice, EndpointChoice.STRUCTURES, "/approve", json));
-            ITUtil.assertResponseLength2Code(response, expectedResponseCode);
-
-            if (HttpURLConnection.HTTP_OK == expectedResponseCode) {
-                approvedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-
-                for (StructureElement approvedStructureElement : approvedStructureElements) {
-                    assertNotNull(approvedStructureElement.getUuid());
-                    assertEquals(Status.APPROVED, approvedStructureElement.getStatus());
-                    assertEquals(Boolean.TRUE, approvedStructureElement.isLatest());
-                    // not known if deleted
-                    assertNotNull(approvedStructureElement.getWhen());
-                }
-            }
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return approvedStructureElements;
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * @see ITUtilStructures#assertCancel(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertCancel(StructureElementCommandConfirm structureElementCommand) {
-        StructureElement[] cancelledStructureElements = assertCancel(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), HttpURLConnection.HTTP_OK);
-        return cancelledStructureElements != null
-                ? cancelledStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertCancel(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertCancel(StructureElementCommandConfirm structureElementCommand, int expectedResponseCode) {
-        StructureElement[] cancelledStructureElements = assertCancel(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), expectedResponseCode);
-        return cancelledStructureElements != null
-                ? cancelledStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertCancel(AuthorizationChoice, String, int)
-     */
-    public static StructureElement[] assertCancel(StructureElementCommandConfirm[] structureElementCommands) {
-        return assertCancel(AuthorizationChoice.NONE, object2Json(structureElementCommands), HttpURLConnection.HTTP_OK);
-    }
-    /**
-     * Utility method to cancel json (structure elements) and assert result and response code.
-     *
-     * @param authorizationChoice authorization choice (none, user, admin)
-     * @param json json
-     * @param expectedResponseCode expected response code
-     * @return cancelled structure element
-     */
-    public static StructureElement[] assertCancel(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        StructureElement[] cancelledStructureElements = null;
-
-        try {
-            String[] response = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(authorizationChoice, EndpointChoice.STRUCTURES, "/cancel", json));
-            ITUtil.assertResponseLength2Code(response, expectedResponseCode);
-
-            if (HttpURLConnection.HTTP_OK == expectedResponseCode) {
-                cancelledStructureElements = mapper.readValue(response[1], StructureElement[].class);
-
-                for (StructureElement cancelledStructureElement : cancelledStructureElements) {
-                    assertNotNull(cancelledStructureElement.getUuid());
-                    assertEquals(Status.CANCELLED, cancelledStructureElement.getStatus());
-                    assertEquals(Boolean.FALSE, cancelledStructureElement.isLatest());
-                    // not known if deleted
-                    assertNotNull(cancelledStructureElement.getWhen());
-                }
-            }
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return cancelledStructureElements;
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * @see ITUtilStructures#assertReject(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertReject(StructureElementCommandConfirm structureElementCommand) {
-        StructureElement[] rejectedStructureElements = assertReject(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), HttpURLConnection.HTTP_OK);
-        return rejectedStructureElements != null
-                ? rejectedStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertReject(AuthorizationChoice, String, int)
-     */
-    public static StructureElement assertReject(StructureElementCommandConfirm structureElementCommand, int expectedResponseCode) {
-        StructureElement[] rejectedStructureElements = assertReject(AuthorizationChoice.NONE, object2Json(new StructureElementCommandConfirm[] {structureElementCommand}), expectedResponseCode);
-        return rejectedStructureElements != null
-                ? rejectedStructureElements[0]
-                : null;
-    }
-    /**
-     * @see ITUtilStructures#assertReject(AuthorizationChoice, String, int)
-     */
-    public static StructureElement[] assertReject(StructureElementCommandConfirm[] structureElementCommands) {
-        return assertReject(AuthorizationChoice.NONE, object2Json(structureElementCommands), HttpURLConnection.HTTP_OK);
-    }
-    /**
-     * Utility method to reject json (structure elements) and assert result and response code.
-     *
-     * @param authorizationChoice authorization choice (none, user, admin)
-     * @param json json
-     * @param expectedResponseCode expected response code
-     * @return rejected structure element
-     */
-    public static StructureElement[] assertReject(AuthorizationChoice authorizationChoice, String json, int expectedResponseCode) {
-        StructureElement[] rejectedStructureElements = null;
-
-        try {
-            String[] response = null;
-
-            response = ITUtil.runShellCommand(ITUtil.curlPatchPathJson(authorizationChoice, EndpointChoice.STRUCTURES, "/reject", json));
-            ITUtil.assertResponseLength2Code(response, expectedResponseCode);
-
-            if (HttpURLConnection.HTTP_OK == expectedResponseCode) {
-                rejectedStructureElements = mapper.readValue(response[1], StructureElement[].class);
-
-                for (StructureElement rejectedStructureElement : rejectedStructureElements) {
-                    assertNotNull(rejectedStructureElement.getUuid());
-                    assertEquals(Status.REJECTED, rejectedStructureElement.getStatus());
-                    assertEquals(Boolean.FALSE, rejectedStructureElement.isLatest());
-                    // not known if deleted
-                    assertNotNull(rejectedStructureElement.getWhen());
-                }
-            }
-        } catch (IOException e) {
-            fail();
-        } catch (InterruptedException e) {
-            fail();
-        } catch (Exception e) {
-            fail();
-        }
-
-        return rejectedStructureElements;
-    }
-
-    // ----------------------------------------------------------------------------------------------------
-
-    /**
-     * Utility method to create, approve a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return approved structure element (after create)
-     */
-    public static StructureElement assertCreateApprove(StructureElementCommandCreate structureElementCommand) {
-        return assertApprove(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommand)));
-    }
-    /**
-     * Utility method to create, approve structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return approved structure elements (after create)
-     */
-    public static StructureElement[] assertCreateApprove(StructureElementCommandCreate[] structureElementCommands) {
-        return assertApprove(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to create, cancel a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return cancelled structure element (after create)
-     */
-    public static StructureElement assertCreateCancel(StructureElementCommandCreate structureElementCommand) {
-        return assertCancel(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommand)));
-    }
-    /**
-     * Utility method to create, cancel structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return cancelled structure elements (after create)
-     */
-    public static StructureElement[] assertCreateCancel(StructureElementCommandCreate[] structureElementCommands) {
-        return assertCancel(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to create, reject a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return rejected structure element (after create)
-     */
-    public static StructureElement assertCreateReject(StructureElementCommandCreate structureElementCommand) {
-        return assertReject(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommand)));
-    }
-    /**
-     * Utility method to create, reject structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return rejected structure elements (after create)
-     */
-    public static StructureElement[] assertCreateReject(StructureElementCommandCreate[] structureElementCommands) {
-        return assertReject(StructureElementUtil.convertElement2CommandConfirm(assertCreate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to update, approve a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return approved structure element (after update)
-     */
-    public static StructureElement assertUpdateApprove(StructureElementCommandUpdate structureElementCommand) {
-        return assertApprove(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommand)));
-    }
-    /**
-     * Utility method to update, approve structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return approved structure elements (after update)
-     */
-    public static StructureElement[] assertUpdateApprove(StructureElementCommandUpdate[] structureElementCommands) {
-        return assertApprove(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to update, cancel a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return cancelled structure element (after update)
-     */
-    public static StructureElement assertUpdateCancel(StructureElementCommandUpdate structureElementCommand) {
-        return assertCancel(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommand)));
-    }
-    /**
-     * Utility method to update, cancel structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return cancelled structure elements (after update)
-     */
-    public static StructureElement[] assertUpdateCancel(StructureElementCommandUpdate[] structureElementCommands) {
-        return assertCancel(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to update, reject a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return rejected structure element (after update)
-     */
-    public static StructureElement assertUpdateReject(StructureElementCommandUpdate structureElementCommand) {
-        return assertReject(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommand)));
-    }
-    /**
-     * Utility method to update, reject structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return rejected structure elements (after update)
-     */
-    public static StructureElement[] assertUpdateReject(StructureElementCommandUpdate[] structureElementCommands) {
-        return assertReject(StructureElementUtil.convertElement2CommandConfirm(assertUpdate(structureElementCommands)));
-    }
-
-    /**
-     * Utility method to delete, approve a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return approved structure element (after delete)
-     */
-    public static StructureElement assertDeleteApprove(StructureElementCommandConfirm structureElementCommand) {
-        assertDelete(structureElementCommand);
-        return assertApprove(structureElementCommand);
-    }
-    /**
-     * Utility method to delete, approve structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return approved structure elements (after delete)
-     */
-    public static StructureElement[] assertDeleteApprove(StructureElementCommandConfirm[] structureElementCommands) {
-        assertDelete(structureElementCommands);
-        return assertApprove(structureElementCommands);
-    }
-
-    /**
-     * Utility method to delete, cancel a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return cancelled structure element (after delete)
-     */
-    public static StructureElement assertDeleteCancel(StructureElementCommandConfirm structureElementCommand) {
-        assertDelete(structureElementCommand);
-        return assertCancel(structureElementCommand);
-    }
-    /**
-     * Utility method to delete, cancel structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return cancelled structure elements (after delete)
-     */
-    public static StructureElement[] assertDeleteCancel(StructureElementCommandConfirm[] structureElementCommands) {
-        assertDelete(structureElementCommands);
-        return assertCancel(structureElementCommands);
-    }
-
-    /**
-     * Utility method to delete, reject a structure element and assert result.
-     *
-     * @param structureElementCommand structure element command
-     * @return rejected structure element (after delete)
-     */
-    public static StructureElement assertDeleteReject(StructureElementCommandConfirm structureElementCommand) {
-        assertDelete(structureElementCommand);
-        return assertReject(structureElementCommand);
-    }
-    /**
-     * Utility method to delete, reject structure elements and assert result.
-     *
-     * @param structureElementCommands structure element commands
-     * @return rejected structure elements (after delete)
-     */
-    public static StructureElement[] assertDeleteReject(StructureElementCommandConfirm[] structureElementCommands) {
-        assertDelete(structureElementCommands);
-        return assertReject(structureElementCommands);
-    }
-
 }
diff --git a/src/test/java/org/openepics/names/docker/MetricsIT.java b/src/test/java/org/openepics/names/docker/MetricsIT.java
index 401ddc1e668ef38d98419bb3803f61eb29d629c3..c7ef3c429483cd822c9f6ca3ec7bc450e06ec5b1 100644
--- a/src/test/java/org/openepics/names/docker/MetricsIT.java
+++ b/src/test/java/org/openepics/names/docker/MetricsIT.java
@@ -74,44 +74,44 @@ public class MetricsIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         NameElementCommandCreate[] nameElementCommandsCreate = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010 = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010 = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "EMR", null, "Electromagnetic Resonators")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineEMR, null, null, "Control")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "FS",  null, "Flow Switch")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceTypeFS = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceTypeFS = structureElements[0].getUuid();
 
         nameElementCommandsCreate = new NameElementCommandCreate[] {
                 new NameElementCommandCreate(subsystem010, deviceTypeFS, "001", "description")
diff --git a/src/test/java/org/openepics/names/docker/NamesIT.java b/src/test/java/org/openepics/names/docker/NamesIT.java
index c3736a691fc5ec221bc2d373911e465b6dc8e45d..17f40bbf03edafc1395ea6378484d2d39c9e87a9 100644
--- a/src/test/java/org/openepics/names/docker/NamesIT.java
+++ b/src/test/java/org/openepics/names/docker/NamesIT.java
@@ -88,51 +88,51 @@ class NamesIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010PRL", null, "01 Phase Reference Line"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "N1U1",   null, "Power switch board 01. Electrical power cabinets")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010PRL = approvedStructureElements[0].getUuid();
-        subsystem010    = approvedStructureElements[1].getUuid();
-        subsystemN1U1   = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010PRL = structureElements[0].getUuid();
+        subsystem010    = structureElements[1].getUuid();
+        subsystemN1U1   = structureElements[2].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "EMR", null, "Electromagnetic Resonators")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineEMR, null, null, "Control")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "FS",  null, "Flow Switch"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "RFA", null, "RF Antenna"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "TT",  null, "Temperature Transmitter")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceTypeFS  = approvedStructureElements[0].getUuid();
-        deviceTypeRFA = approvedStructureElements[1].getUuid();
-        deviceTypeTT  = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceTypeFS  = structureElements[0].getUuid();
+        deviceTypeRFA = structureElements[1].getUuid();
+        deviceTypeTT  = structureElements[2].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  10);
@@ -752,7 +752,7 @@ class NamesIT {
         ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=3&pageSize=3",                                          0);
 
         // order by, pagination
-        response  = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=true&page=0&pageSize=3",   3);
+        response  = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=true&page=0&pageSize=3",                   3);
         response2 = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=false&page=2&pageSize=3",                  2);
         assertEquals(response.getList().get(0).getWhen().toString(),  response2.getList().get(response2.getList().size()-1).getWhen().toString());
         response  = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=false&page=0&pageSize=3",                  3);
diff --git a/src/test/java/org/openepics/names/docker/PvNamesIT.java b/src/test/java/org/openepics/names/docker/PvNamesIT.java
index f416381b3b96e706eff33a87207818d4b06c75c7..6d4580a1ec6ddf2592a2b98b5e052ab5e05f941a 100644
--- a/src/test/java/org/openepics/names/docker/PvNamesIT.java
+++ b/src/test/java/org/openepics/names/docker/PvNamesIT.java
@@ -70,44 +70,44 @@ public class PvNamesIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         NameElementCommandCreate[] nameElementCommandsCreate = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010 = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010 = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "EMR", null, "Electromagnetic Resonators")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineEMR, null, null, "Control")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupEMR = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupEMR = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupEMR, "FS",  null, "Flow Switch")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceTypeFS = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceTypeFS = structureElements[0].getUuid();
 
         nameElementCommandsCreate = new NameElementCommandCreate[] {
                 new NameElementCommandCreate(subsystem010, deviceTypeFS, "001", "description")
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index aa4e752fe6fed8ebcb3d84010fdfdd12027c631f..6286303a3e49ba77f5e52e34dbc9162caa0d50f4 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -79,15 +79,15 @@ class StructuresDeviceGroupIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di",  null, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di2", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineUuid  = approvedStructureElements[0].getUuid();
-        discipline2Uuid = approvedStructureElements[1].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineUuid  = structureElements[0].getUuid();
+        discipline2Uuid = structureElements[1].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   2);
@@ -287,159 +287,37 @@ class StructuresDeviceGroupIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve device group
-        //
-        // note
-        //     create in order to approve
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel device group
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject device group
-        //
-        // note
-        //     create in order to reject
+    void create() {
+        // test create device group
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommand = new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid, null, null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -448,7 +326,7 @@ class StructuresDeviceGroupIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -460,15 +338,15 @@ class StructuresDeviceGroupIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -522,132 +400,36 @@ class StructuresDeviceGroupIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve device group
-        //
-        // note
-        //     create, approve in order to update, approve
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel device group
+    void update() {
+        // test update device group
         //
         // note
-        //     create, approve in order to update, cancel
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject device group
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -656,7 +438,7 @@ class StructuresDeviceGroupIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -664,15 +446,15 @@ class StructuresDeviceGroupIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -702,489 +484,123 @@ class StructuresDeviceGroupIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve device group
+    void delete() {
+        // test delete device group
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete, approve
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel device group
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject device group
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
-    void readSearchHistoryApprove() {
-        // test read device group in various ways for create, approve
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read device group in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 41, "description");
 
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
         // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                          1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rsha",          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rsha",           0);
+        count = ITUtilStructures.assertRead("?type=DEVICEGROUP").getListSize();
 
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?type=DEVICEGROUP",                                           0, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonic=Rshs",                             0);
 
         ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=false",                              1, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=true",                               0, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=true",                          0);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
 
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                         1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rsha",          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rsha",           0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryCancel() {
-        // test read device group in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rshc",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rshc",            0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                         1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rshc",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rshc",            0);
-
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryReject() {
-        // test read device group in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 41, "description");
-
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                          1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rshr",          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rshr",           0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize());
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=DEVICEGROUP", 1, -1).getListSize());
 
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED",                         1, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonic=Rshr",          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonic=Rshr",           0);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP",                                           1, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonic=Rshs",                             0);
 
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
         ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr&statuses=APPROVED&deleted=false",       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=false",                              1, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=true",                               0, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=true",                          0);
 
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di", Boolean.FALSE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
-        // test read device type in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
-
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
-
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 0);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 0);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 0);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 0);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 0);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-A1", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read device type in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
+    void readSearch2Trees() {
+        // test read device group in various ways
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
         //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //         no mnemonic
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
@@ -1192,100 +608,54 @@ class StructuresDeviceGroupIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement responseStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description");
-        responseStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(responseStructureElement);
-        uuid = responseStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description no mnemonic 1");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
+
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 1 9");
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 2, "description");
-        responseStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(responseStructureElement);
-        uuid2 = responseStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 1, "description");
-        responseStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(responseStructureElement);
-        uuid3 = responseStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 1, "description");
-        responseStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(responseStructureElement);
-        uuid4 = responseStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, 2, "description no mnemonic 2");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
+
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 2 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1293,43 +663,29 @@ class StructuresDeviceGroupIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  0);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  0);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  0);
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  0);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    0);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
+
         ITUtilStructures.assertRead("?mnemonic=A9",                                  0);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  0);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  0);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  0);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  0);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    0);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-P9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-C9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-R9", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-Ab", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di-A9", Boolean.FALSE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read device group in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1339,14 +695,18 @@ class StructuresDeviceGroupIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 1, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 1, "description"),
@@ -1354,30 +714,41 @@ class StructuresDeviceGroupIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 1, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description")
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 4, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 4, "description"),
@@ -1385,15 +756,19 @@ class StructuresDeviceGroupIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 4, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 5, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 5, "description"),
@@ -1401,79 +776,56 @@ class StructuresDeviceGroupIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 5, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 7, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 device group entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 8, "description")
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, null, 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // 85 subsystem entries
+        // 85 system group entries
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1481,7 +833,7 @@ class StructuresDeviceGroupIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1493,48 +845,32 @@ class StructuresDeviceGroupIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2",                                                         35);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&mnemonicPath=Di2",                                        10);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=APPROVED&mnemonicPath=Di2",                                       25);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=CANCELLED&mnemonicPath=Di2",                                       0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=REJECTED&mnemonicPath=Di2",                                        0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2",                      35);
-
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&mnemonicPath=Di2",                                           20);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&statuses=PENDING&mnemonicPath=Di2",                           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&statuses=APPROVED&mnemonicPath=Di2",                         20);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&statuses=CANCELLED&mnemonicPath=Di2",                         0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&statuses=REJECTED&mnemonicPath=Di2",                          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2",        20);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2",                                                         30);
 
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=false&mnemonicPath=Di2",                                           15);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&mnemonicPath=Di2",                                            15);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&statuses=PENDING&mnemonicPath=Di2",                           10);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&statuses=APPROVED&mnemonicPath=Di2",                           5);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&statuses=CANCELLED&mnemonicPath=Di2",                          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&statuses=REJECTED&mnemonicPath=Di2",                           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2",         15);
 
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&parent=" + discipline2Uuid.toString(),                                     45, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&parent=" + discipline2Uuid.toString(),                                     30, -1);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&parent=" + uuid.toString(),                                                 0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&parent=" + uuid2.toString(),                                                0);
 
         ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonic=A__",                                                              0);
 
         ITUtilStructures.assertRead("?type=DEVICEGROUP&description=desc",                                                          0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=desc%",                                                        35, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=desc%",                                                        10, -1);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&description=sc",                                                            0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&description=sc%",                                                           0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&description=%sc",                                                           0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=%sc%",                                                         45, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=description",                                                  35, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=%sc%",                                                         30, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&description=description",                                                  10, -1);
 
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=test who",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=test who",                                                             30, -1);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&who=test",                                                                  0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&who=who",                                                                   0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=test%",                                                                45, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%who",                                                                 45, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%est%",                                                                45, -1);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%wh%",                                                                 45, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=test%",                                                                30, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%who",                                                                 30, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%est%",                                                                30, -1);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%wh%",                                                                 30, -1);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&who=wh%",                                                                   0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&who=asdf",                                                                  0);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&who=%asdf%",                                                                0);
@@ -1592,27 +928,27 @@ class StructuresDeviceGroupIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=100",                                     35);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=35",                                      35);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=35",                                       0);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=15",                                      15);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=15",                                      15);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=2&pageSize=15",                                       5);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=3&pageSize=15",                                       0);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=2&pageSize=15",    5);
-        ITUtilStructures.assertRead("?type=DEVICEGROUP&statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=0&pageSize=15",  15);
-        response2 = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=2&pageSize=15",  5);
+        response  = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=0&pageSize=15", 15);
-        response2 = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=2&pageSize=15",   5);
+        response  = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=DEVICEGROUP&mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1624,32 +960,25 @@ class StructuresDeviceGroupIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                                0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                               0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString(),                                                    15, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=APPROVED",                             15, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=ARCHIVED",                              0, -1, HttpURLConnection.HTTP_NOT_FOUND);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=CANCELLED",                             0, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=PENDING",                               0, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=REJECTED",                              0, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=CANCELLED,PENDING",                     0, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=APPROVED,PENDING",                     15, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=APPROVED&deleted=false",                9, -1);
-        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?statuses=APPROVED&deleted=true",                 5, -1);
+        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?deleted=false",                                  9, -1);
+        ITUtilStructures.assertRead("/children/" + discipline2Uuid.toString() + "?deleted=true",                                   5, -1);
 
         // mnemonic
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                                 0);
         ITUtilStructures.assertRead("?mnemonic=A__",                                                                               0);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                               0);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                               0);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                               0);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                               0);
         ITUtilStructures.assertRead("?mnemonic=Di2",                                                                               1);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                                 0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                               0);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                               0);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                               0);
-        ITUtilStructures.assertRead("?mnemonic=Di2&statuses=APPROVED&deleted=false",                                               1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                                   0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                                 0);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                                 0);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Di2&deleted=false",                                                                 1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
@@ -1657,19 +986,19 @@ class StructuresDeviceGroupIT {
         ITUtilStructures.assertRead("?mnemonicPath=D%",                                                                           17, -1);
         ITUtilStructures.assertRead("?mnemonicPath=D__",                                                                          16, -1);
         ITUtilStructures.assertRead("?mnemonicPath=Di_",                                                                          16, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di2",                                                                          36);
-        ITUtilStructures.assertRead("?mnemonicPath=D&statuses=APPROVED&deleted=false",                                             0);
-        ITUtilStructures.assertRead("?mnemonicPath=D%&statuses=APPROVED&deleted=false",                                           22, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=D__&statuses=APPROVED&deleted=false",                                          21, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di_&statuses=APPROVED&deleted=false",                                          21, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di2&statuses=APPROVED&deleted=false",                                          21);
+        ITUtilStructures.assertRead("?mnemonicPath=Di2",                                                                          31);
+        ITUtilStructures.assertRead("?mnemonicPath=D&deleted=false",                                                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=D%&deleted=false",                                                             17, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=D__&deleted=false",                                                            16, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di_&deleted=false",                                                            16, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di2&deleted=false",                                                            16);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                      2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                     9);
-        ITUtilStructures.assertHistory("/" + disciplineUuid.toString(),                                                            2);
-        ITUtilStructures.assertHistory("/" + discipline2Uuid.toString(),                                                           2);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                      1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                     5);
+        ITUtilStructures.assertHistory("/" + disciplineUuid.toString(),                                                            1);
+        ITUtilStructures.assertHistory("/" + discipline2Uuid.toString(),                                                           1);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                                0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di2", Boolean.FALSE);
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index 3229efc6b91fe7aa9afe1a88bba91897b6345e8f..a512138db27f4d3de7ce105ddb6c466158ff7baf 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -79,19 +79,19 @@ class StructuresDeviceTypeIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupUuid = structureElements[0].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   2);
@@ -289,157 +289,38 @@ class StructuresDeviceTypeIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve system
-        //
-        // note
-        //     create in order to approve
+    void create() {
+        // test create device type
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommand = new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "Ca", null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Ca", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Ca", Boolean.TRUE);
         ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel system
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "Cc", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject system
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DEVICETYPE, deviceGroupUuid, "Cr", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cr", Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
         ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE, "Di-Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
@@ -448,7 +329,7 @@ class StructuresDeviceTypeIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -460,15 +341,15 @@ class StructuresDeviceTypeIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Cu", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -522,132 +403,36 @@ class StructuresDeviceTypeIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve device type
+    void update() {
+        // test update device type
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Ua", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel device type
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Uc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject device type
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Ur", null, "description");
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -656,7 +441,7 @@ class StructuresDeviceTypeIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -664,15 +449,15 @@ class StructuresDeviceTypeIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Cd", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -702,449 +487,181 @@ class StructuresDeviceTypeIT {
     }
 
     @Test
-    void deleteApprove() {
+    void delete() {
         // purpose
-        //     test delete and approve device type
+        //     test delete device type
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete, approve
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Da", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel device type
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Dc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject device type
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Dr", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
     }
 
     @Test
-    void readSearchHistoryApprove() {
-        // test read device type in various ways for create, approve
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read device type in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Rsha", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Rshs", 41, "description");
 
         // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rsha",             1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rsha",            0);
+        count = ITUtilStructures.assertRead("?type=DEVICETYPE").getListSize();
 
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?type=DEVICETYPE",                                            0, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=Rshs",                              0);
 
         ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rsha",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rsha", Boolean.FALSE);
-
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rsha",             0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rsha",            1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rsha",            0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rsha&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha",                                       1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rsha&statuses=APPROVED&deleted=false",       1);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rsha",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rsha", Boolean.TRUE);
-    }
-
-    @Test
-    void readSearchHistoryCancel() {
-        // test read device type in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Rshc", 41, "description");
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=false",                              1, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=true",                          0);
+
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshs",    Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshs", Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                            1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rshc",              1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rshc",             0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshc", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                            0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rshc",              0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rshc",            1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rshc",             0);
-
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",             1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshc", Boolean.FALSE);
-    }
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize());
 
-    @Test
-    void readSearchHistoryReject() {
-        // test read device type in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
+        ITUtilStructures.assertRead("?type=DEVICETYPE",                                            1, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=Rshs",                              1);
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Rshr", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rshr",             1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rshr",            0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
         ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                1);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Di-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshr", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DEVICETYPE", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=Rshr",             0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=Rshr",            1);
-
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Di",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Di-Rshr&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Di",                                            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di&statuses=APPROVED&deleted=false",            1, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshr", Boolean.FALSE);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs",                                       1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=false",                              1, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=false",                         1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-Rshs&deleted=true",                          0);
+
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
+
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Rshs",    Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Rshs", Boolean.TRUE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
+    void readSearch2Trees() {
         // test read device type in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
+        //         9 entries for each line of uuid
+        //         mnemonic - Ab, A9
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
         //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "P1", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Ab", null, "description mnemonic Ab");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "C1", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "R1", 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "A9", 2, "description mnemonic A9");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "A1", 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic A9 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1152,197 +669,30 @@ class StructuresDeviceTypeIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "P1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "C1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "R1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "A1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-A1", Boolean.TRUE);
-    }
 
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read device type in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "P9", null, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "C9", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid2 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "R9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid3 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "A9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid4 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
+        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  2);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
-
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "P9",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "C9",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "R9",    Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Ab",    Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "A9",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-P9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-C9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-R9", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-Ab", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-A9", Boolean.TRUE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read device type in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1352,14 +702,18 @@ class StructuresDeviceTypeIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AA1", 1, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AA2", 1, "description"),
@@ -1367,20 +721,27 @@ class StructuresDeviceTypeIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AA4", 1, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AA5", 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB1", 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB2", 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB3", 2, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB4", 2, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB5", 2, "description")
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AB5", 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AC1", 3, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AC2", 3, "description"),
@@ -1388,9 +749,13 @@ class StructuresDeviceTypeIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AC4", 3, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AC5", 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AD1", 4, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AD2", 4, "description"),
@@ -1398,15 +763,19 @@ class StructuresDeviceTypeIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AD4", 4, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AD5", 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AE1", 5, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AE2", 5, "description"),
@@ -1414,79 +783,56 @@ class StructuresDeviceTypeIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AE4", 5, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AE5", 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF1", 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF2", 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF3", 6, "description"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF4", 6, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF5", 6, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AG1", 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AG2", 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AG3", 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AG4", 7, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AG5", 7, "description")
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AF5", 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 device type entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AH1", 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AH2", 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AH3", 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AH4", 8, "description"),
-                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "AH5", 8, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // 85 subsystem entries
+        // 85 system group entries
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1494,7 +840,7 @@ class StructuresDeviceTypeIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1506,49 +852,33 @@ class StructuresDeviceTypeIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__",                                                         50);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&mnemonic=A__",                                        15);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=APPROVED&mnemonic=A__",                                       25);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=CANCELLED&mnemonic=A__",                                       5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=REJECTED&mnemonic=A__",                                        5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&statuses=APPROVED&mnemonic=A__",                      40);
-
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&mnemonic=A__",                                           35);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&statuses=PENDING&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&statuses=APPROVED&mnemonic=A__",                         20);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&statuses=CANCELLED&mnemonic=A__",                         5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&statuses=REJECTED&mnemonic=A__",                          5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonic=A__",        25);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__",                                                         30);
 
+        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=false&mnemonic=A__",                                           15);
         ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&mnemonic=A__",                                            15);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&statuses=PENDING&mnemonic=A__",                           10);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&statuses=APPROVED&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&statuses=CANCELLED&mnemonic=A__",                          0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&statuses=REJECTED&mnemonic=A__",                           0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonic=A__",         15);
 
         ITUtilStructures.assertRead("?type=DEVICETYPE&parent=" + disciplineUuid.toString(),                                   0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&parent=" + deviceGroupUuid.toString(),                                 45, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&parent=" + deviceGroupUuid.toString(),                                 30, -1);
         ITUtilStructures.assertRead("?type=DEVICETYPE&parent=" + uuid.toString(),                                             0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&parent=" + uuid2.toString(),                                            0);
 
         ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonicPath=A__",                                                      0);
 
         ITUtilStructures.assertRead("?type=DEVICETYPE&description=desc",                                                      0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&description=desc%",                                                    35, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&description=desc%",                                                    10, -1);
         ITUtilStructures.assertRead("?type=DEVICETYPE&description=sc",                                                        0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&description=sc%",                                                       0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&description=%sc",                                                       0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&description=%sc%",                                                     45, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&description=description",                                              35, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&description=%sc%",                                                     30, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&description=description",                                              10, -1);
 
-        ITUtilStructures.assertRead("?type=DEVICETYPE&who=test who",                                                         45, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&who=test who",                                                         30, -1);
         ITUtilStructures.assertRead("?type=DEVICETYPE&who=test",                                                              0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&who=who",                                                               0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&who=test%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%who",                                                             45, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%est%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%wh%",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&who=test%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%who",                                                             30, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%est%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&who=%wh%",                                                             30, -1);
         ITUtilStructures.assertRead("?type=DEVICETYPE&who=wh%",                                                               0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&who=asdf",                                                              0);
         ITUtilStructures.assertRead("?type=DEVICETYPE&who=%asdf%",                                                            0);
@@ -1586,8 +916,8 @@ class StructuresDeviceTypeIT {
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(1, response.getList().get(0).getOrdering());
         assertTrue(response.getList().get(0).getMnemonic().startsWith("AA"));
-        assertEquals(8, response2.getList().get(0).getOrdering());
-        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AH"));
+        assertEquals(6, response2.getList().get(0).getOrdering());
+        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AF"));
 
         response  = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true");
         response2 = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false");
@@ -1610,27 +940,27 @@ class StructuresDeviceTypeIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=100",                                     50);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=50",                                      50);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=50",                                       0);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=2&pageSize=20",                                      10);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=3&pageSize=20",                                       0);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=15",   10);
-        ITUtilStructures.assertRead("?type=DEVICETYPE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20",  20);
-        response2 = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 10);
+        response  = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20);
-        response2 = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20",  10);
+        response  = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=DEVICETYPE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1643,61 +973,54 @@ class StructuresDeviceTypeIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                           0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                          0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString(),                                               15, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=APPROVED",                        15, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=ARCHIVED",                         0, -1, HttpURLConnection.HTTP_NOT_FOUND);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=PENDING",                          0, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=CANCELLED,PENDING",                0, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=APPROVED,PENDING",                15, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=APPROVED&deleted=false",           9, -1);
-        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?statuses=APPROVED&deleted=true",            5, -1);
+        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?deleted=false",                             9, -1);
+        ITUtilStructures.assertRead("/children/" + deviceGroupUuid.toString() + "?deleted=true",                              5, -1);
         ITUtilStructures.assertRead("/children/" + disciplineUuid.toString(),                                                 1);
 
         // mnemonic
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                            0);
         ITUtilStructures.assertRead("?mnemonic=A__",                                                                         15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                         10);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                          2);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                          5);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                          1);
         ITUtilStructures.assertRead("?mnemonic=Di",                                                                           1);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                         15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                          5);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                          1);
-        ITUtilStructures.assertRead("?mnemonic=Di&statuses=APPROVED&deleted=false",                                           1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                              0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                           15, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                            5);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                            1);
+        ITUtilStructures.assertRead("?mnemonic=Di&deleted=false",                                                             1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
         ITUtilStructures.assertRead("?mnemonicPath=A",                                                                        0);
         ITUtilStructures.assertRead("?mnemonicPath=A__",                                                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_",                                                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1",                                                                      0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_",                                                                      0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1",                                                                      0);
         ITUtilStructures.assertRead("?mnemonicPath=Di-A%",                                                                   15, -1);
         ITUtilStructures.assertRead("?mnemonicPath=Di-A",                                                                     0);
         ITUtilStructures.assertRead("?mnemonicPath=Di-A__",                                                                  15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-AG_",                                                                  10);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-AG1",                                                                   2);
-        ITUtilStructures.assertRead("?mnemonicPath=A&statuses=APPROVED&deleted=false",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=A__&statuses=APPROVED&deleted=false",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_&statuses=APPROVED&deleted=false",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1&statuses=APPROVED&deleted=false",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-A%&statuses=APPROVED&deleted=false",                                   15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-A&statuses=APPROVED&deleted=false",                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-A__&statuses=APPROVED&deleted=false",                                  15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-AG_&statuses=APPROVED&deleted=false",                                   5);
-        ITUtilStructures.assertRead("?mnemonicPath=Di-AG1&statuses=APPROVED&deleted=false",                                   1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-AE_",                                                                   5);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-AE1",                                                                   1);
+        ITUtilStructures.assertRead("?mnemonicPath=A&deleted=false",                                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=A__&deleted=false",                                                        0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_&deleted=false",                                                        0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1&deleted=false",                                                        0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-A%&deleted=false",                                                     15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-A&deleted=false",                                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-A__&deleted=false",                                                    15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-AE_&deleted=false",                                                     5);
+        ITUtilStructures.assertRead("?mnemonicPath=Di-AE1&deleted=false",                                                     1);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                 2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                9);
-        ITUtilStructures.assertHistory("/" + deviceGroupUuid.toString(),                                                      2);
-        ITUtilStructures.assertHistory("/" + disciplineUuid.toString(),                                                       2);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                 1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                5);
+        ITUtilStructures.assertHistory("/" + deviceGroupUuid.toString(),                                                      1);
+        ITUtilStructures.assertHistory("/" + disciplineUuid.toString(),                                                       1);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                           0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA1", Boolean.TRUE);
@@ -1705,11 +1028,11 @@ class StructuresDeviceTypeIT {
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA3", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA4", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB2", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB3", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB4", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB1", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB2", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB3", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB4", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AB5", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AC1", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AC2", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AC3", Boolean.FALSE);
@@ -1730,16 +1053,16 @@ class StructuresDeviceTypeIT {
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AF3", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AF4", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AF5", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH5", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AG5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AH5", Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index 9e560ddf22f55cb59663d2bc1adbbc89ec6b1d01..510df00a0860f20b058cbddff05a6f5dd7eed62c 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -222,157 +222,38 @@ class StructuresDisciplineIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve discipline
-        //
-        // note
-        //     create in order to approve
+    void create() {
+        // test create discipline
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommand = new StructureElementCommand(null, Type.DISCIPLINE, null, "Ca", null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.TRUE);
         ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel discipline
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DISCIPLINE, null, "Cc", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cc", Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject discipline
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.DISCIPLINE, null, "Cr", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
         ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
@@ -381,7 +262,7 @@ class StructuresDisciplineIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -392,15 +273,15 @@ class StructuresDisciplineIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Cu", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -447,132 +328,36 @@ class StructuresDisciplineIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve discipline
+    void update() {
+        // test update discipline
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Ua", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel discipline
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Uc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject discipline
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Ur", null, "description");
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -581,7 +366,7 @@ class StructuresDisciplineIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -589,15 +374,15 @@ class StructuresDisciplineIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Cd", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -627,394 +412,154 @@ class StructuresDisciplineIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve discipline
+    void delete() {
+        // test delete discipline
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete, approve
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Da", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel discipline
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Dc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject discipline
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Dr", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void readSearchHistoryApprove() {
-        // test read discipline in various ways for create, approve
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Rsha", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rsha",             1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rsha",            0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rsha", Boolean.FALSE);
-
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rsha",             0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rsha",            1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rsha",            0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              1);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          1);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rsha", Boolean.TRUE);
     }
 
     @Test
-    void readSearchHistoryCancel() {
-        // test read discipline in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read discipline in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Rshc", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Rshs", 41, "description");
 
         // read (1)
-        length = ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                            1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rshc",              1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rshc",             0);
+        count = ITUtilStructures.assertRead("?type=DISCIPLINE").getListSize();
 
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?type=DISCIPLINE",                                            0, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=Rshs",                              0);
 
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
 
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
 
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshc", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                            0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rshc",              0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rshc",            1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rshc",             0);
-
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshc", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryReject() {
-        // test read discipline in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Rshr", 41, "description");
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshs", Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rshr",             1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rshr",            0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshr", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize());
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=DISCIPLINE", 1, -1).getListSize());
 
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED",                          1, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=Rshr",             0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=Rshr",            1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE",                                            1, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=Rshs",                              1);
 
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
 
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
 
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
 
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshr", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "Rshs", Boolean.TRUE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
+    void readSearch2Trees() {
         // test read discipline in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
+        //         9 entries for each line of uuid
+        //         mnemonic - Ab, A9
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
         //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "P1", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "Ab", null, "description mnemonic Ab");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "C1", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "R1", 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "A9", 2, "description mnemonic A9");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "A1", 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic A9 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1022,189 +567,28 @@ class StructuresDisciplineIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "A1", Boolean.TRUE);
-    }
 
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read discipline in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "P9", null, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "C9", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid2 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "R9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid3 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.DISCIPLINE, null, "A9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid4 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
+        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  2);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "P9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "C9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "R9", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "Ab", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "A9", Boolean.TRUE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read discipline in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1214,14 +598,18 @@ class StructuresDisciplineIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AA1", 1, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AA2", 1, "description"),
@@ -1229,20 +617,27 @@ class StructuresDisciplineIT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AA4", 1, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AA5", 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB1", 2, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB2", 2, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB3", 2, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB4", 2, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB5", 2, "description")
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AB5", 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AC1", 3, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AC2", 3, "description"),
@@ -1250,9 +645,13 @@ class StructuresDisciplineIT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AC4", 3, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AC5", 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AD1", 4, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AD2", 4, "description"),
@@ -1260,15 +659,19 @@ class StructuresDisciplineIT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AD4", 4, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AD5", 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AE1", 5, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AE2", 5, "description"),
@@ -1276,79 +679,56 @@ class StructuresDisciplineIT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AE4", 5, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AE5", 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF1", 6, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF2", 6, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF3", 6, "description"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF4", 6, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF5", 6, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AG1", 7, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AG2", 7, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AG3", 7, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AG4", 7, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AG5", 7, "description")
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AF5", 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 discipline entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AH1", 8, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AH2", 8, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AH3", 8, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AH4", 8, "description"),
-                new StructureElementCommandCreate(Type.DISCIPLINE, null, "AH5", 8, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // 85 subsystem entries
+        // 85 system group entries
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1356,7 +736,7 @@ class StructuresDisciplineIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1368,47 +748,31 @@ class StructuresDisciplineIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__",                                                         50);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&mnemonic=A__",                                        15);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=APPROVED&mnemonic=A__",                                       25);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=CANCELLED&mnemonic=A__",                                       5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=REJECTED&mnemonic=A__",                                        5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&statuses=APPROVED&mnemonic=A__",                      40);
-
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&mnemonic=A__",                                           35);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&statuses=PENDING&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&statuses=APPROVED&mnemonic=A__",                         20);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&statuses=CANCELLED&mnemonic=A__",                         5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&statuses=REJECTED&mnemonic=A__",                          5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonic=A__",        25);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__",                                                         30);
 
+        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=false&mnemonic=A__",                                           15);
         ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&mnemonic=A__",                                            15);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&statuses=PENDING&mnemonic=A__",                           10);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&statuses=APPROVED&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&statuses=CANCELLED&mnemonic=A__",                          0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&statuses=REJECTED&mnemonic=A__",                           0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonic=A__",         15);
 
         ITUtilStructures.assertRead("?type=DISCIPLINE&parent=" + uuid.toString(),                                             0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&parent=" + uuid2.toString(),                                            0);
 
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonicPath=A__",                                                     45, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonicPath=A__",                                                     30, -1);
 
         ITUtilStructures.assertRead("?type=DISCIPLINE&description=desc",                                                      0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&description=desc%",                                                    35, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&description=desc%",                                                    10, -1);
         ITUtilStructures.assertRead("?type=DISCIPLINE&description=sc",                                                        0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&description=sc%",                                                       0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&description=%sc",                                                       0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&description=%sc%",                                                     45, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&description=description",                                              35, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&description=%sc%",                                                     30, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&description=description",                                              10, -1);
 
-        ITUtilStructures.assertRead("?type=DISCIPLINE&who=test who",                                                         45, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&who=test who",                                                         30, -1);
         ITUtilStructures.assertRead("?type=DISCIPLINE&who=test",                                                              0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&who=who",                                                               0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&who=test%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%who",                                                             45, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%est%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%wh%",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&who=test%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%who",                                                             30, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%est%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&who=%wh%",                                                             30, -1);
         ITUtilStructures.assertRead("?type=DISCIPLINE&who=wh%",                                                               0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&who=asdf",                                                              0);
         ITUtilStructures.assertRead("?type=DISCIPLINE&who=%asdf%",                                                            0);
@@ -1446,8 +810,8 @@ class StructuresDisciplineIT {
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(1, response.getList().get(0).getOrdering());
         assertTrue(response.getList().get(0).getMnemonic().startsWith("AA"));
-        assertEquals(8, response2.getList().get(0).getOrdering());
-        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AH"));
+        assertEquals(6, response2.getList().get(0).getOrdering());
+        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AF"));
 
         response  = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true");
         response2 = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false");
@@ -1470,27 +834,27 @@ class StructuresDisciplineIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=100",                                     50);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=50",                                      50);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=50",                                       0);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=2&pageSize=20",                                      10);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=3&pageSize=20",                                       0);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=15",   10);
-        ITUtilStructures.assertRead("?type=DISCIPLINE&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20",  20);
-        response2 = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 10);
+        response  = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20);
-        response2 = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20",  10);
+        response  = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=DISCIPLINE&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1501,7 +865,7 @@ class StructuresDisciplineIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                           0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                          0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
 
@@ -1509,28 +873,28 @@ class StructuresDisciplineIT {
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                            0);
         ITUtilStructures.assertRead("?mnemonic=A__",                                                                         15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                         10);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                          2);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                         15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                          5);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                          1);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                          5);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                          1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                              0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                           15, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                            5);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                            1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
         ITUtilStructures.assertRead("?mnemonicPath=A",                                                                        0);
         ITUtilStructures.assertRead("?mnemonicPath=A__",                                                                     15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_",                                                                     10);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1",                                                                      2);
-        ITUtilStructures.assertRead("?mnemonicPath=A&statuses=APPROVED&deleted=false",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=A__&statuses=APPROVED&deleted=false",                                     15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_&statuses=APPROVED&deleted=false",                                      5);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1&statuses=APPROVED&deleted=false",                                      1);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_",                                                                      5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1",                                                                      1);
+        ITUtilStructures.assertRead("?mnemonicPath=A&deleted=false",                                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=A__&deleted=false",                                                       15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_&deleted=false",                                                        5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1&deleted=false",                                                        1);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                 2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                9);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                 1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                5);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                           0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AA1", Boolean.TRUE);
@@ -1538,11 +902,11 @@ class StructuresDisciplineIT {
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AA3", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AA4", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AA5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB2", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB3", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB4", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB1", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB2", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB3", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB4", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AB5", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AC1", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AC2", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AC3", Boolean.FALSE);
@@ -1563,16 +927,16 @@ class StructuresDisciplineIT {
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AF3", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AF4", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DISCIPLINE, "AF5", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH5", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AG5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.DISCIPLINE, "AH5", Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index 80218f6b01eb416c79058bf0dccc1a8771e06124..eb3c04b4a20b8767d8b471b4d11c960be29681bb 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -79,19 +79,19 @@ class StructuresSubsystemIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupUuid  = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupUuid  = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Sys", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemUuid  = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemUuid  = structureElements[0].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   2);
@@ -286,157 +286,38 @@ class StructuresSubsystemIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve subsystem
-        //
-        // note
-        //     create in order to approve
+    void create() {
+        // test create subsystem
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommand = new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "Ca", null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Ca", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Ca", Boolean.TRUE);
         ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel subsystem
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "Cc", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cc", Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject subsystem
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SUBSYSTEM, systemUuid, "Cr", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
         ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM, "Sys-Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
@@ -445,7 +326,7 @@ class StructuresSubsystemIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -457,15 +338,15 @@ class StructuresSubsystemIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Cu", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -519,132 +400,36 @@ class StructuresSubsystemIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve subsystem
+    void update() {
+        // test update subsystem
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Ua", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel subsystem
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Uc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject subsystem
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Ur", null, "description");
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -653,7 +438,7 @@ class StructuresSubsystemIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -661,15 +446,15 @@ class StructuresSubsystemIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Cd", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -699,526 +484,218 @@ class StructuresSubsystemIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve subsystem
+    void delete() {
+        // test delete subsystem
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete, approve
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Da", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel subsystem
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Dc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject subsystem
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Dr", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
-    void readSearchHistoryApprove() {
-        // test read subsystem in various ways for create, approve
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read subsystem in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Rsha", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Rshs", 41, "description");
 
         // read (1)
-        length = ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                            1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rsha",              1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rsha",             0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rsha",             0);
+        count = ITUtilStructures.assertRead("?type=SUBSYSTEM").getListSize();
 
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?type=SUBSYSTEM",                                             0, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=Rshs",                               0);
 
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
         ITUtilStructures.assertRead("?mnemonic=Sys",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
         ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",               1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rsha&statuses=APPROVED&deleted=false",       0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Sys&deleted=false",                                 1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&deleted=false",                              0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Sys&deleted=true",                                  0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs&deleted=true",                          0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
         ITUtilStructures.assertRead("?mnemonicPath=Sys",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rsha",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rsha",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rsha&statuses=APPROVED&deleted=false",      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rsha&statuses=APPROVED&deleted=false",   0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rsha",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rsha",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rsha", Boolean.FALSE);
-
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                           1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rsha",              0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rsha",             1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rsha",             0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",               1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rsha",                                      1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rsha",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rsha&statuses=APPROVED&deleted=false",      1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rsha&statuses=APPROVED&deleted=false",   0);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rsha",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rsha",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rsha", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryCancel() {
-        // test read subsystem in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Rshc", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                             1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rshc",               1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rshc",              0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rshc",              0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Sys",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                             0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",             0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                         0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshc",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshc",                                    0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",         0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshc&statuses=APPROVED&deleted=false",       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshc&statuses=APPROVED&deleted=false",    0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshc",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshc", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                             0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                           1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rshc",               0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rshc",              0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rshc",             1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rshc",              0);
-
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Sys",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                             0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",             0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                         0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshc",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshc",                                    0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",         0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshc&statuses=APPROVED&deleted=false",       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshc&statuses=APPROVED&deleted=false",    0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshc",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshc", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryReject() {
-        // test read subsystem in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Rshr", 41, "description");
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs",                                      0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs",                                   0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=false",                              1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys&deleted=false",                             1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=false",                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs&deleted=false",                        0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs&deleted=false",                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys&deleted=true",                              0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=true",                           0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs&deleted=true",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs&deleted=true",                      0);
+
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshs",        Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshs",    Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshs", Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                            1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rshr",              1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rshr",             0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rshr",             0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshr",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshr",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshr&statuses=APPROVED&deleted=false",      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshr&statuses=APPROVED&deleted=false",   0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshr",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshr", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize());
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=SUBSYSTEM", 1, -1).getListSize());
 
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING",                            0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED",                           0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED",                           1, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=Rshr",              0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=Rshr",             0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=Rshr",             1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM",                                             1, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=Rshs",                               1);
 
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
         ITUtilStructures.assertRead("?mnemonic=Sys",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              1);
         ITUtilStructures.assertRead("?mnemonic=Sg-Sys",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Sys&statuses=APPROVED&deleted=false",               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&statuses=APPROVED&deleted=false",            0);
-        ITUtilStructures.assertRead("?mnemonic=Sys-Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshr&statuses=APPROVED&deleted=false",       0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Sys&deleted=false",                                 1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                1);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&deleted=false",                              0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Sys&deleted=true",                                  0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonic=Sys-Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Sys-Rshs&deleted=true",                          0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
         ITUtilStructures.assertRead("?mnemonicPath=Sys",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshr",                                      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshr",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys&statuses=APPROVED&deleted=false",           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshr&statuses=APPROVED&deleted=false",      0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshr&statuses=APPROVED&deleted=false",   0);
-
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshr",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshr", Boolean.FALSE);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs",                                      1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs",                                   0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=false",                              1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys&deleted=false",                             1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=false",                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs&deleted=false",                        1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs&deleted=false",                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys&deleted=true",                              0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=true",                           0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-Rshs&deleted=true",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys-Rshs&deleted=true",                      0);
+
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
+
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Rshs",        Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Rshs",    Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Rshs", Boolean.FALSE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
+    void readSearch2Trees() {
         // test read subsystem in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
+        //         9 entries for each line of uuid
+        //         mnemonic - Ab, A9
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
         //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "P1", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Ab", null, "description mnemonic Ab");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "C1", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "R1", 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "A9", 2, "description mnemonic A9");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "A1", 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic A9 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1226,205 +703,32 @@ class StructuresSubsystemIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "P1",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "C1",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "R1",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "A1",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-P1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-C1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-R1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-A1",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-A1", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read subsystem in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "P9", null, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "C9", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid2 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "R9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid3 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "A9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid4 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
 
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
+        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  2);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
-
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "P9",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "C9",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "R9",        Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Ab",        Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "A9",        Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-P9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-C9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-R9",    Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-Ab",    Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-A9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-P9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-C9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-R9", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-Ab", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sg-Sys-A9", Boolean.FALSE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read subsystem in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1434,14 +738,18 @@ class StructuresSubsystemIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AA1", 1, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AA2", 1, "description"),
@@ -1449,20 +757,27 @@ class StructuresSubsystemIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AA4", 1, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AA5", 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB1", 2, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB2", 2, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB3", 2, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB4", 2, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB5", 2, "description")
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AB5", 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AC1", 3, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AC2", 3, "description"),
@@ -1470,9 +785,13 @@ class StructuresSubsystemIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AC4", 3, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AC5", 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AD1", 4, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AD2", 4, "description"),
@@ -1480,15 +799,19 @@ class StructuresSubsystemIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AD4", 4, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AD5", 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AE1", 5, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AE2", 5, "description"),
@@ -1496,79 +819,56 @@ class StructuresSubsystemIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AE4", 5, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AE5", 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF1", 6, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF2", 6, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF3", 6, "description"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF4", 6, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF5", 6, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AG1", 7, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AG2", 7, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AG3", 7, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AG4", 7, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AG5", 7, "description")
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AF5", 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 subsystem entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AH1", 8, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AH2", 8, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AH3", 8, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AH4", 8, "description"),
-                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "AH5", 8, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // 85 subsystem entries
+        // 85 system group entries
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1576,7 +876,7 @@ class StructuresSubsystemIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1588,49 +888,33 @@ class StructuresSubsystemIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__",                                                         50);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&mnemonic=A__",                                        15);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=APPROVED&mnemonic=A__",                                       25);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=CANCELLED&mnemonic=A__",                                       5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=REJECTED&mnemonic=A__",                                        5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__",                      40);
-
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&mnemonic=A__",                                           35);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&statuses=PENDING&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&statuses=APPROVED&mnemonic=A__",                         20);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&statuses=CANCELLED&mnemonic=A__",                         5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&statuses=REJECTED&mnemonic=A__",                          5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonic=A__",        25);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__",                                                         30);
 
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=false&mnemonic=A__",                                           15);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&mnemonic=A__",                                            15);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&statuses=PENDING&mnemonic=A__",                           10);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&statuses=APPROVED&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&statuses=CANCELLED&mnemonic=A__",                          0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&statuses=REJECTED&mnemonic=A__",                           0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonic=A__",         15);
 
         ITUtilStructures.assertRead("?type=SUBSYSTEM&parent=" + systemGroupUuid.toString(),                                  0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&parent=" + systemUuid.toString(),                                      45, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&parent=" + systemUuid.toString(),                                      30, -1);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&parent=" + uuid.toString(),                                             0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&parent=" + uuid2.toString(),                                            0);
 
         ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonicPath=A__",                                                      0);
 
         ITUtilStructures.assertRead("?type=SUBSYSTEM&description=desc",                                                      0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=desc%",                                                    35, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=desc%",                                                    10, -1);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&description=sc",                                                        0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&description=sc%",                                                       0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&description=%sc",                                                       0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=%sc%",                                                     45, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=description",                                              35, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=%sc%",                                                     30, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&description=description",                                              10, -1);
 
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=test who",                                                         45, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=test who",                                                         30, -1);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&who=test",                                                              0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&who=who",                                                               0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=test%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%who",                                                             45, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%est%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%wh%",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=test%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%who",                                                             30, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%est%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%wh%",                                                             30, -1);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&who=wh%",                                                               0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&who=asdf",                                                              0);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&who=%asdf%",                                                            0);
@@ -1668,8 +952,8 @@ class StructuresSubsystemIT {
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(1, response.getList().get(0).getOrdering());
         assertTrue(response.getList().get(0).getMnemonic().startsWith("AA"));
-        assertEquals(8, response2.getList().get(0).getOrdering());
-        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AH"));
+        assertEquals(6, response2.getList().get(0).getOrdering());
+        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AF"));
 
         response  = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true");
         response2 = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false");
@@ -1692,27 +976,27 @@ class StructuresSubsystemIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=100",                                     50);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=50",                                      50);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=50",                                       0);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=2&pageSize=20",                                      10);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=3&pageSize=20",                                       0);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=15",   10);
-        ITUtilStructures.assertRead("?type=SUBSYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20",  20);
-        response2 = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 10);
+        response  = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20);
-        response2 = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20",  10);
+        response  = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=SUBSYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1725,81 +1009,74 @@ class StructuresSubsystemIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                          0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                         0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + systemUuid.toString(),                                                   15, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=APPROVED",                            15, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=ARCHIVED",                             0, -1, HttpURLConnection.HTTP_NOT_FOUND);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=CANCELLED",                            0, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=PENDING",                              0, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=REJECTED",                             0, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=CANCELLED,PENDING",                    0, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=APPROVED,PENDING",                    15, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=APPROVED&deleted=false",               9, -1);
-        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?statuses=APPROVED&deleted=true",                5, -1);
+        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?deleted=false",                                 9, -1);
+        ITUtilStructures.assertRead("/children/" + systemUuid.toString() + "?deleted=true",                                  5, -1);
         ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString(),                                               1);
 
         // mnemonic
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                           0);
-        ITUtilStructures.assertRead("?mnemonic=A__",                                                                        15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                        10);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                         2);
+        ITUtilStructures.assertRead("?mnemonic=A__",                                                                        30, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                         5);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                         1);
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                                          1);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                        15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                         5);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                         1);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                                          1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                             0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                          15, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                           5);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                           1);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                                            1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
         ITUtilStructures.assertRead("?mnemonicPath=A",                                                                       0);
         ITUtilStructures.assertRead("?mnemonicPath=A__",                                                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_",                                                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1",                                                                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_",                                                                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1",                                                                     0);
         ITUtilStructures.assertRead("?mnemonicPath=Sys-A%",                                                                 15, -1);
         ITUtilStructures.assertRead("?mnemonicPath=Sys-A",                                                                   0);
         ITUtilStructures.assertRead("?mnemonicPath=Sys-A__",                                                                15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-AG_",                                                                10);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-AG1",                                                                 2);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-AE_",                                                                 5);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-AE1",                                                                 1);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A%",                                                                   0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A",                                                                    0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A__",                                                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG_",                                                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG1",                                                                  0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE_",                                                                  0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE1",                                                                  0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys%",                                                                 0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                                                  0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys__",                                                                0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys_",                                                                 0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys",                                                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=A&statuses=APPROVED&deleted=false",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=A__&statuses=APPROVED&deleted=false",                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_&statuses=APPROVED&deleted=false",                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1&statuses=APPROVED&deleted=false",                                     0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-A%&statuses=APPROVED&deleted=false",                                 15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-A&statuses=APPROVED&deleted=false",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-A__&statuses=APPROVED&deleted=false",                                15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-AG_&statuses=APPROVED&deleted=false",                                 5);
-        ITUtilStructures.assertRead("?mnemonicPath=Sys-AG1&statuses=APPROVED&deleted=false",                                 1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A%&statuses=APPROVED&deleted=false",                                   0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A&statuses=APPROVED&deleted=false",                                    0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A__&statuses=APPROVED&deleted=false",                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG_&statuses=APPROVED&deleted=false",                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG1&statuses=APPROVED&deleted=false",                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys%&statuses=APPROVED&deleted=false",                                 0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",                                  0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys__&statuses=APPROVED&deleted=false",                                0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys_&statuses=APPROVED&deleted=false",                                 0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&statuses=APPROVED&deleted=false",                                  0);
+        ITUtilStructures.assertRead("?mnemonicPath=A&deleted=false",                                                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=A__&deleted=false",                                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_&deleted=false",                                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1&deleted=false",                                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-A%&deleted=false",                                                   15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-A&deleted=false",                                                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-A__&deleted=false",                                                  15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-AE_&deleted=false",                                                   5);
+        ITUtilStructures.assertRead("?mnemonicPath=Sys-AE1&deleted=false",                                                   1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A%&deleted=false",                                                     0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A&deleted=false",                                                      0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A__&deleted=false",                                                    0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE_&deleted=false",                                                    0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE1&deleted=false",                                                    0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys%&deleted=false",                                                   0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=false",                                                    0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys__&deleted=false",                                                  0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys_&deleted=false",                                                   0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Sys&deleted=false",                                                    0);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                               9);
-        ITUtilStructures.assertHistory("/" + systemUuid.toString(),                                                          2);
-        ITUtilStructures.assertHistory("/" + systemGroupUuid.toString(),                                                     2);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                               5);
+        ITUtilStructures.assertHistory("/" + systemUuid.toString(),                                                          1);
+        ITUtilStructures.assertHistory("/" + systemGroupUuid.toString(),                                                     1);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                          0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA1", Boolean.TRUE);
@@ -1807,11 +1084,11 @@ class StructuresSubsystemIT {
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA3", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA4", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB2", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB3", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB4", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB1", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB2", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB3", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB4", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AB5", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AC1", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AC2", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AC3", Boolean.FALSE);
@@ -1832,16 +1109,16 @@ class StructuresSubsystemIT {
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AF3", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AF4", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AF5", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH5", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AG5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AH5", Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index 90b4de3b4c21ebf1f834aaa678da8e225b890a74..e284a557275a2c9989053baefdbfdb63e87feda6 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -251,192 +251,66 @@ class StructuresSystemGroupIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve system group
+    void create() {
+        // test create system group
         //
         // note
-        //     create in order to approve
         //     with and without mnemonic
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid, uuid2, uuid3 = null;
 
         structureElementCommand = new StructureElementCommand(null, Type.SYSTEMGROUP, null, "Ca", null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Ca", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Ca", Boolean.TRUE);
         ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
+        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
 
         // create
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                null, null, "description2");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, null, null, "description2");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        uuid2 = structureElement.getUuid();
 
         // create
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                null, null, "description3");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, null, null, "description3");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        uuid3 = structureElement.getUuid();
 
         assertNotEquals(uuid, uuid2);
         assertNotEquals(uuid, uuid3);
         assertNotEquals(uuid2, uuid3);
     }
 
-    @Test
-    void createCancel() {
-        // test create and cancel system group
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SYSTEMGROUP, null, "Cc", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        structureElementCommandConfirm.setType(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setType(Type.SYSTEMGROUP);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject system group
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SYSTEMGROUP, null, "Cr", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
     @Test
     void checkUpdate() {
         // test conditions for update system group
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -447,15 +321,15 @@ class StructuresSystemGroupIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Cu", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -501,138 +375,36 @@ class StructuresSystemGroupIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve system group
+    void update() {
+        // test update system group
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Ua", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        structureElementCommandUpdate.setDescription("description update approve check");
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel system group
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Uc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        structureElementCommandUpdate.setDescription("description update cancel check");
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject system group
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Ur", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        structureElementCommandUpdate.setDescription("description update reject check");
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -641,7 +413,7 @@ class StructuresSystemGroupIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -649,15 +421,15 @@ class StructuresSystemGroupIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Cd", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -687,394 +459,154 @@ class StructuresSystemGroupIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve system group
+    void delete() {
+        // test delete system group
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Da", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel system group
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Dc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject system group
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Dr", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
-    void readSearchHistoryApprove() {
-        // test read system group in various ways for create, approve
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Rsha", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                          1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rsha",            1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rsha",           0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rsha",          0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rsha",           0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rsha", Boolean.FALSE);
-
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                         1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rsha",            0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rsha",           1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rsha",          0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rsha",           0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              1);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          1);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rsha", Boolean.TRUE);
-    }
-
-    @Test
-    void readSearchHistoryCancel() {
-        // test read system group in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read system group in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Rshc", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Rshs", 41, "description");
 
         // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                           1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rshc",             1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rshc",           0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rshc",            0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshc", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize());
+        count = ITUtilStructures.assertRead("?type=SYSTEMGROUP").getListSize();
 
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                           0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                         1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rshc",             0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rshc",            0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rshc",           1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rshc",            0);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP",                                           0, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&&mnemonic=Rshs",                            0);
 
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
 
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
 
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshc", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryReject() {
-        // test read system group in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Rshr", 41, "description");
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshs", Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                          1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rshr",            1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rshr",          0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rshr",           0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshr", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize());
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=SYSTEMGROUP", 1, -1).getListSize());
 
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING",                          0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED",                         0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED",                        0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED",                         1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=Rshr",            0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=Rshr",           0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=Rshr",          0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=Rshr",           1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP",                                           1, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=Rshs",                             1);
 
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
 
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
 
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
 
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshr", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Rshs", Boolean.TRUE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
+    void readSearch2Trees() {
         // test read system group in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
+        //         9 entries for each line of uuid
+        //         no mnemonic, mnemonic - A9
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
         //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "P1", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, null, null, "description no mnemonic");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "C1", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description no mnemonic 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description no mnemonic 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "R1", 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "A9", 2, "description mnemonic A9");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "A1", 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic A9 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1082,189 +614,28 @@ class StructuresSystemGroupIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "A1", Boolean.TRUE);
-    }
-
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read system group in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "P9", null, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "C9", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid2 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "R9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid3 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "A9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid4 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  0);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    0);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
 
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
+        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  2);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "P9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "C9", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "R9", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Ab", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "A9", Boolean.TRUE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read system group in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1274,14 +645,18 @@ class StructuresSystemGroupIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AA1", 1, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AA2", 1, "description"),
@@ -1289,10 +664,11 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AA4", 1, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AA5", 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AB1", 2, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AB2", 2, "description"),
@@ -1300,9 +676,15 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AB4", 2, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AB5", 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AC1", 3, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AC2", 3, "description"),
@@ -1310,9 +692,13 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AC4", 3, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AC5", 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AD1", 4, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AD2", 4, "description"),
@@ -1320,15 +706,19 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AD4", 4, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AD5", 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AE1", 5, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AE2", 5, "description"),
@@ -1336,23 +726,28 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AE4", 5, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AE5", 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AF1", 6, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AF2", 6, "description"),
@@ -1360,52 +755,24 @@ class StructuresSystemGroupIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AF4", 6, "description"),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AF5", 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AG1", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AG2", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AG3", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AG4", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AG5", 7, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 system group entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AH1", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AH2", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AH3", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AH4", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "AH5", 8, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 85 system group entries
@@ -1416,7 +783,7 @@ class StructuresSystemGroupIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1428,47 +795,31 @@ class StructuresSystemGroupIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__",                                                         50);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&mnemonic=A__",                                        15);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=APPROVED&mnemonic=A__",                                       25);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=CANCELLED&mnemonic=A__",                                       5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=REJECTED&mnemonic=A__",                                        5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&statuses=APPROVED&mnemonic=A__",                      40);
-
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&mnemonic=A__",                                           35);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&statuses=PENDING&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&statuses=APPROVED&mnemonic=A__",                         20);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&statuses=CANCELLED&mnemonic=A__",                         5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&statuses=REJECTED&mnemonic=A__",                          5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonic=A__",        25);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__",                                                         30);
 
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=false&mnemonic=A__",                                           15);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&mnemonic=A__",                                            15);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&statuses=PENDING&mnemonic=A__",                           10);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&statuses=APPROVED&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&statuses=CANCELLED&mnemonic=A__",                          0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&statuses=REJECTED&mnemonic=A__",                           0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonic=A__",         15);
 
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&parent=" + uuid.toString(),                                             0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&parent=" + uuid2.toString(),                                            0);
 
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonicPath=A__",                                                     45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonicPath=A__",                                                     30, -1);
 
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=desc",                                                      0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=desc%",                                                    35, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=desc%",                                                    10, -1);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=sc",                                                        0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=sc%",                                                       0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=%sc",                                                       0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=%sc%",                                                     45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=description",                                              35, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=%sc%",                                                     30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&description=description",                                              10, -1);
 
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=test who",                                                         45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=test who",                                                         30, -1);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=test",                                                              0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=who",                                                               0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=test%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%who",                                                             45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%est%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%wh%",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=test%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%who",                                                             30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%est%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%wh%",                                                             30, -1);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=wh%",                                                               0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=asdf",                                                              0);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&who=%asdf%",                                                            0);
@@ -1480,22 +831,22 @@ class StructuresSystemGroupIT {
         //     use with care
         //         PARENT              - not for SYSTEMGROUP
         //         WHEN                - different for requested/processed
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=UUID&isAsc=true");
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=UUID&isAsc=false");
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=UUID&isAsc=true");
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=UUID&isAsc=false");
         assertTrue(response.getList().size() > 0);
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(response.getList().get(0).getUuid(),  response2.getList().get(response2.getList().size()-1).getUuid());
         assertEquals(response2.getList().get(0).getUuid(),  response.getList().get(response.getList().size()-1).getUuid());
 
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=PARENT&isAsc=true");
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=PARENT&isAsc=false");
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=PARENT&isAsc=true");
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=PARENT&isAsc=false");
         assertTrue(response.getList().size() > 0);
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(response.getList().get(0).getUuid(),  response2.getList().get(response2.getList().size()-1).getUuid());
         assertEquals(response2.getList().get(0).getUuid(),  response.getList().get(response.getList().size()-1).getUuid());
 
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true");
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false");
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=MNEMONIC&isAsc=true");
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=MNEMONIC&isAsc=false");
         assertTrue(response.getList().size() > 0);
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(response.getList().get(0).getMnemonic(),  response2.getList().get(response2.getList().size()-1).getMnemonic());
@@ -1507,18 +858,18 @@ class StructuresSystemGroupIT {
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(1, response.getList().get(0).getOrdering());
         assertTrue(response.getList().get(0).getMnemonic().startsWith("AA"));
-        assertEquals(8, response2.getList().get(0).getOrdering());
-        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AH"));
+        assertEquals(6, response2.getList().get(0).getOrdering());
+        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AF"));
 
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true");
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false");
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=DESCRIPTION&isAsc=true");
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=DESCRIPTION&isAsc=false");
         assertTrue(response.getList().size() > 0);
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(response.getList().get(0).getDescription(),  response2.getList().get(response2.getList().size()-1).getDescription());
         assertEquals(response2.getList().get(0).getDescription(),  response.getList().get(response.getList().size()-1).getDescription());
 
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=true");
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=false");
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=WHEN&isAsc=true");
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=AE_&orderBy=WHEN&isAsc=false");
         String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null;
         String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null;
         String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null;
@@ -1531,27 +882,27 @@ class StructuresSystemGroupIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=100",                                     50);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=50",                                      50);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=50",                                       0);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=2&pageSize=20",                                      10);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=3&pageSize=20",                                       0);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=15",   10);
-        ITUtilStructures.assertRead("?type=SYSTEMGROUP&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20",  20);
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 10);
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20);
-        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20",  10);
+        response  = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=SYSTEMGROUP&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1562,36 +913,36 @@ class StructuresSystemGroupIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                            0, 0, HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                           0, 0, HttpURLConnection.HTTP_NOT_FOUND);
 
         // mnemonic
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                             0);
-        ITUtilStructures.assertRead("?mnemonic=A__",                                                                          15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                          10);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                           2);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                             0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                          15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                           5);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                           1);
+        ITUtilStructures.assertRead("?mnemonic=A__",                                                                          30, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                           5);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                           1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                               0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                            15, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                             5);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                             1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
         ITUtilStructures.assertRead("?mnemonicPath=A",                                                                         0);
         ITUtilStructures.assertRead("?mnemonicPath=A__",                                                                      15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_",                                                                      10);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1",                                                                       2);
-        ITUtilStructures.assertRead("?mnemonicPath=A&statuses=APPROVED&deleted=false",                                         0);
-        ITUtilStructures.assertRead("?mnemonicPath=A__&statuses=APPROVED&deleted=false",                                      15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_&statuses=APPROVED&deleted=false",                                       5);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1&statuses=APPROVED&deleted=false",                                       1);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_",                                                                       5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1",                                                                       1);
+        ITUtilStructures.assertRead("?mnemonicPath=A&deleted=false",                                                           0);
+        ITUtilStructures.assertRead("?mnemonicPath=A__&deleted=false",                                                        15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_&deleted=false",                                                         5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1&deleted=false",                                                         1);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                  2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                 9);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                                  1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                                 5);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                            0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA1", Boolean.TRUE);
@@ -1599,11 +950,11 @@ class StructuresSystemGroupIT {
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA3", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA4", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB2", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB3", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB4", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB1", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB2", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB3", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB4", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AB5", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AC1", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AC2", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AC3", Boolean.FALSE);
@@ -1624,16 +975,16 @@ class StructuresSystemGroupIT {
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AF3", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AF4", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AF5", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH5", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AG5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AH5", Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index 055da053f5bc91e7a29f2bb6283900bdb82926e8..e307784abc6da007861b60526d3024704b0b1cb4 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -78,13 +78,13 @@ class StructuresSystemIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupUuid  = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupUuid  = structureElements[0].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   1);
@@ -271,158 +271,39 @@ class StructuresSystemIT {
     }
 
     @Test
-     void createApprove() {
-        // test create and approve system
-        //
-        // note
-        //     create in order to approve
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "Ca", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel system
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "Cc", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cc", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject system
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
-
-        structureElementCommand = new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "Cr", null, "description");
-
-        structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
-        structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        UUID uuid = structureElementCommandConfirm.getUuid();
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-        structureElementCommandConfirm.setUuid(uuid);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Cr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Cr", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(uuid);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
+    void create() {
+       // test create system
+
+       StructureElementCommandCreate structureElementCommandCreate = null;
+       StructureElementCommandUpdate structureElementCommandUpdate = null;
+       StructureElementCommandConfirm structureElementCommandConfirm = null;
+       StructureElementCommand structureElementCommand = null;
+       StructureElement structureElement = null;
+
+       structureElementCommand = new StructureElementCommand(null, Type.SYSTEM, systemGroupUuid, "Ca", null, "description");
+
+       structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+       structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
+       structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
+
+       ITUtilStructures.assertExists(Type.SYSTEM, "Ca", Boolean.FALSE);
+       ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Ca", Boolean.TRUE);
+       ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+       ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+       ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
+
+       // create
+       structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+       structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+       structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+
+       ITUtilStructures.assertExists(Type.SYSTEM, "Ca", Boolean.TRUE);
+       ITUtilStructures.assertIsValidToCreate(Type.SYSTEM, "Ca", Boolean.FALSE);
+       ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+       ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+       ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
+       ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
+   }
 
     @Test
     void checkUpdate() {
@@ -430,7 +311,7 @@ class StructuresSystemIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -442,15 +323,15 @@ class StructuresSystemIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Cu", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate update
 
@@ -504,132 +385,36 @@ class StructuresSystemIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve system
+    void update() {
+        // test update system
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Ua", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel system
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Uc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // update
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject system
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Ur", null, "description");
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElement);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        structureElementCommandUpdate.setDescription("description update check");
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
 
         // update
         ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
     }
 
     @Test
@@ -638,7 +423,7 @@ class StructuresSystemIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -646,15 +431,15 @@ class StructuresSystemIT {
 
         StructureElementCommandCreate structureElementCommandCreate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
         UUID uuid = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Cd", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-        uuid = approvedStructureElement.getUuid();
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
+        uuid = structureElement.getUuid();
 
         // validate delete
 
@@ -684,448 +469,180 @@ class StructuresSystemIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve system
+    void delete() {
+        // test delete system
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete, approve
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
+        StructureElement structureElement = null;
 
         structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Da", null, "description");
 
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel system
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Dc", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        // delete
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.TRUE);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // cancel
-        ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.CANCEL, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertCancel(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject system
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement approvedStructureElement = null;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Dr", null, "description");
-
-        // create, approve
-        approvedStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElement);
+        // create
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
 
         // delete
         ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.TRUE);
         ITUtilStructures.assertDelete(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
-
-        // reject
-        ITUtilStructures.assertReject(structureElementCommandConfirm);
-
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.REJECT, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertReject(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(approvedStructureElement.getUuid());
-        ITUtilStructures.assertReject(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
     }
 
     @Test
-    void readSearchHistoryApprove() {
-        // test read system in various ways for create, approve
-        //     search
-        //     latest
-        //     history
+    void readSearch() {
+        // test read system in various ways
         //
         // note
-        //     create (and more) to read (with content)
+        //     create in order to read
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement approvedStructureElement = null;
-        int length = 0;
+        StructureElement structureElement  = null;
+        int count = 0;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Rsha", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Rshs", 41, "description");
 
         // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                               1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                             0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rsha",                 1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rsha",                0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rsha",               0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rsha",                0);
+        count = ITUtilStructures.assertRead("?type=SYSTEM").getListSize();
 
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
+        ITUtilStructures.assertRead("?type=SYSTEM",                                                0, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=Rshs",                                  0);
 
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rsha&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rsha",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rsha", Boolean.FALSE);
-
-        // approve
-        approvedStructureElement = ITUtilStructures.assertApprove(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                              1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                             0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rsha",                 0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rsha",                1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rsha",               0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rsha",                0);
-
-        ITUtilStructures.assertFind("/" + approvedStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rsha",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rsha&statuses=APPROVED&deleted=false",              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rsha&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha",                                          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rsha",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rsha&statuses=APPROVED&deleted=false",          1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rsha&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + approvedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rsha",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rsha", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryCancel() {
-        // test read system in various ways for create, cancel
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement   = null;
-        StructureElement cancelledStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Rshc", 41, "description");
-
-        // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                                1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rshc",                  1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rshc",                 0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rshc",                0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rshc",                 0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),          1);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshc", Boolean.FALSE);
-
-        // cancel
-        cancelledStructureElement = ITUtilStructures.assertCancel(structureElementCommandConfirm);
-
-        // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize());
-
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                                0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                              1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rshc",                  0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rshc",                 0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rshc",                1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rshc",                 0);
-
-        ITUtilStructures.assertFind("/" + cancelledStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc",                                               1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshc",                                            0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                 1);
-        ITUtilStructures.assertRead("?mnemonic=Rshc&statuses=APPROVED&deleted=false",               0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshc&statuses=APPROVED&deleted=false",            0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc",                                           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshc",                                        0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",             1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshc&statuses=APPROVED&deleted=false",           0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshc&statuses=APPROVED&deleted=false",        0);
-
-        ITUtilStructures.assertHistory("/" + cancelledStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rshc",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshc", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryReject() {
-        // test read system in various ways for create, reject
-        //     search
-        //     latest
-        //     history
-        //
-        // note
-        //     create (and more) to read (with content)
-
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement  = null;
-        StructureElement rejectedStructureElement = null;
-        int length = 0;
-
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Rshr", 41, "description");
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=false",                              1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs&deleted=true",                          0);
+
+        ITUtilStructures.assertExists(Type.SYSTEM, "Rshs",    Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshs", Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        // read (1)
-        length = ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize();
-
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                               1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                             0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rshr",                 1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rshr",                0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rshr",               0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rshr",                0);
-
-        ITUtilStructures.assertFind("/" + createdStructureElement.getUuid().toString());
-
-        ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshr&statuses=APPROVED&deleted=false",           0);
-
-        ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + createdStructureElement.getUuid().toString(),         1);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshr", Boolean.FALSE);
-
-        // reject
-        rejectedStructureElement = ITUtilStructures.assertReject(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
 
         // read (2)
-        assertEquals(length, ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize());
+        assertEquals(count + 1, ITUtilStructures.assertRead("?type=SYSTEM", 1, -1).getListSize());
 
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING",                               0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED",                              0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED",                             0, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED",                              1, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=Rshr",                 0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=Rshr",                0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=Rshr",               0);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=Rshr",                1);
+        ITUtilStructures.assertRead("?type=SYSTEM",                                                1, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=Rshs",                                  1);
 
-        ITUtilStructures.assertFind("/" + rejectedStructureElement.getUuid().toString());
+        ITUtilStructures.assertFind("/" + structureElement.getUuid().toString());
 
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr",                                              1);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshr",                                           0);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                1);
-        ITUtilStructures.assertRead("?mnemonic=Rshr&statuses=APPROVED&deleted=false",              0);
-        ITUtilStructures.assertRead("?mnemonic=Sg-Rshr&statuses=APPROVED&deleted=false",           0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs",                                              1);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs",                                           0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=false",                                1);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs&deleted=false",                             0);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=true",                                   0);
+        ITUtilStructures.assertRead("?mnemonic=Rshs&deleted=true",                                 0);
+        ITUtilStructures.assertRead("?mnemonic=Sg-Rshs&deleted=true",                              0);
 
         ITUtilStructures.assertRead("?mnemonicPath=Sg",                                            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr",                                          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshr",                                       0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg&statuses=APPROVED&deleted=false",            1);
-        ITUtilStructures.assertRead("?mnemonicPath=Rshr&statuses=APPROVED&deleted=false",          0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshr&statuses=APPROVED&deleted=false",       0);
-
-        ITUtilStructures.assertHistory("/" + rejectedStructureElement.getUuid().toString(),        2);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "Rshr",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshr", Boolean.FALSE);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs",                                          1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs",                                       0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=false",                              1);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=false",                            1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs&deleted=false",                         0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg&deleted=true",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Rshs&deleted=true",                             0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-Rshs&deleted=true",                          0);
+
+        ITUtilStructures.assertHistory("/" + structureElement.getUuid().toString(),                1);
+
+        ITUtilStructures.assertExists(Type.SYSTEM, "Rshs",    Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Rshs", Boolean.FALSE);
     }
 
     @Test
-    void readSearchHistoryStatusLatest1() {
+    void readSearch2Trees() {
         // test read system in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         1 entry for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
+        //     create in order to read
+        //     2 different lines  of uuid with combinations of values
+        //         9 entries for each line of uuid
+        //         mnemonic - Ab, A9
         //
         //     exclude content (with latest) before latest
         //     exclude content (with latest) after  latest (cancelled, rejected)
         //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
         StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
+        StructureElement structureElement = null;
+        UUID uuid, uuid2 = null;
 
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "P1", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Ab", null, "description mnemonic Ab");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "C1", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic Ab 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "R1", 3, "description");
-        createdStructureElement = ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        uuid3 = createdStructureElement.getUuid();
+        // a number of entries
+        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "A9", 2, "description mnemonic A9");
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        uuid2 = structureElement.getUuid();
 
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "A1", 4, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid4 = createdStructureElement.getUuid();
+        structureElementCommandUpdate.setDescription("description mnemonic A9 2");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 3");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 4");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 5");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 6");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 7");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 8");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
+        structureElementCommandUpdate.setDescription("description mnemonic A9 9");
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1133,197 +650,30 @@ class StructuresSystemIT {
 
         ITUtilStructures.assertFind("/" + uuid.toString());
         ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
-
-        ITUtilStructures.assertRead("?mnemonic=P1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=C1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=R1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=A1",                                 1);
-        ITUtilStructures.assertRead("?mnemonic=P1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=C1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=R1&statuses=APPROVED&deleted=false", 0);
-        ITUtilStructures.assertRead("?mnemonic=A1&statuses=APPROVED&deleted=false", 1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       1);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      2);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      2);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "P1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "C1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "R1",    Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "A1",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-P1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-C1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-R1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-A1", Boolean.FALSE);
-    }
-
-    @Test
-    void readSearchHistoryStatusLatest9() {
-        // test read system in various ways
-        //     status
-        //     latest
-        //   ( deleted )
-        //     history
-        //
-        // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     4 different lines  of uuid with combinations of status and latest
-        //         9 entries for each line of uuid
-        //         in particular different statuses for last entry in lines of uuid
-        //         mnemonic - P, C, R, A (pending, cancelled, rejected, approved)
-        //
-        //     exclude content (with latest) before latest
-        //     exclude content (with latest) after  latest (cancelled, rejected)
-        //     keep most recent content (without latest)   (to have most recent in line of uuid without latest)
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElement createdStructureElement = null;
-        UUID uuid, uuid2, uuid3, uuid4 = null;
-
-        // a number of entries for which the last entry has status PENDING
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "P9", null, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status CANCELLED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "C9", 2, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid2 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status REJECTED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "R9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid3 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-
-        // a number of entries for which the last entry has status APPROVED
-        structureElementCommandCreate = new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "A9", 1, "description");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        uuid4 = createdStructureElement.getUuid();
-
-        structureElementCommandUpdate.setDescription("description 2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 3");
-        ITUtilStructures.assertUpdateCancel(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 4");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 5");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 6");
-        ITUtilStructures.assertUpdateReject(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 7");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 8");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate.setDescription("description 9");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertRead("?mnemonic=Ab",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=Ab&deleted=true",                     0);
 
-        // ----------------------------------------------------------------------------------------------------
-        // from first structure element
-        assertNotNull(uuid);
+        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=false",                    1);
+        ITUtilStructures.assertRead("?mnemonic=A9&deleted=true",                     0);
 
-        ITUtilStructures.assertFind("/" + uuid.toString());
-        ITUtilStructures.assertFind("/" + uuid2.toString());
-        ITUtilStructures.assertFind("/" + uuid3.toString());
-        ITUtilStructures.assertFind("/" + uuid4.toString());
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                        9);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                       9);
 
-        ITUtilStructures.assertRead("?mnemonic=P9",                                  2);
-        ITUtilStructures.assertRead("?mnemonic=C9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=R9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=A9",                                  1);
-        ITUtilStructures.assertRead("?mnemonic=P9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=C9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=R9&statuses=APPROVED&deleted=false",  1);
-        ITUtilStructures.assertRead("?mnemonic=A9&statuses=APPROVED&deleted=false",  1);
-
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                       17);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid3.toString(),                      18);
-        ITUtilStructures.assertHistory("/" + uuid4.toString(),                      18);
-
-        ITUtilStructures.assertExists(Type.SYSTEM, "P9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "C9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "R9",    Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "Ab",    Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM, "A9",    Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-P9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-C9", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-R9", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "Sg-Ab", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM, "Sg-A9", Boolean.FALSE);
     }
 
     @Test
-    void readSearchStatusDeletedChildren() {
+    void readSearchMultipleTrees() {
         // test read system in various ways
-        //     status
-        //   ( latest )
-        //     deleted
-        //     children
         //
         // note
-        //     entries with different statuses
-        //
-        //     create (and more) to read (with content)
-        //     querying for Status.APPROVED means latest approved
+        //     create in order to read
         //     multiple commands at same time may have effects on order by (when)
         //
         //     exclude content (with latest) before latest
@@ -1333,14 +683,18 @@ class StructuresSystemIT {
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        // create + approve
+        String description2 = "some other description";
+        String description3 = "more description";
+        String description4 = "yet another description";
+
+        // create
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AA1", 1, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AA2", 1, "description"),
@@ -1348,20 +702,27 @@ class StructuresSystemIT {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AA4", 1, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AA5", 1, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid = structureElements[0].getUuid();
 
-        // create + cancel
+        // create
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB1", 2, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB2", 2, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB3", 2, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB4", 2, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB5", 2, "description")
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AB5", 2, "description"),
         };
-        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + reject
+        // create
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AC1", 3, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AC2", 3, "description"),
@@ -1369,9 +730,13 @@ class StructuresSystemIT {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AC4", 3, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AC5", 3, "description")
         };
-        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // create
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AD1", 4, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AD2", 4, "description"),
@@ -1379,15 +744,19 @@ class StructuresSystemIT {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AD4", 4, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AD5", 4, "description")
         };
-        ITUtilStructures.assertCreate(structureElementCommandsCreate);
-
-        String description2 = "some other description";
-        String description3 = "more description";
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
+        // create
+        // update
+        // update
+        // update
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AE1", 5, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AE2", 5, "description"),
@@ -1395,79 +764,56 @@ class StructuresSystemIT {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AE4", 5, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AE5", 5, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
 
-        // create + approve
-        // delete + approve
+        // create
+        // update
+        // update
+        // update
+        // delete
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF1", 6, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF2", 6, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF3", 6, "description"),
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF4", 6, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF5", 6, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
-
-        // create + approve
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AG1", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AG2", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AG3", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AG4", 7, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AG5", 7, "description")
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AF5", 6, "description"),
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        // 60 system entries
-
-        // create + approve
-        // update + approve
-        // update + approve
-        // delete + reject
-        // delete
-        structureElementCommandsCreate = new StructureElementCommandCreate[] {
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AH1", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AH2", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AH3", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AH4", 8, "description"),
-                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "AH5", 8, "description")
-        };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        uuid2 = approvedStructureElements[0].getUuid();
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        uuid2 = structureElements[0].getUuid();
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description2);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
         for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
             structureElementCommandUpdate.setDescription(description3);
         }
-        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description4);
+        }
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        // 85 system entries
+        // 85 system group entries
 
         // ----------------------------------------------------------------------------------------------------
         // from first structure element
@@ -1475,7 +821,7 @@ class StructuresSystemIT {
 
         // read & search
         //     /{uuid}
-        //     type, statuses, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
+        //     type, deleted, uuid, parent, name, mnemonic, mnemonicPath, description
         //     combination
         //     pagination
         //         page, pageSize
@@ -1487,48 +833,32 @@ class StructuresSystemIT {
         //             content for field in first and last items    -    always possible
         //             first and last items                         -    not always possible
 
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__",                                                         50);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&mnemonic=A__",                                        15);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=APPROVED&mnemonic=A__",                                       25);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=CANCELLED&mnemonic=A__",                                       5);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=REJECTED&mnemonic=A__",                                        5);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__",                      40);
-
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&mnemonic=A__",                                           35);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&statuses=PENDING&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&statuses=APPROVED&mnemonic=A__",                         20);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&statuses=CANCELLED&mnemonic=A__",                         5);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&statuses=REJECTED&mnemonic=A__",                          5);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&statuses=PENDING&statuses=APPROVED&mnemonic=A__",        25);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__",                                                         30);
 
+        ITUtilStructures.assertRead("?type=SYSTEM&deleted=false&mnemonic=A__",                                           15);
         ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&mnemonic=A__",                                            15);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&statuses=PENDING&mnemonic=A__",                           10);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&statuses=APPROVED&mnemonic=A__",                           5);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&statuses=CANCELLED&mnemonic=A__",                          0);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&statuses=REJECTED&mnemonic=A__",                           0);
-        ITUtilStructures.assertRead("?type=SYSTEM&deleted=true&statuses=PENDING&statuses=APPROVED&mnemonic=A__",         15);
 
-        ITUtilStructures.assertRead("?type=SYSTEM&parent=" + systemGroupUuid.toString(),                                 45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&parent=" + systemGroupUuid.toString(),                                 30, -1);
         ITUtilStructures.assertRead("?type=SYSTEM&parent=" + uuid.toString(),                                             0);
         ITUtilStructures.assertRead("?type=SYSTEM&parent=" + uuid2.toString(),                                            0);
 
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonicPath=A__",                                                     35);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonicPath=A__",                                                     30);
 
         ITUtilStructures.assertRead("?type=SYSTEM&description=desc",                                                      0);
-        ITUtilStructures.assertRead("?type=SYSTEM&description=desc%",                                                    35, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&description=desc%",                                                    10, -1);
         ITUtilStructures.assertRead("?type=SYSTEM&description=sc",                                                        0);
         ITUtilStructures.assertRead("?type=SYSTEM&description=sc%",                                                       0);
         ITUtilStructures.assertRead("?type=SYSTEM&description=%sc",                                                       0);
-        ITUtilStructures.assertRead("?type=SYSTEM&description=%sc%",                                                     45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&description=description",                                              35, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&description=%sc%",                                                     30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&description=description",                                              10, -1);
 
-        ITUtilStructures.assertRead("?type=SYSTEM&who=test who",                                                         45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&who=test who",                                                         30, -1);
         ITUtilStructures.assertRead("?type=SYSTEM&who=test",                                                              0);
         ITUtilStructures.assertRead("?type=SYSTEM&who=who",                                                               0);
-        ITUtilStructures.assertRead("?type=SYSTEM&who=test%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&who=%who",                                                             45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&who=%est%",                                                            45, -1);
-        ITUtilStructures.assertRead("?type=SYSTEM&who=%wh%",                                                             45, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&who=test%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&who=%who",                                                             30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&who=%est%",                                                            30, -1);
+        ITUtilStructures.assertRead("?type=SYSTEM&who=%wh%",                                                             30, -1);
         ITUtilStructures.assertRead("?type=SYSTEM&who=wh%",                                                               0);
         ITUtilStructures.assertRead("?type=SYSTEM&who=asdf",                                                              0);
         ITUtilStructures.assertRead("?type=SYSTEM&who=%asdf%",                                                            0);
@@ -1566,8 +896,8 @@ class StructuresSystemIT {
         assertEquals(response.getList().size(),  response2.getList().size());
         assertEquals(1, response.getList().get(0).getOrdering());
         assertTrue(response.getList().get(0).getMnemonic().startsWith("AA"));
-        assertEquals(8, response2.getList().get(0).getOrdering());
-        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AH"));
+        assertEquals(6, response2.getList().get(0).getOrdering());
+        assertTrue(response2.getList().get(0).getMnemonic().startsWith("AF"));
 
         response  = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true");
         response2 = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false");
@@ -1590,27 +920,27 @@ class StructuresSystemIT {
                 || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1)));
 
         // pagination
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=100",                                     50);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=100",                                     30);
         ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=100",                                      0);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=50",                                      50);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=50",                                       0);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=20",                                      20);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=2&pageSize=20",                                      10);
-        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=3&pageSize=20",                                       0);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=30",                                      30);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=30",                                       0);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // pagination
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=15",   15);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=15",   10);
-        ITUtilStructures.assertRead("?type=SYSTEM&statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=15",    0);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=0&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=1&pageSize=12",                                      12);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=2&pageSize=12",                                       6);
+        ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&page=3&pageSize=12",                                       0);
 
         // order by, pagination
-        response  = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20",  20);
-        response2 = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 10);
+        response  = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=12",  12);
+        response2 = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=12",  6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
-        response  = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20);
-        response2 = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20",  10);
+        response  = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12);
+        response2 = ITUtilStructures.assertRead("?type=SYSTEM&mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=12",   6);
         assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
         // uuid
@@ -1622,59 +952,52 @@ class StructuresSystemIT {
 
         // children
         //     /children/{uuid}
-        //     uuid, statuses, deleted
+        //     uuid, deleted
         ITUtilStructures.assertRead("/children/" + uuid.toString(),                                                       0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + uuid2.toString(),                                                      0, 0,  HttpURLConnection.HTTP_NOT_FOUND);
         ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString(),                                           15, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=APPROVED",                    15, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=ARCHIVED",                     0, -1, HttpURLConnection.HTTP_NOT_FOUND);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=CANCELLED",                    0, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=PENDING",                      0, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=REJECTED",                     0, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=CANCELLED,PENDING",            0, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=APPROVED,PENDING",            15, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=APPROVED&deleted=false",       9, -1);
-        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?statuses=APPROVED&deleted=true",        5, -1);
+        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?deleted=false",                         9, -1);
+        ITUtilStructures.assertRead("/children/" + systemGroupUuid.toString() + "?deleted=true",                          5, -1);
 
         // mnemonic
         //     ?mnemonic={mnemonic}
         ITUtilStructures.assertRead("?mnemonic=A",                                                                        0);
-        ITUtilStructures.assertRead("?mnemonic=A__",                                                                     45, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_",                                                                     10);
-        ITUtilStructures.assertRead("?mnemonic=AG1",                                                                      2);
+        ITUtilStructures.assertRead("?mnemonic=A__",                                                                     30, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_",                                                                      5);
+        ITUtilStructures.assertRead("?mnemonic=AE1",                                                                      1);
         ITUtilStructures.assertRead("?mnemonic=Sg",                                                                       1);
-        ITUtilStructures.assertRead("?mnemonic=A&statuses=APPROVED&deleted=false",                                        0);
-        ITUtilStructures.assertRead("?mnemonic=A__&statuses=APPROVED&deleted=false",                                     15, -1);
-        ITUtilStructures.assertRead("?mnemonic=AG_&statuses=APPROVED&deleted=false",                                      5);
-        ITUtilStructures.assertRead("?mnemonic=AG1&statuses=APPROVED&deleted=false",                                      1);
-        ITUtilStructures.assertRead("?mnemonic=Sg&statuses=APPROVED&deleted=false",                                       1);
+        ITUtilStructures.assertRead("?mnemonic=A&deleted=false",                                                          0);
+        ITUtilStructures.assertRead("?mnemonic=A__&deleted=false",                                                       15, -1);
+        ITUtilStructures.assertRead("?mnemonic=AE_&deleted=false",                                                        5);
+        ITUtilStructures.assertRead("?mnemonic=AE1&deleted=false",                                                        1);
+        ITUtilStructures.assertRead("?mnemonic=Sg&deleted=false",                                                         1);
 
         // mnemonic path
         //     ?mnemonicPath={mnemonicPath}
         ITUtilStructures.assertRead("?mnemonicPath=A",                                                                    0);
         ITUtilStructures.assertRead("?mnemonicPath=A__",                                                                 30, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_",                                                                 10);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1",                                                                  2);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_",                                                                  5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1",                                                                  1);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A%",                                                                0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A",                                                                 0);
         ITUtilStructures.assertRead("?mnemonicPath=Sg-A__",                                                               0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG_",                                                               0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG1",                                                               0);
-        ITUtilStructures.assertRead("?mnemonicPath=A&statuses=APPROVED&deleted=false",                                    0);
-        ITUtilStructures.assertRead("?mnemonicPath=A__&statuses=APPROVED&deleted=false",                                 15, -1);
-        ITUtilStructures.assertRead("?mnemonicPath=AG_&statuses=APPROVED&deleted=false",                                  5);
-        ITUtilStructures.assertRead("?mnemonicPath=AG1&statuses=APPROVED&deleted=false",                                  1);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A%&statuses=APPROVED&deleted=false",                                0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A&statuses=APPROVED&deleted=false",                                 0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-A__&statuses=APPROVED&deleted=false",                               0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG_&statuses=APPROVED&deleted=false",                               0);
-        ITUtilStructures.assertRead("?mnemonicPath=Sg-AG1&statuses=APPROVED&deleted=false",                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE_",                                                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE1",                                                               0);
+        ITUtilStructures.assertRead("?mnemonicPath=A&deleted=false",                                                      0);
+        ITUtilStructures.assertRead("?mnemonicPath=A__&deleted=false",                                                   15, -1);
+        ITUtilStructures.assertRead("?mnemonicPath=AE_&deleted=false",                                                    5);
+        ITUtilStructures.assertRead("?mnemonicPath=AE1&deleted=false",                                                    1);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A%&deleted=false",                                                  0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A&deleted=false",                                                   0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-A__&deleted=false",                                                 0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE_&deleted=false",                                                 0);
+        ITUtilStructures.assertRead("?mnemonicPath=Sg-AE1&deleted=false",                                                 0);
 
         // history
         //     /history/{uuid}
-        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                             2);
-        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                            9);
-        ITUtilStructures.assertHistory("/" + systemGroupUuid.toString(),                                                  2);
+        ITUtilStructures.assertHistory("/" + uuid.toString(),                                                             1);
+        ITUtilStructures.assertHistory("/" + uuid2.toString(),                                                            5);
+        ITUtilStructures.assertHistory("/" + systemGroupUuid.toString(),                                                  1);
         ITUtilStructures.assertHistory("/" + uuidRandom.toString(),                                                       0, HttpURLConnection.HTTP_NOT_FOUND);
 
         ITUtilStructures.assertExists(Type.SYSTEM, "AA1", Boolean.TRUE);
@@ -1682,11 +1005,11 @@ class StructuresSystemIT {
         ITUtilStructures.assertExists(Type.SYSTEM, "AA3", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AA4", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AA5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AB1", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AB2", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AB3", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AB4", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AB5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AB1", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AB2", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AB3", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AB4", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AB5", Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AC1", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AC2", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AC3", Boolean.FALSE);
@@ -1707,16 +1030,16 @@ class StructuresSystemIT {
         ITUtilStructures.assertExists(Type.SYSTEM, "AF3", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AF4", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM, "AF5", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AG1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AG2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AG3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AG4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AG5", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AH1", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AH2", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AH3", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AH4", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM, "AH5", Boolean.TRUE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AG1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AG2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AG3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AG4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AG5", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AH1", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AH2", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AH3", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AH4", Boolean.FALSE);
+        ITUtilStructures.assertExists(Type.SYSTEM, "AH5", Boolean.FALSE);
     }
 
 }
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 976a0d6080f24361ef5562cea7c51b0b57cc379d..80cce4eddf1360d6e2a5b66a0330f0b6fbf57975 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesInstanceIndexIT.java
@@ -146,29 +146,29 @@ class NamesInstanceIndexIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010PRL", null, "01 Phase Reference Line"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "N1U1",   null, "Power switch board 01. Electrical power cabinets")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010PRL = approvedStructureElements[0].getUuid();
-        subsystem010    = approvedStructureElements[1].getUuid();
-        subsystemN1U1   = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010PRL = structureElements[0].getUuid();
+        subsystem010    = structureElements[1].getUuid();
+        subsystemN1U1   = structureElements[2].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Cryo", null, "Cryogenics"),
@@ -180,15 +180,15 @@ class NamesInstanceIndexIT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "WtrC", null, "Water Cooling"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "BMD",  null, "Beam Magnets and Deflectors")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineCryo = approvedStructureElements[0].getUuid();
-        disciplineEMR  = approvedStructureElements[1].getUuid();
-        disciplineHVAC = approvedStructureElements[2].getUuid();
-        disciplineProc = approvedStructureElements[3].getUuid();
-        disciplineSC   = approvedStructureElements[4].getUuid();
-        disciplineVac  = approvedStructureElements[5].getUuid();
-        disciplineWtrC = approvedStructureElements[6].getUuid();
-        disciplineBMD  = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineCryo = structureElements[0].getUuid();
+        disciplineEMR  = structureElements[1].getUuid();
+        disciplineHVAC = structureElements[2].getUuid();
+        disciplineProc = structureElements[3].getUuid();
+        disciplineSC   = structureElements[4].getUuid();
+        disciplineVac  = structureElements[5].getUuid();
+        disciplineWtrC = structureElements[6].getUuid();
+        disciplineBMD  = structureElements[7].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineCryo, null, null, "empty"),
@@ -200,15 +200,15 @@ class NamesInstanceIndexIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineWtrC, null, null, "empty"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineBMD,  null, null, "empty")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupCryo = approvedStructureElements[0].getUuid();
-        deviceGroupEMR  = approvedStructureElements[1].getUuid();
-        deviceGroupHVAC = approvedStructureElements[2].getUuid();
-        deviceGroupProc = approvedStructureElements[3].getUuid();
-        deviceGroupSC   = approvedStructureElements[4].getUuid();
-        deviceGroupVac  = approvedStructureElements[5].getUuid();
-        deviceGroupWtrC = approvedStructureElements[6].getUuid();
-        deviceGroupBMD  = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupCryo = structureElements[0].getUuid();
+        deviceGroupEMR  = structureElements[1].getUuid();
+        deviceGroupHVAC = structureElements[2].getUuid();
+        deviceGroupProc = structureElements[3].getUuid();
+        deviceGroupSC   = structureElements[4].getUuid();
+        deviceGroupVac  = structureElements[5].getUuid();
+        deviceGroupWtrC = structureElements[6].getUuid();
+        deviceGroupBMD  = structureElements[7].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupCryo, "FS",  null, "Flow Switch"),
@@ -244,39 +244,39 @@ class NamesInstanceIndexIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupBMD,  "RFA", null, "RF Antenna"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupBMD,  "TT",  null, "Temperature Transmitter")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceType_Cryo_FS  = approvedStructureElements[0].getUuid();
-        deviceType_Cryo_IOC = approvedStructureElements[1].getUuid();
-        deviceType_Cryo_RFA = approvedStructureElements[2].getUuid();
-        deviceType_Cryo_TT  = approvedStructureElements[3].getUuid();
-        deviceType_EMR_FS   = approvedStructureElements[4].getUuid();
-        deviceType_EMR_IOC  = approvedStructureElements[5].getUuid();
-        deviceType_EMR_RFA  = approvedStructureElements[6].getUuid();
-        deviceType_EMR_TT   = approvedStructureElements[7].getUuid();
-        deviceType_HVAC_FS  = approvedStructureElements[8].getUuid();
-        deviceType_HVAC_IOC = approvedStructureElements[9].getUuid();
-        deviceType_HVAC_RFA = approvedStructureElements[10].getUuid();
-        deviceType_HVAC_TT  = approvedStructureElements[11].getUuid();
-        deviceType_Proc_FS  = approvedStructureElements[12].getUuid();
-        deviceType_Proc_IOC = approvedStructureElements[13].getUuid();
-        deviceType_Proc_RFA = approvedStructureElements[14].getUuid();
-        deviceType_Proc_TT  = approvedStructureElements[15].getUuid();
-        deviceType_SC_FS    = approvedStructureElements[16].getUuid();
-        deviceType_SC_IOC   = approvedStructureElements[17].getUuid();
-        deviceType_SC_RFA   = approvedStructureElements[18].getUuid();
-        deviceType_SC_TT    = approvedStructureElements[19].getUuid();
-        deviceType_Vac_FS   = approvedStructureElements[20].getUuid();
-        deviceType_Vac_IOC  = approvedStructureElements[21].getUuid();
-        deviceType_Vac_RFA  = approvedStructureElements[22].getUuid();
-        deviceType_Vac_TT   = approvedStructureElements[23].getUuid();
-        deviceType_WtrC_FS  = approvedStructureElements[24].getUuid();
-        deviceType_WtrC_IOC = approvedStructureElements[25].getUuid();
-        deviceType_WtrC_RFA = approvedStructureElements[26].getUuid();
-        deviceType_WtrC_TT  = approvedStructureElements[27].getUuid();
-        deviceType_BMD_FS   = approvedStructureElements[28].getUuid();
-        deviceType_BMD_IOC  = approvedStructureElements[29].getUuid();
-        deviceType_BMD_RFA  = approvedStructureElements[30].getUuid();
-        deviceType_BMD_TT   = approvedStructureElements[31].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceType_Cryo_FS  = structureElements[0].getUuid();
+        deviceType_Cryo_IOC = structureElements[1].getUuid();
+        deviceType_Cryo_RFA = structureElements[2].getUuid();
+        deviceType_Cryo_TT  = structureElements[3].getUuid();
+        deviceType_EMR_FS   = structureElements[4].getUuid();
+        deviceType_EMR_IOC  = structureElements[5].getUuid();
+        deviceType_EMR_RFA  = structureElements[6].getUuid();
+        deviceType_EMR_TT   = structureElements[7].getUuid();
+        deviceType_HVAC_FS  = structureElements[8].getUuid();
+        deviceType_HVAC_IOC = structureElements[9].getUuid();
+        deviceType_HVAC_RFA = structureElements[10].getUuid();
+        deviceType_HVAC_TT  = structureElements[11].getUuid();
+        deviceType_Proc_FS  = structureElements[12].getUuid();
+        deviceType_Proc_IOC = structureElements[13].getUuid();
+        deviceType_Proc_RFA = structureElements[14].getUuid();
+        deviceType_Proc_TT  = structureElements[15].getUuid();
+        deviceType_SC_FS    = structureElements[16].getUuid();
+        deviceType_SC_IOC   = structureElements[17].getUuid();
+        deviceType_SC_RFA   = structureElements[18].getUuid();
+        deviceType_SC_TT    = structureElements[19].getUuid();
+        deviceType_Vac_FS   = structureElements[20].getUuid();
+        deviceType_Vac_IOC  = structureElements[21].getUuid();
+        deviceType_Vac_RFA  = structureElements[22].getUuid();
+        deviceType_Vac_TT   = structureElements[23].getUuid();
+        deviceType_WtrC_FS  = structureElements[24].getUuid();
+        deviceType_WtrC_IOC = structureElements[25].getUuid();
+        deviceType_WtrC_RFA = structureElements[26].getUuid();
+        deviceType_WtrC_TT  = structureElements[27].getUuid();
+        deviceType_BMD_FS   = structureElements[28].getUuid();
+        deviceType_BMD_IOC  = structureElements[29].getUuid();
+        deviceType_BMD_RFA  = structureElements[30].getUuid();
+        deviceType_BMD_TT   = structureElements[31].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  53);
diff --git a/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
index 1edbb96c4850e5704c0d5f39aebf7292406a77de..5dee04ff0ddf835d811f00ee1f8be97f17a83bcc 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesMultipleIT.java
@@ -90,43 +90,43 @@ class NamesMultipleIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010PRL", null, "01 Phase Reference Line")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystem010PRL = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystem010PRL = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Cryo", null, "Cryogenics")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineCryo = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineCryo = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineCryo, null, null, "empty")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupCryo = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupCryo = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupCryo, "FS", null, "Flow Switch")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceType_Cryo_FS = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceType_Cryo_FS = structureElements[0].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   6);
diff --git a/src/test/java/org/openepics/names/docker/complex/NamesStructuresDeleteIT.java b/src/test/java/org/openepics/names/docker/complex/NamesStructuresDeleteIT.java
index ef78f77f354057f81b440f986072d2d79dbee726..e33f6d1f5de1c87ab2c364f19c50ccc9cd547ee6 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesStructuresDeleteIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesStructuresDeleteIT.java
@@ -115,7 +115,7 @@ class NamesStructuresDeleteIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         NameElementCommandCreate[] nameElementCommandsCreate = null;
 
         String description = "description";
@@ -160,9 +160,9 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg1", null, description),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg2", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sg1 = approvedStructureElements[1].getUuid();
-        sg2 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sg1 = structureElements[1].getUuid();
+        sg2 = structureElements[2].getUuid();
 
         // system
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -170,10 +170,10 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.SYSTEM, sg1, "Sys12", null, description),
                 new StructureElementCommandCreate(Type.SYSTEM, sg1, "Sys13", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sys11 = approvedStructureElements[0].getUuid();
-        sys12 = approvedStructureElements[1].getUuid();
-        sys13 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sys11 = structureElements[0].getUuid();
+        sys12 = structureElements[1].getUuid();
+        sys13 = structureElements[2].getUuid();
 
         // subsystem
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -187,8 +187,8 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys13, "Sub132", null, description),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys13, "Sub133", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sub132 = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sub132 = structureElements[7].getUuid();
 
         // system
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -196,10 +196,10 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.SYSTEM, sg2, "Sys22", null, description),
                 new StructureElementCommandCreate(Type.SYSTEM, sg2, "Sys23", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sys21 = approvedStructureElements[0].getUuid();
-        sys22 = approvedStructureElements[1].getUuid();
-        sys23 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sys21 = structureElements[0].getUuid();
+        sys22 = structureElements[1].getUuid();
+        sys23 = structureElements[2].getUuid();
 
         // subsystem
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -213,10 +213,10 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys23, "Sub232", null, description),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys23, "Sub233", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sub231 = approvedStructureElements[6].getUuid();
-        sub232 = approvedStructureElements[7].getUuid();
-        sub233 = approvedStructureElements[8].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sub231 = structureElements[6].getUuid();
+        sub232 = structureElements[7].getUuid();
+        sub233 = structureElements[8].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  27);
@@ -244,8 +244,8 @@ class NamesStructuresDeleteIT {
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di2", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        di2 = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        di2 = structureElements[0].getUuid();
 
         // device group
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -253,10 +253,10 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, di2, "", null, description),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, di2, "", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        dg21 = approvedStructureElements[0].getUuid();
-        dg22 = approvedStructureElements[1].getUuid();
-        dg23 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        dg21 = structureElements[0].getUuid();
+        dg22 = structureElements[1].getUuid();
+        dg23 = structureElements[2].getUuid();
 
         // device type
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -270,16 +270,16 @@ class NamesStructuresDeleteIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, dg23, "Dt232", null, description),
                 new StructureElementCommandCreate(Type.DEVICETYPE, dg23, "Dt233", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        dt211 = approvedStructureElements[0].getUuid();
-        dt212 = approvedStructureElements[1].getUuid();
-        dt213 = approvedStructureElements[2].getUuid();
-        dt221 = approvedStructureElements[3].getUuid();
-        dt222 = approvedStructureElements[4].getUuid();
-        dt223 = approvedStructureElements[5].getUuid();
-        dt231 = approvedStructureElements[6].getUuid();
-        dt232 = approvedStructureElements[7].getUuid();
-        dt233 = approvedStructureElements[8].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        dt211 = structureElements[0].getUuid();
+        dt212 = structureElements[1].getUuid();
+        dt213 = structureElements[2].getUuid();
+        dt221 = structureElements[3].getUuid();
+        dt222 = structureElements[4].getUuid();
+        dt223 = structureElements[5].getUuid();
+        dt231 = structureElements[6].getUuid();
+        dt232 = structureElements[7].getUuid();
+        dt233 = structureElements[8].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  40);
@@ -417,7 +417,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + sub132);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys13-Sub132", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys13-Sub132", Boolean.TRUE);
@@ -448,7 +448,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + sys12);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.SYSTEM,    "Sys12",        Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys12-Sub121", Boolean.FALSE);
@@ -498,7 +498,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + sg1);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "Sg1",          Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "Sys11",        Boolean.FALSE);
@@ -593,7 +593,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + dt232);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di2-Dt232", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,   "Di2-Dt232", Boolean.TRUE);
@@ -619,7 +619,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + dg22);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di2-Dt221", Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di2-Dt222", Boolean.FALSE);
@@ -658,7 +658,7 @@ class NamesStructuresDeleteIT {
 
         response = ITUtilStructures.assertFind("/" + di2);
         structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(response.getList().get(0));
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
+        ITUtilStructures.assertDelete(structureElementCommandConfirm);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "Di2",       Boolean.FALSE);
         ITUtilStructures.assertExists(Type.DEVICETYPE, "Di2-Dt211", Boolean.FALSE);
diff --git a/src/test/java/org/openepics/names/docker/complex/NamesStructuresUpdateIT.java b/src/test/java/org/openepics/names/docker/complex/NamesStructuresUpdateIT.java
index 6576fa55ea6395ef3674a72003b6f30612023ed8..e21418f82090648723441e1efb18c75b06388d73 100644
--- a/src/test/java/org/openepics/names/docker/complex/NamesStructuresUpdateIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/NamesStructuresUpdateIT.java
@@ -115,7 +115,7 @@ class NamesStructuresUpdateIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         NameElementCommandCreate[] nameElementCommandsCreate = null;
 
         String description = "description";
@@ -160,9 +160,9 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg1", null, description),
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg2", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sg1 = approvedStructureElements[1].getUuid();
-        sg2 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sg1 = structureElements[1].getUuid();
+        sg2 = structureElements[2].getUuid();
 
         // system
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -170,10 +170,10 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.SYSTEM, sg1, "Sys12", null, description),
                 new StructureElementCommandCreate(Type.SYSTEM, sg1, "Sys13", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sys11 = approvedStructureElements[0].getUuid();
-        sys12 = approvedStructureElements[1].getUuid();
-        sys13 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sys11 = structureElements[0].getUuid();
+        sys12 = structureElements[1].getUuid();
+        sys13 = structureElements[2].getUuid();
 
         // subsystem
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -187,8 +187,8 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys13, "Sub132", null, description),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys13, "Sub133", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sub132 = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sub132 = structureElements[7].getUuid();
 
         // system
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -196,10 +196,10 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.SYSTEM, sg2, "Sys22", null, description),
                 new StructureElementCommandCreate(Type.SYSTEM, sg2, "Sys23", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sys21 = approvedStructureElements[0].getUuid();
-        sys22 = approvedStructureElements[1].getUuid();
-        sys23 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sys21 = structureElements[0].getUuid();
+        sys22 = structureElements[1].getUuid();
+        sys23 = structureElements[2].getUuid();
 
         // subsystem
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -213,10 +213,10 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys23, "Sub232", null, description),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, sys23, "Sub233", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        sub231 = approvedStructureElements[6].getUuid();
-        sub232 = approvedStructureElements[7].getUuid();
-        sub233 = approvedStructureElements[8].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        sub231 = structureElements[6].getUuid();
+        sub232 = structureElements[7].getUuid();
+        sub233 = structureElements[8].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  27);
@@ -244,8 +244,8 @@ class NamesStructuresUpdateIT {
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di2", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        di2 = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        di2 = structureElements[0].getUuid();
 
         // device group
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -253,10 +253,10 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, di2, "", null, description),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, di2, "", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        dg21 = approvedStructureElements[0].getUuid();
-        dg22 = approvedStructureElements[1].getUuid();
-        dg23 = approvedStructureElements[2].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        dg21 = structureElements[0].getUuid();
+        dg22 = structureElements[1].getUuid();
+        dg23 = structureElements[2].getUuid();
 
         // device type
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
@@ -270,16 +270,16 @@ class NamesStructuresUpdateIT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, dg23, "Dt232", null, description),
                 new StructureElementCommandCreate(Type.DEVICETYPE, dg23, "Dt233", null, description)
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        dt211 = approvedStructureElements[0].getUuid();
-        dt212 = approvedStructureElements[1].getUuid();
-        dt213 = approvedStructureElements[2].getUuid();
-        dt221 = approvedStructureElements[3].getUuid();
-        dt222 = approvedStructureElements[4].getUuid();
-        dt223 = approvedStructureElements[5].getUuid();
-        dt231 = approvedStructureElements[6].getUuid();
-        dt232 = approvedStructureElements[7].getUuid();
-        dt233 = approvedStructureElements[8].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        dt211 = structureElements[0].getUuid();
+        dt212 = structureElements[1].getUuid();
+        dt213 = structureElements[2].getUuid();
+        dt221 = structureElements[3].getUuid();
+        dt222 = structureElements[4].getUuid();
+        dt223 = structureElements[5].getUuid();
+        dt231 = structureElements[6].getUuid();
+        dt232 = structureElements[7].getUuid();
+        dt233 = structureElements[8].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  40);
@@ -411,12 +411,12 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + sub132);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertExists("Sys13-Su132",    Boolean.FALSE);
 
         structureElementCommandUpdate.setMnemonic("Su132");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
@@ -441,7 +441,7 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + sys12);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertExists("Sy12",           Boolean.FALSE);
         ITUtilNames.assertExists("Sy12-Sub121",    Boolean.FALSE);
@@ -449,7 +449,7 @@ class NamesStructuresUpdateIT {
         ITUtilNames.assertExists("Sy12-Sub123",    Boolean.FALSE);
 
         structureElementCommandUpdate.setMnemonic("Sy12");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
@@ -477,12 +477,12 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + sg1);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertExists("S1",             Boolean.FALSE);
 
         structureElementCommandUpdate.setMnemonic("S1");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
@@ -536,12 +536,12 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + dt232);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertExists("Sys23-Sub232:Di2-D232-232",  Boolean.FALSE);
 
         structureElementCommandUpdate.setMnemonic("D232");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
@@ -562,7 +562,7 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + dg22);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
@@ -581,7 +581,7 @@ class NamesStructuresUpdateIT {
         response = ITUtilStructures.assertFind("/" + di2);
         structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(response.getList().get(0));
         structureElementCommandUpdate.setDescription("asdf");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertExists("Sg2:D2-Dt211-211",           Boolean.FALSE);
         ITUtilNames.assertExists("Sg2:D2-Dt212-212",           Boolean.FALSE);
@@ -594,7 +594,7 @@ class NamesStructuresUpdateIT {
         ITUtilNames.assertExists("Sys23-Sub233:D2-Dt233-233",  Boolean.FALSE);
 
         structureElementCommandUpdate.setMnemonic("D2");
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
+        ITUtilStructures.assertUpdate(structureElementCommandUpdate);
 
         ITUtilNames.assertRead("", count);
 
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresLevel3IT.java b/src/test/java/org/openepics/names/docker/complex/StructuresLevel3IT.java
index 4f434bd0a7f55da2d7f1c9d109fe15ba8cb8392b..316eed9424b2806ac630f8d2e6d145fed5c1def6 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresLevel3IT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresLevel3IT.java
@@ -133,19 +133,19 @@ class StructuresLevel3IT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Acc", null, "Accelerator. The ESS Linear Accelerator")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupAcc = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupAcc = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupAcc, "RFQ", null, "Radio Frequency Quadrupole")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemRFQ = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemRFQ = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Cryo", null, "Cryogenics"),
@@ -157,15 +157,15 @@ class StructuresLevel3IT {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "WtrC", null, "Water Cooling"),
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "BMD",  null, "Beam Magnets and Deflectors")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineCryo = approvedStructureElements[0].getUuid();
-        disciplineEMR  = approvedStructureElements[1].getUuid();
-        disciplineHVAC = approvedStructureElements[2].getUuid();
-        disciplineProc = approvedStructureElements[3].getUuid();
-        disciplineSC   = approvedStructureElements[4].getUuid();
-        disciplineVac  = approvedStructureElements[5].getUuid();
-        disciplineWtrC = approvedStructureElements[6].getUuid();
-        disciplineBMD  = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineCryo = structureElements[0].getUuid();
+        disciplineEMR  = structureElements[1].getUuid();
+        disciplineHVAC = structureElements[2].getUuid();
+        disciplineProc = structureElements[3].getUuid();
+        disciplineSC   = structureElements[4].getUuid();
+        disciplineVac  = structureElements[5].getUuid();
+        disciplineWtrC = structureElements[6].getUuid();
+        disciplineBMD  = structureElements[7].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineCryo, null, null, "empty"),
@@ -177,15 +177,15 @@ class StructuresLevel3IT {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineWtrC, null, null, "empty"),
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineBMD,  null, null, "empty")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupCryo = approvedStructureElements[0].getUuid();
-        deviceGroupEMR  = approvedStructureElements[1].getUuid();
-        deviceGroupHVAC = approvedStructureElements[2].getUuid();
-        deviceGroupProc = approvedStructureElements[3].getUuid();
-        deviceGroupSC   = approvedStructureElements[4].getUuid();
-        deviceGroupVac  = approvedStructureElements[5].getUuid();
-        deviceGroupWtrC = approvedStructureElements[6].getUuid();
-        deviceGroupBMD  = approvedStructureElements[7].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupCryo = structureElements[0].getUuid();
+        deviceGroupEMR  = structureElements[1].getUuid();
+        deviceGroupHVAC = structureElements[2].getUuid();
+        deviceGroupProc = structureElements[3].getUuid();
+        deviceGroupSC   = structureElements[4].getUuid();
+        deviceGroupVac  = structureElements[5].getUuid();
+        deviceGroupWtrC = structureElements[6].getUuid();
+        deviceGroupBMD  = structureElements[7].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                  18);
@@ -207,12 +207,8 @@ class StructuresLevel3IT {
 
     @Test
     void createSubsystem() {
-        // test create and approve subsystem
-        //     all create, then all approve
-        //
-        // note
-        //     create in order to approve
-        //     all create first, all approve separately after all create
+        // test create subsystem
+        //     all create
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElement[] approvedStructureElements = null;
@@ -222,7 +218,7 @@ class StructuresLevel3IT {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "010",    null, "RFQ-010"),
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemRFQ, "N1U1",   null, "Power switch board 01. Electrical power cabinets")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        approvedStructureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
         subsystem010PRL = approvedStructureElements[0].getUuid();
         subsystem010    = approvedStructureElements[1].getUuid();
         subsystemN1U1   = approvedStructureElements[2].getUuid();
@@ -234,12 +230,8 @@ class StructuresLevel3IT {
 
     @Test
     void createDeviceType() {
-        // test create and approve device type
-        //     all create, then all approve
-        //
-        // note
-        //     create in order to approve
-        //     all create first, all approve separately after all create
+        // test create device type
+        //     all create
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElement[] approvedStructureElements = null;
@@ -278,7 +270,7 @@ class StructuresLevel3IT {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupBMD,  "RFA", null, "RF Antenna"),
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupBMD,  "TT",  null, "Temperature Transmitter")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        approvedStructureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
         deviceType_Cryo_FS  = approvedStructureElements[0].getUuid();
         deviceType_Cryo_IOC = approvedStructureElements[1].getUuid();
         deviceType_Cryo_RFA = approvedStructureElements[2].getUuid();
diff --git a/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java b/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java
index 5b12530fa860d253a3a30c17a6cb1a1fe7ee7ffd..6af8f47fe38bcde780d9034b75d5e46353967f13 100644
--- a/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java
+++ b/src/test/java/org/openepics/names/docker/complex/StructuresMultipleIT.java
@@ -81,43 +81,43 @@ class StructuresMultipleIT {
         // check content
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "Sg", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemGroupUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemGroupUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "Sys", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        systemUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        systemUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "Sub", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        subsystemUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        subsystemUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DISCIPLINE, null, "Di", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        disciplineUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        disciplineUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICEGROUP, disciplineUuid, null, null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceGroupUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceGroupUuid = structureElements[0].getUuid();
 
         structureElementCommandsCreate = new StructureElementCommandCreate[] {
                 new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "Dt", null, "description")
         };
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        deviceTypeUuid = approvedStructureElements[0].getUuid();
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        deviceTypeUuid = structureElements[0].getUuid();
 
         // check content
         ITUtilStructures.assertRead("",                   6);
@@ -200,9 +200,6 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
         structureElementCommandsCreate[1].setType(null);
         ITUtilStructures.assertValidate(structureElementCommandsCreate, StructureCommand.CREATE, Boolean.FALSE);
@@ -230,18 +227,14 @@ class StructuresMultipleIT {
     }
 
     @Test
-    void createApprove() {
-        // test create and approve subsystem
-        //
-        // note
-        //     create in order to approve
+    void create() {
+        // test create subsystem
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
         StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] createdStructureElements = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommands = new StructureElementCommand[] {
                 new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgCa",  null, "description"),
@@ -271,40 +264,13 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        createdStructureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
-        assertNotNull(createdStructureElements);
-        assertEquals(6, createdStructureElements.length);
 
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCa",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCa",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCa", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCa",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCa",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCa",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCa",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCa",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCa", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCa",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCa",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
-        approvedStructureElements = ITUtilStructures.assertApprove(structureElementCommandsConfirm);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCa",      Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysCa",     Boolean.TRUE);
@@ -322,205 +288,6 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void createCancel() {
-        // test create and cancel subsystem
-        //
-        // note
-        //     create in order to cancel
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] createdStructureElements = null;
-        StructureElement[] cancelledStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgCc",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysCc", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubCc", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiCc",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtCc",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCc",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCc",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCc",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        createdStructureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
-        assertNotNull(createdStructureElements);
-        assertEquals(6, createdStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCc",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCc",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCc",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        cancelledStructureElements = ITUtilStructures.assertCancel(structureElementCommandsConfirm);
-        assertNotNull(cancelledStructureElements);
-        assertEquals(6, cancelledStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCc",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCc",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCc", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCc",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void createReject() {
-        // test create and reject subsystem
-        //
-        // note
-        //     create in order to reject
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] createdStructureElements = null;
-        StructureElement[] rejectedStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgCr",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysCr", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubCr", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiCr",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtCr",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCr",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCr",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCr",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        createdStructureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
-        assertNotNull(createdStructureElements);
-        assertEquals(6, createdStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCr",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCr",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCr",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        rejectedStructureElements = ITUtilStructures.assertReject(structureElementCommandsConfirm);
-        assertNotNull(rejectedStructureElements);
-        assertEquals(6, rejectedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiCr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtCr",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysCr",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubCr", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiCr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpCr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtCr",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
     }
 
     @Test
@@ -529,7 +296,7 @@ class StructuresMultipleIT {
         //     not update
         //
         // note
-        //     create, approve in order to update
+        //     create in order to update
         //
         // validate update
         //     uuid
@@ -543,7 +310,7 @@ class StructuresMultipleIT {
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
         StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         UUID uuid = null;
         String value = null;
 
@@ -575,16 +342,13 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCu",      Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysCu",     Boolean.TRUE);
@@ -602,11 +366,8 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        uuid = approvedStructureElements[1].getUuid();
+        uuid = structureElements[1].getUuid();
         structureElementCommandsUpdate[1].setUuid(null);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate, StructureCommand.UPDATE, Boolean.FALSE);
         structureElementCommandsUpdate[1].setUuid(uuid);
@@ -638,18 +399,17 @@ class StructuresMultipleIT {
     }
 
     @Test
-    void updateApprove() {
-        // test update and approve subsystem
+    void update() {
+        // test update subsystem
         //
         // note
-        //     create, approve in order to update, approve
+        //     create in order to update
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
         StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
-        StructureElement[] updatedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommands = new StructureElementCommand[] {
                 new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgUa",  null, "description"),
@@ -679,36 +439,13 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUa",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUa", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUa",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUa",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUa", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUa",   Boolean.FALSE);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
 
         structureElementCommandsUpdate[0].setDescription("0");
         structureElementCommandsUpdate[1].setDescription("1");
@@ -733,37 +470,10 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        updatedStructureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
-        assertNotNull(updatedStructureElements);
-        assertEquals(6, updatedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUa",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUa", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUa",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUa",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUa", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUa",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        approvedStructureElements = ITUtilStructures.assertApprove(structureElementCommandsConfirm);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
+        structureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUa",      Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysUa",     Boolean.TRUE);
@@ -781,309 +491,6 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void updateCancel() {
-        // test update and cancel subsystem
-        //
-        // note
-        //     create, approve in order to update, cancel
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
-        StructureElement[] updatedStructureElements = null;
-        StructureElement[] cancelledStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgUc",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysUc", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubUc", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiUc",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtUc",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUc",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUc",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUc",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        structureElementCommandsUpdate[0].setDescription("0");
-        structureElementCommandsUpdate[1].setDescription("1");
-        structureElementCommandsUpdate[2].setDescription("2");
-        structureElementCommandsUpdate[3].setDescription("3");
-        structureElementCommandsUpdate[4].setDescription("4");
-        structureElementCommandsUpdate[5].setDescription("5");
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        updatedStructureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
-        assertNotNull(updatedStructureElements);
-        assertEquals(6, updatedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        cancelledStructureElements = ITUtilStructures.assertCancel(structureElementCommandsConfirm);
-        assertNotNull(cancelledStructureElements);
-        assertEquals(6, cancelledStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void updateReject() {
-        // test update and reject subsystem
-        //
-        // note
-        //     create, approve in order to update, reject
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
-        StructureElement[] updatedStructureElements = null;
-        StructureElement[] rejectedStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgUr",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysUr", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubUr", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiUr",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtUr",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUr",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUr",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUr",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        structureElementCommandsUpdate[0].setDescription("0");
-        structureElementCommandsUpdate[1].setDescription("1");
-        structureElementCommandsUpdate[2].setDescription("2");
-        structureElementCommandsUpdate[3].setDescription("3");
-        structureElementCommandsUpdate[4].setDescription("4");
-        structureElementCommandsUpdate[5].setDescription("5");
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        updatedStructureElements = ITUtilStructures.assertUpdate(structureElementCommandsUpdate);
-        assertNotNull(updatedStructureElements);
-        assertEquals(6, updatedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        rejectedStructureElements = ITUtilStructures.assertReject(structureElementCommandsConfirm);
-        assertNotNull(rejectedStructureElements);
-        assertEquals(6, rejectedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysUr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiUr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtUr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubUr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiUr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpUr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtUr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
     }
 
     @Test
@@ -1092,7 +499,7 @@ class StructuresMultipleIT {
         //     not delete
         //
         // note
-        //     create, approve in order to delete
+        //     create in order to delete
         //
         // validate delete
         //     uuid
@@ -1102,7 +509,7 @@ class StructuresMultipleIT {
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
         StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
         UUID uuid = null;
 
         structureElementCommands = new StructureElementCommand[] {
@@ -1133,16 +540,13 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgCd",      Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysCd",     Boolean.TRUE);
@@ -1160,9 +564,6 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
         uuid = structureElementCommandsConfirm[1].getUuid();
         structureElementCommandsConfirm[1].setUuid(null);
@@ -1172,17 +573,17 @@ class StructuresMultipleIT {
     }
 
     @Test
-    void deleteApprove() {
-        // test delete and approve subsystem
+    void delete() {
+        // test delete subsystem
         //
         // note
-        //     create, approve in order to delete, approve
+        //     create in order to delete
 
         StructureElementCommandCreate[] structureElementCommandsCreate = null;
         StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
         StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
         StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
+        StructureElement[] structureElements = null;
 
         structureElementCommands = new StructureElementCommand[] {
                 new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgDa",  null, "description"),
@@ -1212,16 +613,13 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
+        structureElements = ITUtilStructures.assertCreate(structureElementCommandsCreate);
+        assertNotNull(structureElements);
+        assertEquals(6, structureElements.length);
 
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElements);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElements);
 
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDa",      Boolean.TRUE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysDa",     Boolean.TRUE);
@@ -1239,36 +637,9 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
 
         ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDa",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDa", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDa",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDa",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDa",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDa", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDa",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDa",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDa",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        approvedStructureElements = ITUtilStructures.assertApprove(structureElementCommandsConfirm);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
         ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDa",      Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SYSTEM,      "SysDa",     Boolean.FALSE);
         ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDa", Boolean.FALSE);
@@ -1285,249 +656,6 @@ class StructuresMultipleIT {
         ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
         ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
         ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void deleteCancel() {
-        // test delete and cancel subsystem
-        //
-        // note
-        //     create, approve in order to delete, cancel
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
-        StructureElement[] cancelledStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgDc",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysDc", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubDc", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiDc",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtDc",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDc",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDc",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDc",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDc",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDc",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        cancelledStructureElements = ITUtilStructures.assertCancel(structureElementCommandsConfirm);
-        assertNotNull(cancelledStructureElements);
-        assertEquals(6, cancelledStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDc",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDc",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDc",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDc", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDc",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDc",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDc",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-    }
-
-    @Test
-    void deleteReject() {
-        // test delete and reject subsystem
-        //
-        // note
-        //     create, approve in order to delete, reject
-
-        StructureElementCommandCreate[] structureElementCommandsCreate = null;
-        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
-        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
-        StructureElementCommand[] structureElementCommands = null;
-        StructureElement[] approvedStructureElements = null;
-        StructureElement[] rejectedStructureElements = null;
-
-        structureElementCommands = new StructureElementCommand[] {
-                new StructureElementCommand(null, Type.SYSTEMGROUP, null,            "SgDr",  null, "description"),
-                new StructureElementCommand(null, Type.SYSTEM,      systemGroupUuid, "SysDr", null, "description"),
-                new StructureElementCommand(null, Type.SUBSYSTEM,   systemUuid,      "SubDr", null, "description"),
-                new StructureElementCommand(null, Type.DISCIPLINE,  null,            "DiDr",  null, "description"),
-                new StructureElementCommand(null, Type.DEVICEGROUP, disciplineUuid,  "",      null, "description"),
-                new StructureElementCommand(null, Type.DEVICETYPE,  deviceGroupUuid, "DtDr",  null, "description")
-        };
-        structureElementCommandsCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommands);
-        structureElementCommandsUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommands);
-        structureElementCommandsConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommands);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDr",      Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDr",   Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDr",     Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDr",      Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDr",   Boolean.TRUE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
-        assertNotNull(approvedStructureElements);
-        assertEquals(6, approvedStructureElements.length);
-
-        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
-        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
-
-        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.TRUE);
-
-        rejectedStructureElements = ITUtilStructures.assertReject(structureElementCommandsConfirm);
-        assertNotNull(rejectedStructureElements);
-        assertEquals(6, rejectedStructureElements.length);
-
-        ITUtilStructures.assertExists(Type.SYSTEMGROUP, "SgDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SYSTEM,      "SysDr",     Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DISCIPLINE,  "DiDr",      Boolean.TRUE);
-        ITUtilStructures.assertExists(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertExists(Type.DEVICETYPE,  "Di-DtDr",   Boolean.TRUE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEMGROUP, "SgDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SYSTEM,      "SysDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.SUBSYSTEM,   "Sys-SubDr", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE,  "DiDr",      Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICEGROUP, "GrpDr",     Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DEVICETYPE,  "Di-DtDr",   Boolean.FALSE);
-
-        ITUtilStructures.assertValidate(structureElementCommandsCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsUpdate,  StructureCommand.UPDATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.DELETE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.CANCEL,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandsConfirm, StructureCommand.REJECT,  Boolean.FALSE);
     }
 
 }
diff --git a/src/test/java/org/openepics/names/util/URLUtilityTest.java b/src/test/java/org/openepics/names/util/URLUtilityTest.java
index 0636cc285b3bcb94926cf6c9d6a5e425ca060468..e8c161f6267c3f417d8f485587f03af8a7f4daa4 100644
--- a/src/test/java/org/openepics/names/util/URLUtilityTest.java
+++ b/src/test/java/org/openepics/names/util/URLUtilityTest.java
@@ -59,7 +59,7 @@ class URLUtilityTest {
             "abcd.xhtml?efgh&uvwx=yzabc  def++ghijklm+ nop&abcdefgh=,abcd.xhtml?efgh&uvwx=yzabc++def%2B%2Bghijklm%2B+nop&abcdefgh=",
             "http://127.0.0.1:8080/a/b/c/d/e/f/RFQ-010:EMR-FS-0%,http://127.0.0.1:8080/a/b/c/d/e/f/RFQ-010%3AEMR-FS-0%25",
             "http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%,http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%25",
-            "http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%&statuses=APPROVED&deleted=false,http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%25&statuses=APPROVED&deleted=false"
+            "http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%&deleted=false,http://127.0.0.1:8080/api/v1/structures?mnemonicPath=Sg-A%25&deleted=false"
     })
     void encodeURL(String input, String expected) {
         assertEquals(expected, URLUtility.encodeURL(input));
diff --git a/src/test/java/org/openepics/names/util/ValidateUtilTest.java b/src/test/java/org/openepics/names/util/ValidateUtilTest.java
index dea17fab449773f669343800db69660e8aa9fd08..fe3de52fc6965d929061c7c5dfdcfd8e3db19613 100644
--- a/src/test/java/org/openepics/names/util/ValidateUtilTest.java
+++ b/src/test/java/org/openepics/names/util/ValidateUtilTest.java
@@ -704,7 +704,7 @@ class ValidateUtilTest {
     void validateInputReadStructuresTypeNull() {
         try {
             ValidateStructureElementUtil.validateStructuresInputRead(
-                    null, null, null,
+                    null, null,
                     null, null, null, null, null, null,
                     null, null, null, null, null);
         } catch (InputNotAvailableException e) {
@@ -718,27 +718,27 @@ class ValidateUtilTest {
     @Test
     void validateInputReadStructures() {
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.SYSTEMGROUP, null, null,
+                Type.SYSTEMGROUP, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.SYSTEM, null, null,
+                Type.SYSTEM, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.SUBSYSTEM, null, null,
+                Type.SUBSYSTEM, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.DISCIPLINE, null, null,
+                Type.DISCIPLINE, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.DEVICEGROUP, null, null,
+                Type.DEVICEGROUP, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
         ValidateStructureElementUtil.validateStructuresInputRead(
-                Type.DEVICETYPE, null, null,
+                Type.DEVICETYPE, null,
                 null, null, null, null, null, null,
                 null, null, null, null, null);
     }
diff --git a/src/test/java/org/openepics/names/util/notification/NotificationStructureTest.java b/src/test/java/org/openepics/names/util/notification/NotificationStructureTest.java
index 1e9ce012d197287797f4c139140c72434ef59039..cd05425a7821acee8f68d3c097692a2f3271b0d2 100644
--- a/src/test/java/org/openepics/names/util/notification/NotificationStructureTest.java
+++ b/src/test/java/org/openepics/names/util/notification/NotificationStructureTest.java
@@ -39,9 +39,9 @@ import org.openepics.names.util.StructureCommand;
 class NotificationStructureTest {
 
     @Test
-    void createApprove() {
+    void create() {
         NotificationStructure ns = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.CREATE,
                 Type.SYSTEM, UUID.randomUUID(),
                 "oldMnemonicW", "oldMnemonicpathE", "oldDescriptionR",
                 "newMnemonicY", "newMnemonicpathU", "newDescriptionI",
@@ -52,9 +52,9 @@ class NotificationStructureTest {
     }
 
     @Test
-    void updateCancel() {
+    void update() {
         NotificationStructure ns = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.UPDATE,
                 Type.DISCIPLINE, UUID.randomUUID(),
                 "oldMnemonicS", "oldMnemonicpathD", "oldDescriptionF",
                 "newMnemonicH", "newMnemonicpathJ", "newDescriptionK",
@@ -65,9 +65,9 @@ class NotificationStructureTest {
     }
 
     @Test
-    void deleteReject() {
+    void delete() {
         NotificationStructure ns = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.DELETE,
                 Type.DEVICETYPE, UUID.randomUUID(),
                 "oldMnemonicC", "oldMnemonicpathV", "oldDescriptionB",
                 "newMnemonicM", "newMnemonicpathQ", "newDescriptionW",
diff --git a/src/test/java/org/openepics/names/util/notification/NotificationUtilTest.java b/src/test/java/org/openepics/names/util/notification/NotificationUtilTest.java
index 7f37563437b1363760686a0a328ae876ed6bd58d..b2424a8affaa2ba3f212a84e9ad508ddfc202671 100644
--- a/src/test/java/org/openepics/names/util/notification/NotificationUtilTest.java
+++ b/src/test/java/org/openepics/names/util/notification/NotificationUtilTest.java
@@ -77,19 +77,19 @@ class NotificationUtilTest {
     @Test
     void sortByNewMnemonicpath() {
         NotificationStructure ns1 = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.CREATE,
                 Type.SYSTEM, UUID.randomUUID(),
                 "oldMnemonicW", "oldMnemonicpathE", "oldDescriptionR",
                 "newMnemonicY", "newMnemonicpathU", "newDescriptionI",
                 new Date(), "whoP");
         NotificationStructure ns2 = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.CREATE,
                 Type.DISCIPLINE, UUID.randomUUID(),
                 "oldMnemonicS", "oldMnemonicpathD", "oldDescriptionF",
                 "newMnemonicH", "newMnemonicpathJ", "newDescriptionK",
                 new Date(), "whoZ");
         NotificationStructure ns3 = new NotificationStructure(
-                StructureCommand.CREATE, StructureCommand.APPROVE,
+                StructureCommand.CREATE,
                 Type.DEVICETYPE, UUID.randomUUID(),
                 "oldMnemonicC", "oldMnemonicpathV", "oldDescriptionB",
                 "newMnemonicM", "newMnemonicpathQ", "newDescriptionW",
diff --git a/src/test/resources/INTEGRATIONTEST_DOCKER_TUTORIAL.md b/src/test/resources/INTEGRATIONTEST_DOCKER_TUTORIAL.md
index defec2ea58df64d5a48822372db72d077cdfbeca..e722578bc641562eb4d0ceb98dfc5496a6e78351 100644
--- a/src/test/resources/INTEGRATIONTEST_DOCKER_TUTORIAL.md
+++ b/src/test/resources/INTEGRATIONTEST_DOCKER_TUTORIAL.md
@@ -61,7 +61,7 @@ How
 
 ```
 @Test
-void createApprove()
+void create()
 ```
 
 Purpose
@@ -105,58 +105,38 @@ class StructuresDisciplineIT {
     public static final ComposeContainer ENVIRONMENT = ITUtil.defaultComposeContainers();
 
     @Test
-    void createApprove() {
-        // purpose
-        //     test create and approve discipline
-        //
-        // what - combination of
-        //     create      create structures
-        //     read        validate create
-        //     read        validate approve
-        //     patch       approve structures
-        //
-        // note
-        //     create in order to approve
+    void create() {
+        // test create discipline
 
         StructureElementCommandCreate structureElementCommandCreate = null;
+        StructureElementCommandUpdate structureElementCommandUpdate = null;
         StructureElementCommandConfirm structureElementCommandConfirm = null;
         StructureElementCommand structureElementCommand = null;
-        StructureElement createdStructureElement = null;
+        StructureElement structureElement = null;
 
-        structureElementCommand = new StructureElementCommand(, Type.DISCIPLINE, null, ", null, "description");
+        structureElementCommand = new StructureElementCommand(null, Type.DISCIPLINE, null, "Ca", null, "description");
 
         structureElementCommandCreate = StructureElementUtil.convertCommand2CommandCreate(structureElementCommand);
+        structureElementCommandUpdate = StructureElementUtil.convertCommand2CommandUpdate(structureElementCommand);
         structureElementCommandConfirm = StructureElementUtil.convertCommand2CommandConfirm(structureElementCommand);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.FALSE);
         ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.FALSE);
 
         // create
-        createdStructureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-
-        ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.TRUE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.TRUE);
-        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
-
-        // approve
-        ITUtilStructures.assertApprove(structureElementCommandConfirm);
+        structureElement = ITUtilStructures.assertCreate(structureElementCommandCreate);
+        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(structureElement);
+        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(structureElement);
 
         ITUtilStructures.assertExists(Type.DISCIPLINE, "Ca", Boolean.TRUE);
         ITUtilStructures.assertIsValidToCreate(Type.DISCIPLINE, "Ca", Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE,  Boolean.FALSE);
-        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.APPROVE, Boolean.FALSE);
-
-        structureElementCommandConfirm.setUuid(null);
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, ITUtil.HTTP_UNPROCESSABLE_ENTITY);
-        structureElementCommandConfirm.setUuid(UUID.randomUUID());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_NOT_FOUND);
-        structureElementCommandConfirm.setUuid(createdStructureElement.getUuid());
-        ITUtilStructures.assertApprove(structureElementCommandConfirm, HttpURLConnection.HTTP_CONFLICT);
+        ITUtilStructures.assertValidate(structureElementCommandCreate,  StructureCommand.CREATE, Boolean.FALSE);
+        ITUtilStructures.assertValidate(structureElementCommandUpdate,  StructureCommand.UPDATE, Boolean.TRUE);
+        ITUtilStructures.assertValidate(structureElementCommandConfirm, StructureCommand.DELETE, Boolean.TRUE);
+        ITUtilStructures.assertCreate(structureElementCommandCreate, HttpURLConnection.HTTP_CONFLICT);
     }
 ```
 
@@ -171,26 +151,23 @@ Note the extensive use of test utility classes (in more detail below) in which a
 * Http requests (GET) and curl commands (POST, PUT, PATCH, DELETE) corresponding to endpoints in Naming REST API
 * assert response
 
-##### Examining `createApprove`
+##### Examining `create`
 
 1.  A GET request is made to Naming to check if Discipline exists
 2.  A GET request is made to Naming to check if Discipline is valid to create
 3.  A GET request is made to Naming to validate command to create Discipline
-4.  A GET request is made to Naming to validate command to approve Discipline
-5.  A POST request is made to Naming to create Discipline
-6.  A GET request is made to Naming to check if Discipline exists
-7.  A GET request is made to Naming to check if Discipline is valid to create
-8.  A GET request is made to Naming to validate command to create Discipline
-9.  A GET request is made to Naming to validate command to approve Discipline
-10. A POST request is made to Naming to create Discipline
-11. A POST request is made to Naming to approve Discipline
-12. A GET request is made to Naming to check if Discipline exists
-13. A GET request is made to Naming to check if Discipline is valid to create
-14. A GET request is made to Naming to validate command to create Discipline
-15. A GET request is made to Naming to validate command to approve Discipline
-
-
-* 1, 6, 12 - Request correspond to IStructures method
+4.  A GET request is made to Naming to validate command to update Discipline
+5.  A GET request is made to Naming to validate command to delete Discipline
+6.  A POST request is made to Naming to create Discipline
+7.  A GET request is made to Naming to check if Discipline exists
+8.  A GET request is made to Naming to check if Discipline is valid to create
+9.  A GET request is made to Naming to validate command to create Discipline
+10. A GET request is made to Naming to validate command to update Discipline
+11. A GET request is made to Naming to validate command to delete Discipline
+12. A POST request is made to Naming to create Discipline
+
+
+* 1, 7 - Request correspond to IStructures method
 
 ```
     @GetMapping(
@@ -198,7 +175,7 @@ Note the extensive use of test utility classes (in more detail below) in which a
     public ResponseEntity<ResponseBoolean> existsStructure(
 ```
 
-* 2, 7, 13 - Request correspond to IStructures method
+* 2, 8 - Request correspond to IStructures method
 
 ```
     @GetMapping(
@@ -207,7 +184,7 @@ Note the extensive use of test utility classes (in more detail below) in which a
     public ResponseEntity<ResponseBoolean> isValidToCreateStructure(
 ```
 
-* 3, 8, 14 - Request correspond to IStructures method
+* 3, 9 - Request correspond to IStructures method
 
 ```
     @GetMapping(
@@ -217,33 +194,33 @@ Note the extensive use of test utility classes (in more detail below) in which a
     public ResponseEntity<ResponseBooleanList> validateStructuresCreate(
 ```
 
-* 4, 9, 15 - Request correspond to IStructures method
+* 4, 10 - Request correspond to IStructures method
 
 ```
     @GetMapping(
-            value = "/validateApprove",
+            value = "/validateUpdate",
             produces = {"application/json"},
             consumes = {"application/json"})
-    public ResponseEntity<ResponseBooleanList> validateStructuresApprove(
+    public ResponseEntity<ResponseBooleanList> validateStructuresUpdate(
 ```
 
-* 5, 10 - Request correspond to IStructures method
+* 5, 11 - Request correspond to IStructures method
 
 ```
-    @PostMapping(
+    @GetMapping(
+            value = "/validateDelete",
             produces = {"application/json"},
             consumes = {"application/json"})
-    public ResponseEntity<List<StructureElement>> createStructures(
+    public ResponseEntity<ResponseBooleanList> validateStructuresDelete(
 ```
 
-* 11 - Request correspond to IStructures method
+* 6, 12 - Request correspond to IStructures method
 
 ```
-    @PatchMapping(
-            value = "/approve",
+    @PostMapping(
             produces = {"application/json"},
             consumes = {"application/json"})
-    public List<StructureElement> approveStructures(
+    public ResponseEntity<List<StructureElement>> createStructures(
 ```
 
 ##### Test classes
@@ -320,19 +297,15 @@ class NamesIT {
 
     @Test
     void readSearchHistoryDeleted() {
-
-        NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate(
-                subsystem010, deviceTypeFS,
-                "001", "description");
+        NameElementCommandCreate nameElementCommandCreate = new NameElementCommandCreate(subsystem010, deviceTypeFS, "001", "description");
 
         ITUtilNames.assertCreate(nameElementCommandCreate);
 
-        ITUtilNames.assertRead("?name=RFQ-010:EMR-FS-005",           1);
-        ITUtilNames.assertRead("?name=RFQ-010%",                    10, -1);
-
-        ITUtilNames.assertRead("?index=00_&page=0&pageSize=3&orderBy=WHEN&isAsc=true",   3);
-        ITUtilNames.assertRead("?index=00_&page=2&pageSize=3&orderBy=WHEN&isAsc=false",  2);
+        ITUtilNames.assertRead("?name=RFQ-010:EMR-FS-005",                               1);
+        ITUtilNames.assertRead("?name=RFQ-010%",                                        10, -1);
 
+        ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=true&page=0&pageSize=3",   3);
+        ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=false&page=2&pageSize=3",  2);
 ```
 
 ##### Note
diff --git a/src/test/resources/data/db/README.txt b/src/test/resources/data/db/README.txt
index 0f1359dd3fd0bd9d8165b7982be646289babb5c6..2642ea9477bc1ec008a996e4d65d2458d3426461 100644
--- a/src/test/resources/data/db/README.txt
+++ b/src/test/resources/data/db/README.txt
@@ -7,7 +7,7 @@ Content prepared by
 - integration test class - method
       NamesIT                  readSearchHistoryDeleted
       StructuresSubsystemIT    readSearchStatusDeletedChildren
-- setting debug point in methods at first statement in try clause
+- setting debug point in methods at first statement in read & search section
 - debug
 - when test is halted, use database management tool to backup data
 
diff --git a/src/test/resources/data/db/dump-discs_names_namesit.sql b/src/test/resources/data/db/dump-discs_names_namesit.sql
index ead8bacd41f1d6c9265597393b6674d2068321fe..bc35e38546ac00603551f048128e9e3345fbb99e 100644
--- a/src/test/resources/data/db/dump-discs_names_namesit.sql
+++ b/src/test/resources/data/db/dump-discs_names_namesit.sql
@@ -5,7 +5,7 @@
 -- Dumped from database version 9.6.7
 -- Dumped by pg_dump version 9.6.24
 
--- Started on 2022-09-30 09:25:14 CEST
+-- Started on 2024-03-04 17:17:29 CET
 
 SET statement_timeout = 0;
 SET lock_timeout = 0;
@@ -283,21 +283,21 @@ ALTER SEQUENCE public.device_id_seq OWNED BY public.device.id;
 CREATE TABLE public.devicegroup (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    parent_uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -375,21 +375,21 @@ ALTER SEQUENCE public.devicerevision_id_seq OWNED BY public.devicerevision.id;
 CREATE TABLE public.devicetype (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    parent_uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -423,20 +423,20 @@ ALTER SEQUENCE public.devicetype_id_seq OWNED BY public.devicetype.id;
 CREATE TABLE public.discipline (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -470,24 +470,24 @@ ALTER SEQUENCE public.discipline_id_seq OWNED BY public.discipline.id;
 CREATE TABLE public.name (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    systemgroup_uuid character varying(255),
-    system_uuid character varying(255),
-    subsystem_uuid character varying(255),
-    devicetype_uuid character varying(255),
-    instance_index character varying(255),
-    convention_name character varying(255),
-    convention_name_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    systemgroup_uuid text,
+    system_uuid text,
+    subsystem_uuid text,
+    devicetype_uuid text,
+    instance_index text,
+    convention_name text,
+    convention_name_equivalence text,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -603,21 +603,21 @@ ALTER SEQUENCE public.namepartrevision_id_seq OWNED BY public.namepartrevision.i
 CREATE TABLE public.subsystem (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    parent_uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -651,21 +651,21 @@ ALTER SEQUENCE public.subsystem_id_seq OWNED BY public.subsystem.id;
 CREATE TABLE public.system (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    parent_uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -699,20 +699,20 @@ ALTER SEQUENCE public.system_id_seq OWNED BY public.system.id;
 CREATE TABLE public.systemgroup (
     id bigint NOT NULL,
     version integer,
-    uuid character varying(255),
-    name character varying(255),
-    mnemonic character varying(255),
-    mnemonic_equivalence character varying(255),
-    description character varying(255),
-    status character varying(255),
+    uuid text NOT NULL,
+    mnemonic text,
+    mnemonic_equivalence text,
+    ordering integer,
+    description text,
+    status text,
     latest boolean NOT NULL,
     deleted boolean NOT NULL,
     requested timestamp without time zone,
-    requested_by character varying(255),
-    requested_comment character varying(255),
+    requested_by text,
+    requested_comment text,
     processed timestamp without time zone,
-    processed_by character varying(255),
-    processed_comment character varying(255)
+    processed_by text,
+    processed_comment text
 );
 
 
@@ -964,8 +964,8 @@ SELECT pg_catalog.setval('public.device_id_seq', 1, false);
 -- Data for Name: devicegroup; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.devicegroup (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	7e036d2e-0f81-469a-91e3-79725e9db70e	aa1aaa31-1463-490f-a173-4006ceea953c	Control	\N	\N	empty	APPROVED	t	f	2022-09-30 07:11:27.894	test who	These names are needed now, so I am approving, but please add a description to these later.	2022-09-30 07:11:27.979	test who	These names are needed now, so I am approving, but please add a description to these later.
+COPY public.devicegroup (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	d64e3a84-1224-4352-af0a-e7d2b512aa94	5c27876e-8cb8-4576-b918-c984748cf996	\N	\N	\N	Control	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.173	test who	\N
 \.
 
 
@@ -1003,10 +1003,10 @@ SELECT pg_catalog.setval('public.devicerevision_id_seq', 1, false);
 -- Data for Name: devicetype; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.devicetype (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	ac201308-1f64-459c-bc39-afa5ae1d6889	7e036d2e-0f81-469a-91e3-79725e9db70e	Flow Switch	FS	FS	empty	APPROVED	t	f	2022-09-30 07:11:28.073	test who	Approve names added from misc device group	2022-09-30 07:11:28.169	test who	Approve names added from misc device group
-2	1	5deb551f-87ec-43a3-8116-eb6692767012	7e036d2e-0f81-469a-91e3-79725e9db70e	RF Antenna	RFA	RFA	empty	APPROVED	t	f	2022-09-30 07:11:28.267	test who	Approve names added from misc device group	2022-09-30 07:11:28.35	test who	Approve names added from misc device group
-3	1	195eb50f-cdac-44c9-bf2e-c7cb3d89bcb1	7e036d2e-0f81-469a-91e3-79725e9db70e	Temperature Transmitter	TT	TT	empty	APPROVED	t	f	2022-09-30 07:11:28.446	test who	Approve names added from misc device group	2022-09-30 07:11:28.513	test who	Approve names added from misc device group
+COPY public.devicetype (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	d64e3a84-1224-4352-af0a-e7d2b512aa94	FS	FS	\N	Flow Switch	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.264	test who	\N
+2	0	f91e2bef-c50c-45b9-8b51-051872993313	d64e3a84-1224-4352-af0a-e7d2b512aa94	RFA	RFA	\N	RF Antenna	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.264	test who	\N
+3	0	fe0bce90-46fc-4d78-b47b-6679e29235bc	d64e3a84-1224-4352-af0a-e7d2b512aa94	TT	TT	\N	Temperature Transmitter	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.264	test who	\N
 \.
 
 
@@ -1025,8 +1025,8 @@ SELECT pg_catalog.setval('public.devicetype_id_seq', 3, true);
 -- Data for Name: discipline; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.discipline (id, version, uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	aa1aaa31-1463-490f-a173-4006ceea953c	Electromagnetic Resonators	EMR	EMR	empty	APPROVED	t	f	2022-09-30 07:11:27.769	test who	empty	2022-09-30 07:11:27.828	test who	empty
+COPY public.discipline (id, version, uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	5c27876e-8cb8-4576-b918-c984748cf996	EMR	EMR	\N	Electromagnetic Resonators	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.124	test who	\N
 \.
 
 
@@ -1046,23 +1046,23 @@ SELECT pg_catalog.setval('public.discipline_id_seq', 1, true);
 --
 
 COPY public.name (id, version, uuid, systemgroup_uuid, system_uuid, subsystem_uuid, devicetype_uuid, instance_index, convention_name, convention_name_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	0	4c8fcc43-e7f9-4f43-9be9-06e1873f1e9a	0b1fbe52-b581-4bdf-8cfc-6c975882262e	\N	\N	\N	\N	Acc	ACC	System structure only	APPROVED	t	f	2022-09-30 07:11:26.957	test who	\N	\N	\N	\N
-2	0	976d0e3b-9353-46cf-9550-a1949296c22f	\N	91eafa70-a0b4-4fa7-889a-0812d0a3ac04	\N	\N	\N	RFQ	RFQ	System structure only	APPROVED	t	f	2022-09-30 07:11:27.172	test who	\N	\N	\N	\N
-3	0	60d7c1dc-f6e3-4819-8278-a091f5779ad5	\N	\N	420f81b4-cdd6-4a3f-a528-135c2a2eb3ed	\N	\N	RFQ-010PRL	RFQ-10PR1	System structure only	APPROVED	t	f	2022-09-30 07:11:27.361	test who	\N	\N	\N	\N
-4	0	c87a620a-d169-4263-8c0b-f5b41695446c	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	\N	\N	RFQ-010	RFQ-10	System structure only	APPROVED	t	f	2022-09-30 07:11:27.532	test who	\N	\N	\N	\N
-5	0	a58f08c7-6961-49ff-9e83-d863746af46b	\N	\N	66fdb990-7f76-475c-9e8c-c1716af839c3	\N	\N	RFQ-N1U1	RFQ-N1U1	System structure only	APPROVED	t	f	2022-09-30 07:11:27.67	test who	\N	\N	\N	\N
-7	0	61f3818d-316e-4593-aed3-1522726b279e	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	002	RFQ-010:EMR-FS-002	RFQ-10:EMR-FS-2	description	APPROVED	t	f	2022-09-30 07:11:28.735	test who	comment	\N	\N	\N
-8	0	8635c489-fd82-4939-8193-066d6f0a8c2a	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	003	RFQ-010:EMR-FS-003	RFQ-10:EMR-FS-3	description	APPROVED	t	f	2022-09-30 07:11:28.804	test who	comment	\N	\N	\N
-9	0	126d3f78-9ed8-4f97-98d3-d7a2f2bd6dd4	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	004	RFQ-010:EMR-FS-004	RFQ-10:EMR-FS-4	description	APPROVED	t	f	2022-09-30 07:11:28.879	test who	comment	\N	\N	\N
-10	0	7c8ceabb-aed7-4e0d-8503-d8bc38e7d25b	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	005	RFQ-010:EMR-FS-005	RFQ-10:EMR-FS-5	description	APPROVED	t	f	2022-09-30 07:11:28.934	test who	comment	\N	\N	\N
-11	0	18170b1a-dd95-4aa5-a05c-555fbbab8a75	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	006	RFQ-010:EMR-FS-006	RFQ-10:EMR-FS-6	description	APPROVED	t	f	2022-09-30 07:11:28.992	test who	comment	\N	\N	\N
-6	1	4c92c9e9-5a34-48e4-a2c3-ca284682f57c	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	description	APPROVED	f	f	2022-09-30 07:11:28.645	test who	comment	\N	\N	\N
-15	0	4c92c9e9-5a34-48e4-a2c3-ca284682f57c	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	updated description again	APPROVED	t	f	2022-09-30 07:11:29.223	test who	updated comment again	\N	\N	\N
-14	1	4c92c9e9-5a34-48e4-a2c3-ca284682f57c	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	updated description	APPROVED	f	f	2022-09-30 07:11:29.167	test who	updated comment	\N	\N	\N
-16	0	fd22b033-0fad-48a4-afa1-65cfd1098464	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	007	RFQ-010:EMR-FS-007	RFQ-10:EMR-FS-7	description	APPROVED	t	t	2022-09-30 07:11:29.271	test who	comment	\N	\N	\N
-12	1	fd22b033-0fad-48a4-afa1-65cfd1098464	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	007	RFQ-010:EMR-FS-007	RFQ-10:EMR-FS-7	description	APPROVED	f	f	2022-09-30 07:11:29.05	test who	comment	\N	\N	\N
-17	0	3743a2a8-3a8f-41b3-aa9b-352ea722f46a	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	008	RFQ-010:EMR-FS-008	RFQ-10:EMR-FS-8	description	APPROVED	t	t	2022-09-30 07:11:29.315	test who	comment	\N	\N	\N
-13	1	3743a2a8-3a8f-41b3-aa9b-352ea722f46a	\N	\N	d85f970f-be06-445a-8b48-f896be710f67	ac201308-1f64-459c-bc39-afa5ae1d6889	008	RFQ-010:EMR-FS-008	RFQ-10:EMR-FS-8	description	APPROVED	f	f	2022-09-30 07:11:29.107	test who	comment	\N	\N	\N
+1	0	b6177d1f-fdc3-47f0-b35e-3e61ea8760be	9aae66a8-ac73-4c0c-b252-430249882403	\N	\N	\N	\N	Acc	ACC	System structure only	APPROVED	t	f	2024-03-04 16:14:50.452	test who	\N	\N	\N	\N
+2	0	bce1e479-115e-4aa4-a641-e634af3a4f71	\N	e5c2b06e-7f3e-4adf-9c2d-c20c0f873ba9	\N	\N	\N	RFQ	RFQ	System structure only	APPROVED	t	f	2024-03-04 16:14:50.871	test who	\N	\N	\N	\N
+3	0	e317123a-a00f-4009-873e-17212267ed20	\N	\N	de2b46ae-2459-4da4-92e1-d0dcff67e96f	\N	\N	RFQ-010PRL	RFQ-10PR1	System structure only	APPROVED	t	f	2024-03-04 16:14:51.015	test who	\N	\N	\N	\N
+4	0	fdd97e12-7591-483b-ae54-a3fd83c5f86b	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	\N	\N	RFQ-010	RFQ-10	System structure only	APPROVED	t	f	2024-03-04 16:14:51.015	test who	\N	\N	\N	\N
+5	0	1a0924f4-9b30-4064-89cd-7ce2c547595f	\N	\N	3c36d87f-3d2c-4a88-87f1-77614e20aa89	\N	\N	RFQ-N1U1	RFQ-N1U1	System structure only	APPROVED	t	f	2024-03-04 16:14:51.015	test who	\N	\N	\N	\N
+7	0	0a6ac5c8-e177-4630-85a5-0b20c1eb1c08	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	002	RFQ-010:EMR-FS-002	RFQ-10:EMR-FS-2	description	APPROVED	t	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+8	0	7a39848e-7075-4327-8402-e3c80e92f8f6	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	003	RFQ-010:EMR-FS-003	RFQ-10:EMR-FS-3	description	APPROVED	t	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+9	0	311f25dd-8ab3-4482-9d83-0c00c0f09858	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	004	RFQ-010:EMR-FS-004	RFQ-10:EMR-FS-4	description	APPROVED	t	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+10	0	0b70edf6-e7e9-40d9-8983-01eb03b99076	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	005	RFQ-010:EMR-FS-005	RFQ-10:EMR-FS-5	description	APPROVED	t	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+11	0	4d40d460-8de3-4525-80e7-1ca28e984240	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	006	RFQ-010:EMR-FS-006	RFQ-10:EMR-FS-6	description	APPROVED	t	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+6	1	cb709c37-a1a2-4188-9acb-4692d603ad81	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	description	APPROVED	f	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+15	0	cb709c37-a1a2-4188-9acb-4692d603ad81	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	updated description again	APPROVED	t	f	2024-03-04 16:14:51.628	test who	\N	\N	\N	\N
+14	1	cb709c37-a1a2-4188-9acb-4692d603ad81	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	001	RFQ-010:EMR-FS-001	RFQ-10:EMR-FS-1	updated description	APPROVED	f	f	2024-03-04 16:14:51.584	test who	\N	\N	\N	\N
+16	0	57291cdc-41e9-4c9f-aeeb-520692ac3a57	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	007	RFQ-010:EMR-FS-007	RFQ-10:EMR-FS-7	description	APPROVED	t	t	2024-03-04 16:14:51.66	test who	\N	\N	\N	\N
+12	1	57291cdc-41e9-4c9f-aeeb-520692ac3a57	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	007	RFQ-010:EMR-FS-007	RFQ-10:EMR-FS-7	description	APPROVED	f	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
+17	0	22f8625f-7135-4503-8413-d3792c6a1215	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	008	RFQ-010:EMR-FS-008	RFQ-10:EMR-FS-8	description	APPROVED	t	t	2024-03-04 16:14:51.683	test who	\N	\N	\N	\N
+13	1	22f8625f-7135-4503-8413-d3792c6a1215	\N	\N	40743524-3a06-4d8c-be81-5cfe8419e05f	e5b662f9-ca7e-4fb3-b083-30b0e6a38a9d	008	RFQ-010:EMR-FS-008	RFQ-10:EMR-FS-8	description	APPROVED	f	f	2024-03-04 16:14:51.512	test who	\N	\N	\N	\N
 \.
 
 
@@ -1119,10 +1119,10 @@ SELECT pg_catalog.setval('public.namepartrevision_id_seq', 1, false);
 -- Data for Name: subsystem; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.subsystem (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	420f81b4-cdd6-4a3f-a528-135c2a2eb3ed	91eafa70-a0b4-4fa7-889a-0812d0a3ac04	01 Phase Reference Line	010PRL	10PR1	empty	APPROVED	t	f	2022-09-30 07:11:27.282	test who	Approved by Daniel Piso	2022-09-30 07:11:27.361	test who	Approved by Daniel Piso
-2	1	d85f970f-be06-445a-8b48-f896be710f67	91eafa70-a0b4-4fa7-889a-0812d0a3ac04	RFQ-010	010	10	empty	APPROVED	t	f	2022-09-30 07:11:27.452	test who	Approved by Daniel Piso	2022-09-30 07:11:27.532	test who	Approved by Daniel Piso
-3	1	66fdb990-7f76-475c-9e8c-c1716af839c3	91eafa70-a0b4-4fa7-889a-0812d0a3ac04	Power switch board 01	N1U1	N1U1	Electrical power cabinets	APPROVED	t	f	2022-09-30 07:11:27.612	test who	Approved by Daniel Piso	2022-09-30 07:11:27.67	test who	Approved by Daniel Piso
+COPY public.subsystem (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	de2b46ae-2459-4da4-92e1-d0dcff67e96f	e5c2b06e-7f3e-4adf-9c2d-c20c0f873ba9	010PRL	10PR1	\N	01 Phase Reference Line	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.015	test who	\N
+2	0	40743524-3a06-4d8c-be81-5cfe8419e05f	e5c2b06e-7f3e-4adf-9c2d-c20c0f873ba9	010	10	\N	RFQ-010	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.015	test who	\N
+3	0	3c36d87f-3d2c-4a88-87f1-77614e20aa89	e5c2b06e-7f3e-4adf-9c2d-c20c0f873ba9	N1U1	N1U1	\N	Power switch board 01. Electrical power cabinets	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:51.015	test who	\N
 \.
 
 
@@ -1141,8 +1141,8 @@ SELECT pg_catalog.setval('public.subsystem_id_seq', 3, true);
 -- Data for Name: system; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.system (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	91eafa70-a0b4-4fa7-889a-0812d0a3ac04	0b1fbe52-b581-4bdf-8cfc-6c975882262e	Radio Frequency Quadrupole	RFQ	RFQ	empty	APPROVED	t	f	2022-09-30 07:11:27.109	test who	empty	2022-09-30 07:11:27.172	test who	empty
+COPY public.system (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	e5c2b06e-7f3e-4adf-9c2d-c20c0f873ba9	9aae66a8-ac73-4c0c-b252-430249882403	RFQ	RFQ	\N	Radio Frequency Quadrupole	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:50.871	test who	\N
 \.
 
 
@@ -1161,8 +1161,8 @@ SELECT pg_catalog.setval('public.system_id_seq', 1, true);
 -- Data for Name: systemgroup; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.systemgroup (id, version, uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	0b1fbe52-b581-4bdf-8cfc-6c975882262e	Accelerator	Acc	ACC	The ESS Linear Accelerator	APPROVED	t	f	2022-09-30 07:11:26.775	test who	approved by alfio	2022-09-30 07:11:26.957	test who	approved by alfio
+COPY public.systemgroup (id, version, uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	9aae66a8-ac73-4c0c-b252-430249882403	Acc	ACC	\N	Accelerator. The ESS Linear Accelerator	APPROVED	t	f	\N	\N	\N	2024-03-04 16:14:50.452	test who	\N
 \.
 
 
@@ -1268,7 +1268,7 @@ ALTER TABLE ONLY public.discipline
 
 
 --
--- TOC entry 2190 (class 2606 OID 16620)
+-- TOC entry 2187 (class 2606 OID 16620)
 -- Name: name name_pk; Type: CONSTRAINT; Schema: public; Owner: -
 --
 
@@ -1516,59 +1516,59 @@ CREATE INDEX name_deleted_idx ON public.name USING btree (deleted);
 
 
 --
--- TOC entry 2183 (class 1259 OID 16571)
--- Name: name_id_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2183 (class 1259 OID 16575)
+-- Name: name_devicetype_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_id_idx ON public.name USING btree (id);
+CREATE INDEX name_devicetype_uuid_idx ON public.name USING btree (devicetype_uuid);
 
 
 --
--- TOC entry 2184 (class 1259 OID 16585)
--- Name: name_latest_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2184 (class 1259 OID 16571)
+-- Name: name_id_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_latest_idx ON public.name USING btree (latest);
+CREATE INDEX name_id_idx ON public.name USING btree (id);
 
 
 --
--- TOC entry 2185 (class 1259 OID 16575)
--- Name: name_namepartrevision_devicetype_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2185 (class 1259 OID 16585)
+-- Name: name_latest_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_devicetype_uuid_idx ON public.name USING btree (devicetype_uuid);
+CREATE INDEX name_latest_idx ON public.name USING btree (latest);
 
 
 --
--- TOC entry 2186 (class 1259 OID 16574)
--- Name: name_namepartrevision_subsystem_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2188 (class 1259 OID 16577)
+-- Name: name_status_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_subsystem_uuid_idx ON public.name USING btree (subsystem_uuid);
+CREATE INDEX name_status_idx ON public.name USING btree (status);
 
 
 --
--- TOC entry 2187 (class 1259 OID 16573)
--- Name: name_namepartrevision_system_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2189 (class 1259 OID 16574)
+-- Name: name_subsystem_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_system_uuid_idx ON public.name USING btree (system_uuid);
+CREATE INDEX name_subsystem_uuid_idx ON public.name USING btree (subsystem_uuid);
 
 
 --
--- TOC entry 2188 (class 1259 OID 16572)
--- Name: name_namepartrevision_systemgroup_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2190 (class 1259 OID 16573)
+-- Name: name_system_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_systemgroup_uuid_idx ON public.name USING btree (systemgroup_uuid);
+CREATE INDEX name_system_uuid_idx ON public.name USING btree (system_uuid);
 
 
 --
--- TOC entry 2191 (class 1259 OID 16577)
--- Name: name_status_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2191 (class 1259 OID 16572)
+-- Name: name_systemgroup_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_status_idx ON public.name USING btree (status);
+CREATE INDEX name_systemgroup_uuid_idx ON public.name USING btree (systemgroup_uuid);
 
 
 --
@@ -1811,7 +1811,7 @@ ALTER TABLE ONLY public.namepartrevision
     ADD CONSTRAINT fk_lufxqy46l9eiq55d445rbukag FOREIGN KEY (parent_id) REFERENCES public.namepart(id);
 
 
--- Completed on 2022-09-30 09:25:14 CEST
+-- Completed on 2024-03-04 17:17:29 CET
 
 --
 -- PostgreSQL database dump complete
diff --git a/src/test/resources/data/db/dump-discs_names_subsystemit.sql b/src/test/resources/data/db/dump-discs_names_subsystemit.sql
index b8c8576ecb95c73b50611ac5b11826f66f3dac6e..f6d4332907fd3d20a1041ee8acb7d4a12f4ff1f4 100644
--- a/src/test/resources/data/db/dump-discs_names_subsystemit.sql
+++ b/src/test/resources/data/db/dump-discs_names_subsystemit.sql
@@ -5,7 +5,7 @@
 -- Dumped from database version 9.6.7
 -- Dumped by pg_dump version 9.6.24
 
--- Started on 2024-01-02 15:16:38 CET
+-- Started on 2024-03-04 17:19:26 CET
 
 SET statement_timeout = 0;
 SET lock_timeout = 0;
@@ -283,11 +283,11 @@ ALTER SEQUENCE public.device_id_seq OWNED BY public.device.id;
 CREATE TABLE public.devicegroup (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    parent_uuid text,
-    name text,
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -375,11 +375,11 @@ ALTER SEQUENCE public.devicerevision_id_seq OWNED BY public.devicerevision.id;
 CREATE TABLE public.devicetype (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    parent_uuid text,
-    name text,
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -423,10 +423,10 @@ ALTER SEQUENCE public.devicetype_id_seq OWNED BY public.devicetype.id;
 CREATE TABLE public.discipline (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    name text,
+    uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -470,7 +470,7 @@ ALTER SEQUENCE public.discipline_id_seq OWNED BY public.discipline.id;
 CREATE TABLE public.name (
     id bigint NOT NULL,
     version integer,
-    uuid text,
+    uuid text NOT NULL,
     systemgroup_uuid text,
     system_uuid text,
     subsystem_uuid text,
@@ -603,11 +603,11 @@ ALTER SEQUENCE public.namepartrevision_id_seq OWNED BY public.namepartrevision.i
 CREATE TABLE public.subsystem (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    parent_uuid text,
-    name text,
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -651,11 +651,11 @@ ALTER SEQUENCE public.subsystem_id_seq OWNED BY public.subsystem.id;
 CREATE TABLE public.system (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    parent_uuid text,
-    name text,
+    uuid text NOT NULL,
+    parent_uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -699,10 +699,10 @@ ALTER SEQUENCE public.system_id_seq OWNED BY public.system.id;
 CREATE TABLE public.systemgroup (
     id bigint NOT NULL,
     version integer,
-    uuid text,
-    name text,
+    uuid text NOT NULL,
     mnemonic text,
     mnemonic_equivalence text,
+    ordering integer,
     description text,
     status text,
     latest boolean NOT NULL,
@@ -964,7 +964,7 @@ SELECT pg_catalog.setval('public.device_id_seq', 1, false);
 -- Data for Name: devicegroup; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.devicegroup (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+COPY public.devicegroup (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
 \.
 
 
@@ -1002,7 +1002,7 @@ SELECT pg_catalog.setval('public.devicerevision_id_seq', 1, false);
 -- Data for Name: devicetype; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.devicetype (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+COPY public.devicetype (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
 \.
 
 
@@ -1021,7 +1021,7 @@ SELECT pg_catalog.setval('public.devicetype_id_seq', 1, false);
 -- Data for Name: discipline; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.discipline (id, version, uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+COPY public.discipline (id, version, uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
 \.
 
 
@@ -1041,6 +1041,53 @@ SELECT pg_catalog.setval('public.discipline_id_seq', 1, false);
 --
 
 COPY public.name (id, version, uuid, systemgroup_uuid, system_uuid, subsystem_uuid, devicetype_uuid, instance_index, convention_name, convention_name_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	aa42ed64-4dd6-40c5-80fc-4b8381da414e	b3f5b914-9607-4df8-a701-553f4d238e1e	\N	\N	\N	\N	Sg	SG	System structure only	APPROVED	t	f	2024-03-04 16:18:38.976	test who	\N	\N	\N	\N
+2	0	33db7396-ed60-4368-bb6d-481dca8cfee4	\N	25a231ac-cc79-43f0-a8aa-00d34b6262a8	\N	\N	\N	Sys	SYS	System structure only	APPROVED	t	f	2024-03-04 16:18:39.52	test who	\N	\N	\N	\N
+3	0	c80cc24f-bdd9-4469-90fb-c28469ca301c	\N	\N	0ccfe162-7bf2-46f0-b670-910e9c7a0f99	\N	\N	Sys-AA1	SYS-AA1	System structure only	APPROVED	t	f	2024-03-04 16:18:39.858	test who	\N	\N	\N	\N
+4	0	34fdad07-44c3-4d6e-9821-ea78e9d9950a	\N	\N	4fe32787-9e4e-48df-b2d4-413b6310ddd8	\N	\N	Sys-AA2	SYS-AA2	System structure only	APPROVED	t	f	2024-03-04 16:18:39.858	test who	\N	\N	\N	\N
+5	0	eb39c613-f8cc-4e35-84be-a71eb6c4e371	\N	\N	921fd974-b02e-4535-9fa4-832e1f413a2f	\N	\N	Sys-AA3	SYS-AA3	System structure only	APPROVED	t	f	2024-03-04 16:18:39.858	test who	\N	\N	\N	\N
+6	0	f6cd08cb-8383-404d-bf24-72280e2fdfb2	\N	\N	d8c8a289-3b50-4d45-bff0-0ba6933235fd	\N	\N	Sys-AA4	SYS-AA4	System structure only	APPROVED	t	f	2024-03-04 16:18:39.858	test who	\N	\N	\N	\N
+7	0	4d8db96a-9a42-4901-9e56-5ae9f915a9fd	\N	\N	ca0d26d2-fcf0-4844-9509-9c60835857e1	\N	\N	Sys-AA5	SYS-AA5	System structure only	APPROVED	t	f	2024-03-04 16:18:39.858	test who	\N	\N	\N	\N
+8	0	8bdd044f-17bd-4846-ba10-49c5c4bb3418	\N	\N	ed15e5ff-0641-4185-9fb0-f43702a14350	\N	\N	Sys-AB1	SYS-AB1	System structure only	APPROVED	t	f	2024-03-04 16:18:39.95	test who	\N	\N	\N	\N
+9	0	067b4dd9-fd59-4786-8b65-58bb0177e3ce	\N	\N	8e158f4b-0ea5-4ca9-87ae-def88d72a647	\N	\N	Sys-AB2	SYS-AB2	System structure only	APPROVED	t	f	2024-03-04 16:18:39.95	test who	\N	\N	\N	\N
+10	0	b47a43f0-8991-4fc4-a6d1-0296578e1bff	\N	\N	b8e9bbfc-e3c4-4eef-883e-0e2d0709ec03	\N	\N	Sys-AB3	SYS-AB3	System structure only	APPROVED	t	f	2024-03-04 16:18:39.95	test who	\N	\N	\N	\N
+11	0	d84cce5c-a687-473f-b4bc-7512d4ac820f	\N	\N	d13ea971-d722-45ea-bbab-96c5e221a344	\N	\N	Sys-AB4	SYS-AB4	System structure only	APPROVED	t	f	2024-03-04 16:18:39.95	test who	\N	\N	\N	\N
+12	0	23937a8b-39a0-4193-a436-df45ad9cef88	\N	\N	63d701ba-555b-41fd-9810-9d87454aa1fa	\N	\N	Sys-AB5	SYS-AB5	System structure only	APPROVED	t	f	2024-03-04 16:18:39.95	test who	\N	\N	\N	\N
+18	0	809eec71-dd7c-4a26-a50c-85bf9c1ec6d3	\N	\N	9659c6e8-7d37-47d8-aaf6-eeb7ada222d1	\N	\N	Sys-AC1	SYS-AC1	System structure only	APPROVED	t	t	2024-03-04 16:18:40.261	test who	\N	\N	\N	\N
+13	1	809eec71-dd7c-4a26-a50c-85bf9c1ec6d3	\N	\N	9659c6e8-7d37-47d8-aaf6-eeb7ada222d1	\N	\N	Sys-AC1	SYS-AC1	System structure only	APPROVED	f	f	2024-03-04 16:18:40.157	test who	\N	\N	\N	\N
+19	0	e0bb293d-a1a4-4146-97ba-c5ca6e69cc48	\N	\N	0db3c127-d8f7-48ea-8af1-6433928f928b	\N	\N	Sys-AC2	SYS-AC2	System structure only	APPROVED	t	t	2024-03-04 16:18:40.272	test who	\N	\N	\N	\N
+14	1	e0bb293d-a1a4-4146-97ba-c5ca6e69cc48	\N	\N	0db3c127-d8f7-48ea-8af1-6433928f928b	\N	\N	Sys-AC2	SYS-AC2	System structure only	APPROVED	f	f	2024-03-04 16:18:40.157	test who	\N	\N	\N	\N
+20	0	4b013f5e-e25c-4936-8a37-e1c0ba0fb7b8	\N	\N	5d1164af-e155-433e-a8e6-1a60cbc315b8	\N	\N	Sys-AC3	SYS-AC3	System structure only	APPROVED	t	t	2024-03-04 16:18:40.282	test who	\N	\N	\N	\N
+15	1	4b013f5e-e25c-4936-8a37-e1c0ba0fb7b8	\N	\N	5d1164af-e155-433e-a8e6-1a60cbc315b8	\N	\N	Sys-AC3	SYS-AC3	System structure only	APPROVED	f	f	2024-03-04 16:18:40.157	test who	\N	\N	\N	\N
+21	0	665f4a7d-c678-4e01-9fce-3b3f5709a384	\N	\N	2542b027-513b-40bb-9be8-74fcb400459e	\N	\N	Sys-AC4	SYS-AC4	System structure only	APPROVED	t	t	2024-03-04 16:18:40.291	test who	\N	\N	\N	\N
+16	1	665f4a7d-c678-4e01-9fce-3b3f5709a384	\N	\N	2542b027-513b-40bb-9be8-74fcb400459e	\N	\N	Sys-AC4	SYS-AC4	System structure only	APPROVED	f	f	2024-03-04 16:18:40.157	test who	\N	\N	\N	\N
+22	0	96f51bac-74cf-49ca-a73f-9d4d411e2a1d	\N	\N	e1e4b087-c3d5-409f-9a5f-a9e9f84962fb	\N	\N	Sys-AC5	SYS-AC5	System structure only	APPROVED	t	t	2024-03-04 16:18:40.3	test who	\N	\N	\N	\N
+17	1	96f51bac-74cf-49ca-a73f-9d4d411e2a1d	\N	\N	e1e4b087-c3d5-409f-9a5f-a9e9f84962fb	\N	\N	Sys-AC5	SYS-AC5	System structure only	APPROVED	f	f	2024-03-04 16:18:40.157	test who	\N	\N	\N	\N
+28	0	91476425-714e-4ed4-bc93-d6a1087e4e61	\N	\N	2cb15615-72a4-48af-aa88-57fe20caaebe	\N	\N	Sys-AD1	SYS-AD1	System structure only	APPROVED	t	t	2024-03-04 16:18:40.48	test who	\N	\N	\N	\N
+23	1	91476425-714e-4ed4-bc93-d6a1087e4e61	\N	\N	2cb15615-72a4-48af-aa88-57fe20caaebe	\N	\N	Sys-AD1	SYS-AD1	System structure only	APPROVED	f	f	2024-03-04 16:18:40.361	test who	\N	\N	\N	\N
+29	0	e147bba9-4389-47d5-90d1-45672e947173	\N	\N	1c764e48-dbda-4d6a-baf0-013be384dce0	\N	\N	Sys-AD2	SYS-AD2	System structure only	APPROVED	t	t	2024-03-04 16:18:40.484	test who	\N	\N	\N	\N
+24	1	e147bba9-4389-47d5-90d1-45672e947173	\N	\N	1c764e48-dbda-4d6a-baf0-013be384dce0	\N	\N	Sys-AD2	SYS-AD2	System structure only	APPROVED	f	f	2024-03-04 16:18:40.361	test who	\N	\N	\N	\N
+30	0	0bfa9007-1399-418e-94b2-cff5185d09a3	\N	\N	700ff3d0-ec0f-41b0-9d0d-dfd4c8091b9d	\N	\N	Sys-AD3	SYS-AD3	System structure only	APPROVED	t	t	2024-03-04 16:18:40.488	test who	\N	\N	\N	\N
+25	1	0bfa9007-1399-418e-94b2-cff5185d09a3	\N	\N	700ff3d0-ec0f-41b0-9d0d-dfd4c8091b9d	\N	\N	Sys-AD3	SYS-AD3	System structure only	APPROVED	f	f	2024-03-04 16:18:40.361	test who	\N	\N	\N	\N
+31	0	7089a67c-5cad-40bb-8165-9fa7e7aa7eb4	\N	\N	ab167f84-7c67-4364-a6b7-42405d98cb69	\N	\N	Sys-AD4	SYS-AD4	System structure only	APPROVED	t	t	2024-03-04 16:18:40.491	test who	\N	\N	\N	\N
+26	1	7089a67c-5cad-40bb-8165-9fa7e7aa7eb4	\N	\N	ab167f84-7c67-4364-a6b7-42405d98cb69	\N	\N	Sys-AD4	SYS-AD4	System structure only	APPROVED	f	f	2024-03-04 16:18:40.361	test who	\N	\N	\N	\N
+32	0	25b75ada-e6c6-4255-9268-f940adfc1729	\N	\N	8f76876a-504e-4402-bd60-6bb4c60d4d29	\N	\N	Sys-AD5	SYS-AD5	System structure only	APPROVED	t	t	2024-03-04 16:18:40.496	test who	\N	\N	\N	\N
+27	1	25b75ada-e6c6-4255-9268-f940adfc1729	\N	\N	8f76876a-504e-4402-bd60-6bb4c60d4d29	\N	\N	Sys-AD5	SYS-AD5	System structure only	APPROVED	f	f	2024-03-04 16:18:40.361	test who	\N	\N	\N	\N
+33	0	dec7ecf7-b8a3-4bcd-a0bf-cce3def865c8	\N	\N	b8485a11-1c59-4ef5-876b-16a49512d457	\N	\N	Sys-AE1	SYS-AE1	System structure only	APPROVED	t	f	2024-03-04 16:18:40.556	test who	\N	\N	\N	\N
+34	0	5644b3da-abfa-45ff-beb6-68c4f87aa237	\N	\N	30fbb919-376d-40d2-9bd2-3c9fd7b952da	\N	\N	Sys-AE2	SYS-AE2	System structure only	APPROVED	t	f	2024-03-04 16:18:40.556	test who	\N	\N	\N	\N
+35	0	aaee4277-8fd0-46fc-b80d-bc87333a506d	\N	\N	89feee5b-5003-4dc6-a693-d0e2dd92112b	\N	\N	Sys-AE3	SYS-AE3	System structure only	APPROVED	t	f	2024-03-04 16:18:40.556	test who	\N	\N	\N	\N
+36	0	8813dbcd-0454-45f3-ac5d-24559042218e	\N	\N	f4eaf55f-01bb-4a37-8d61-56f576444dd7	\N	\N	Sys-AE4	SYS-AE4	System structure only	APPROVED	t	f	2024-03-04 16:18:40.556	test who	\N	\N	\N	\N
+37	0	1b7f2c10-5504-42cb-aaf4-2aa1230aafd8	\N	\N	87932c6c-909e-4165-a75d-2bc10db24415	\N	\N	Sys-AE5	SYS-AE5	System structure only	APPROVED	t	f	2024-03-04 16:18:40.556	test who	\N	\N	\N	\N
+43	0	523d31e4-fda3-4830-bb6a-d043b1a8fed6	\N	\N	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	\N	\N	Sys-AF1	SYS-AF1	System structure only	APPROVED	t	t	2024-03-04 16:18:41.008	test who	\N	\N	\N	\N
+38	1	523d31e4-fda3-4830-bb6a-d043b1a8fed6	\N	\N	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	\N	\N	Sys-AF1	SYS-AF1	System structure only	APPROVED	f	f	2024-03-04 16:18:40.822	test who	\N	\N	\N	\N
+44	0	8c59fa83-4f97-4225-86d7-5c7efc73cf75	\N	\N	0eb86e59-0afc-4a49-a554-4a449d1cec3d	\N	\N	Sys-AF2	SYS-AF2	System structure only	APPROVED	t	t	2024-03-04 16:18:41.012	test who	\N	\N	\N	\N
+39	1	8c59fa83-4f97-4225-86d7-5c7efc73cf75	\N	\N	0eb86e59-0afc-4a49-a554-4a449d1cec3d	\N	\N	Sys-AF2	SYS-AF2	System structure only	APPROVED	f	f	2024-03-04 16:18:40.822	test who	\N	\N	\N	\N
+45	0	fe412faa-2226-4bf0-82fb-96ada804a96f	\N	\N	efe208d0-4e11-4c28-b84c-f0d589448ccb	\N	\N	Sys-AF3	SYS-AF3	System structure only	APPROVED	t	t	2024-03-04 16:18:41.016	test who	\N	\N	\N	\N
+40	1	fe412faa-2226-4bf0-82fb-96ada804a96f	\N	\N	efe208d0-4e11-4c28-b84c-f0d589448ccb	\N	\N	Sys-AF3	SYS-AF3	System structure only	APPROVED	f	f	2024-03-04 16:18:40.822	test who	\N	\N	\N	\N
+46	0	767d91ec-0979-4a5f-a470-1d1898c83258	\N	\N	6746256a-3cfb-4b04-8250-29805a1fa4a4	\N	\N	Sys-AF4	SYS-AF4	System structure only	APPROVED	t	t	2024-03-04 16:18:41.019	test who	\N	\N	\N	\N
+41	1	767d91ec-0979-4a5f-a470-1d1898c83258	\N	\N	6746256a-3cfb-4b04-8250-29805a1fa4a4	\N	\N	Sys-AF4	SYS-AF4	System structure only	APPROVED	f	f	2024-03-04 16:18:40.822	test who	\N	\N	\N	\N
+47	0	c9a66287-5c79-4bb2-98f3-60cb9eb902b9	\N	\N	d2bac9ef-4a4a-43c4-855a-ba22d1005798	\N	\N	Sys-AF5	SYS-AF5	System structure only	APPROVED	t	t	2024-03-04 16:18:41.022	test who	\N	\N	\N	\N
+42	1	c9a66287-5c79-4bb2-98f3-60cb9eb902b9	\N	\N	d2bac9ef-4a4a-43c4-855a-ba22d1005798	\N	\N	Sys-AF5	SYS-AF5	System structure only	APPROVED	f	f	2024-03-04 16:18:40.822	test who	\N	\N	\N	\N
 \.
 
 
@@ -1050,7 +1097,7 @@ COPY public.name (id, version, uuid, systemgroup_uuid, system_uuid, subsystem_uu
 -- Name: name_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
 --
 
-SELECT pg_catalog.setval('public.name_id_seq', 1, true);
+SELECT pg_catalog.setval('public.name_id_seq', 47, true);
 
 
 --
@@ -1097,67 +1144,92 @@ SELECT pg_catalog.setval('public.namepartrevision_id_seq', 1, false);
 -- Data for Name: subsystem; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.subsystem (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	bf198d61-e4c8-4bfb-a782-e5febdca3434	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AA1	AA1	description	APPROVED	t	f	2024-01-02 14:10:10.623	test who	comment	2024-01-02 14:10:10.67	test who	comment
-2	1	93034f9f-4d46-4b97-b9f3-0dc3bebd1a44	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AA2	AA2	description	APPROVED	t	f	2024-01-02 14:10:10.71	test who	comment	2024-01-02 14:10:10.74	test who	comment
-3	1	191815db-f25f-4bdd-a296-81a69d82d6dc	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AA3	AA3	description	APPROVED	t	f	2024-01-02 14:10:10.777	test who	comment	2024-01-02 14:10:10.807	test who	comment
-4	1	b42fadc1-f6e1-4fbb-a687-e8df018db482	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AA4	AA4	description	APPROVED	t	f	2024-01-02 14:10:10.852	test who	comment	2024-01-02 14:10:10.88	test who	comment
-5	1	0721390f-05b3-4093-a954-7012084b2c24	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AA5	AA5	description	APPROVED	t	f	2024-01-02 14:10:10.912	test who	comment	2024-01-02 14:10:10.939	test who	comment
-6	1	80174ab5-f1e7-4c75-beb4-5542f153e98c	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AB1	AB1	description	CANCELLED	f	f	2024-01-02 14:10:10.977	test who	comment	2024-01-02 14:10:11.003	test who	comment
-7	1	6a354c12-82fe-4725-996e-3e8d7af24a97	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AB2	AB2	description	CANCELLED	f	f	2024-01-02 14:10:11.036	test who	comment	2024-01-02 14:10:11.071	test who	comment
-8	1	0582fadc-11c4-4fe2-b091-afc435c36343	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AB3	AB3	description	CANCELLED	f	f	2024-01-02 14:10:11.093	test who	comment	2024-01-02 14:10:11.116	test who	comment
-9	1	cba8ca99-0913-40f0-8d6c-9d0276ae652c	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AB4	AB4	description	CANCELLED	f	f	2024-01-02 14:10:11.139	test who	comment	2024-01-02 14:10:11.159	test who	comment
-10	1	e4cba52f-7f63-4347-b302-0fee6526ab71	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AB5	AB5	description	CANCELLED	f	f	2024-01-02 14:10:11.18	test who	comment	2024-01-02 14:10:11.2	test who	comment
-11	1	0b2929ab-a3b3-491b-b541-761d0f8a4527	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AC1	AC1	description	REJECTED	f	f	2024-01-02 14:10:11.224	test who	comment	2024-01-02 14:10:11.245	test who	comment
-12	1	4e52fa1d-2660-4855-9d3b-00e0cdf9ecdd	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AC2	AC2	description	REJECTED	f	f	2024-01-02 14:10:11.266	test who	comment	2024-01-02 14:10:11.285	test who	comment
-13	1	7db2efed-54b8-4b40-9bae-c44464661a80	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AC3	AC3	description	REJECTED	f	f	2024-01-02 14:10:11.31	test who	comment	2024-01-02 14:10:11.332	test who	comment
-14	1	dc3548fb-66f3-4258-b17b-ee5ab88445fe	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AC4	AC4	description	REJECTED	f	f	2024-01-02 14:10:11.353	test who	comment	2024-01-02 14:10:11.372	test who	comment
-15	1	231d8e96-3afd-497c-bef4-86437cf07cb9	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AC5	AC5	description	REJECTED	f	f	2024-01-02 14:10:11.394	test who	comment	2024-01-02 14:10:11.415	test who	comment
-16	0	c00924f0-6f2a-4296-b694-ec4eb845ae4c	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AD1	AD1	description	PENDING	f	f	2024-01-02 14:10:11.435	test who	comment	\N	\N	\N
-17	0	1ad22b9d-2d58-417f-b7c8-8a04e8ca9857	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AD2	AD2	description	PENDING	f	f	2024-01-02 14:10:11.459	test who	comment	\N	\N	\N
-18	0	cd976976-123a-47fb-8e05-06ecf348ad75	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AD3	AD3	description	PENDING	f	f	2024-01-02 14:10:11.491	test who	comment	\N	\N	\N
-19	0	3ed7a658-86f3-4684-9280-fea2c760596e	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AD4	AD4	description	PENDING	f	f	2024-01-02 14:10:11.517	test who	comment	\N	\N	\N
-20	0	9675d178-c7a8-4a03-906b-516b86cffa72	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AD5	AD5	description	PENDING	f	f	2024-01-02 14:10:11.537	test who	comment	\N	\N	\N
-21	2	49d97dc0-bfe6-4dd7-b1ec-511870ef8a9f	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE1	AE1	description	APPROVED	f	f	2024-01-02 14:10:11.557	test who	comment	2024-01-02 14:10:11.581	test who	comment
-22	2	49d97dc0-bfe6-4dd7-b1ec-511870ef8a9f	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE1	AE1	some other description	APPROVED	f	f	2024-01-02 14:10:11.624	test who	some other comment	2024-01-02 14:10:11.65	test who	some other comment
-23	1	49d97dc0-bfe6-4dd7-b1ec-511870ef8a9f	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE1	AE1	more description	APPROVED	t	f	2024-01-02 14:10:11.689	test who	more comment	2024-01-02 14:10:11.725	test who	more comment
-24	1	49d97dc0-bfe6-4dd7-b1ec-511870ef8a9f	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE1	AE1	more description	REJECTED	f	t	2024-01-02 14:10:11.763	test who	comment	2024-01-02 14:10:11.794	test who	comment
-25	2	8c9cefc9-549e-4ab2-8385-850b77dc51aa	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE2	AE2	description	APPROVED	f	f	2024-01-02 14:10:11.827	test who	comment	2024-01-02 14:10:11.857	test who	comment
-26	2	8c9cefc9-549e-4ab2-8385-850b77dc51aa	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE2	AE2	some other description	APPROVED	f	f	2024-01-02 14:10:11.89	test who	some other comment	2024-01-02 14:10:11.924	test who	some other comment
-27	1	8c9cefc9-549e-4ab2-8385-850b77dc51aa	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE2	AE2	more description	APPROVED	t	f	2024-01-02 14:10:11.957	test who	more comment	2024-01-02 14:10:11.984	test who	more comment
-28	1	8c9cefc9-549e-4ab2-8385-850b77dc51aa	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE2	AE2	more description	REJECTED	f	t	2024-01-02 14:10:12.005	test who	comment	2024-01-02 14:10:12.036	test who	comment
-29	2	a3b65288-9b15-4111-9c07-89ac0335c442	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE3	AE3	description	APPROVED	f	f	2024-01-02 14:10:12.069	test who	comment	2024-01-02 14:10:12.099	test who	comment
-30	2	a3b65288-9b15-4111-9c07-89ac0335c442	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE3	AE3	some other description	APPROVED	f	f	2024-01-02 14:10:12.128	test who	some other comment	2024-01-02 14:10:12.153	test who	some other comment
-31	1	a3b65288-9b15-4111-9c07-89ac0335c442	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE3	AE3	more description	APPROVED	t	f	2024-01-02 14:10:12.185	test who	more comment	2024-01-02 14:10:12.204	test who	more comment
-32	1	a3b65288-9b15-4111-9c07-89ac0335c442	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE3	AE3	more description	REJECTED	f	t	2024-01-02 14:10:12.224	test who	comment	2024-01-02 14:10:12.245	test who	comment
-33	2	73002440-4a1a-4d36-97c0-260ca06d41c4	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE4	AE4	description	APPROVED	f	f	2024-01-02 14:10:12.274	test who	comment	2024-01-02 14:10:12.301	test who	comment
-34	2	73002440-4a1a-4d36-97c0-260ca06d41c4	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE4	AE4	some other description	APPROVED	f	f	2024-01-02 14:10:12.33	test who	some other comment	2024-01-02 14:10:12.349	test who	some other comment
-35	1	73002440-4a1a-4d36-97c0-260ca06d41c4	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE4	AE4	more description	APPROVED	t	f	2024-01-02 14:10:12.368	test who	more comment	2024-01-02 14:10:12.386	test who	more comment
-36	1	73002440-4a1a-4d36-97c0-260ca06d41c4	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE4	AE4	more description	REJECTED	f	t	2024-01-02 14:10:12.413	test who	comment	2024-01-02 14:10:12.43	test who	comment
-37	2	9f768e3a-7643-44f2-b0ce-9c8ed41024d1	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE5	AE5	description	APPROVED	f	f	2024-01-02 14:10:12.45	test who	comment	2024-01-02 14:10:12.47	test who	comment
-38	2	9f768e3a-7643-44f2-b0ce-9c8ed41024d1	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE5	AE5	some other description	APPROVED	f	f	2024-01-02 14:10:12.496	test who	some other comment	2024-01-02 14:10:12.528	test who	some other comment
-39	1	9f768e3a-7643-44f2-b0ce-9c8ed41024d1	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE5	AE5	more description	APPROVED	t	f	2024-01-02 14:10:12.562	test who	more comment	2024-01-02 14:10:12.593	test who	more comment
-40	1	9f768e3a-7643-44f2-b0ce-9c8ed41024d1	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AE5	AE5	more description	REJECTED	f	t	2024-01-02 14:10:12.618	test who	comment	2024-01-02 14:10:12.643	test who	comment
-41	2	94635ca4-bf61-46e0-863f-84934a61117b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF1	AF1	description	APPROVED	f	f	2024-01-02 14:10:12.663	test who	comment	2024-01-02 14:10:12.69	test who	comment
-42	1	94635ca4-bf61-46e0-863f-84934a61117b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF1	AF1	description	APPROVED	t	t	2024-01-02 14:10:12.718	test who	comment	2024-01-02 14:10:12.745	test who	comment
-43	2	a50a7a4b-cb5e-40a1-b286-05012276dcc0	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF2	AF2	description	APPROVED	f	f	2024-01-02 14:10:12.768	test who	comment	2024-01-02 14:10:12.791	test who	comment
-44	1	a50a7a4b-cb5e-40a1-b286-05012276dcc0	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF2	AF2	description	APPROVED	t	t	2024-01-02 14:10:12.818	test who	comment	2024-01-02 14:10:12.837	test who	comment
-45	2	8c5bdae5-2b9b-4490-9e15-566739f36e1b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF3	AF3	description	APPROVED	f	f	2024-01-02 14:10:12.861	test who	comment	2024-01-02 14:10:12.888	test who	comment
-46	1	8c5bdae5-2b9b-4490-9e15-566739f36e1b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF3	AF3	description	APPROVED	t	t	2024-01-02 14:10:12.906	test who	comment	2024-01-02 14:10:12.924	test who	comment
-47	2	e48112ff-18b6-4691-bbcd-03be6b735a17	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF4	AF4	description	APPROVED	f	f	2024-01-02 14:10:12.949	test who	comment	2024-01-02 14:10:12.965	test who	comment
-48	1	e48112ff-18b6-4691-bbcd-03be6b735a17	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF4	AF4	description	APPROVED	t	t	2024-01-02 14:10:12.991	test who	comment	2024-01-02 14:10:13.009	test who	comment
-49	2	2da50b7c-185d-4f6e-8273-9f68943a7bc5	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF5	AF5	description	APPROVED	f	f	2024-01-02 14:10:13.03	test who	comment	2024-01-02 14:10:13.046	test who	comment
-50	1	2da50b7c-185d-4f6e-8273-9f68943a7bc5	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AF5	AF5	description	APPROVED	t	t	2024-01-02 14:10:13.063	test who	comment	2024-01-02 14:10:13.08	test who	comment
-51	1	c3d18240-319e-4915-86fc-2a45bc02f537	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG1	AG1	description	APPROVED	t	f	2024-01-02 14:10:13.1	test who	comment	2024-01-02 14:10:13.121	test who	comment
-52	0	c3d18240-319e-4915-86fc-2a45bc02f537	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG1	AG1	description	PENDING	f	t	2024-01-02 14:10:13.142	test who	comment	\N	\N	\N
-53	1	870b93f4-df90-4c03-8373-7ac5767256b8	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG2	AG2	description	APPROVED	t	f	2024-01-02 14:10:13.168	test who	comment	2024-01-02 14:10:13.191	test who	comment
-54	0	870b93f4-df90-4c03-8373-7ac5767256b8	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG2	AG2	description	PENDING	f	t	2024-01-02 14:10:13.208	test who	comment	\N	\N	\N
-55	1	ddc87e8d-6641-4159-ba2a-15180cb6c076	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG3	AG3	description	APPROVED	t	f	2024-01-02 14:10:13.225	test who	comment	2024-01-02 14:10:13.246	test who	comment
-56	0	ddc87e8d-6641-4159-ba2a-15180cb6c076	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG3	AG3	description	PENDING	f	t	2024-01-02 14:10:13.276	test who	comment	\N	\N	\N
-57	1	43906547-007d-4ac2-baa7-20b99b299ee3	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG4	AG4	description	APPROVED	t	f	2024-01-02 14:10:13.301	test who	comment	2024-01-02 14:10:13.321	test who	comment
-58	0	43906547-007d-4ac2-baa7-20b99b299ee3	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG4	AG4	description	PENDING	f	t	2024-01-02 14:10:13.343	test who	comment	\N	\N	\N
-59	1	43502b1d-5002-434e-b265-f7487cc8cc8b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG5	AG5	description	APPROVED	t	f	2024-01-02 14:10:13.363	test who	comment	2024-01-02 14:10:13.379	test who	comment
-60	0	43502b1d-5002-434e-b265-f7487cc8cc8b	dbf3b52d-d212-4ace-9b3a-099e8902beaf	name	AG5	AG5	description	PENDING	f	t	2024-01-02 14:10:13.396	test who	comment	\N	\N	\N
+COPY public.subsystem (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	0ccfe162-7bf2-46f0-b670-910e9c7a0f99	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AA1	AA1	1	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.858	test who	\N
+2	0	4fe32787-9e4e-48df-b2d4-413b6310ddd8	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AA2	AA2	1	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.858	test who	\N
+3	0	921fd974-b02e-4535-9fa4-832e1f413a2f	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AA3	AA3	1	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.858	test who	\N
+4	0	d8c8a289-3b50-4d45-bff0-0ba6933235fd	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AA4	AA4	1	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.858	test who	\N
+5	0	ca0d26d2-fcf0-4844-9509-9c60835857e1	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AA5	AA5	1	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.858	test who	\N
+11	0	ed15e5ff-0641-4185-9fb0-f43702a14350	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB1	AB1	2	some other description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.081	test who	\N
+6	1	ed15e5ff-0641-4185-9fb0-f43702a14350	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB1	AB1	2	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:39.95	test who	\N
+12	0	8e158f4b-0ea5-4ca9-87ae-def88d72a647	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB2	AB2	2	some other description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.081	test who	\N
+7	1	8e158f4b-0ea5-4ca9-87ae-def88d72a647	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB2	AB2	2	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:39.95	test who	\N
+13	0	b8e9bbfc-e3c4-4eef-883e-0e2d0709ec03	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB3	AB3	2	some other description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.081	test who	\N
+8	1	b8e9bbfc-e3c4-4eef-883e-0e2d0709ec03	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB3	AB3	2	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:39.95	test who	\N
+14	0	d13ea971-d722-45ea-bbab-96c5e221a344	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB4	AB4	2	some other description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.081	test who	\N
+9	1	d13ea971-d722-45ea-bbab-96c5e221a344	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB4	AB4	2	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:39.95	test who	\N
+15	0	63d701ba-555b-41fd-9810-9d87454aa1fa	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB5	AB5	2	some other description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.081	test who	\N
+10	1	63d701ba-555b-41fd-9810-9d87454aa1fa	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AB5	AB5	2	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:39.95	test who	\N
+21	0	9659c6e8-7d37-47d8-aaf6-eeb7ada222d1	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC1	AC1	3	description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.254	test who	\N
+16	1	9659c6e8-7d37-47d8-aaf6-eeb7ada222d1	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC1	AC1	3	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.157	test who	\N
+22	0	0db3c127-d8f7-48ea-8af1-6433928f928b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC2	AC2	3	description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.254	test who	\N
+17	1	0db3c127-d8f7-48ea-8af1-6433928f928b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC2	AC2	3	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.157	test who	\N
+23	0	5d1164af-e155-433e-a8e6-1a60cbc315b8	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC3	AC3	3	description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.254	test who	\N
+18	1	5d1164af-e155-433e-a8e6-1a60cbc315b8	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC3	AC3	3	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.157	test who	\N
+24	0	2542b027-513b-40bb-9be8-74fcb400459e	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC4	AC4	3	description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.254	test who	\N
+19	1	2542b027-513b-40bb-9be8-74fcb400459e	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC4	AC4	3	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.157	test who	\N
+25	0	e1e4b087-c3d5-409f-9a5f-a9e9f84962fb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC5	AC5	3	description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.254	test who	\N
+20	1	e1e4b087-c3d5-409f-9a5f-a9e9f84962fb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AC5	AC5	3	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.157	test who	\N
+26	1	2cb15615-72a4-48af-aa88-57fe20caaebe	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD1	AD1	4	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.361	test who	\N
+27	1	1c764e48-dbda-4d6a-baf0-013be384dce0	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD2	AD2	4	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.361	test who	\N
+28	1	700ff3d0-ec0f-41b0-9d0d-dfd4c8091b9d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD3	AD3	4	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.361	test who	\N
+29	1	ab167f84-7c67-4364-a6b7-42405d98cb69	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD4	AD4	4	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.361	test who	\N
+30	1	8f76876a-504e-4402-bd60-6bb4c60d4d29	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD5	AD5	4	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.361	test who	\N
+36	0	2cb15615-72a4-48af-aa88-57fe20caaebe	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD1	AD1	4	some other description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.478	test who	\N
+31	1	2cb15615-72a4-48af-aa88-57fe20caaebe	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD1	AD1	4	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.43	test who	\N
+37	0	1c764e48-dbda-4d6a-baf0-013be384dce0	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD2	AD2	4	some other description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.478	test who	\N
+32	1	1c764e48-dbda-4d6a-baf0-013be384dce0	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD2	AD2	4	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.43	test who	\N
+38	0	700ff3d0-ec0f-41b0-9d0d-dfd4c8091b9d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD3	AD3	4	some other description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.478	test who	\N
+33	1	700ff3d0-ec0f-41b0-9d0d-dfd4c8091b9d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD3	AD3	4	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.43	test who	\N
+39	0	ab167f84-7c67-4364-a6b7-42405d98cb69	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD4	AD4	4	some other description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.478	test who	\N
+34	1	ab167f84-7c67-4364-a6b7-42405d98cb69	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD4	AD4	4	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.43	test who	\N
+40	0	8f76876a-504e-4402-bd60-6bb4c60d4d29	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD5	AD5	4	some other description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:40.478	test who	\N
+35	1	8f76876a-504e-4402-bd60-6bb4c60d4d29	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AD5	AD5	4	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.43	test who	\N
+41	1	b8485a11-1c59-4ef5-876b-16a49512d457	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE1	AE1	5	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.556	test who	\N
+42	1	30fbb919-376d-40d2-9bd2-3c9fd7b952da	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE2	AE2	5	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.556	test who	\N
+43	1	89feee5b-5003-4dc6-a693-d0e2dd92112b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE3	AE3	5	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.556	test who	\N
+44	1	f4eaf55f-01bb-4a37-8d61-56f576444dd7	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE4	AE4	5	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.556	test who	\N
+45	1	87932c6c-909e-4165-a75d-2bc10db24415	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE5	AE5	5	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.556	test who	\N
+46	1	b8485a11-1c59-4ef5-876b-16a49512d457	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE1	AE1	5	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.633	test who	\N
+47	1	30fbb919-376d-40d2-9bd2-3c9fd7b952da	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE2	AE2	5	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.633	test who	\N
+48	1	89feee5b-5003-4dc6-a693-d0e2dd92112b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE3	AE3	5	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.633	test who	\N
+49	1	f4eaf55f-01bb-4a37-8d61-56f576444dd7	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE4	AE4	5	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.633	test who	\N
+50	1	87932c6c-909e-4165-a75d-2bc10db24415	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE5	AE5	5	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.633	test who	\N
+56	0	b8485a11-1c59-4ef5-876b-16a49512d457	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE1	AE1	5	yet another description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.768	test who	\N
+51	1	b8485a11-1c59-4ef5-876b-16a49512d457	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE1	AE1	5	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.698	test who	\N
+57	0	30fbb919-376d-40d2-9bd2-3c9fd7b952da	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE2	AE2	5	yet another description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.768	test who	\N
+52	1	30fbb919-376d-40d2-9bd2-3c9fd7b952da	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE2	AE2	5	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.698	test who	\N
+58	0	89feee5b-5003-4dc6-a693-d0e2dd92112b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE3	AE3	5	yet another description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.768	test who	\N
+53	1	89feee5b-5003-4dc6-a693-d0e2dd92112b	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE3	AE3	5	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.698	test who	\N
+59	0	f4eaf55f-01bb-4a37-8d61-56f576444dd7	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE4	AE4	5	yet another description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.768	test who	\N
+54	1	f4eaf55f-01bb-4a37-8d61-56f576444dd7	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE4	AE4	5	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.698	test who	\N
+60	0	87932c6c-909e-4165-a75d-2bc10db24415	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE5	AE5	5	yet another description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:40.768	test who	\N
+55	1	87932c6c-909e-4165-a75d-2bc10db24415	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AE5	AE5	5	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.698	test who	\N
+61	1	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF1	AF1	6	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.822	test who	\N
+62	1	0eb86e59-0afc-4a49-a554-4a449d1cec3d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF2	AF2	6	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.822	test who	\N
+63	1	efe208d0-4e11-4c28-b84c-f0d589448ccb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF3	AF3	6	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.822	test who	\N
+64	1	6746256a-3cfb-4b04-8250-29805a1fa4a4	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF4	AF4	6	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.822	test who	\N
+65	1	d2bac9ef-4a4a-43c4-855a-ba22d1005798	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF5	AF5	6	description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.822	test who	\N
+66	1	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF1	AF1	6	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.872	test who	\N
+67	1	0eb86e59-0afc-4a49-a554-4a449d1cec3d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF2	AF2	6	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.872	test who	\N
+68	1	efe208d0-4e11-4c28-b84c-f0d589448ccb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF3	AF3	6	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.872	test who	\N
+69	1	6746256a-3cfb-4b04-8250-29805a1fa4a4	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF4	AF4	6	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.872	test who	\N
+71	1	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF1	AF1	6	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.921	test who	\N
+72	1	0eb86e59-0afc-4a49-a554-4a449d1cec3d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF2	AF2	6	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.921	test who	\N
+73	1	efe208d0-4e11-4c28-b84c-f0d589448ccb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF3	AF3	6	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.921	test who	\N
+74	1	6746256a-3cfb-4b04-8250-29805a1fa4a4	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF4	AF4	6	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.921	test who	\N
+75	1	d2bac9ef-4a4a-43c4-855a-ba22d1005798	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF5	AF5	6	more description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.921	test who	\N
+70	1	d2bac9ef-4a4a-43c4-855a-ba22d1005798	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF5	AF5	6	some other description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.872	test who	\N
+81	0	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF1	AF1	6	yet another description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:41.006	test who	\N
+76	1	9ce444c8-4dd9-4456-84fa-ff3f60a6dbf3	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF1	AF1	6	yet another description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.959	test who	\N
+82	0	0eb86e59-0afc-4a49-a554-4a449d1cec3d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF2	AF2	6	yet another description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:41.006	test who	\N
+77	1	0eb86e59-0afc-4a49-a554-4a449d1cec3d	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF2	AF2	6	yet another description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.959	test who	\N
+83	0	efe208d0-4e11-4c28-b84c-f0d589448ccb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF3	AF3	6	yet another description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:41.006	test who	\N
+78	1	efe208d0-4e11-4c28-b84c-f0d589448ccb	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF3	AF3	6	yet another description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.959	test who	\N
+84	0	6746256a-3cfb-4b04-8250-29805a1fa4a4	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF4	AF4	6	yet another description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:41.006	test who	\N
+79	1	6746256a-3cfb-4b04-8250-29805a1fa4a4	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF4	AF4	6	yet another description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.959	test who	\N
+85	0	d2bac9ef-4a4a-43c4-855a-ba22d1005798	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF5	AF5	6	yet another description	APPROVED	t	t	\N	\N	\N	2024-03-04 16:18:41.006	test who	\N
+80	1	d2bac9ef-4a4a-43c4-855a-ba22d1005798	25a231ac-cc79-43f0-a8aa-00d34b6262a8	AF5	AF5	6	yet another description	APPROVED	f	f	\N	\N	\N	2024-03-04 16:18:40.959	test who	\N
 \.
 
 
@@ -1167,7 +1239,7 @@ COPY public.subsystem (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_
 -- Name: subsystem_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
 --
 
-SELECT pg_catalog.setval('public.subsystem_id_seq', 60, true);
+SELECT pg_catalog.setval('public.subsystem_id_seq', 85, true);
 
 
 --
@@ -1176,8 +1248,8 @@ SELECT pg_catalog.setval('public.subsystem_id_seq', 60, true);
 -- Data for Name: system; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.system (id, version, uuid, parent_uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	dbf3b52d-d212-4ace-9b3a-099e8902beaf	944db2b0-a880-4289-b1c2-b7aa98cab1b2	name	Sys	SYS	description	APPROVED	t	f	2024-01-02 14:10:10.492	test who	comment	2024-01-02 14:10:10.563	test who	comment
+COPY public.system (id, version, uuid, parent_uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	25a231ac-cc79-43f0-a8aa-00d34b6262a8	b3f5b914-9607-4df8-a701-553f4d238e1e	Sys	SYS	\N	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:39.52	test who	\N
 \.
 
 
@@ -1196,8 +1268,8 @@ SELECT pg_catalog.setval('public.system_id_seq', 1, true);
 -- Data for Name: systemgroup; Type: TABLE DATA; Schema: public; Owner: -
 --
 
-COPY public.systemgroup (id, version, uuid, name, mnemonic, mnemonic_equivalence, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
-1	1	944db2b0-a880-4289-b1c2-b7aa98cab1b2	name	Sg	SG	description	APPROVED	t	f	2024-01-02 14:10:10.057	test who	comment	2024-01-02 14:10:10.373	test who	comment
+COPY public.systemgroup (id, version, uuid, mnemonic, mnemonic_equivalence, ordering, description, status, latest, deleted, requested, requested_by, requested_comment, processed, processed_by, processed_comment) FROM stdin;
+1	0	b3f5b914-9607-4df8-a701-553f4d238e1e	Sg	SG	\N	description	APPROVED	t	f	\N	\N	\N	2024-03-04 16:18:38.976	test who	\N
 \.
 
 
@@ -1303,7 +1375,7 @@ ALTER TABLE ONLY public.discipline
 
 
 --
--- TOC entry 2190 (class 2606 OID 16620)
+-- TOC entry 2187 (class 2606 OID 16620)
 -- Name: name name_pk; Type: CONSTRAINT; Schema: public; Owner: -
 --
 
@@ -1551,59 +1623,59 @@ CREATE INDEX name_deleted_idx ON public.name USING btree (deleted);
 
 
 --
--- TOC entry 2183 (class 1259 OID 16571)
--- Name: name_id_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2183 (class 1259 OID 16575)
+-- Name: name_devicetype_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_id_idx ON public.name USING btree (id);
+CREATE INDEX name_devicetype_uuid_idx ON public.name USING btree (devicetype_uuid);
 
 
 --
--- TOC entry 2184 (class 1259 OID 16585)
--- Name: name_latest_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2184 (class 1259 OID 16571)
+-- Name: name_id_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_latest_idx ON public.name USING btree (latest);
+CREATE INDEX name_id_idx ON public.name USING btree (id);
 
 
 --
--- TOC entry 2185 (class 1259 OID 16575)
--- Name: name_namepartrevision_devicetype_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2185 (class 1259 OID 16585)
+-- Name: name_latest_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_devicetype_uuid_idx ON public.name USING btree (devicetype_uuid);
+CREATE INDEX name_latest_idx ON public.name USING btree (latest);
 
 
 --
--- TOC entry 2186 (class 1259 OID 16574)
--- Name: name_namepartrevision_subsystem_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2188 (class 1259 OID 16577)
+-- Name: name_status_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_subsystem_uuid_idx ON public.name USING btree (subsystem_uuid);
+CREATE INDEX name_status_idx ON public.name USING btree (status);
 
 
 --
--- TOC entry 2187 (class 1259 OID 16573)
--- Name: name_namepartrevision_system_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2189 (class 1259 OID 16574)
+-- Name: name_subsystem_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_system_uuid_idx ON public.name USING btree (system_uuid);
+CREATE INDEX name_subsystem_uuid_idx ON public.name USING btree (subsystem_uuid);
 
 
 --
--- TOC entry 2188 (class 1259 OID 16572)
--- Name: name_namepartrevision_systemgroup_uuid_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2190 (class 1259 OID 16573)
+-- Name: name_system_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_namepartrevision_systemgroup_uuid_idx ON public.name USING btree (systemgroup_uuid);
+CREATE INDEX name_system_uuid_idx ON public.name USING btree (system_uuid);
 
 
 --
--- TOC entry 2191 (class 1259 OID 16577)
--- Name: name_status_idx; Type: INDEX; Schema: public; Owner: -
+-- TOC entry 2191 (class 1259 OID 16572)
+-- Name: name_systemgroup_uuid_idx; Type: INDEX; Schema: public; Owner: -
 --
 
-CREATE INDEX name_status_idx ON public.name USING btree (status);
+CREATE INDEX name_systemgroup_uuid_idx ON public.name USING btree (systemgroup_uuid);
 
 
 --
@@ -1846,7 +1918,7 @@ ALTER TABLE ONLY public.namepartrevision
     ADD CONSTRAINT fk_lufxqy46l9eiq55d445rbukag FOREIGN KEY (parent_id) REFERENCES public.namepart(id);
 
 
--- Completed on 2024-01-02 15:16:38 CET
+-- Completed on 2024-03-04 17:19:26 CET
 
 --
 -- PostgreSQL database dump complete