diff --git a/docs/verification/Schema_data_migration.txt b/docs/verification/Schema_data_migration.txt
index 3110a96bd94b2a3fe6057711351600dd442a4134..fcb011f04165d544e33069d36f10636e5dd259f9 100644
--- a/docs/verification/Schema_data_migration.txt
+++ b/docs/verification/Schema_data_migration.txt
@@ -725,15 +725,10 @@ AS
 $$
 DECLARE
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic);
-    elsif system_mnemonic is not null then
+    if system_mnemonic is not null then
         return system_mnemonic;
     else
         return null;
@@ -750,19 +745,12 @@ DECLARE
     subsystem_mnemonic text;
     system_uuid text;
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
     select parent_uuid, mnemonic into system_uuid, subsystem_mnemonic from subsystem where uuid = subsystem_uuid and latest = true;
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null and subsystem_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic, '-', subsystem_mnemonic);
-    elsif system_mnemonic is not null and subsystem_mnemonic is not null then
+    if system_mnemonic is not null and subsystem_mnemonic is not null then
         return concat(system_mnemonic, '-', subsystem_mnemonic);
-    elsif subsystem_mnemonic is not null then
-        return subsystem_mnemonic;
     else
         return null;
     end if;
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index e5033d327719493df39ae8db083604f8a81a7cbc..33ab1437cf3487cef933dca6fea74e7b7ee190b6 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -941,12 +941,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -964,12 +967,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1015,12 +1021,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1038,12 +1047,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1089,12 +1101,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1112,12 +1127,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index b9db0bcf7e46c0ba2f6a938c35ced024d5166671..6cbf0be2670a868d2cbee00fd8c829f27d986ffd 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -944,12 +944,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -967,12 +970,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        1, 1);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1018,12 +1024,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1041,12 +1050,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1092,12 +1104,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1115,12 +1130,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index 5349c447f16ed64cee4aa4371061d865d6f49063..5ad6aed10ec9beecf8974536ab8adbe9d1dca3b2 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -896,10 +896,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -918,10 +918,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     1, 1);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
@@ -968,10 +968,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -990,10 +990,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1040,10 +1040,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1062,10 +1062,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index de7a9e40fec78363669b7a6eb193b78f2c6177ba..76de6b5a72cfc45e18f02d6cf8dc8ba891a449d0 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -950,11 +950,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rsha",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rsha",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -973,12 +982,21 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",            1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rsha",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rsha",    1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1024,11 +1042,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshc",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshc",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1047,11 +1074,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshc",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshc",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1098,11 +1134,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshr",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshr",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1121,11 +1166,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshr",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshr",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index b181d59f0eda19a9ecab742309a3565959fd63ec..2493245c1de40717135b30bf5fd28919d1124801 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -942,10 +942,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -964,10 +964,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     1, 1);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), 1, 1);
@@ -1014,10 +1014,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1036,10 +1036,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1086,10 +1086,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1108,10 +1108,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index daeb89d261185d223ce75ad838c5d28a3a554329..dd482fa5108d8bb414b4fcb7309cd9762dfdabd9 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -938,12 +938,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha", 0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rsha",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -961,12 +964,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        1, 1);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",            1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rsha",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1012,12 +1018,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",   0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",   0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshc",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1035,12 +1044,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshc",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1086,12 +1098,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshr",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1109,12 +1124,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshr",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql b/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
index 3110a96bd94b2a3fe6057711351600dd442a4134..fcb011f04165d544e33069d36f10636e5dd259f9 100644
--- a/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
+++ b/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
@@ -725,15 +725,10 @@ AS
 $$
 DECLARE
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic);
-    elsif system_mnemonic is not null then
+    if system_mnemonic is not null then
         return system_mnemonic;
     else
         return null;
@@ -750,19 +745,12 @@ DECLARE
     subsystem_mnemonic text;
     system_uuid text;
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
     select parent_uuid, mnemonic into system_uuid, subsystem_mnemonic from subsystem where uuid = subsystem_uuid and latest = true;
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null and subsystem_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic, '-', subsystem_mnemonic);
-    elsif system_mnemonic is not null and subsystem_mnemonic is not null then
+    if system_mnemonic is not null and subsystem_mnemonic is not null then
         return concat(system_mnemonic, '-', subsystem_mnemonic);
-    elsif subsystem_mnemonic is not null then
-        return subsystem_mnemonic;
     else
         return null;
     end if;