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 0fb5feb9ed6ad35cce14765ae62840b33b9fa5de..8bf563ef959696c0f3a17789da622527e983412f 100644
--- a/src/main/java/org/openepics/names/repository/model/DeviceGroup.java
+++ b/src/main/java/org/openepics/names/repository/model/DeviceGroup.java
@@ -127,13 +127,7 @@ public class DeviceGroup extends Structure {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getName(), getMnemonic(), getMnemonicEquivalence(),
-                getParentUuid());
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
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 8c58a263b0582c33f6e1a6c035e97bfa6307fbb1..af7c933506e6cd1484ded93a3fcf2e1154f638a7 100644
--- a/src/main/java/org/openepics/names/repository/model/DeviceType.java
+++ b/src/main/java/org/openepics/names/repository/model/DeviceType.java
@@ -127,13 +127,7 @@ public class DeviceType extends Structure {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getName(), getMnemonic(), getMnemonicEquivalence(),
-                getParentUuid());
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
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 106014352f4d6e51bde542b1eef594307c4d21bb..afa4b3c32208f0c3ac3355a7e879475ed3c3eaa7 100644
--- a/src/main/java/org/openepics/names/repository/model/Discipline.java
+++ b/src/main/java/org/openepics/names/repository/model/Discipline.java
@@ -19,6 +19,7 @@
 package org.openepics.names.repository.model;
 
 import java.util.Date;
+import java.util.Objects;
 import java.util.UUID;
 
 import javax.persistence.Entity;
@@ -103,7 +104,7 @@ public class Discipline extends Structure {
 
     @Override
     public int hashCode() {
-        return super.hashCode();
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
diff --git a/src/main/java/org/openepics/names/repository/model/Name.java b/src/main/java/org/openepics/names/repository/model/Name.java
index 32ed6c290458bbdd00331c976a9666513a04d54c..4462a5fe6b573d2869bf369f97e576bf7810fb47 100644
--- a/src/main/java/org/openepics/names/repository/model/Name.java
+++ b/src/main/java/org/openepics/names/repository/model/Name.java
@@ -224,13 +224,7 @@ public class Name extends NameStructure implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getSystemgroupUuid(), getSystemUuid(), getSubsystemUuid(), getDevicetypeUuid(), getInstanceIndex(),
-                getConventionName(), getConventionNameEquivalence());
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
diff --git a/src/main/java/org/openepics/names/repository/model/NameStructure.java b/src/main/java/org/openepics/names/repository/model/NameStructure.java
index c1c6a391f15df505b732baff946ce0180a4ec3f4..d521a753584caa1fa88654716c60f2e4ae6a11c2 100644
--- a/src/main/java/org/openepics/names/repository/model/NameStructure.java
+++ b/src/main/java/org/openepics/names/repository/model/NameStructure.java
@@ -232,11 +232,7 @@ public class NameStructure extends Persistable implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment());
+        return Objects.hash(getId(), getUuid());
     }
 
 }
diff --git a/src/main/java/org/openepics/names/repository/model/Persistable.java b/src/main/java/org/openepics/names/repository/model/Persistable.java
index d10763ed7224cbc9050834d50e1756e0f0ab3bbb..bd8c2233933e61e1a561df925f4c81c512881f63 100644
--- a/src/main/java/org/openepics/names/repository/model/Persistable.java
+++ b/src/main/java/org/openepics/names/repository/model/Persistable.java
@@ -88,7 +88,7 @@ public class Persistable implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(getId(), getVersion());
+        return Objects.hash(getId());
     }
 
 }
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 1d63b6b65c8671a8e328d24b65801c1c05b7fcd3..4be698031cda3bc7918025eee450722c7643460d 100644
--- a/src/main/java/org/openepics/names/repository/model/Structure.java
+++ b/src/main/java/org/openepics/names/repository/model/Structure.java
@@ -171,12 +171,7 @@ public class Structure extends NameStructure implements Serializable {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getName(), getMnemonic(), getMnemonicEquivalence());
+        return Objects.hash(getId(), getUuid());
     }
 
 }
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 f0d526a7472e298d25954bd2d45ca3c2acd15ba4..f2dc8896accb372d96ea9f53fb0ea33555c8ad25 100644
--- a/src/main/java/org/openepics/names/repository/model/Subsystem.java
+++ b/src/main/java/org/openepics/names/repository/model/Subsystem.java
@@ -127,13 +127,7 @@ public class Subsystem extends Structure {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getName(), getMnemonic(), getMnemonicEquivalence(),
-                getParentUuid());
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
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 b2296ac55e61110e20a686ffbd14861c439becf7..bec3396d0aca03c3985a6b1c75b1ccc71cb60c1b 100644
--- a/src/main/java/org/openepics/names/repository/model/System.java
+++ b/src/main/java/org/openepics/names/repository/model/System.java
@@ -127,13 +127,7 @@ public class System extends Structure {
 
     @Override
     public int hashCode() {
-        return Objects.hash(
-                getId(), getVersion(),
-                getUuid(), getDescription(), getStatus(), isLatest(), isDeleted(),
-                getRequested(), getRequestedBy(), getRequestedComment(),
-                getProcessed(), getProcessedBy(), getProcessedComment(),
-                getName(), getMnemonic(), getMnemonicEquivalence(),
-                getParentUuid());
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
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 4109cc03674c926d620f62bcce930fcc3cab4541..380078157589eadc6f330dd9e9ef809164f4310d 100644
--- a/src/main/java/org/openepics/names/repository/model/SystemGroup.java
+++ b/src/main/java/org/openepics/names/repository/model/SystemGroup.java
@@ -19,6 +19,7 @@
 package org.openepics.names.repository.model;
 
 import java.util.Date;
+import java.util.Objects;
 import java.util.UUID;
 
 import javax.persistence.Entity;
@@ -103,7 +104,7 @@ public class SystemGroup extends Structure {
 
     @Override
     public int hashCode() {
-        return super.hashCode();
+        return Objects.hash(getId(), getUuid());
     }
 
     @Override
diff --git a/src/main/java/org/openepics/names/util/HolderSystemDeviceStructure.java b/src/main/java/org/openepics/names/util/HolderSystemDeviceStructure.java
index 3c7eff656cf687685fc395a09a56b6d2cbb27816..e8dbaa0242a1e630112a6b40d3d5860a7d649e64 100644
--- a/src/main/java/org/openepics/names/util/HolderSystemDeviceStructure.java
+++ b/src/main/java/org/openepics/names/util/HolderSystemDeviceStructure.java
@@ -94,12 +94,13 @@ public class HolderSystemDeviceStructure {
         //     default load factor 0.75
         //     set at proper size to avoid rehashing
         //     size/0.75+1 (may be rounded downwards so possibly +2 instead)
-        this.systemGroups = new HashMap<>((int)(systemGroupsRead.size()/0.75 + 2));
-        this.systems      = new HashMap<>((int)(systemsRead.size()/0.75 + 2));
-        this.subsystems   = new HashMap<>((int)(subsystemsRead.size()/0.75 + 2));
-        this.disciplines  = new HashMap<>((int)(disciplinesRead.size()/0.75 + 2));
-        this.deviceGroups = new HashMap<>((int)(deviceGroupsRead.size()/0.75 + 2));
-        this.deviceTypes  = new HashMap<>((int)(deviceTypesRead.size()/0.75 + 2));
+        float loadFactor = 0.75f;
+        this.systemGroups = new HashMap<>((int)(systemGroupsRead.size()/loadFactor + 2), loadFactor);
+        this.systems      = new HashMap<>((int)(systemsRead.size()/loadFactor + 2), loadFactor);
+        this.subsystems   = new HashMap<>((int)(subsystemsRead.size()/loadFactor + 2), loadFactor);
+        this.disciplines  = new HashMap<>((int)(disciplinesRead.size()/loadFactor + 2), loadFactor);
+        this.deviceGroups = new HashMap<>((int)(deviceGroupsRead.size()/loadFactor + 2), loadFactor);
+        this.deviceTypes  = new HashMap<>((int)(deviceTypesRead.size()/loadFactor + 2), loadFactor);
 
         for (SystemGroup systemGroup : systemGroupsRead) {
             this.systemGroups.put(systemGroup.getUuid(), systemGroup);