diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
index 0768b77d24b4f74fc57a4b41687169139da0f7b8..4c80015b04ad7b69da6e824356d5d66ddbaf2c50 100644
--- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
@@ -1,14 +1,9 @@
 package org.hbp.mip.controllers;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import com.google.gson.*;
 import io.swagger.annotations.*;
 import org.hbp.mip.MIPApplication;
-import org.hbp.mip.model.Experiment;
-import org.hbp.mip.model.Model;
-import org.hbp.mip.model.User;
+import org.hbp.mip.model.*;
 import org.hbp.mip.utils.HTTPUtil;
 import org.hbp.mip.utils.HibernateUtil;
 import org.hibernate.Query;
@@ -22,10 +17,7 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProtocolException;
-import java.net.URL;
+import java.net.*;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
@@ -53,10 +45,12 @@ public class ExperimentApi {
     @Value("#{'${workflow.experimentUrl:http://dockerhost:8087/experiment}'}")
     private String experimentUrl;
 
-
     @Value("#{'${workflow.listMethodsUrl:http://dockerhost:8087/list-methods}'}")
     private String listMethodsUrl;
 
+    @Value("#{'${workflow.miningExaremeUrl:http://hbps2.chuv.ch:9090/mining/query}'}")
+    private String miningExaremeQueryUrl;
+
     @Autowired
     MIPApplication mipApplication;
 
@@ -162,12 +156,129 @@ public class ExperimentApi {
         }
 
         try {
-            sendPost(experiment);
+            if(isExaremeAlgo(experiment))
+            {
+                sendExaremePost(experiment);
+            }
+            else
+            {
+                sendPost(experiment);
+            }
         } catch (MalformedURLException mue) {} // ignore
 
         return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK);
     }
 
+    private void sendExaremePost(Experiment experiment) {
+
+        Model model = experiment.getModel();
+        String algoCode = "WP_LINEAR_REGRESSION";
+
+        LinkedList<ExaremeQueryElement> queryElements = new LinkedList<>();
+        for (Variable var : model.getQuery().getVariables())
+        {
+            ExaremeQueryElement el = new ExaremeQueryElement();
+            el.setName("variable");
+            el.setDesc("");
+            el.setValue(var.getCode());
+            queryElements.add(el);
+        }
+        for (Variable var : model.getQuery().getCovariables())
+        {
+            ExaremeQueryElement el = new ExaremeQueryElement();
+            el.setName("covariables");
+            el.setDesc("");
+            el.setValue(var.getCode());
+            queryElements.add(el);
+        }
+        for (Variable var : model.getQuery().getGrouping())
+        {
+            ExaremeQueryElement el = new ExaremeQueryElement();
+            el.setName("groupings");
+            el.setDesc("");
+            el.setValue(var.getCode());
+            queryElements.add(el);
+        }
+
+        ExaremeQueryElement tableEl = new ExaremeQueryElement();
+        tableEl.setName("showtable");
+        tableEl.setDesc("");
+        tableEl.setValue("TotalResults");
+        queryElements.add(tableEl);
+
+        ExaremeQueryElement formatEl = new ExaremeQueryElement();
+        formatEl.setName("format");
+        formatEl.setDesc("");
+        formatEl.setValue("True");
+        queryElements.add(formatEl);
+
+        String jsonQuery = new Gson().toJson(queryElements);
+
+        new Thread() {
+            public void run() {
+                try {
+
+                    /* Launch computation */
+
+                    String url = miningExaremeQueryUrl + "/" + algoCode + "/?format=true";
+                    StringBuilder results = new StringBuilder();
+                    int code = HTTPUtil.sendPost(url, jsonQuery, results);
+                    if (code < 200 || code > 299) {
+                        experiment.setHasError(true);
+                        experiment.setHasServerError(true);
+                        experiment.setResult("Exareme returned code : " + code);
+                    }
+
+                    JsonParser parser = new JsonParser();
+                    String key = parser.parse(results.toString()).getAsJsonObject().get("queryKey").getAsString();
+
+                    /* Wait for result */
+
+                    url = miningExaremeQueryUrl + "/" + key + "/status";
+                    double progress = 0;
+
+                    while (progress < 100) {
+                        Thread.sleep(200);
+                        results = new StringBuilder();
+                        code = HTTPUtil.sendPost(url, jsonQuery, results);
+                        if (code < 200 || code > 299) {
+                            experiment.setHasError(true);
+                            experiment.setHasServerError(true);
+                            experiment.setResult("Exareme returned code : " + code);
+                        }
+                        progress = parser.parse(results.toString()).getAsJsonObject().get("status").getAsDouble();
+                    }
+
+                    /* Get result */
+
+                    url = miningExaremeQueryUrl + "/" + key + "/result";
+                    results = new StringBuilder();
+                    code = HTTPUtil.sendPost(url, jsonQuery, results);
+
+                    experiment.setResult(results.toString().replace("\0", ""));
+                    experiment.setHasError(code >= 400);
+                    experiment.setHasServerError(code >= 500);
+
+                } catch (UnknownHostException uhe) {
+                    uhe.printStackTrace();
+                    experiment.setHasError(true);
+                    experiment.setHasServerError(true);
+                    experiment.setResult(uhe.getMessage());
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }.start();
+    }
+
+    private boolean isExaremeAlgo(Experiment experiment)  {
+        JsonArray algorithms = new JsonParser().parse(experiment.getAlgorithms()).getAsJsonArray();
+        String algoCode = algorithms.get(0).getAsJsonObject().get("code").getAsString();
+        return algoCode.equals("glm_exareme");
+    }
+
     @ApiOperation(value = "get an experiment", response = Experiment.class)
     @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
     @RequestMapping(value = "/{uuid}", method = RequestMethod.GET)
@@ -387,7 +498,7 @@ public class ExperimentApi {
 
         JsonObject catalog = new JsonParser().parse(response.toString()).getAsJsonObject();
 
-        InputStream is = MiningApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE);
+        InputStream is = ExperimentApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE);
         InputStreamReader isr = new InputStreamReader(is);
         BufferedReader br = new BufferedReader(isr);
         JsonObject exaremeAlgo = new JsonParser().parse(br).getAsJsonObject();
diff --git a/src/main/java/org/hbp/mip/controllers/MiningApi.java b/src/main/java/org/hbp/mip/controllers/MiningApi.java
deleted file mode 100644
index 15addb9e1983b16e0a75e75f9b02fb7668b67384..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/controllers/MiningApi.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/**
- * Created by mirco on 02.03.16.
- */
-
-package org.hbp.mip.controllers;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonParser;
-import io.swagger.annotations.*;
-import org.hbp.mip.model.ExaremeQueryElement;
-import org.hbp.mip.model.Model;
-import org.hbp.mip.model.SimpleMiningQuery;
-import org.hbp.mip.model.Variable;
-import org.hbp.mip.model.algorithm.Algorithm;
-import org.hbp.mip.model.algorithm.Catalog;
-import org.hbp.mip.utils.HTTPUtil;
-import org.hbp.mip.utils.HibernateUtil;
-import org.hibernate.Session;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.UnknownHostException;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Map;
-
-@RestController
-@RequestMapping(value = "/mining")
-@Api(value = "/mining", description = "Forward mining API")
-public class MiningApi {
-
-    private static final String EXAREME_ALGO_JSON_FILE="data/exareme_algorithms.json";
-
-    private static final String ML_SOURCE = "ML";
-
-    private static final String EXAREME_SOURCE = "exareme";
-
-    @Value("#{'${workflow.listMethodsUrl:http://hbps1.chuv.ch:8087/list-methods}'}")
-    private String listMethodsUrl;
-
-    @Value("#{'${workflow.miningMipUrl:http://hbps1.chuv.ch:8087/mining}'}")
-    private String miningMipUrl;
-
-    @Value("#{'${workflow.miningExaremeUrl:http://hbps2.chuv.ch:9090/mining/query}'}")
-    private String miningExaremeQueryUrl;
-
-    @ApiOperation(value = "Send a request to the workflow for data mining", response = String.class)
-    @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
-    @RequestMapping(method = RequestMethod.POST)
-    public ResponseEntity<String> postMining(
-            @RequestBody @ApiParam(value = "Query for the data mining", required = true) String query
-    ) throws Exception {
-
-        StringBuilder response = new StringBuilder();
-
-        int code = HTTPUtil.sendGet(listMethodsUrl, response);
-        if (code < 200 || code > 299) {
-            return new ResponseEntity<>(response.toString(), HttpStatus.valueOf(code));
-        }
-
-        Catalog catalog = new Gson().fromJson(response.toString(), Catalog.class);
-        for (Algorithm algo: catalog.getAlgorithms()) {
-            algo.setSource(ML_SOURCE);
-        }
-
-        InputStream is = MiningApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE);
-        InputStreamReader isr = new InputStreamReader(is);
-        BufferedReader br = new BufferedReader(isr);
-        Algorithm exaremeGLR = new Gson().fromJson(br, Algorithm.class);
-        exaremeGLR.setSource(EXAREME_SOURCE);
-        catalog.getAlgorithms().add(exaremeGLR);
-
-        String algoCode = new JsonParser().parse(query).getAsJsonObject()
-                .get("algorithm").getAsJsonObject()
-                .get("code").getAsString();
-
-        String modelSlug = new JsonParser().parse(query).getAsJsonObject()
-                .get("model").getAsString();
-
-        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
-        Model model = null;
-
-        try {
-            session.beginTransaction();
-            model = (Model) session.createQuery("FROM Model WHERE slug= :slug")
-                    .setString("slug", modelSlug)
-                    .uniqueResult();
-            session.getTransaction().commit();
-        } catch (Exception e)
-        {
-            if(session.getTransaction() != null)
-            {
-                session.getTransaction().rollback();
-                throw e;
-            }
-        }
-
-        for(Algorithm algo : catalog.getAlgorithms())
-        {
-            if (algo.getCode().equals(algoCode))
-            {
-                if(algo.getSource().equals(ML_SOURCE)) {
-                    Algorithm algorithm = new Gson().fromJson(new JsonParser().parse(query).getAsJsonObject()
-                            .get("algorithm").getAsJsonObject(), Algorithm.class);
-                    return postMipMining(algorithm, model);
-                }
-                else if(algo.getSource().equals(EXAREME_SOURCE))
-                {
-                    return postExaremeMining("WP_LINEAR_REGRESSION", model);
-                }
-            }
-        }
-
-        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
-    }
-
-    private ResponseEntity<String> postMipMining(Algorithm algorithm, Model model) throws Exception {
-
-        SimpleMiningQuery smq = new SimpleMiningQuery();
-        smq.setAlgorithm(algorithm);
-
-        LinkedList<Map<String,String>> vars = new LinkedList<>();
-        for(Variable var : model.getQuery().getVariables())
-        {
-            Map<String,String> m = new HashMap<>();
-            m.put("code", var.getCode());
-            vars.add(m);
-        }
-        smq.setVariables(vars);
-
-        LinkedList<Map<String,String>> covars = new LinkedList<>();
-        for(Variable var : model.getQuery().getCovariables())
-        {
-            Map<String,String> m = new HashMap<>();
-            m.put("code", var.getCode());
-            covars.add(m);
-        }
-        smq.setCovariables(covars);
-
-        LinkedList<Map<String,String>> grps = new LinkedList<>();
-        for(Variable var : model.getQuery().getGrouping())
-        {
-            Map<String,String> m = new HashMap<>();
-            m.put("code", var.getCode());
-            grps.add(m);
-        }
-        smq.setGrouping(grps);
-
-        smq.setFilters(new LinkedList<>());
-
-        try {
-            StringBuilder results = new StringBuilder();
-            String jsonQuery = new Gson().toJson(smq);
-
-            System.out.println("****************************************");
-            System.out.println("SimpleMining content : " + jsonQuery);
-            System.out.println("****************************************");
-
-            int code = HTTPUtil.sendPost(miningMipUrl, jsonQuery, results);
-
-            return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code));
-        }
-        catch(UnknownHostException uhe) {
-            uhe.printStackTrace();
-            return new ResponseEntity<>(HttpStatus.BAD_GATEWAY);
-        }
-    }
-
-
-    private ResponseEntity<String> postExaremeMining(String algoCode, Model model) throws Exception {
-
-        LinkedList<ExaremeQueryElement> queryElements = new LinkedList<>();
-        for (Variable var : model.getQuery().getVariables())
-        {
-            ExaremeQueryElement el = new ExaremeQueryElement();
-            el.setName("variable");
-            el.setDesc("");
-            el.setValue(var.getCode());
-            queryElements.add(el);
-        }
-        for (Variable var : model.getQuery().getCovariables())
-        {
-            ExaremeQueryElement el = new ExaremeQueryElement();
-            el.setName("covariables");
-            el.setDesc("");
-            el.setValue(var.getCode());
-            queryElements.add(el);
-        }
-        for (Variable var : model.getQuery().getGrouping())
-        {
-            ExaremeQueryElement el = new ExaremeQueryElement();
-            el.setName("groupings");
-            el.setDesc("");
-            el.setValue(var.getCode());
-            queryElements.add(el);
-        }
-
-        ExaremeQueryElement tableEl = new ExaremeQueryElement();
-        tableEl.setName("showtable");
-        tableEl.setDesc("");
-        tableEl.setValue("TotalResults");
-        queryElements.add(tableEl);
-
-        ExaremeQueryElement formatEl = new ExaremeQueryElement();
-        formatEl.setName("format");
-        formatEl.setDesc("");
-        formatEl.setValue("True");
-        queryElements.add(formatEl);
-
-        String jsonQuery = new Gson().toJson(queryElements);
-
-        System.out.println("****************************************");
-        System.out.println("ExaremeMining content : " + jsonQuery);
-        System.out.println("****************************************");
-
-        try {
-
-            /* Launch computation */
-
-            String url = miningExaremeQueryUrl +"/"+algoCode+"/?format=true";
-            StringBuilder results = new StringBuilder();
-            int code = HTTPUtil.sendPost(url, jsonQuery, results);
-            if (code < 200 || code > 299)
-            {
-                return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code));
-            }
-
-            JsonParser parser = new JsonParser();
-            String key = parser.parse(results.toString()).getAsJsonObject().get("queryKey").getAsString();
-
-            /* Wait for result */
-
-            url = miningExaremeQueryUrl +"/"+key+"/status";
-            double progress = 0;
-
-            while (progress < 100) {
-                Thread.sleep(200);
-                results = new StringBuilder();
-                code = HTTPUtil.sendPost(url, jsonQuery, results);
-                if (code < 200 || code > 299)
-                {
-                    return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code));
-                }
-                progress = parser.parse(results.toString()).getAsJsonObject().get("status").getAsDouble();
-            }
-
-            /* Get result */
-
-            url = miningExaremeQueryUrl +"/"+key+"/result";
-            results = new StringBuilder();
-            code = HTTPUtil.sendPost(url, jsonQuery, results);
-
-            return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code));
-        }
-        catch(UnknownHostException uhe) {
-            uhe.printStackTrace();
-            return new ResponseEntity<>(HttpStatus.BAD_GATEWAY);
-        }
-    }
-
-}
diff --git a/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java b/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java
deleted file mode 100644
index 7f4dc9c34c5139c92cbd8f7027f7a0625eb9eeb8..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.hbp.mip.model;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-import org.hbp.mip.model.algorithm.Algorithm;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by mirco on 20.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class SimpleMiningQuery {
-
-    private Algorithm algorithm;
-
-    private List<Map<String,String>> variables;
-
-    private List<Map<String,String>> covariables;
-
-    private List<Map<String,String>> grouping;
-
-    private List<Map<String,String>> filters;
-
-
-    public Algorithm getAlgorithm() {
-        return algorithm;
-    }
-
-    public void setAlgorithm(Algorithm algorithm) {
-        this.algorithm = algorithm;
-    }
-
-    public List<Map<String, String>> getVariables() {
-        return variables;
-    }
-
-    public void setVariables(List<Map<String, String>> variables) {
-        this.variables = variables;
-    }
-
-    public List<Map<String, String>> getCovariables() {
-        return covariables;
-    }
-
-    public void setCovariables(List<Map<String, String>> covariables) {
-        this.covariables = covariables;
-    }
-
-    public List<Map<String, String>> getGrouping() {
-        return grouping;
-    }
-
-    public void setGrouping(List<Map<String, String>> grouping) {
-        this.grouping = grouping;
-    }
-
-    public List<Map<String, String>> getFilters() {
-        return filters;
-    }
-
-    public void setFilters(List<Map<String, String>> filters) {
-        this.filters = filters;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java b/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java
deleted file mode 100644
index af90d4291cd2d2c8fa849542f9fd3930e062a10e..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class AlgoConstraint {
-
-    private ConstrVariable variable;
-
-    private ConstrMinMax groupings;
-
-    private ConstrMinMax covariables;
-
-    private Boolean mixed;
-
-
-    public ConstrVariable getVariable() {
-        return variable;
-    }
-
-    public void setVariable(ConstrVariable variable) {
-        this.variable = variable;
-    }
-
-    public ConstrMinMax getGroupings() {
-        return groupings;
-    }
-
-    public void setGroupings(ConstrMinMax groupings) {
-        this.groupings = groupings;
-    }
-
-    public ConstrMinMax getCovariables() {
-        return covariables;
-    }
-
-    public void setCovariables(ConstrMinMax covariables) {
-        this.covariables = covariables;
-    }
-
-    public Boolean getMixed() {
-        return mixed;
-    }
-
-    public void setMixed(Boolean mixed) {
-        this.mixed = mixed;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java b/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java
deleted file mode 100644
index 2b23d14fd89549fa5cf5d69f111ddd6c2c7839e0..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class AlgoParameter {
-
-    private String code;
-
-    private String label;
-
-    private Integer defaultValue;
-
-    private String type;
-
-    private ParamConstraint constraints;
-
-    private String description;
-
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getLabel() {
-        return label;
-    }
-
-    public void setLabel(String label) {
-        this.label = label;
-    }
-
-    public Integer getDefaultValue() {
-        return defaultValue;
-    }
-
-    public void setDefaultValue(Integer defaultValue) {
-        this.defaultValue = defaultValue;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public ParamConstraint getConstraints() {
-        return constraints;
-    }
-
-    public void setConstraints(ParamConstraint constraints) {
-        this.constraints = constraints;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java b/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java
deleted file mode 100644
index 653f67c1146ce95c8a3a346dcabd7c926da98dd0..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.annotations.ApiModel;
-
-import java.util.List;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class Algorithm {
-
-    private String code;
-
-    private String label;
-
-    private String name;
-
-    private List type;
-
-    private String environment;
-
-    private String description;
-
-    private List<AlgoParameter> parameters;
-
-    @JsonProperty("docker_image")
-    private String dockerImage;
-
-    private AlgoConstraint constraints;
-
-    private Boolean disable;
-
-    private String source;
-
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getLabel() {
-        return label;
-    }
-
-    public void setLabel(String label) {
-        this.label = label;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public List getType() {
-        return type;
-    }
-
-    public void setType(List type) {
-        this.type = type;
-    }
-
-    public String getEnvironment() {
-        return environment;
-    }
-
-    public void setEnvironment(String environment) {
-        this.environment = environment;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public List<AlgoParameter> getParameters() {
-        return parameters;
-    }
-
-    public void setParameters(List<AlgoParameter> parameters) {
-        this.parameters = parameters;
-    }
-
-    public String getDockerImage() {
-        return dockerImage;
-    }
-
-    public void setDockerImage(String dockerImage) {
-        this.dockerImage = dockerImage;
-    }
-
-    public AlgoConstraint getConstraints() {
-        return constraints;
-    }
-
-    public void setConstraints(AlgoConstraint constraints) {
-        this.constraints = constraints;
-    }
-
-    public Boolean getDisable() {
-        return disable;
-    }
-
-    public void setDisable(Boolean disable) {
-        this.disable = disable;
-    }
-
-    public String getSource() {
-        return source;
-    }
-
-    public void setSource(String source) {
-        this.source = source;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/Catalog.java b/src/main/java/org/hbp/mip/model/algorithm/Catalog.java
deleted file mode 100644
index ed2576a318c1b5de6268f49f03a4cbd353fe65f4..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/Catalog.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-
-import java.util.List;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class Catalog {
-
-    private List<Algorithm> algorithms;
-
-    private List<Algorithm> validations;
-
-
-    public List<Algorithm> getAlgorithms() {
-        return algorithms;
-    }
-
-    public void setAlgorithms(List<Algorithm> algorithms) {
-        this.algorithms = algorithms;
-    }
-
-    public List<Algorithm> getValidations() {
-        return validations;
-    }
-
-    public void setValidations(List<Algorithm> validations) {
-        this.validations = validations;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java b/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java
deleted file mode 100644
index 6532175bbae98c583722dbf4050362901ecc2bd7..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.annotations.ApiModel;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ConstrMinMax {
-
-    @JsonProperty("min_count")
-    private Integer minCount;
-
-    @JsonProperty("max_count")
-    private Integer maxCount;
-
-
-    public Integer getMinCount() {
-        return minCount;
-    }
-
-    public void setMinCount(Integer minCount) {
-        this.minCount = minCount;
-    }
-
-    public Integer getMaxCount() {
-        return maxCount;
-    }
-
-    public void setMaxCount(Integer maxCount) {
-        this.maxCount = maxCount;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java b/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java
deleted file mode 100644
index b4246b51ae68397564b6543cf76359734bbefc0a..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ConstrVariable {
-
-    private Boolean real;
-
-    private Boolean binominal;
-
-    private Boolean polynominal;
-
-
-    public Boolean getReal() {
-        return real;
-    }
-
-    public void setReal(Boolean real) {
-        this.real = real;
-    }
-
-    public Boolean getBinominal() {
-        return binominal;
-    }
-
-    public void setBinominal(Boolean binominal) {
-        this.binominal = binominal;
-    }
-
-    public Boolean getPolynominal() {
-        return polynominal;
-    }
-
-    public void setPolynominal(Boolean polynominal) {
-        this.polynominal = polynominal;
-    }
-}
diff --git a/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java b/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java
deleted file mode 100644
index 0cc94d30a86c3d09fc1d7abec78b4d016b77d801..0000000000000000000000000000000000000000
--- a/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.hbp.mip.model.algorithm;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import io.swagger.annotations.ApiModel;
-
-/**
- * Created by mirco on 17.06.16.
- */
-
-@ApiModel
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ParamConstraint {
-
-    private Integer min;
-
-    private Integer max;
-
-
-    public Integer getMin() {
-        return min;
-    }
-
-    public void setMin(Integer min) {
-        this.min = min;
-    }
-
-    public Integer getMax() {
-        return max;
-    }
-
-    public void setMax(Integer max) {
-        this.max = max;
-    }
-}