diff --git a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
index 6f2fdb379d79644125a321d7fe9629933c4f3c3e..837e01439fbe1e2aa67670636225bfe515c8e6de 100644
--- a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
@@ -89,8 +89,6 @@ public class ExperimentApi {
 
         LOGGER.info("Experiment saved");
 
-        experiment.getModel().cureVariables();
-
         try {
             if(isExaremeAlgo(experiment))
             {
@@ -127,8 +125,6 @@ public class ExperimentApi {
             return new ResponseEntity<>("Not found", HttpStatus.NOT_FOUND);
         }
 
-        experiment.getModel().cureVariables();
-
         return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK);
     }
 
@@ -157,8 +153,6 @@ public class ExperimentApi {
 
         LOGGER.info("Experiment updated (marked as viewed)");
 
-        experiment.getModel().cureVariables();
-
         return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK);
     }
 
@@ -287,8 +281,6 @@ public class ExperimentApi {
 
         LOGGER.info("Experiment updated (marked as shared)");
 
-        experiment.getModel().cureVariables();
-
         return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK);
     }
 
diff --git a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
index 161806a6deb0b814a1ed5cd984f63dfbaee406ff..200ea9828aed350652a948d888bb038223ae6036 100644
--- a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
@@ -99,7 +99,6 @@ public class ModelsApi {
         {
             Model m = i.next();
             m.setDataset(datasetRepository.findOne(m.getDataset().getCode()));
-            m.cureVariables();
             modelsList.add(getModelWithDataset(m));
         }
 
@@ -219,8 +218,6 @@ public class ModelsApi {
         Collection<Filter> fltrsColl = new LinkedHashSet<>(fltrs);
         model.getQuery().setFilters(new LinkedList<>(fltrsColl));
 
-        model.cureVariables();
-
         return new ResponseEntity<>(HttpStatus.OK).ok(getModelWithDataset(model));
     }
 
diff --git a/src/main/java/eu/hbp/mip/model/Dataset.java b/src/main/java/eu/hbp/mip/model/Dataset.java
index 3662c755252db4eae9d38ea479d018d6d7786109..2319d1550b92a6017cc2aeea01b89713a9af9e82 100644
--- a/src/main/java/eu/hbp/mip/model/Dataset.java
+++ b/src/main/java/eu/hbp/mip/model/Dataset.java
@@ -24,15 +24,15 @@ public class Dataset {
 
     private Date date = null;
 
-    @ElementCollection(fetch = FetchType.EAGER)
+    @ElementCollection
     @CollectionTable(name = "dataset_header", joinColumns = @JoinColumn(name = "dataset_code"))
     private List<String> header = new LinkedList<>();
 
-    @ElementCollection(fetch = FetchType.EAGER)
+    @ElementCollection
     @CollectionTable(name = "dataset_grouping", joinColumns = @JoinColumn(name = "dataset_code"))
     private List<String> grouping = new LinkedList<>();
 
-    @ElementCollection(fetch = FetchType.EAGER)
+    @ElementCollection
     @CollectionTable(name = "dataset_variable", joinColumns = @JoinColumn(name = "dataset_code"))
     private List<String> variable = new LinkedList<>();
 
diff --git a/src/main/java/eu/hbp/mip/model/Model.java b/src/main/java/eu/hbp/mip/model/Model.java
index 1f792580fb1ae8ff52c1ea94a0d8e1ff8a70366b..d788436a6d9a5b0c42fa1b616cdcc3be443ed1a0 100644
--- a/src/main/java/eu/hbp/mip/model/Model.java
+++ b/src/main/java/eu/hbp/mip/model/Model.java
@@ -11,10 +11,7 @@ import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
 
 import javax.persistence.*;
-import java.util.Collection;
 import java.util.Date;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
 
 @Entity
 @Table(name = "`model`")
@@ -175,25 +172,4 @@ public class Model {
     this.textQuery = textQuery;
     }
 
-    public void cureVariables()
-    {
-        Collection<Variable> varsQueryColl = new LinkedHashSet<>(this.getQuery().getVariables());
-        this.getQuery().setVariables(new LinkedList<>(varsQueryColl));
-
-        Collection<Variable> coVarsQueryColl = new LinkedHashSet<>(this.getQuery().getCovariables());
-        this.getQuery().setCovariables(new LinkedList<>(coVarsQueryColl));
-
-        Collection<Variable> grpsQueryColl = new LinkedHashSet<>(this.getQuery().getGrouping());
-        this.getQuery().setGrouping(new LinkedList<>(grpsQueryColl));
-
-        Collection<String> varsDSQueryColl = new LinkedHashSet<>(this.getDataset().getVariable());
-        this.getDataset().setVariable(new LinkedList<>(varsDSQueryColl));
-
-        Collection<String> coVarsDSQueryColl = new LinkedHashSet<>(this.getDataset().getHeader());
-        this.getDataset().setHeader(new LinkedList<>(coVarsDSQueryColl));
-
-        Collection<String> grpsDSQueryColl = new LinkedHashSet<>(this.getDataset().getGrouping());
-        this.getDataset().setGrouping(new LinkedList<>(grpsDSQueryColl));
-    }
-
 }
diff --git a/src/main/java/eu/hbp/mip/model/Query.java b/src/main/java/eu/hbp/mip/model/Query.java
index 61b979ff4400e709d8079ff034317dc1d869ce10..3ab5edcd6225dca09b13cb7054b0a98f8220fd14 100644
--- a/src/main/java/eu/hbp/mip/model/Query.java
+++ b/src/main/java/eu/hbp/mip/model/Query.java
@@ -26,21 +26,21 @@ public class Query {
 
     private String request = null;
 
-    @ManyToMany(fetch = FetchType.EAGER)
+    @ManyToMany
     @JoinTable(name = "query_variable", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
                     nullable = false, updatable = false) })
     private List<Variable> variables = new LinkedList<>();
 
-    @ManyToMany(fetch = FetchType.EAGER)
+    @ManyToMany
     @JoinTable(name = "query_covariable", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
                     nullable = false, updatable = false) })
     private List<Variable> covariables = new LinkedList<>();
 
-    @ManyToMany(fetch = FetchType.EAGER)
+    @ManyToMany
     @JoinTable(name = "query_grouping", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",