diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/BooleanField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/BooleanField.java
index 9e23aa144f7..d6f13e4089c 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/BooleanField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/BooleanField.java
@@ -12,6 +12,11 @@ public abstract class BooleanField extends DataField {
 
     public Boolean booleanValue;
 
+    public BooleanField(BooleanField field) {
+        super(field);
+        this.booleanValue = field.booleanValue;
+    }
+
     public BooleanField(Boolean value) {
         super(value.toString());
         this.booleanValue = value;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ButtonField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ButtonField.java
index 3564ddca342..9cd58539d7c 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ButtonField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ButtonField.java
@@ -12,6 +12,11 @@ public abstract class ButtonField extends DataField {
 
     public Integer buttonValue;
 
+    public ButtonField(ButtonField field) {
+        super(field);
+        this.buttonValue = field.buttonValue;
+    }
+
     public ButtonField(Integer value) {
         super(value.toString());
         this.buttonValue = value;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/CaseField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/CaseField.java
index 48292624f38..371e3ddde94 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/CaseField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/CaseField.java
@@ -15,6 +15,11 @@ public abstract class CaseField extends FieldWithAllowedNetsField {
 
     private List<String> caseValue;
 
+    public CaseField(CaseField field) {
+        super(field);
+        this.caseValue = field.caseValue == null ? null : new ArrayList<>(field.caseValue);
+    }
+
     public CaseField(String[] fullTextValue, String[] allowedNets) {
         super(fullTextValue, allowedNets);
         this.caseValue = Arrays.asList(fullTextValue);
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DataField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DataField.java
index 7c054eee54b..3fdc5dfc18b 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DataField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DataField.java
@@ -6,6 +6,7 @@
 import lombok.NoArgsConstructor;
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Arrays;
 
 @Data
 @NoArgsConstructor
@@ -18,6 +19,10 @@ public abstract class DataField implements Serializable {
 
     public String[] fulltextValue;
 
+    DataField(DataField dataField) {
+        this.fulltextValue = dataField.fulltextValue == null ? null : Arrays.copyOf(dataField.fulltextValue, dataField.fulltextValue.length);
+    }
+
     DataField(String fulltextValue) {
         this.fulltextValue = new String[1];
         this.fulltextValue[0] = fulltextValue;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DateField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DateField.java
index 7d30aedcb0e..eba97c07425 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DateField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/DateField.java
@@ -18,6 +18,12 @@ public abstract class DateField extends DataField {
 
     public Long timestampValue;
 
+    public DateField(DateField field) {
+        super(field);
+        this.dateValue = field.dateValue;
+        this.timestampValue = field.timestampValue;
+    }
+
     public DateField(String value, LocalDateTime dateTime) {
         super(value);
         this.dateValue = dateTime;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java
index c16316c9671..2762fc90886 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ElasticCase.java
@@ -1,5 +1,7 @@
 package com.netgrif.application.engine.objects.elastic.domain;
 
+import com.netgrif.application.engine.objects.petrinet.domain.I18nString;
+import com.netgrif.application.engine.objects.utils.CopyConstructorUtil;
 import com.netgrif.application.engine.objects.workflow.domain.Case;
 import com.netgrif.application.engine.objects.workflow.domain.TaskPair;
 import lombok.AllArgsConstructor;
@@ -102,27 +104,44 @@ public ElasticCase(Case useCase) {
         viewUsers = new HashSet<>(useCase.getViewUsers());
         negativeViewUsers = new HashSet<>(useCase.getNegativeViewUsers());
         tags = new HashMap<>(useCase.getTags());
-
+        permissions = deepCopy(useCase.getPermissions());
+        users = deepCopy(useCase.getUsers());
+        userRefs = deepCopy(useCase.getUserRefs());
         dataSet = new HashMap<>();
-        immediateData = useCase.getImmediateData().stream().map(ImmediateField::new).collect(Collectors.toList());
+        immediateData = useCase.getImmediateData() == null ? Collections.emptyList() : useCase.getImmediateData().stream().map(ImmediateField::new).collect(Collectors.toList());
     }
 
     public void update(ElasticCase useCase) {
         version++;
         lastModified = useCase.getLastModified();
         title = useCase.getTitle();
-        taskIds = useCase.getTaskIds();
-        taskMongoIds = useCase.getTaskMongoIds();
-        tasks = useCase.getTasks();
-        enabledRoles = useCase.getEnabledRoles();
-        viewRoles = useCase.getViewRoles();
-        viewUserRefs = useCase.getViewUserRefs();
-        negativeViewRoles = useCase.getNegativeViewRoles();
-        viewUsers = useCase.getViewUsers();
-        negativeViewUsers = useCase.getNegativeViewUsers();
-        tags = useCase.getTags();
-
-        dataSet = useCase.getDataSet();
-        immediateData = useCase.getImmediateData();
+        taskIds = useCase.getTaskIds() == null ? new HashSet<>() : new HashSet<>(useCase.getTaskIds());
+        taskMongoIds = useCase.getTaskMongoIds() == null ? new HashSet<>() : new HashSet<>(useCase.getTaskMongoIds());
+        tasks = useCase.getTasks() == null ? new HashSet<>() : useCase.getTasks().stream()
+                .map(tp -> new ElasticTaskPair(tp.getTask(), tp.getTransition()))
+                .collect(Collectors.toSet());
+        enabledRoles = useCase.getEnabledRoles() == null ? new HashSet<>() : new HashSet<>(useCase.getEnabledRoles());
+        viewRoles = useCase.getViewRoles() == null ? new HashSet<>() : new HashSet<>(useCase.getViewRoles());
+        viewUserRefs = useCase.getViewUserRefs() == null ? new HashSet<>() : new HashSet<>(useCase.getViewUserRefs());
+        negativeViewRoles = useCase.getNegativeViewRoles() == null ? new HashSet<>() : new HashSet<>(useCase.getNegativeViewRoles());
+        viewUsers = useCase.getViewUsers() == null ? new HashSet<>() : new HashSet<>(useCase.getViewUsers());
+        negativeViewUsers = useCase.getNegativeViewUsers() == null ? new HashSet<>() : new HashSet<>(useCase.getNegativeViewUsers());
+        tags = useCase.getTags() == null ? new HashMap<>() : new HashMap<>(useCase.getTags());
+        permissions = deepCopy(useCase.getPermissions());
+        users = deepCopy(useCase.getUsers());
+        userRefs = deepCopy(useCase.getUserRefs());
+        dataSet = useCase.getDataSet() == null ? new HashMap<>() : useCase.getDataSet().entrySet().stream()
+                .filter(entry -> entry.getValue() != null)
+                .collect(Collectors.toMap(Map.Entry::getKey, entry -> CopyConstructorUtil.copy(entry.getValue().getClass(), entry.getValue())));
+        immediateData = useCase.getImmediateData() == null ? new ArrayList<>() : useCase.getImmediateData().stream()
+                .map(field -> new ImmediateField(field.getStringId(), new I18nString(field.getName()), field.getType()))
+                .collect(Collectors.toList());
+    }
+
+    private static Map<String, Map<String, Boolean>> deepCopy(Map<String, Map<String, Boolean>> map) {
+        if (map == null || map.isEmpty()) {
+            return new HashMap<>();
+        }
+        return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue() == null ? new HashMap<>() : new HashMap<>(e.getValue())));
     }
 }
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FieldWithAllowedNetsField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FieldWithAllowedNetsField.java
index 4194ba0f812..07f002eae00 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FieldWithAllowedNetsField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FieldWithAllowedNetsField.java
@@ -4,6 +4,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.Arrays;
 import java.util.List;
 
 
@@ -14,6 +15,11 @@ public abstract class FieldWithAllowedNetsField extends DataField {
 
     public String[] allowedNets;
 
+    public FieldWithAllowedNetsField(FieldWithAllowedNetsField field) {
+        super(field);
+        this.allowedNets = field.allowedNets == null ? null : Arrays.copyOf(field.allowedNets, field.allowedNets.length);
+    }
+
     public FieldWithAllowedNetsField(String fullTextValue, String[] allowedNets) {
         super(fullTextValue);
         this.allowedNets = allowedNets;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FileField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FileField.java
index 875c5740800..45e82c47875 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FileField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FileField.java
@@ -21,6 +21,13 @@ public abstract class FileField extends DataField {
 
     public String[] fileExtensionValue;
 
+    public FileField(FileField fileField) {
+        super(fileField);
+        this.filePath = fileField.getFilePath() == null ? null : Arrays.copyOf(fileField.filePath, fileField.filePath.length);
+        this.fileNameValue = fileField.getFileNameValue() == null ? null : Arrays.copyOf(fileField.fileNameValue, fileField.fileNameValue.length);
+        this.fileExtensionValue = fileField.getFileExtensionValue() == null ? null : Arrays.copyOf(fileField.fileExtensionValue, fileField.fileExtensionValue.length);
+    }
+
     public FileField(FileFieldValue value) {
         super(value.getName());
         this.filePath = new String[1];
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FilterField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FilterField.java
index 1a4a02bd587..5e88bed0db3 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FilterField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/FilterField.java
@@ -14,6 +14,11 @@ public abstract class FilterField extends FieldWithAllowedNetsField {
 
     public Map<String, Object> filterMetadata;
 
+    public FilterField(FilterField field) {
+        super(field);
+        this.filterMetadata = field.filterMetadata == null ? null : new HashMap<>(field.filterMetadata);
+    }
+
     public FilterField(String fullTextValue, String[] allowedNets, Map<String, Object> filterMetadata) {
         super(fullTextValue, allowedNets);
         this.filterMetadata = filterMetadata != null ? filterMetadata : new HashMap<>();
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java
index fa6b590f4cf..4688570ae35 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/I18nField.java
@@ -5,6 +5,8 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -17,6 +19,12 @@ public abstract class I18nField extends TextField {
 
     public Map<String, String> translations;
 
+    public I18nField(I18nField field) {
+        super(field);
+        this.keyValue = field.keyValue == null ? null : Arrays.copyOf(field.keyValue, field.keyValue.length);
+        this.translations = field.translations == null ? null : new HashMap<>(field.translations);
+    }
+
     public I18nField(Set<String> keys, Set<String> values, Map<String, String> translations) {
         super(new String[0]);
         this.keyValue = keys.toArray(new String[0]);
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ImmediateField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ImmediateField.java
index 868172bf230..8c770886ded 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ImmediateField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/ImmediateField.java
@@ -21,8 +21,12 @@ public ImmediateField() {
     }
 
     public ImmediateField(Field<?> field) {
-        this.stringId = field.getStringId();
-        this.name = field.getName();
-        this.type = field.getType().getName();
+        this(field.getStringId(), field.getName(), field.getType().getName());
+    }
+
+    public ImmediateField(String stringId, I18nString name, String type) {
+        this.stringId = stringId;
+        this.name = name;
+        this.type = type;
     }
 }
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java
index d57d980ad40..e989f209e1a 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/MapField.java
@@ -6,6 +6,7 @@
 import lombok.NoArgsConstructor;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Data
 @NoArgsConstructor
@@ -15,6 +16,14 @@ public abstract class MapField extends TextField {
     public String[] keyValue;
     public Map<String, I18nString> keyValueTranslations;
 
+    public MapField(MapField field) {
+        super(field);
+        this.keyValue = field.keyValue == null ? null : Arrays.copyOf(field.keyValue, field.keyValue.length);
+        this.keyValueTranslations = field.keyValueTranslations == null ? null
+                : field.keyValueTranslations.entrySet().stream()
+                .collect(Collectors.toMap(Map.Entry::getKey, entry -> new I18nString(entry.getValue())));
+    }
+
     public MapField(Map.Entry<String, I18nString> valueTranslationPair) {
         this(List.of(valueTranslationPair));
     }
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NumberField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NumberField.java
index 21cf9441285..4720e9033ac 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NumberField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/NumberField.java
@@ -12,6 +12,11 @@ public abstract class NumberField extends DataField {
 
     public Double numberValue;
 
+    public NumberField(NumberField field) {
+        super(field);
+        this.numberValue = field.numberValue;
+    }
+
     public NumberField(Double value) {
         super(value.toString());
         this.numberValue = value;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java
index c4b4cb972c2..e270249bbb8 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/StringCollectionField.java
@@ -5,6 +5,8 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.Arrays;
+
 @Data
 @NoArgsConstructor
 @EqualsAndHashCode(callSuper = true)
@@ -12,6 +14,11 @@ public abstract class StringCollectionField extends TextField {
 
     public String[] collectionValue;
 
+    public StringCollectionField(StringCollectionField field) {
+        super(field);
+        this.collectionValue = field.collectionValue == null ? null : Arrays.copyOf(field.collectionValue, field.collectionValue.length);
+    }
+
     public StringCollectionField(String[] values) {
         super(values);
         this.collectionValue = values;
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/TextField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/TextField.java
index 83a85604982..98a59b3d7f6 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/TextField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/TextField.java
@@ -11,6 +11,11 @@ public abstract class TextField extends DataField {
 
     public String[] textValue;
 
+    public TextField(TextField field) {
+        super(field);
+        this.textValue = field.textValue == null ? null : field.textValue.clone();
+    }
+
     public TextField(String value) {
         super(value);
         this.textValue = new String[1];
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserField.java
index e08b3852f2a..99bf3afcee7 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserField.java
@@ -6,6 +6,7 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.Arrays;
 import java.util.stream.IntStream;
 
 @Data
@@ -23,6 +24,14 @@ public abstract class UserField extends DataField {
 
     private String[] userRealmIdValue;
 
+    public UserField(UserField field) {
+        super(field);
+        this.usernameValue = field.usernameValue == null ? null : Arrays.copyOf(field.usernameValue, field.usernameValue.length);
+        this.fullNameValue = field.fullNameValue == null ? null : Arrays.copyOf(field.fullNameValue, field.fullNameValue.length);
+        this.userIdValue = field.userIdValue == null ? null : Arrays.copyOf(field.userIdValue, field.userIdValue.length);
+        this.userRealmIdValue = field.userRealmIdValue == null ? null : Arrays.copyOf(field.userRealmIdValue, field.userRealmIdValue.length);
+    }
+
     public UserField(UserMappingData value) {
         super(String.format("%s %s", value.fullName, value.username));
         this.usernameValue = new String[1];
diff --git a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserListField.java b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserListField.java
index 1693fa5c2b8..83941f00730 100644
--- a/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserListField.java
+++ b/nae-object-library/src/main/java/com/netgrif/application/engine/objects/elastic/domain/UserListField.java
@@ -5,6 +5,8 @@
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.Arrays;
+
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
@@ -19,6 +21,14 @@ public abstract class UserListField extends UserField {
 
     private String[] userRealmIdValue;
 
+    public UserListField(UserListField field) {
+        super(field);
+        this.usernameValue = field.usernameValue == null ? null : Arrays.copyOf(field.usernameValue, field.usernameValue.length);
+        this.fullNameValue = field.fullNameValue == null ? null : Arrays.copyOf(field.fullNameValue, field.fullNameValue.length);
+        this.userIdValue = field.userIdValue == null ? null : Arrays.copyOf(field.userIdValue, field.userIdValue.length);
+        this.userRealmIdValue = field.userRealmIdValue == null ? null : Arrays.copyOf(field.userRealmIdValue, field.userRealmIdValue.length);
+    }
+
     public UserListField(UserMappingData[] values) {
         super(values);
         this.usernameValue = new String[values.length];
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/BooleanField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/BooleanField.java
index 32392622807..cf50546e976 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/BooleanField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/BooleanField.java
@@ -12,6 +12,11 @@ public class BooleanField extends com.netgrif.application.engine.objects.elastic
     @Field(type = Boolean)
     public Boolean booleanValue;
 
+    public BooleanField(BooleanField field) {
+        super(field);
+        this.booleanValue = field.booleanValue;
+    }
+
     public BooleanField(Boolean value) {
         super(value);
         this.booleanValue = value;
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/ButtonField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/ButtonField.java
index 5322cdd317f..a29c5e63433 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/ButtonField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/ButtonField.java
@@ -13,6 +13,10 @@
 @EqualsAndHashCode(callSuper = true)
 public class ButtonField extends com.netgrif.application.engine.objects.elastic.domain.ButtonField {
 
+    public ButtonField(ButtonField field) {
+        super(field);
+    }
+
     public ButtonField(Integer value) {
         super(value);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/CaseField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/CaseField.java
index 7596000d6f1..f15d3bdf015 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/CaseField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/CaseField.java
@@ -10,6 +10,10 @@
 @NoArgsConstructor
 public class CaseField extends com.netgrif.application.engine.objects.elastic.domain.CaseField {
 
+    public CaseField(CaseField field) {
+        super(field);
+    }
+
     public CaseField(String[] values, String[] allowedNets) {
         super(values, allowedNets);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/DateField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/DateField.java
index 2ce6f55f20f..6482d6632e9 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/DateField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/DateField.java
@@ -13,6 +13,10 @@
 @NoArgsConstructor
 public class DateField extends com.netgrif.application.engine.objects.elastic.domain.DateField {
 
+    public DateField(DateField field) {
+        super(field);
+    }
+
     public DateField(String value, LocalDateTime dateTime) {
         super(value, dateTime);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FileField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FileField.java
index 4990f7299fc..e64794325d2 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FileField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FileField.java
@@ -12,6 +12,10 @@
 @EqualsAndHashCode(callSuper = true)
 public class FileField extends com.netgrif.application.engine.objects.elastic.domain.FileField {
 
+    public FileField(FileField field) {
+        super(field);
+    }
+
     public FileField(FileFieldValue value) {
         super(value);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FilterField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FilterField.java
index e3322b1fe31..6d3e386ba37 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FilterField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/FilterField.java
@@ -10,6 +10,10 @@
 @NoArgsConstructor
 public class FilterField extends com.netgrif.application.engine.objects.elastic.domain.FilterField {
 
+    public FilterField(FilterField field) {
+        super(field);
+    }
+
     public FilterField(String value, String[] allowedNets, Map<String, Object> filterMetadata) {
         super(value, allowedNets, filterMetadata);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/I18nField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/I18nField.java
index 6e7345b5596..d0c0453d234 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/I18nField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/I18nField.java
@@ -12,6 +12,10 @@
 @NoArgsConstructor
 public class I18nField extends com.netgrif.application.engine.objects.elastic.domain.I18nField {
 
+    public I18nField(I18nField field) {
+        super(field);
+    }
+
     public I18nField(Set<String> keys, Set<String> values, Map<String, String> translations) {
         super(keys, values, translations);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java
index 217ab8001da..3936cce8668 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/MapField.java
@@ -13,6 +13,10 @@
 @NoArgsConstructor
 public class MapField extends com.netgrif.application.engine.objects.elastic.domain.MapField {
 
+    public MapField(MapField field) {
+        super(field);
+    }
+
     public MapField(Map.Entry<String, I18nString> valuePair) {
         super(valuePair);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/NumberField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/NumberField.java
index f643393df65..ad5d349b64e 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/NumberField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/NumberField.java
@@ -9,6 +9,10 @@
 @NoArgsConstructor
 public class NumberField extends com.netgrif.application.engine.objects.elastic.domain.NumberField {
 
+    public NumberField(NumberField field) {
+        super(field);
+    }
+
     public NumberField(Double value) {
         super(value);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/StringCollectionField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/StringCollectionField.java
index 4786a4d2d4a..cbdd0a19dc6 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/StringCollectionField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/StringCollectionField.java
@@ -13,6 +13,10 @@
 @EqualsAndHashCode(callSuper = true)
 public class StringCollectionField extends com.netgrif.application.engine.objects.elastic.domain.StringCollectionField {
 
+    public StringCollectionField(StringCollectionField field) {
+        super(field);
+    }
+
     public StringCollectionField(String[] values) {
         super(values);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/TextField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/TextField.java
index e1a09218675..7fab8f75ffe 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/TextField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/TextField.java
@@ -12,6 +12,10 @@
 @EqualsAndHashCode(callSuper = true)
 public class TextField extends com.netgrif.application.engine.objects.elastic.domain.TextField {
 
+    public TextField(TextField field) {
+        super(field);
+    }
+
     public TextField(String value) {
         super(value);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserField.java
index 7268f5b9f91..af11f581dca 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserField.java
@@ -8,6 +8,10 @@
 @NoArgsConstructor
 public class UserField extends com.netgrif.application.engine.objects.elastic.domain.UserField {
 
+    public UserField(UserField field) {
+        super(field);
+    }
+
     public UserField(UserMappingData value) {
         super(value);
     }
diff --git a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserListField.java b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserListField.java
index 8619879c718..5e32298febc 100644
--- a/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserListField.java
+++ b/nae-spring-core-adapter/src/main/java/com/netgrif/application/engine/adapter/spring/elastic/domain/UserListField.java
@@ -8,6 +8,10 @@
 @NoArgsConstructor
 public class UserListField extends com.netgrif.application.engine.objects.elastic.domain.UserListField {
 
+    public UserListField(UserListField field) {
+        super(field);
+    }
+
     public UserListField(UserMappingData[] values) {
         super(values);
     }
