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 cbacb2aaf890abf6fb1a2e17f62a56b82fc1b5ee..4a0771fa3966e719983921208ff668619c2e460c 100644
--- a/src/main/java/org/openepics/names/rest/controller/NamesController.java
+++ b/src/main/java/org/openepics/names/rest/controller/NamesController.java
@@ -36,6 +36,8 @@ import org.openepics.names.service.LogService;
 import org.openepics.names.service.NamesService;
 import org.openepics.names.util.ExcelUtil;
 import org.openepics.names.util.TextUtil;
+import org.openepics.names.util.ValidateNameElementUtil;
+import org.openepics.names.util.ValidateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.core.io.InputStreamResource;
@@ -58,15 +60,18 @@ import com.google.common.collect.Lists;
 @EnableAutoConfiguration
 public class NamesController implements INames {
 
-    // note
-    //     global exception handler available
-    //
     // TODO validate authority
     //          either
     //              none
     //              naming user
     //              naming admin (& user)
 
+    // note
+    //     global exception handler available
+    //     controller layer to call validation prior to invoking service layer
+    //         business logic may be validation
+    //         different kinds of validation
+
     private static final Logger LOGGER = Logger.getLogger(NamesController.class.getName());
 
     private static final String ATTACHMENT_FILENAME_NAME_ELEMENT_XLSX = "attachment; filename=NameElement.xlsx";
@@ -143,9 +148,16 @@ public class NamesController implements INames {
     public ResponsePageNameElements readNames(Boolean deleted,
             String uuid, String name, String nameequivalence, String systemstructure, String devicestructure, String index, String description,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateNameElementUtil.validateNamesInputRead(
+                    deleted,
+                    uuid, name, nameequivalence, systemstructure, devicestructure, description,
+                    null,
+                    orderBy, isAsc,
+                    page, pageSize);
             return namesService.readNames(deleted,
                     uuid, name, nameequivalence, systemstructure, devicestructure, index, description,
                     orderBy, isAsc, page, pageSize);
@@ -163,6 +175,7 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> readNamesDownload(Boolean deleted,
             String uuid, String name, String nameequivalence, String systemstructure, String devicestructure, String index, String description,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
         // convert to output
 
@@ -179,9 +192,11 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNames(String name,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputName(name);
             return namesService.readNames(name, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -196,9 +211,11 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesSystemStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputMnemonicpath(mnemonicpath);
             return namesService.readNamesSystemStructure(mnemonicpath,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -214,9 +231,11 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesDeviceStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputMnemonicpath(mnemonicpath);
             return namesService.readNamesDeviceStructure(mnemonicpath,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -232,9 +251,11 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesHistory(String uuid,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputUuid(uuid);
             return namesService.readNamesHistory(uuid,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -251,9 +272,11 @@ public class NamesController implements INames {
 
     @Override
     public String equivalenceName(String name) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputName(name);
             return namesService.equivalenceName(name);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -267,9 +290,11 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> existsName(String name) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputName(name);
             return new ResponseEntity<>(new ResponseBoolean(namesService.existsName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -283,9 +308,11 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> isLegacyName(String name) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputName(name);
             return new ResponseEntity<>(new ResponseBoolean(namesService.isLegacyName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -299,9 +326,11 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> isValidToCreateName(String name) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputName(name);
             return new ResponseEntity<>(new ResponseBoolean(namesService.isValidToCreateName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
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 02d0aa6ba76849b942273c35310811f9eeda9666..98116510458928caa50026fd81e42256a0522571 100644
--- a/src/main/java/org/openepics/names/rest/controller/StructuresController.java
+++ b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
@@ -38,6 +38,8 @@ import org.openepics.names.service.LogService;
 import org.openepics.names.service.StructuresService;
 import org.openepics.names.util.ExcelUtil;
 import org.openepics.names.util.TextUtil;
+import org.openepics.names.util.ValidateStructureElementUtil;
+import org.openepics.names.util.ValidateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.core.io.InputStreamResource;
@@ -60,15 +62,18 @@ import com.google.common.collect.Lists;
 @EnableAutoConfiguration
 public class StructuresController implements IStructures {
 
-    // note
-    //     global exception handler available
-    //
     // TODO validate authority
     //          either
     //              none
     //              naming user
     //              naming admin (& user)
 
+    // note
+    //     global exception handler available
+    //     controller layer to call validation prior to invoking service layer
+    //         business logic may be validation
+    //         different kinds of validation
+
     private static final Logger LOGGER = Logger.getLogger(StructuresController.class.getName());
 
     private static final String ATTACHMENT_FILENAME_STRUCTURE_ELEMENT_XLSX = "attachment; filename=StructureElement.xlsx";
@@ -145,9 +150,13 @@ public class StructuresController implements IStructures {
     public ResponsePageStructureElements readStructures(Type type, Status[] statuses, Boolean deleted,
             String uuid, String parentuuid, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateStructureElementUtil.validateStructuresInputRead(type, statuses, deleted,
+                    uuid, parentuuid, name, mnemonic, mnemonicequivalence, mnemonicpath, description,
+                    null, orderBy, isAsc, page, pageSize);
             return structuresService.readStructures(type, statuses, deleted,
                     uuid, parentuuid, name, mnemonic, mnemonicequivalence, mnemonicpath, description,
                     orderBy, isAsc, page, pageSize);
@@ -165,6 +174,7 @@ public class StructuresController implements IStructures {
     public ResponseEntity<Resource> readStructuresDownload(Type type, Status[] statuses, Boolean deleted,
             String uuid, String parentuuid, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
         // convert to output
 
@@ -182,9 +192,11 @@ public class StructuresController implements IStructures {
     public ResponsePageStructureElements readStructuresChildren(String uuid, Type type, Status[] statuses, Boolean deleted,
             String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputUuid(uuid);
             return structuresService.readStructuresChildren(uuid, type, statuses, deleted,
                     name, mnemonic, mnemonicequivalence, mnemonicpath, description,
                     orderBy, isAsc, page, pageSize);
@@ -201,9 +213,11 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresMnemonic(String mnemonic,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputMnemonic(mnemonic);
             return structuresService.readStructuresMnemonic(mnemonic, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -218,9 +232,11 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresMnemonicpath(String mnemonicpath,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputMnemonicpath(mnemonicpath);
             return structuresService.readStructuresMnemonicpath(mnemonicpath, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -235,9 +251,11 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresHistory(String uuid, Type type,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputUuid(uuid);
             return structuresService.readStructuresHistory(uuid, type,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -254,9 +272,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public String equivalenceMnemonic(String mnemonic) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputMnemonic(mnemonic);
             return structuresService.equivalenceMnemonic(mnemonic);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -270,9 +290,12 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBoolean> existsStructure(Type type, String mnemonicpath) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputType(type);
+            ValidateUtil.validateInputMnemonicpath(mnemonicpath);
             return new ResponseEntity<>(new ResponseBoolean(structuresService.existsStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
@@ -286,9 +309,12 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBoolean> isValidToCreateStructure(Type type, String mnemonicpath) {
+        // validate
         // do
 
         try {
+            ValidateUtil.validateInputType(type);
+            ValidateUtil.validateInputMnemonicpath(mnemonicpath);
             return new ResponseEntity<>(new ResponseBoolean(structuresService.isValidToCreateStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
             logService.logServiceException(LOGGER, Level.WARNING, e);
diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java
index 16e3b40ce10bfa1c0ed4884f30bb869f2f019600..5135ff22dd3b09606137414a7c39e4025326d8ef 100644
--- a/src/main/java/org/openepics/names/service/NamesService.java
+++ b/src/main/java/org/openepics/names/service/NamesService.java
@@ -224,6 +224,11 @@ public class NamesService {
     public ResponsePageNameElements readNames(Boolean deleted,
             String uuid, String name, String nameequivalence, String systemstructure, String devicestructure, String index, String description,
             Boolean includeHistory, FieldName orderBy, Boolean isAsc, Integer offset, Integer limit) {
+        // validation outside method
+        // do
+        //     read names
+        // return
+        //     name elements for names
 
         LOGGER.log(Level.FINE, "readNames, deleted:         {0}", deleted);
         LOGGER.log(Level.FINE, "readNames, uuid:            {0}", uuid);
@@ -239,22 +244,6 @@ public class NamesService {
         LOGGER.log(Level.FINE, "readNames, offset:          {0}", offset);
         LOGGER.log(Level.FINE, "readNames, limit:           {0}", limit);
 
-        // validate input
-        //     queryFields and queryValues
-        //         uuid
-        // do
-        //     read names
-        // return
-        //     name elements for names
-
-        // validate input
-        ValidateNameElementUtil.validateNamesInputRead(
-                deleted,
-                uuid, name, nameequivalence, systemstructure, devicestructure, description,
-                includeHistory,
-                orderBy, isAsc,
-                offset, limit);
-
         // do
         List<Name> names = nameRepository.readNames(deleted, uuid, name, nameequivalence, systemstructure, devicestructure, index, description, includeHistory, orderBy, isAsc, offset, limit);
         Long totalCount = nameRepository.countNames(deleted, uuid, name, nameequivalence, systemstructure, devicestructure, index, description, includeHistory);
@@ -271,19 +260,13 @@ public class NamesService {
 
     public ResponsePageNameElements readNames(String name,
             FieldName orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        LOGGER.log(Level.FINE, "readNames, name: {0}", name);
-
-        // validate input
-        //     name or uuid
-        //     to work with both uuid and name
+        // validation outside method
         // do
         //     name or uuid
         // return
         //     name elements
 
-        // validate input
-        ValidateUtil.validateInputName(name);
+        LOGGER.log(Level.FINE, "readNames, name: {0}", name);
 
         // do
         final List<NameElement> nameElements = Lists.newArrayList();
@@ -305,18 +288,13 @@ public class NamesService {
 
     public ResponsePageNameElements readNamesSystemStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        LOGGER.log(Level.FINE, "readNamesSystemStructure, mnemonicpath: {0}", mnemonicpath);
-
-        // validate input
-        //     mnemonic path
+        // validation outside method
         // do
         //     mnemonic path
         // return
         //     name elements
 
-        // validate input
-        ValidateUtil.validateInputMnemonicpath(mnemonicpath);
+        LOGGER.log(Level.FINE, "readNamesSystemStructure, mnemonicpath: {0}", mnemonicpath);
 
         // do
         return readNames(false,
@@ -326,18 +304,13 @@ public class NamesService {
 
     public ResponsePageNameElements readNamesDeviceStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        LOGGER.log(Level.FINE, "readNamesDeviceStructure, mnemonicpath: {0}", mnemonicpath);
-
-        // validate input
-        //     mnemonic path
+        // validation outside method
         // do
         //     mnemonic path
         // return
         //     name elements
 
-        // validate input
-        ValidateUtil.validateInputMnemonicpath(mnemonicpath);
+        LOGGER.log(Level.FINE, "readNamesDeviceStructure, mnemonicpath: {0}", mnemonicpath);
 
         // do
         return readNames(false,
@@ -347,19 +320,13 @@ public class NamesService {
 
     public ResponsePageNameElements readNamesHistory(String uuid,
             FieldName orderBy, Boolean isAsc, Integer offset, Integer limit) {
-        LOGGER.log(Level.FINE, "readNamesHistory, uuid: {0}", uuid);
-
-        // note
-        //     HolderIRepositories and HolderSystemDeviceStructure may or may not be used for preparation of what to return
-        // validate input
-        //     uuid
+        // validation outside method
         // do
         //     read history for name
         // return
         //     name elements for names
 
-        // validate input
-        ValidateUtil.validateInputUuid(uuid);
+        LOGGER.log(Level.FINE, "readNamesHistory, uuid: {0}", uuid);
 
         // do
         return readNames(null,
@@ -370,28 +337,22 @@ public class NamesService {
     // ----------------------------------------------------------------------------------------------------
 
     public String equivalenceName(String name) {
-        LOGGER.log(Level.FINE, "equivalenceName, name: {0}", name);
-
-        // validate input
+        // validation outside method
         // do
-        //     exists
+        //     input available
 
-        // validate input
-        ValidateUtil.validateInputName(name);
+        LOGGER.log(Level.FINE, "equivalenceName, name: {0}", name);
 
         // do
         return namingConvention.equivalenceClassRepresentative(name);
     }
 
     public Boolean existsName(String name) {
-        LOGGER.log(Level.FINE, "existsName, name: {0}", name);
-
-        // validate input
+        // validation outside method
         // do
         //     exists
 
-        // validate input
-        ValidateUtil.validateInputName(name);
+        LOGGER.log(Level.FINE, "existsName, name: {0}", name);
 
         // do
         List<Name> names = nameRepository.readNames(false,
@@ -400,14 +361,11 @@ public class NamesService {
     }
 
     public Boolean isLegacyName(String name) {
-        LOGGER.log(Level.FINE, "isLegacyName, name: {0}", name);
-
-        // validate input
+        // validation outside method
         // do
         //     name exists but either parent does not exist (latest, not deleted, by uuid)
 
-        // validate input
-        ValidateUtil.validateInputName(name);
+        LOGGER.log(Level.FINE, "isLegacyName, name: {0}", name);
 
         // do
         List<Name> names = nameRepository.readNames(false, null, name, null, null, null, null, null);
@@ -482,20 +440,18 @@ public class NamesService {
     }
 
     public Boolean isValidToCreateName(String name) {
-        LOGGER.log(Level.FINE, "isValidToCreateName, name: {0}", name);
-
-        // validate input
-        // validate data
-        //     not exists
+        // validation outside method
+        // do
+        //     validate data
+        //         not exists
 
-        // validate input
-        ValidateUtil.validateInputName(name);
+        LOGGER.log(Level.FINE, "isValidToCreateName, name: {0}", name);
 
         // initiate holder of containers for system and device structure content, for performance reasons
         //     note false to not include deleted entries
         HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories, false);
 
-        // validate data
+        // do
         ValidateNameElementUtil.validateNameDataCreate(name, namingConvention, holderRepositories, holder);
 
         return Boolean.TRUE;
diff --git a/src/main/java/org/openepics/names/service/StructuresService.java b/src/main/java/org/openepics/names/service/StructuresService.java
index a4d7c80b9c13b2a8e7ae9b79f43552ed302e07b8..ec4bbad208c6fe48ee51b34b6abb67bdbdf32663 100644
--- a/src/main/java/org/openepics/names/service/StructuresService.java
+++ b/src/main/java/org/openepics/names/service/StructuresService.java
@@ -255,6 +255,11 @@ public class StructuresService {
             String uuid, String parentUuid, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             Boolean includeHistory, FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit,
             StructureChoice structureChoice) {
+        // validation outside method
+        // do
+        //     read structures
+        // return
+        //     structure elements for structures
 
         LOGGER.log(Level.FINE, "readStructures, type:                {0}", type);
         LOGGER.log(Level.FINE, "readStructures, statuses.length:     {0}", Utilities.getLength(statuses));
@@ -278,20 +283,6 @@ public class StructuresService {
             }
         }
 
-        // validate input
-        //     type
-        //     queryFields and queryValues
-        //         uuid
-        // do
-        //     read structures
-        // return
-        //     structure elements for structures
-
-        // validate input
-        ValidateStructureElementUtil.validateStructuresInputRead(type, statuses, deleted,
-                uuid, parentUuid, name, mnemonic, mnemonicequivalence, mnemonicpath, description,
-                includeHistory, orderBy, isAsc, offset, limit);
-
         // initiate holder of containers for system and device structure content, for performance reasons
         HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories);
 
@@ -376,9 +367,7 @@ public class StructuresService {
     public ResponsePageStructureElements readStructuresChildren(String uuid, Type type,
             Status[] statuses, Boolean deleted, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        // validate input
-        //     type, uuid
+        // validation outside method
         // do
         //     read structure latest by uuid for type
         // return
@@ -387,9 +376,6 @@ public class StructuresService {
         LOGGER.log(Level.FINE, "readStructuresChildren, uuid: {0}", uuid);
         LOGGER.log(Level.FINE, "readStructuresChildren, type: {0}", type);
 
-        // validate input
-        ValidateUtil.validateInputUuid(uuid);
-
         boolean typeSystemGroup = Type.SYSTEMGROUP.equals(type);
         boolean typeSystem      = Type.SYSTEM.equals(type);
         boolean typeSubsystem   = Type.SUBSYSTEM.equals(type);
@@ -436,9 +422,7 @@ public class StructuresService {
 
     public ResponsePageStructureElements readStructuresMnemonic(String mnemonic,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        // validate input
-        //     mnemonic
+        // validation outside method
         // do
         //     read structure latest by mnemonic
         // return
@@ -446,9 +430,6 @@ public class StructuresService {
 
         LOGGER.log(Level.FINE, "readStructuresMnemonic, mnemonic: {0}", mnemonic);
 
-        // validate input
-        ValidateUtil.validateInputMnemonic(mnemonic);
-
         // do
         //     TODO handle orderBy, isAsc, offset, limit
 
@@ -472,9 +453,7 @@ public class StructuresService {
 
     public ResponsePageStructureElements readStructuresMnemonicpath(String mnemonicpath,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        // validate input
-        //     mnemonicpath
+        // validation outside method
         // do
         //     read structure latest by mnemonicpath
         // return
@@ -482,9 +461,6 @@ public class StructuresService {
 
         LOGGER.log(Level.FINE, "readStructuresMnemonicpath, mnemonicpath: {0}", mnemonicpath);
 
-        // validate input
-        ValidateUtil.validateInputMnemonic(mnemonicpath);
-
         // do
         //     TODO handle orderBy, isAsc, offset, limit
 
@@ -515,23 +491,17 @@ public class StructuresService {
      */
     public ResponsePageStructureElements readStructuresHistory(String uuid, Type type,
             FieldStructure orderBy, Boolean isAsc, Integer offset, Integer limit) {
-
-        // note
-        //     HolderIRepositories and HolderSystemDeviceStructure may or may not be used for preparation of what to return
-        //     type may speed up read
-        // validate input
-        //     uuid
+        // validation outside method
         // do
         //     read history for structure
         // return
         //     structure elements for structures
+        // note
+        //     type may speed up read
 
         LOGGER.log(Level.FINE, "readStructuresHistory, uuid: {0}", uuid);
         LOGGER.log(Level.FINE, "readStructuresHistory, type: {0}", type);
 
-        // validate input
-        ValidateUtil.validateInputUuid(uuid);
-
         boolean typeSystemGroup = Type.SYSTEMGROUP.equals(type);
         boolean typeSystem      = Type.SYSTEM.equals(type);
         boolean typeSubsystem   = Type.SUBSYSTEM.equals(type);
@@ -590,30 +560,23 @@ public class StructuresService {
     // ----------------------------------------------------------------------------------------------------
 
     public String equivalenceMnemonic(String mnemonic) {
-        // validate input
+        // validation outside method
         // do
-        //     exists
+        //     input available
 
         LOGGER.log(Level.FINE, "equivalenceMnemonic, mnemonic: {0}", mnemonic);
 
-        // validate input
-        ValidateUtil.validateInputMnemonic(mnemonic);
-
         // do
         return namingConvention.equivalenceClassRepresentative(mnemonic);
     }
 
     public Boolean existsStructure(Type type, String mnemonicpath) {
-        // validate input
+        // validation outside method
         // do
         //     exists
 
         LOGGER.log(Level.FINE, "existsStructure, mnemonicpath: {0}", mnemonicpath);
 
-        // validate input
-        ValidateUtil.validateInputType(type);
-        ValidateUtil.validateInputMnemonicpath(mnemonicpath);
-
         // do
         if (Type.SYSTEMGROUP.equals(type)) {
             List<SystemGroup> systemGroups = holderRepositories.getSystemGroupRepository().readSystemGroups(Status.APPROVED, false, null, null, null, null, mnemonicpath, null);
@@ -639,21 +602,18 @@ public class StructuresService {
     }
 
     public Boolean isValidToCreateStructure(Type type, String mnemonicpath) {
-        // validate input
-        // validate data
-        //     not exists
+        // validation outside method
+        // do
+        //     validate data
+        //         not exists
 
         LOGGER.log(Level.FINE, "isValidToCreateStructure, mnemonicpath: {0}", mnemonicpath);
 
-        // validate input
-        ValidateUtil.validateInputType(type);
-        ValidateUtil.validateInputMnemonicpath(mnemonicpath);
-
         // initiate holder of containers for system and device structure content, for performance reasons
         //     note false to not include deleted entries
         HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories, false);
 
-        // validate data
+        // do
         ValidateStructureElementUtil.validateStructureDataCreate(type, mnemonicpath, namingConvention, holderIRepositories, holder);
 
         return Boolean.TRUE;