diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java
index 08fd2acdb6c9e8c4c75165ccddc630be98b45580..d6fd6834aabeebba094f2fd5a6a01ed83fb57aaa 100644
--- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java
@@ -18,7 +18,9 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
-import java.util.*;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 
@@ -158,6 +160,9 @@ public class ModelsApi {
         model.getDataset().getData().put("MidTemp", values);
         model.getDataset().getHeader().add("MidTemp");
 
+        System.out.println("queryID" + model.getQuery().getId());
+        System.out.println("dataset id" + model.getDataset().getCode());
+
         return new ResponseEntity<Model>(HttpStatus.OK).ok(model);
     }
 
diff --git a/src/main/java/org/hbp/mip/controllers/RequestsApi.java b/src/main/java/org/hbp/mip/controllers/RequestsApi.java
index 0dc71cd7750619e9f85830939f03e8b13547a63b..0d41fe6090f11cd2da1878b36d965fbd526b20e1 100644
--- a/src/main/java/org/hbp/mip/controllers/RequestsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/RequestsApi.java
@@ -21,8 +21,6 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 @Api(value = "/queries/requests", description = "the requests API")
 public class RequestsApi {
 
-    private final String VALUES_FILE = "/home/mirco/Workspace/GitLab/portal-backend/src/main/resources/data/values.csv";
-
     @ApiOperation(value = "Send a request", response = Dataset.class)
     @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
     @RequestMapping(method = RequestMethod.POST)
@@ -30,7 +28,7 @@ public class RequestsApi {
             @RequestBody @ApiParam(value = "Query to process", required = true) Query query
     ) throws NotFoundException {
 
-        Dataset dataset = CSVUtil.parseValues(VALUES_FILE, query);
+        Dataset dataset = CSVUtil.parseValues("data/values.csv", query);
 
         return new ResponseEntity<Dataset>(HttpStatus.OK).ok(dataset);
     }
diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java
index 76b6fbd6f7c49993bd5ef3a16687c70bb68953f8..d5d61c435b82e3227a50b53f1f180dde597c8806 100644
--- a/src/main/java/org/hbp/mip/model/Group.java
+++ b/src/main/java/org/hbp/mip/model/Group.java
@@ -21,7 +21,7 @@ public class Group {
     @Id
     private String code = null;
     private String label = null;
-    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+    @OneToMany(fetch = FetchType.EAGER)
     private List<Group> groups = new LinkedList<Group>();
 
     public Group() {
diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java
index 67db5e0853f71f3f08cba1fe650acb36cc077072..6d0257a03a500fbae73a9f344d1141c04beb1b49 100644
--- a/src/main/java/org/hbp/mip/model/Model.java
+++ b/src/main/java/org/hbp/mip/model/Model.java
@@ -8,8 +8,12 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.annotations.*;
+import org.hibernate.annotations.CascadeType;
 
 import javax.persistence.*;
+import javax.persistence.Entity;
+import javax.persistence.Table;
 import java.util.Date;
 
 @Entity
@@ -24,11 +28,14 @@ public class Model {
     private Boolean valid = null;
     private Date createdAt = null;
     private Date updatedAt = null;
-    @ManyToOne(cascade = CascadeType.ALL)
+    @ManyToOne
+    @Cascade(CascadeType.SAVE_UPDATE)
     private Query query = null;
-    @ManyToOne(cascade = CascadeType.ALL)
+    @ManyToOne
+    @Cascade(CascadeType.SAVE_UPDATE)
     private Dataset dataset = null;
-    @ManyToOne(cascade = CascadeType.ALL)
+    @ManyToOne
+    @Cascade(CascadeType.SAVE_UPDATE)
     private Chart chart = null;
     @ManyToOne
     private User createdBy = null;
diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java
index 10ac94510ed6bc7068ee085724f78fea5583b587..7543d62c6e63c479fd2d8c7e3f99939cd6205b6a 100644
--- a/src/main/java/org/hbp/mip/model/Query.java
+++ b/src/main/java/org/hbp/mip/model/Query.java
@@ -24,26 +24,26 @@ public class Query {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id = null;
     private String request = null;
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+    @ManyToMany(fetch = FetchType.EAGER)
     @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<Variable>();
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+    private List<Variable> variables = new LinkedList<>();
+    @ManyToMany(fetch = FetchType.EAGER)
     @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<Variable>();
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+    private List<Variable> covariables = new LinkedList<>();
+    @ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name = "query_grouping", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
                     nullable = false, updatable = false) })
-    private List<Variable> grouping = new LinkedList<Variable>();
+    private List<Variable> grouping = new LinkedList<>();
     @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-    private List<Filter> filters = new LinkedList<Filter>();
+    private List<Filter> filters = new LinkedList<>();
 
     public Query() {
     }
diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java
index eba34ccb7585226904f225dd87fef13c83889700..e61cbf017d5964dd2a04002bd7b5b918fa353bc4 100644
--- a/src/main/java/org/hbp/mip/model/Tag.java
+++ b/src/main/java/org/hbp/mip/model/Tag.java
@@ -24,19 +24,6 @@ public class Tag {
     public Tag() {
     }
 
-    /**
-     * Unique identifier
-     **/
-    /*@ApiModelProperty(value = "Unique identifier")
-    @JsonProperty("id")
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }*/
-
     /**
      * Name
      **/
diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java
index 694b0d8d13bfc57b4eec0d4b1e8327ac47a1ec97..37c15697b8bc18ecbaf7117e6486b02b96cbc5fa 100644
--- a/src/main/java/org/hbp/mip/model/Variable.java
+++ b/src/main/java/org/hbp/mip/model/Variable.java
@@ -38,7 +38,7 @@ public class Variable {
     @ManyToOne(fetch = FetchType.EAGER)
     private Group group = null;
     @ManyToMany(fetch = FetchType.EAGER)
-    private List<Value> values = new LinkedList<Value>();
+    private List<Value> values = new LinkedList<>();
     @ManyToMany(fetch = FetchType.EAGER, mappedBy = "variables")
     private List<Query> queries = new LinkedList<>();
 
diff --git a/src/main/java/org/hbp/mip/utils/CSVUtil.java b/src/main/java/org/hbp/mip/utils/CSVUtil.java
index ab7df60541a7946df770bc750492dc2832b189db..756479051dc201c641952c5e572e5085c86c8a53 100644
--- a/src/main/java/org/hbp/mip/utils/CSVUtil.java
+++ b/src/main/java/org/hbp/mip/utils/CSVUtil.java
@@ -21,10 +21,9 @@ public class CSVUtil {
 
     public static Dataset parseValues(String filename, Query query)
     {
+        List<String[]> rows = getFilteredRows(filename, query.getFilters());
+
         Dataset result = new Dataset();
-        File file = new File(filename);
-        List<String[]> rows = getFilteredRows(file, query.getFilters());
-        System.out.println("nb of filtered rows : "+rows.size());
         String code = GenerateDSCode(query);
         Date date = new Date();
         List<String> header = new LinkedList<>();
@@ -38,11 +37,13 @@ public class CSVUtil {
         header.addAll(variables.stream().map(Variable::getCode).collect(Collectors.toList()));
 
         try {
-            FileReader fr = new FileReader(file);
-            BufferedReader br = new BufferedReader(fr);
+            InputStream is = Dataset.class.getClassLoader().getResourceAsStream(filename);
+            InputStreamReader isr = new InputStreamReader(is);
+            BufferedReader br = new BufferedReader(isr);
             String[] firstRow = br.readLine().split(SEPARATOR, -1);
             br.close();
-            fr.close();
+            isr.close();
+            is.close();
 
             for (Variable v : variables) {
                 String type = getTypeFromDB(v);
@@ -119,9 +120,9 @@ public class CSVUtil {
                     }
                 }
                 // TODO : Remove this limit -> only to avoid bug with Virtua's front-end
-                if(l.size() > 100)
+                if(l.size() > 50)
                 {
-                    l = l.subList(0, 99);
+                    l = l.subList(0, 49);
                 }
                 data.put(c, l);
                 System.out.println("Adding "+l.size()+" values to "+c);
@@ -137,11 +138,12 @@ public class CSVUtil {
         return result;
     }
 
-    private static List<String[]> getFilteredRows(File file, List<Filter> filters) {
+    private static List<String[]> getFilteredRows(String filename, List<Filter> filters) {
         List<String[]> filteredRows = new LinkedList<>();
         try {
-            FileReader fr = new FileReader(file);
-            BufferedReader br = new BufferedReader(fr);
+            InputStream is = Dataset.class.getClassLoader().getResourceAsStream(filename);
+            InputStreamReader isr = new InputStreamReader(is);
+            BufferedReader br = new BufferedReader(isr);
             String[] firstRow = br.readLine().split(SEPARATOR, -1);  // 1st row -> headers
             for (String line = br.readLine(); line != null; line = br.readLine()) {
                 String[] row = line.split(SEPARATOR, -1);
@@ -150,7 +152,8 @@ public class CSVUtil {
                 }
             }
             br.close();
-            fr.close();
+            isr.close();
+            is.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -304,6 +307,10 @@ public class CSVUtil {
         String type = (String) q.uniqueResult();
         session.getTransaction().commit();
 
+        if(type == null)
+        {
+            type = "unknown";
+        }
         return type;
     }