diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
index 14bc9e07a1cc47bec5f14a0eb645704d66bdabcb..244853f7e6786b76821c88bf64b67e337a63dc90 100644
--- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java
@@ -61,7 +61,6 @@ public class ArticlesApi {
 
         Session session = HibernateUtil.getSessionFactory().getCurrentSession();
         List articles = new LinkedList<>();
-        try{
             session.beginTransaction();
             Query query = session.createQuery(queryString);
             if(status != null)
@@ -81,13 +80,7 @@ public class ArticlesApi {
             }
             articles = query.list();
             session.getTransaction().commit();
-        } catch (Exception e)
-        {
-            if(session.getTransaction() != null)
-            {
-                session.getTransaction().rollback();
-            }
-        }
+
 
         return ResponseEntity.ok(articles);
     }
diff --git a/src/main/java/org/hbp/mip/controllers/GroupsApi.java b/src/main/java/org/hbp/mip/controllers/GroupsApi.java
index 2f6a86774ea1224190b970829a8bbc2aa6dd02fc..cbe99321bde4f6f13df99abadd099d77f17c9f4c 100644
--- a/src/main/java/org/hbp/mip/controllers/GroupsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/GroupsApi.java
@@ -1,5 +1,8 @@
-package org.hbp.mip.controllers;
+/**
+ * Created by mirco on 04.12.15.
+ */
 
+package org.hbp.mip.controllers;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java
index 4de19c02b40eec4a8745cc5bad7c611b8fb39a2d..e9b482cb02138ea9094989082f0466b9785c25b4 100644
--- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java
@@ -4,7 +4,6 @@
 
 package org.hbp.mip.controllers;
 
-
 import io.swagger.annotations.*;
 import org.hbp.mip.MIPApplication;
 import org.hbp.mip.model.*;
@@ -109,17 +108,11 @@ public class ModelsApi {
         model.setCreatedAt(new Date());
 
         Session session = HibernateUtil.getSessionFactory().getCurrentSession();
-        try{
+
             session.beginTransaction();
             session.save(model);
             session.getTransaction().commit();
-        } catch (Exception e)
-        {
-            if(session.getTransaction() != null)
-            {
-                session.getTransaction().rollback();
-            }
-        }
+
 
         return new ResponseEntity<Model>(HttpStatus.OK).ok(model);
     }
@@ -133,23 +126,17 @@ public class ModelsApi {
 
         Session session = HibernateUtil.getSessionFactory().getCurrentSession();
         Model model = null;
-        org.hibernate.Query query;
-        try {
+        Query query;
+
             session.beginTransaction();
             query = session.createQuery("FROM Model WHERE slug= :slug").setString("slug", slug);
             model = (Model) query.uniqueResult();
             session.getTransaction().commit();
-        } catch (Exception e)
-        {
-            if(session.getTransaction() != null)
-            {
-                session.getTransaction().rollback();
-            }
-        }
+
 
         if(model != null) {
             session = HibernateUtil.getSessionFactory().getCurrentSession();
-            try{
+
                 session.beginTransaction();
                 query = session.createQuery("FROM Query WHERE id= :id").setLong("id", model.getQuery().getId());
                 org.hbp.mip.model.Query q = (org.hbp.mip.model.Query) query.uniqueResult();
@@ -197,13 +184,7 @@ public class ModelsApi {
 
                 Dataset ds = CSVUtil.parseValues(DATA_FILE, model.getQuery());
                 model.setDataset(ds);
-            } catch (Exception e)
-            {
-                if(session.getTransaction() != null)
-                {
-                    session.getTransaction().rollback();
-                }
-            }
+
         }
 
         return new ResponseEntity<>(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 c1d767f04a5f5b6abc5d4768c1d597d76547f468..b60a53b558a33a205bb07ff404a25bba7e5af2d1 100644
--- a/src/main/java/org/hbp/mip/controllers/RequestsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/RequestsApi.java
@@ -1,3 +1,7 @@
+/**
+ * Created by mirco on 18.01.16.
+ */
+
 package org.hbp.mip.controllers;
 
 import io.swagger.annotations.*;
@@ -12,9 +16,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 
-/**
- * Created by mirco on 18.01.16.
- */
 @RestController
 @RequestMapping(value = "/queries/requests", produces = {APPLICATION_JSON_VALUE})
 @Api(value = "/queries/requests", description = "the requests API")
diff --git a/src/main/java/org/hbp/mip/controllers/StatsApi.java b/src/main/java/org/hbp/mip/controllers/StatsApi.java
index ce22204d20725514582ba3e1a80393243389c720..64a52685fd97b4e20f7009cd4a5dbb1a32b9d585 100644
--- a/src/main/java/org/hbp/mip/controllers/StatsApi.java
+++ b/src/main/java/org/hbp/mip/controllers/StatsApi.java
@@ -1,3 +1,7 @@
+/**
+ * Created by mirco on 18.01.16.
+ */
+
 package org.hbp.mip.controllers;
 
 import io.swagger.annotations.Api;
diff --git a/src/main/java/org/hbp/mip/controllers/UsersApi.java b/src/main/java/org/hbp/mip/controllers/UsersApi.java
index 93d7859644849db4931ab9530c61fda73dd913ff..465b833a02957780037a72797c4c8ed25259d64f 100644
--- a/src/main/java/org/hbp/mip/controllers/UsersApi.java
+++ b/src/main/java/org/hbp/mip/controllers/UsersApi.java
@@ -1,3 +1,7 @@
+/**
+ * Created by mirco on 14.01.16.
+ */
+
 package org.hbp.mip.controllers;
 
 import io.swagger.annotations.*;
@@ -12,10 +16,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 
-/**
- * Created by mirco on 14.01.16.
- */
-
 @RestController
 @RequestMapping(value = "/users", produces = {APPLICATION_JSON_VALUE})
 @Api(value = "/users", description = "the users API")
diff --git a/src/main/java/org/hbp/mip/controllers/WorkflowApi.java b/src/main/java/org/hbp/mip/controllers/WorkflowApi.java
index b6cfba3e2f824ea4ac74e29891b42aadbe26d658..1c4fba039d73a8619d62853292b89b9883431cf7 100644
--- a/src/main/java/org/hbp/mip/controllers/WorkflowApi.java
+++ b/src/main/java/org/hbp/mip/controllers/WorkflowApi.java
@@ -1,3 +1,7 @@
+/**
+ * Created by mirco on 02.03.16.
+ */
+
 package org.hbp.mip.controllers;
 
 import io.swagger.annotations.*;
@@ -13,9 +17,6 @@ import java.io.DataOutputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
 
-/**
- * Created by mirco on 02.03.16.
- */
 @RestController
 @RequestMapping(value = "/workflow/{algo}")
 @Api(value = "/workflow/{algo}", description = "Forward workflow API")
diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java
index 6ff3c38eca75ea61840e719a321990477ea9a7f1..a22a2bbf11255a3d7eb2b8ff893c874e5cafbcd3 100644
--- a/src/main/java/org/hbp/mip/model/Article.java
+++ b/src/main/java/org/hbp/mip/model/Article.java
@@ -7,7 +7,6 @@ package org.hbp.mip.model;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.Date;
@@ -16,34 +15,42 @@ import java.util.List;
 
 @Entity
 @Table(name = "`article`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Article {
+
     @Id
     private String slug = null;
+
     private String title = null;
+
     private String status = null;
+
     private String _abstract = null;
+
     @Column(columnDefinition = "text")
     private String content = null;
+
     private Date publishedAt = null;
+
     private Date createdAt = null;
+
     private Date updatedAt = null;
+
     @ManyToOne
     private User createdBy = null;
+
     @ManyToOne
     private User updatedBy = null;
+
     @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
-    private List<Tag> tags = new LinkedList<Tag>();
+    private List<Tag> tags = new LinkedList<>();
+
 
     public Article() {
     }
 
-    /**
-     * Status
-     **/
-    @ApiModelProperty(value = "Status")
-    @JsonProperty("status")
+
     public String getStatus() {
         return status;
     }
@@ -52,11 +59,7 @@ public class Article {
         this.status = status;
     }
 
-    /**
-     * Title
-     **/
-    @ApiModelProperty(value = "Title")
-    @JsonProperty("title")
+
     public String getTitle() {
         return title;
     }
@@ -65,11 +68,7 @@ public class Article {
         this.title = title;
     }
 
-    /**
-     * Short string identifier
-     **/
-    @ApiModelProperty(value = "Short string identifier")
-    @JsonProperty("slug")
+
     public String getSlug() {
         return slug;
     }
@@ -78,10 +77,7 @@ public class Article {
         this.slug = slug;
     }
 
-    /**
-     * Short introduction
-     **/
-    @ApiModelProperty(value = "Short introduction")
+
     @JsonProperty("abstract")
     public String getAbstract() {
         return _abstract;
@@ -91,11 +87,7 @@ public class Article {
         this._abstract = _abstract;
     }
 
-    /**
-     * Content
-     **/
-    @ApiModelProperty(value = "Content")
-    @JsonProperty("content")
+
     public String getContent() {
         return content;
     }
@@ -104,11 +96,7 @@ public class Article {
         this.content = content;
     }
 
-    /**
-     * Publication date
-     **/
-    @ApiModelProperty(value = "Publication date")
-    @JsonProperty("publishedAt")
+
     public Date getPublishedAt() {
         return publishedAt;
     }
@@ -117,11 +105,7 @@ public class Article {
         this.publishedAt = publishedAt;
     }
 
-    /**
-     * Creation date
-     **/
-    @ApiModelProperty(value = "Creation date")
-    @JsonProperty("createdAt")
+
     public Date getCreatedAt() {
         return createdAt;
     }
@@ -130,11 +114,7 @@ public class Article {
         this.createdAt = createdAt;
     }
 
-    /**
-     * Update date
-     **/
-    @ApiModelProperty(value = "Update date")
-    @JsonProperty("updatedAt")
+
     public Date getUpdatedAt() {
         return updatedAt;
     }
@@ -143,11 +123,7 @@ public class Article {
         this.updatedAt = updatedAt;
     }
 
-    /**
-     * Author
-     **/
-    @ApiModelProperty(value = "Author")
-    @JsonProperty("createdBy")
+
     public User getCreatedBy() {
         return createdBy;
     }
@@ -156,11 +132,7 @@ public class Article {
         this.createdBy = createdBy;
     }
 
-    /**
-     * Updater
-     **/
-    @ApiModelProperty(value = "Updater")
-    @JsonProperty("updatedBy")
+
     public User getUpdatedBy() {
         return updatedBy;
     }
@@ -169,10 +141,7 @@ public class Article {
         this.updatedBy = updatedBy;
     }
 
-    /**
-     **/
-    @ApiModelProperty(value = "")
-    @JsonProperty("tags")
+
     public List<Tag> getTags() {
         return tags;
     }
@@ -181,27 +150,4 @@ public class Article {
         this.tags = tags;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Article {\n");
-
-        sb.append("  status: ").append(status).append("\n");
-        sb.append("  title: ").append(title).append("\n");
-        sb.append("  slug: ").append(slug).append("\n");
-        sb.append("  _abstract: ").append(_abstract).append("\n");
-        sb.append("  content: ").append(content).append("\n");
-        sb.append("  publishedAt: ").append(publishedAt).append("\n");
-        sb.append("  createdAt: ").append(createdAt).append("\n");
-        sb.append("  updatedAt: ").append(updatedAt).append("\n");
-        sb.append("  createdBy: ").append(createdBy).append("\n");
-        sb.append("  updatedBy: ").append(updatedBy).append("\n");
-        sb.append("  tags: ").append(tags).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    public void addTag(Tag tag) {
-        this.tags.add(tag);
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/Config.java b/src/main/java/org/hbp/mip/model/Config.java
index 2e6b081c20c39d287933410211f0567368815cfe..e9572c666769287f1d42d853097f99a25fbc5da3 100644
--- a/src/main/java/org/hbp/mip/model/Config.java
+++ b/src/main/java/org/hbp/mip/model/Config.java
@@ -1,3 +1,7 @@
+/**
+ * Created by mirco on 25.02.16.
+ */
+
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -9,26 +13,37 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-/**
- * Created by mirco on 25.02.16.
- */
 @Entity
 @Table(name = "`config`")
-@ApiModel(description = "")
+@ApiModel
 @JsonIgnoreProperties(value = { "id" })
 public class Config {
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id = null;
+
     private String type = null;
+
     private Integer height = null;
+
     @ElementCollection(fetch = FetchType.EAGER)
+    @CollectionTable(name = "config_yAxisVariables", joinColumns = @JoinColumn(name = "config_id"))
     private List<String> yAxisVariables = new LinkedList<>();
+
     private String xAxisVariable = null;
+
     private Boolean hasXAxis = null;
+
     @ElementCollection(fetch = FetchType.EAGER)
+    @CollectionTable(name = "config_title", joinColumns = @JoinColumn(name = "config_id"))
     private Map<String, String> title = new HashMap<>();
 
+
+    public Config() {
+    }
+
+
     public Long getId() {
         return id;
     }
@@ -37,6 +52,7 @@ public class Config {
         this.id = id;
     }
 
+
     public String getType() {
         return type;
     }
@@ -45,6 +61,7 @@ public class Config {
         this.type = type;
     }
 
+
     public Integer getHeight() {
         return height;
     }
@@ -53,6 +70,7 @@ public class Config {
         this.height = height;
     }
 
+
     public List<String> getyAxisVariables() {
         return yAxisVariables;
     }
@@ -61,6 +79,7 @@ public class Config {
         this.yAxisVariables = yAxisVariables;
     }
 
+
     public String getxAxisVariable() {
         return xAxisVariable;
     }
@@ -69,6 +88,7 @@ public class Config {
         this.xAxisVariable = xAxisVariable;
     }
 
+
     public Boolean getHasXAxis() {
         return hasXAxis;
     }
@@ -77,6 +97,7 @@ public class Config {
         this.hasXAxis = hasXAxis;
     }
 
+
     public Map<String, String> getTitle() {
         return title;
     }
@@ -84,4 +105,5 @@ public class Config {
     public void setTitle(Map<String, String> title) {
         this.title = title;
     }
+
 }
diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java
index d56a618c7499883aff36c37797dc6d8640b19583..2fb7f6f8ca368b41866105f3a69073db7ed693d3 100644
--- a/src/main/java/org/hbp/mip/model/Dataset.java
+++ b/src/main/java/org/hbp/mip/model/Dataset.java
@@ -5,34 +5,35 @@
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.*;
 
 @Entity
 @Table(name = "`dataset`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Dataset {
+
     @Id
     private String code = null;
+
     private Date date = null;
+
     @ElementCollection(fetch = FetchType.EAGER)
+    @CollectionTable(name = "dataset_header", joinColumns = @JoinColumn(name = "dataset_code"))
     private List<String> header = new LinkedList<>();
+
     @ElementCollection(fetch=FetchType.EAGER)
+    @CollectionTable(name = "dataset_data", joinColumns = @JoinColumn(name = "dataset_code"))
     private Map<String, LinkedList<Object>> data = new HashMap<>();
 
+
     public Dataset() {
     }
 
-    /**
-     * Code
-     **/
-    @ApiModelProperty(value = "Code")
-    @JsonProperty("code")
+
     public String getCode() {
         return code;
     }
@@ -41,11 +42,7 @@ public class Dataset {
         this.code = code;
     }
 
-    /**
-     * Date
-     **/
-    @ApiModelProperty(value = "Date")
-    @JsonProperty("date")
+
     public Date getDate() {
         return date;
     }
@@ -54,11 +51,7 @@ public class Dataset {
         this.date = date;
     }
 
-    /**
-     * Header
-     **/
-    @ApiModelProperty(value = "Header")
-    @JsonProperty("header")
+
     public List<String> getHeader() {
         return header;
     }
@@ -67,6 +60,7 @@ public class Dataset {
         this.header = header;
     }
 
+
     public Map<String, LinkedList<Object>> getData() {
         return data;
     }
@@ -75,16 +69,4 @@ public class Dataset {
         this.data = data;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Dataset {\n");
-
-        sb.append("  code: ").append(code).append("\n");
-        sb.append("  date: ").append(date).append("\n");
-        sb.append("  header: ").append(header).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
 }
diff --git a/src/main/java/org/hbp/mip/model/Filter.java b/src/main/java/org/hbp/mip/model/Filter.java
index b973ed5af313fa354783f0fad9b8ea85cf150b1e..bf0c29b1e03dc4c5fceb14699f8ca091fa94488b 100644
--- a/src/main/java/org/hbp/mip/model/Filter.java
+++ b/src/main/java/org/hbp/mip/model/Filter.java
@@ -6,9 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.LinkedList;
@@ -16,27 +14,29 @@ import java.util.List;
 
 @Entity
 @Table(name = "`filter`")
-@ApiModel(description = "")
+@ApiModel
 @JsonIgnoreProperties(value = { "id" })
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Filter {
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id = null;
+
     @ManyToOne
     private Variable variable = null;
+
     private String operator = null;
+
     @ElementCollection(fetch = FetchType.EAGER)
+    @CollectionTable(name = "filter_values", joinColumns = @JoinColumn(name = "filter_id"))
     private List<String> values = new LinkedList<>();
 
+
     public Filter() {
     }
 
-    /**
-     * Unique identifier
-     **/
-    @ApiModelProperty(value = "Unique identifier")
-    @JsonProperty("id")
+
     public Long getId() {
         return id;
     }
@@ -45,11 +45,7 @@ public class Filter {
         this.id = id;
     }
 
-    /**
-     * Variable
-     **/
-    @ApiModelProperty(value = "Variable")
-    @JsonProperty("variable")
+
     public Variable getVariable() {
         return variable;
     }
@@ -58,11 +54,7 @@ public class Filter {
         this.variable = variable;
     }
 
-    /**
-     * Operator
-     **/
-    @ApiModelProperty(value = "Operator")
-    @JsonProperty("operator")
+
     public String getOperator() {
         return operator;
     }
@@ -71,6 +63,7 @@ public class Filter {
         this.operator = operator;
     }
 
+
     public List<String> getValues() {
         return values;
     }
@@ -79,15 +72,4 @@ public class Filter {
         this.values = values;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Filter {\n");
-
-        sb.append("  id: ").append(id).append("\n");
-        sb.append("  variable: ").append(variable).append("\n");
-        sb.append("  operator: ").append(operator).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/GeneralStats.java b/src/main/java/org/hbp/mip/model/GeneralStats.java
index 679b1d91ec310fe718319b46e3427ddcaf8d0399..94b3b62b28b5dea3b2d727c66042272401827858 100644
--- a/src/main/java/org/hbp/mip/model/GeneralStats.java
+++ b/src/main/java/org/hbp/mip/model/GeneralStats.java
@@ -1,12 +1,13 @@
+/**
+ * Created by mirco on 03.02.16.
+ */
+
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
 
-/**
- * Created by mirco on 03.02.16.
- */
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class GeneralStats {
 
@@ -14,9 +15,11 @@ public class GeneralStats {
     private Long articles = null;
     private Long variables = null;
 
+
     public GeneralStats() {
     }
 
+
     public Long getUsers() {
         return users;
     }
@@ -25,6 +28,7 @@ public class GeneralStats {
         this.users = users;
     }
 
+
     public Long getArticles() {
         return articles;
     }
@@ -33,6 +37,7 @@ public class GeneralStats {
         this.articles = articles;
     }
 
+
     public Long getVariables() {
         return variables;
     }
diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java
index 972b2432952588175df8dd33bee44914482e99b1..066f3f94905128fdb961b1d473b0d878948814ad 100644
--- a/src/main/java/org/hbp/mip/model/Group.java
+++ b/src/main/java/org/hbp/mip/model/Group.java
@@ -6,9 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.LinkedList;
@@ -16,26 +14,27 @@ import java.util.List;
 
 @Entity
 @Table(name = "`group`")
-@ApiModel(description = "")
+@ApiModel
 @JsonIgnoreProperties(value = { "parent" })
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Group {
+
     @Id
     private String code = null;
+
     private String label = null;
+
     @ManyToOne(fetch = FetchType.EAGER)
     private Group parent = null;
+
     @OneToMany(fetch = FetchType.EAGER)
-    private List<Group> groups = new LinkedList<Group>();
+    private List<Group> groups = new LinkedList<>();
+
 
     public Group() {
     }
 
-    /**
-     * Code
-     **/
-    @ApiModelProperty(value = "Code")
-    @JsonProperty("code")
+
     public String getCode() {
         return code;
     }
@@ -44,11 +43,7 @@ public class Group {
         this.code = code;
     }
 
-    /**
-     * Label
-     **/
-    @ApiModelProperty(value = "Label")
-    @JsonProperty("label")
+
     public String getLabel() {
         return label;
     }
@@ -57,21 +52,16 @@ public class Group {
         this.label = label;
     }
 
+
     public Group getParent() {
         return parent;
     }
 
-    @ApiModelProperty(value = "Parent")
-    @JsonProperty("parent")
     public void setParent(Group parent) {
         this.parent = parent;
     }
 
-    /**
-     * Groups
-     **/
-    @ApiModelProperty(value = "Groups")
-    @JsonProperty("groups")
+
     public List<Group> getGroups() {
         return groups;
     }
@@ -80,22 +70,6 @@ public class Group {
         this.groups = groups;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Group {\n");
-
-        sb.append("  code: ").append(code).append("\n");
-        sb.append("  label: ").append(label).append("\n");
-        sb.append("  parent: ").append(parent).append("\n");
-        sb.append("  groups: ").append(groups).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    public void addGroup(Group group) {
-        this.groups.add(group);
-    }
 
     public Group clone()
     {
diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java
index 53c0e6e9a476a8f886c288d70d285c7d4b5b675c..2a3b64dfb57f32436fd1ff6673415957149844cc 100644
--- a/src/main/java/org/hbp/mip/model/Model.java
+++ b/src/main/java/org/hbp/mip/model/Model.java
@@ -5,50 +5,60 @@
 package org.hbp.mip.model;
 
 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.Cascade;
 import org.hibernate.annotations.CascadeType;
 
-import javax.persistence.*;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
 import java.util.Date;
 
 @Entity
 @Table(name = "`model`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Model {
+
     @Id
     private String slug = null;
+
     private String title = null;
+
     private String description = null;
+
     private Boolean valid = null;
+
     private Date createdAt = null;
+
     private Date updatedAt = null;
+
     @ManyToOne
     @Cascade(CascadeType.SAVE_UPDATE)
     private Query query = null;
+
     @ManyToOne
     @Cascade(CascadeType.SAVE_UPDATE)
     private Dataset dataset = null;
+
     @ManyToOne
     @Cascade(CascadeType.SAVE_UPDATE)
     private Config config = null;
+
     @ManyToOne
     private User createdBy = null;
+
     @ManyToOne
     private User updatedBy = null;
+
     private String textQuery = null;
 
+
     public Model() {
     }
 
-    /**
-     * Title
-     **/
-    @ApiModelProperty(value = "Title")
-    @JsonProperty("title")
+
     public String getTitle() {
         return title;
     }
@@ -57,11 +67,7 @@ public class Model {
         this.title = title;
     }
 
-    /**
-     * slug
-     **/
-    @ApiModelProperty(value = "slug")
-    @JsonProperty("slug")
+
     public String getSlug() {
         return slug;
     }
@@ -70,11 +76,7 @@ public class Model {
         this.slug = slug;
     }
 
-    /**
-     * Description
-     **/
-    @ApiModelProperty(value = "Description")
-    @JsonProperty("description")
+
     public String getDescription() {
         return description;
     }
@@ -83,11 +85,7 @@ public class Model {
         this.description = description;
     }
 
-    /**
-     * Query
-     **/
-    @ApiModelProperty(value = "Query")
-    @JsonProperty("query")
+
     public Query getQuery() {
         return query;
     }
@@ -96,11 +94,7 @@ public class Model {
         this.query = query;
     }
 
-    /**
-     * Dataset
-     **/
-    @ApiModelProperty(value = "Dataset")
-    @JsonProperty("dataset")
+
     public Dataset getDataset() {
         return dataset;
     }
@@ -109,11 +103,7 @@ public class Model {
         this.dataset = dataset;
     }
 
-    /**
-     * Is it valid ?
-     **/
-    @ApiModelProperty(value = "Is it valid ?")
-    @JsonProperty("valid")
+
     public Boolean getValid() {
         return valid;
     }
@@ -122,8 +112,7 @@ public class Model {
         this.valid = valid;
     }
 
-    @ApiModelProperty(value = "Config")
-    @JsonProperty("config")
+
     public Config getConfig() {
         return config;
     }
@@ -132,11 +121,7 @@ public class Model {
         this.config = config;
     }
 
-    /**
-     * Creation date
-     **/
-    @ApiModelProperty(value = "Creation date")
-    @JsonProperty("createdAt")
+
     public Date getCreatedAt() {
         return createdAt;
     }
@@ -145,11 +130,7 @@ public class Model {
         this.createdAt = createdAt;
     }
 
-    /**
-     * Update date
-     **/
-    @ApiModelProperty(value = "Update date")
-    @JsonProperty("updatedAt")
+
     public Date getUpdatedAt() {
         return updatedAt;
     }
@@ -158,11 +139,7 @@ public class Model {
         this.updatedAt = updatedAt;
     }
 
-    /**
-     * Author
-     **/
-    @ApiModelProperty(value = "Author")
-    @JsonProperty("createdBy")
+
     public User getCreatedBy() {
         return createdBy;
     }
@@ -171,11 +148,7 @@ public class Model {
         this.createdBy = createdBy;
     }
 
-    /**
-     * Updater
-     **/
-    @ApiModelProperty(value = "Updater")
-    @JsonProperty("updatedBy")
+
     public User getUpdatedBy() {
         return updatedBy;
     }
@@ -184,11 +157,7 @@ public class Model {
         this.updatedBy = updatedBy;
     }
 
-    /**
-    * Text query
-    **/
-    @ApiModelProperty(value = "Text query")
-    @JsonProperty("textQuery")
+
     public String getTextQuery() {
         return textQuery;
     }
@@ -197,23 +166,4 @@ public class Model {
     this.textQuery = textQuery;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Model {\n");
-
-        sb.append("  title: ").append(title).append("\n");
-        sb.append("  slug: ").append(slug).append("\n");
-        sb.append("  description: ").append(description).append("\n");
-        sb.append("  query: ").append(query).append("\n");
-        sb.append("  valid: ").append(valid).append("\n");
-        sb.append("  createdAt: ").append(createdAt).append("\n");
-        sb.append("  updatedAt: ").append(updatedAt).append("\n");
-        sb.append("  createdBy: ").append(createdBy).append("\n");
-        sb.append("  updatedBy: ").append(updatedBy).append("\n");
-        sb.append("  textQuery: ").append(textQuery).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
 }
diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java
index 7543d62c6e63c479fd2d8c7e3f99939cd6205b6a..1f57e36168071c0960edb7c1a52567aa628097aa 100644
--- a/src/main/java/org/hbp/mip/model/Query.java
+++ b/src/main/java/org/hbp/mip/model/Query.java
@@ -8,51 +8,53 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
 @Entity
+@ApiModel
 @Table(name = "`query`")
-@ApiModel(description = "")
 @JsonIgnoreProperties(value = { "id" })
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Query {
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id = null;
+
     private String request = null;
+
     @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<>();
+
     @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<>();
+
     @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<>();
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+
+    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
     private List<Filter> filters = new LinkedList<>();
 
+
     public Query() {
     }
 
-    /**
-     * Unique identifier
-     **/
-    @ApiModelProperty(value = "Unique identifier")
-    @JsonProperty("id")
+
     public Long getId() {
         return id;
     }
@@ -61,11 +63,7 @@ public class Query {
         this.id = id;
     }
 
-    /**
-     * Variables
-     **/
-    @ApiModelProperty(value = "Variables")
-    @JsonProperty("variables")
+
     public List<Variable> getVariables() {
         return variables;
     }
@@ -74,10 +72,7 @@ public class Query {
         this.variables = variables;
     }
 
-    /**
-     * Covariables
-     **/
-    @ApiModelProperty(value = "Covariables")
+
     @JsonProperty("coVariables")
     public List<Variable> getCovariables() {
         return covariables;
@@ -87,10 +82,7 @@ public class Query {
         this.covariables = covariables;
     }
 
-    /**
-     * Grouping
-     **/
-    @ApiModelProperty(value = "Grouping")
+
     @JsonProperty("groupings")
     public List<Variable> getGrouping() {
         return grouping;
@@ -100,11 +92,7 @@ public class Query {
         this.grouping = grouping;
     }
 
-    /**
-     * Filters
-     **/
-    @ApiModelProperty(value = "Filters")
-    @JsonProperty("filters")
+
     public List<Filter> getFilters() {
         return filters;
     }
@@ -113,11 +101,7 @@ public class Query {
         this.filters = filters;
     }
 
-    /**
-     * Request
-     **/
-    @ApiModelProperty(value = "Request")
-    @JsonProperty("request")
+
     public String getRequest() {
         return request;
     }
@@ -126,34 +110,4 @@ public class Query {
         this.request = request;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Query {\n");
-
-        sb.append("  id: ").append(id).append("\n");
-        sb.append("  variables: ").append(variables).append("\n");
-        sb.append("  covariables: ").append(covariables).append("\n");
-        sb.append("  grouping: ").append(grouping).append("\n");
-        sb.append("  filters: ").append(filters).append("\n");
-        sb.append("  request: ").append(request).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    public void addVariable(Variable variable) {
-        this.variables.add(variable);
-    }
-
-    public void addCovariable(Variable covariable) {
-        this.covariables.add(covariable);
-    }
-
-    public void addGroupingVariable(Variable groupingVariable) {
-        this.grouping.add(groupingVariable);
-    }
-
-    public void addFilter(Filter filter) {
-        this.filters.add(filter);
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java
index e61cbf017d5964dd2a04002bd7b5b918fa353bc4..e4c34e30bb9ca12ee306455e755018033ab928f7 100644
--- a/src/main/java/org/hbp/mip/model/Tag.java
+++ b/src/main/java/org/hbp/mip/model/Tag.java
@@ -5,9 +5,7 @@
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.Entity;
 import javax.persistence.Id;
@@ -15,20 +13,18 @@ import javax.persistence.Table;
 
 @Entity
 @Table(name = "`tag`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Tag {
+
     @Id
     private String name = null;
 
+
     public Tag() {
     }
 
-    /**
-     * Name
-     **/
-    @ApiModelProperty(value = "Name")
-    @JsonProperty("name")
+
     public String getName() {
         return name;
     }
@@ -37,14 +33,4 @@ public class Tag {
         this.name = name;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Tag {\n");
-
-        //sb.append("  id: ").append(id).append("\n");
-        sb.append("  name: ").append(name).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java
index d31237ba71f26ff07ffb17a982f3c42b1452233e..c361951013039556811b5a0a1cab032434679c09 100644
--- a/src/main/java/org/hbp/mip/model/User.java
+++ b/src/main/java/org/hbp/mip/model/User.java
@@ -5,9 +5,7 @@
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.LinkedList;
@@ -17,35 +15,62 @@ import java.util.regex.Pattern;
 
 @Entity
 @Table(name = "`user`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class User {
+
     @Id
     private String username = null;
+
     private String fullname = null;
+
     private String firstname = null;
+
     private String lastname = null;
+
     private String picture = null;
+
     private String web = null;
+
     private String phone = null;
+
     private String birthday = null;
+
     private String gender = null;
+
     private String city = null;
+
     private String country = null;
+
     private String password = null;
+
     private String email = null;
+
     private String apikey = null;
+
     private String team = null;
+
     private Boolean isActive = null;
+
     @ElementCollection(fetch = FetchType.EAGER)
-    private List<String> languages = new LinkedList<String>();
+    @CollectionTable(name = "user_languages", joinColumns = @JoinColumn(name = "user_username"))
+    private List<String> languages = new LinkedList<>();
+
     @ElementCollection(fetch = FetchType.EAGER)
-    private List<String> roles = new LinkedList<String>();
+    @CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_username"))
+    private List<String> roles = new LinkedList<>();
+
     private Boolean agreeNDA = null;
 
+
     public User() {
     }
 
+
+    /**
+     * Create a user using OpenID user profile
+     * @param userInfo info from OpenID UserInfo endpoint
+     */
     public User(String userInfo) {
 
         Pattern p;
@@ -109,11 +134,7 @@ public class User {
 
     }
 
-    /**
-     * Fullname
-     **/
-    @ApiModelProperty(value = "Fullname")
-    @JsonProperty("fullname")
+
     public String getFullname() {
         return fullname;
     }
@@ -122,11 +143,7 @@ public class User {
         this.fullname = fullname;
     }
 
-    /**
-     * Username
-     **/
-    @ApiModelProperty(value = "Username")
-    @JsonProperty("username")
+
     public String getUsername() {
         return username;
     }
@@ -135,11 +152,7 @@ public class User {
         this.username = username;
     }
 
-    /**
-     * Firstname
-     **/
-    @ApiModelProperty(value = "Firstname")
-    @JsonProperty("firstname")
+
     public String getFirstname() {
         return firstname;
     }
@@ -148,11 +161,7 @@ public class User {
         this.firstname = firstname;
     }
 
-    /**
-     * Lastname
-     **/
-    @ApiModelProperty(value = "Lastname")
-    @JsonProperty("lastname")
+
     public String getLastname() {
         return lastname;
     }
@@ -161,11 +170,7 @@ public class User {
         this.lastname = lastname;
     }
 
-    /**
-     * Path to a profile picture
-     **/
-    @ApiModelProperty(value = "Path to a profile picture")
-    @JsonProperty("picture")
+
     public String getPicture() {
         return picture;
     }
@@ -174,11 +179,7 @@ public class User {
         this.picture = picture;
     }
 
-    /**
-     * Personnal web site URL
-     **/
-    @ApiModelProperty(value = "Personnal web site URL")
-    @JsonProperty("web")
+
     public String getWeb() {
         return web;
     }
@@ -187,11 +188,7 @@ public class User {
         this.web = web;
     }
 
-    /**
-     * Phone number
-     **/
-    @ApiModelProperty(value = "Phone number")
-    @JsonProperty("phone")
+
     public String getPhone() {
         return phone;
     }
@@ -200,11 +197,7 @@ public class User {
         this.phone = phone;
     }
 
-    /**
-     * Birthday date
-     **/
-    @ApiModelProperty(value = "Birthday date")
-    @JsonProperty("birthday")
+
     public String getBirthday() {
         return birthday;
     }
@@ -213,11 +206,7 @@ public class User {
         this.birthday = birthday;
     }
 
-    /**
-     * Gender
-     **/
-    @ApiModelProperty(value = "Gender")
-    @JsonProperty("gender")
+
     public String getGender() {
         return gender;
     }
@@ -226,11 +215,7 @@ public class User {
         this.gender = gender;
     }
 
-    /**
-     * City
-     **/
-    @ApiModelProperty(value = "City")
-    @JsonProperty("city")
+
     public String getCity() {
         return city;
     }
@@ -239,11 +224,7 @@ public class User {
         this.city = city;
     }
 
-    /**
-     * Country
-     **/
-    @ApiModelProperty(value = "Country")
-    @JsonProperty("country")
+
     public String getCountry() {
         return country;
     }
@@ -252,11 +233,7 @@ public class User {
         this.country = country;
     }
 
-    /**
-     * password
-     **/
-    @ApiModelProperty(value = "password")
-    @JsonProperty("password")
+
     public String getPassword() {
         return password;
     }
@@ -265,11 +242,7 @@ public class User {
         this.password = password;
     }
 
-    /**
-     * E-mail address
-     **/
-    @ApiModelProperty(value = "E-mail address")
-    @JsonProperty("email")
+
     public String getEmail() {
         return email;
     }
@@ -278,11 +251,7 @@ public class User {
         this.email = email;
     }
 
-    /**
-     * API key
-     **/
-    @ApiModelProperty(value = "API key")
-    @JsonProperty("apikey")
+
     public String getApikey() {
         return apikey;
     }
@@ -291,11 +260,7 @@ public class User {
         this.apikey = apikey;
     }
 
-    /**
-     * Team
-     **/
-    @ApiModelProperty(value = "Team")
-    @JsonProperty("team")
+
     public String getTeam() {
         return team;
     }
@@ -304,11 +269,7 @@ public class User {
         this.team = team;
     }
 
-    /**
-     * Is it active ?
-     **/
-    @ApiModelProperty(value = "Is it active ?")
-    @JsonProperty("isActive")
+
     public Boolean getIsActive() {
         return isActive;
     }
@@ -317,11 +278,7 @@ public class User {
         this.isActive = isActive;
     }
 
-    /**
-     * Languages
-     **/
-    @ApiModelProperty(value = "Languages")
-    @JsonProperty("languages")
+
     public List<String> getLanguages() {
         return languages;
     }
@@ -330,11 +287,7 @@ public class User {
         this.languages = languages;
     }
 
-    /**
-     * Roles
-     **/
-    @ApiModelProperty(value = "Roles")
-    @JsonProperty("roles")
+
     public List<String> getRoles() {
         return roles;
     }
@@ -343,11 +296,7 @@ public class User {
         this.roles = roles;
     }
 
-    /**
-    * Agree NDA
-    **/
-    @ApiModelProperty(value = "Agree NDA")
-    @JsonProperty("agreeNDA")
+
     public Boolean getAgreeNDA() {
         return agreeNDA;
     }
@@ -356,40 +305,4 @@ public class User {
         this.agreeNDA = agreeNDA;
     }
 
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class User {\n");
-
-        sb.append("  fullname: ").append(fullname).append("\n");
-        sb.append("  username: ").append(username).append("\n");
-        sb.append("  firstname: ").append(firstname).append("\n");
-        sb.append("  lastname: ").append(lastname).append("\n");
-        sb.append("  picture: ").append(picture).append("\n");
-        sb.append("  web: ").append(web).append("\n");
-        sb.append("  phone: ").append(phone).append("\n");
-        sb.append("  birthday: ").append(birthday).append("\n");
-        sb.append("  gender: ").append(gender).append("\n");
-        sb.append("  city: ").append(city).append("\n");
-        sb.append("  country: ").append(country).append("\n");
-        sb.append("  password: ").append(password).append("\n");
-        sb.append("  email: ").append(email).append("\n");
-        sb.append("  apikey: ").append(apikey).append("\n");
-        sb.append("  team: ").append(team).append("\n");
-        sb.append("  isActive: ").append(isActive).append("\n");
-        sb.append("  languages: ").append(languages).append("\n");
-        sb.append("  roles: ").append(roles).append("\n");
-        sb.append("  agreeNDA: ").append(agreeNDA).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    public void addLanguage(String language) {
-        this.languages.add(language);
-    }
-
-    public void addRole(String role) {
-        this.roles.add(role);
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/Value.java b/src/main/java/org/hbp/mip/model/Value.java
index 150101367a6dcdfb3e9f72ad5a13f2b93c7cc28e..b9c2705c59e3ecd524a4d4b289a478aadf02601e 100644
--- a/src/main/java/org/hbp/mip/model/Value.java
+++ b/src/main/java/org/hbp/mip/model/Value.java
@@ -5,9 +5,7 @@
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.Entity;
 import javax.persistence.Id;
@@ -15,20 +13,16 @@ import javax.persistence.Table;
 
 @Entity
 @Table(name = "`value`")
-@ApiModel(description = "")
+@ApiModel
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Value {
 
     @Id
     private String code = null;
+
     private String label = null;
 
 
-    /**
-     * Code
-     **/
-    @ApiModelProperty(value = "Code")
-    @JsonProperty("code")
     public String getCode() {
         return code;
     }
@@ -38,11 +32,6 @@ public class Value {
     }
 
 
-    /**
-     * Label
-     **/
-    @ApiModelProperty(value = "Label")
-    @JsonProperty("label")
     public String getLabel() {
         return label;
     }
@@ -51,15 +40,4 @@ public class Value {
         this.label = label;
     }
 
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Value {\n");
-
-        sb.append("  code: ").append(code).append("\n");
-        sb.append("  label: ").append(label).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
 }
diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java
index 4134988d2ab678908ddc38d97c3b8aa6ad96e81a..7bf380b36cec7aec3a5e14a4fc3ef6a9e977e7a2 100644
--- a/src/main/java/org/hbp/mip/model/Variable.java
+++ b/src/main/java/org/hbp/mip/model/Variable.java
@@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 
 import javax.persistence.*;
 import java.util.LinkedList;
@@ -16,38 +15,48 @@ import java.util.List;
 
 @Entity
 @Table(name = "`variable`")
-@ApiModel(description = "")
+@ApiModel
 @JsonIgnoreProperties(value = { "queries" })
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class Variable {
 
     @Id
     private String code = null;
+
     private String label = null;
+
     private String type = null;
+
     private Integer length = null;
+
     private Double minValue = null;
+
     private Double maxValue = null;
+
     private String units = null;
+
     private Boolean isVariable = null;
+
     private Boolean isGrouping = null;
+
     private Boolean isCovariable = null;
+
     private Boolean isFilter = null;
+
     @ManyToOne(fetch = FetchType.EAGER)
     private Group group = null;
+
     @ManyToMany(fetch = FetchType.EAGER)
     private List<Value> values = new LinkedList<>();
+
     @ManyToMany(fetch = FetchType.EAGER, mappedBy = "variables")
     private List<Query> queries = new LinkedList<>();
 
+
     public Variable() {
     }
 
-    /**
-     * Group
-     **/
-    @ApiModelProperty(value = "Group")
-    @JsonProperty("group")
+
     public Group getGroup() {
         return group;
     }
@@ -56,11 +65,7 @@ public class Variable {
         this.group = group;
     }
 
-    /**
-     * Code
-     **/
-    @ApiModelProperty(value = "Code")
-    @JsonProperty("code")
+
     public String getCode() {
         return code;
     }
@@ -69,11 +74,7 @@ public class Variable {
         this.code = code;
     }
 
-    /**
-     * Label
-     **/
-    @ApiModelProperty(value = "Label")
-    @JsonProperty("label")
+
     public String getLabel() {
         return label;
     }
@@ -82,11 +83,7 @@ public class Variable {
         this.label = label;
     }
 
-    /**
-     * Type
-     **/
-    @ApiModelProperty(value = "Type")
-    @JsonProperty("type")
+
     public String getType() {
         return type;
     }
@@ -95,11 +92,7 @@ public class Variable {
         this.type = type;
     }
 
-    /**
-     * Length
-     **/
-    @ApiModelProperty(value = "Length")
-    @JsonProperty("length")
+
     public Integer getLength() {
         return length;
     }
@@ -108,10 +101,7 @@ public class Variable {
         this.length = length;
     }
 
-    /**
-     * Is it a variable ?
-     **/
-    @ApiModelProperty(value = "Is it a variable ?")
+
     @JsonProperty("isVariable")
     public Boolean getIsVariable() {
         return isVariable;
@@ -121,10 +111,7 @@ public class Variable {
         this.isVariable = isVariable;
     }
 
-    /**
-     * Is it a grouping variable ?
-     **/
-    @ApiModelProperty(value = "Is it a grouping variable ?")
+
     @JsonProperty("isGrouping")
     public Boolean getIsGrouping() {
         return isGrouping;
@@ -134,10 +121,7 @@ public class Variable {
         this.isGrouping = isGrouping;
     }
 
-    /**
-     * Is it a co-variable ?
-     **/
-    @ApiModelProperty(value = "Is it a co-variable ?")
+
     @JsonProperty("isCovariable")
     public Boolean getIsCovariable() {
         return isCovariable;
@@ -147,10 +131,7 @@ public class Variable {
         this.isCovariable = isCovariable;
     }
 
-    /**
-     * Is it a filter ?
-     **/
-    @ApiModelProperty(value = "Is it a filter ?")
+
     @JsonProperty("isFilter")
     public Boolean getIsFilter() {
         return isFilter;
@@ -160,10 +141,7 @@ public class Variable {
         this.isFilter = isFilter;
     }
 
-    /**
-     **/
-    @ApiModelProperty(value = "")
-    @JsonProperty("values")
+
     public List<Value> getValues() {
         return values;
     }
@@ -172,11 +150,7 @@ public class Variable {
         this.values = values;
     }
 
-    /**
-     * Minimum value (only for numbers)
-     **/
-    @ApiModelProperty(value = "Minimum value (only for numbers)")
-    @JsonProperty("minValue")
+
     public Double getMinValue() {
         return minValue;
     }
@@ -185,11 +159,7 @@ public class Variable {
         this.minValue = minValue;
     }
 
-    /**
-     * Maximum value (only for numbers)
-     **/
-    @ApiModelProperty(value = "Maximum value (only for numbers)")
-    @JsonProperty("maxValue")
+
     public Double getMaxValue() {
         return maxValue;
     }
@@ -198,11 +168,7 @@ public class Variable {
         this.maxValue = maxValue;
     }
 
-    /**
-     * Units
-     **/
-    @ApiModelProperty(value = "Units")
-    @JsonProperty("units")
+
     public String getUnits() {
         return units;
     }
@@ -211,6 +177,7 @@ public class Variable {
         this.units = units;
     }
 
+
     public List<Query> getQueries() {
         return queries;
     }
@@ -219,26 +186,4 @@ public class Variable {
         this.queries = queries;
     }
 
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("class Variable {\n");
-
-        sb.append("  group: ").append(group).append("\n");
-        sb.append("  code: ").append(code).append("\n");
-        sb.append("  label: ").append(label).append("\n");
-        sb.append("  type: ").append(type).append("\n");
-        sb.append("  length: ").append(length).append("\n");
-        sb.append("  isVariable: ").append(isVariable).append("\n");
-        sb.append("  isGrouping: ").append(isGrouping).append("\n");
-        sb.append("  isGrouping: ").append(isCovariable).append("\n");
-        sb.append("  isFilter: ").append(isFilter).append("\n");
-        sb.append("  values: ").append(values).append("\n");
-        sb.append("}\n");
-        return sb.toString();
-    }
-
-    public void addValue(Value value) {
-        this.values.add(value);
-    }
 }
diff --git a/src/test/db b/src/test/db
index 2551a33d32b4108bead9cdd6f11642e726a2b59b..e1fcb1c4915415abdd1e545b9f4c04276c5c4b0f 160000
--- a/src/test/db
+++ b/src/test/db
@@ -1 +1 @@
-Subproject commit 2551a33d32b4108bead9cdd6f11642e726a2b59b
+Subproject commit e1fcb1c4915415abdd1e545b9f4c04276c5c4b0f