diff --git a/src/main/java/eu/hbp/mip/controllers/AlgorithmsAPI.java b/src/main/java/eu/hbp/mip/controllers/AlgorithmsAPI.java
index a15fd37cdfa9ac00e69687e1a419f5359522edd6..2746a2b7b6bf1ca6658162b9c9a86a5ef9b8d176 100644
--- a/src/main/java/eu/hbp/mip/controllers/AlgorithmsAPI.java
+++ b/src/main/java/eu/hbp/mip/controllers/AlgorithmsAPI.java
@@ -151,7 +151,6 @@ public class AlgorithmsAPI {
             StringBuilder response = new StringBuilder();
             HTTPUtil.sendGet(mipengineAlgorithmsUrl, response);
             logger.LogUserAction(response.toString());
-
             mipEngineAlgorithms = gson.fromJson(
                     response.toString(),
                     new TypeToken<ArrayList<MIPEngineAlgorithmDTO>>() {
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/ExaremeAlgorithmDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/ExaremeAlgorithmDTO.java
index 584ffd424f4c691a168cd26b3b8b1fa2566658bf..07459a27ef5ce457d5bf9556c7b556e70b833b8d 100644
--- a/src/main/java/eu/hbp/mip/models/DTOs/ExaremeAlgorithmDTO.java
+++ b/src/main/java/eu/hbp/mip/models/DTOs/ExaremeAlgorithmDTO.java
@@ -37,15 +37,19 @@ public class ExaremeAlgorithmDTO {
         this.desc = mipEngineAlgorithm.getDesc();
         this.type = "mipengine";
         List<ExaremeAlgorithmRequestParamDTO> parameters = new ArrayList<>();
+        if (mipEngineAlgorithm.getInputdata().getY().isPresent()){
+            parameters.add(new ExaremeAlgorithmRequestParamDTO("y", mipEngineAlgorithm.getInputdata().getY().get()));
+        }
         parameters.add(new ExaremeAlgorithmRequestParamDTO("x", mipEngineAlgorithm.getInputdata().getX()));
-        parameters.add(new ExaremeAlgorithmRequestParamDTO("y", mipEngineAlgorithm.getInputdata().getY()));
         parameters.add(new ExaremeAlgorithmRequestParamDTO("pathology", mipEngineAlgorithm.getInputdata().getPathology()));
         parameters.add(new ExaremeAlgorithmRequestParamDTO("dataset", mipEngineAlgorithm.getInputdata().getDatasets()));
         parameters.add(new ExaremeAlgorithmRequestParamDTO("filter", mipEngineAlgorithm.getInputdata().getFilter()));
-        mipEngineAlgorithm.getParameters().forEach((name, parameterDTO) -> {
-            ExaremeAlgorithmRequestParamDTO parameter = new ExaremeAlgorithmRequestParamDTO(name, parameterDTO);
-            parameters.add(parameter);
-        });
+        if (mipEngineAlgorithm.getParameters().isPresent()){
+            mipEngineAlgorithm.getParameters().get().forEach((name, parameterDTO) -> {
+                ExaremeAlgorithmRequestParamDTO parameter = new ExaremeAlgorithmRequestParamDTO(name, parameterDTO);
+                parameters.add(parameter);
+            });
+        }
         this.setParameters(parameters);
     }
     @Data
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
index 378bb5126c27b68a138dc5be07bec1c0b13f8145..d872975913b9d5937173b137282440b4e09d48bb 100644
--- a/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
+++ b/src/main/java/eu/hbp/mip/models/DTOs/ExperimentDTO.java
@@ -25,8 +25,8 @@ public class ExperimentDTO {
     private Boolean shared;
     private Boolean viewed;
     // Result is a list of objects because there is a limitation that java has in types.
-    // Exareme has result in the type of a List<HashMap<String, Object>>
-    // Galaxy has result in the type of a List<HashMap<String, List<Object>>>
+    // Exareme has result in the type of List<HashMap<String, Object>>
+    // Galaxy has result in the type of List<HashMap<String, List<Object>>>
     //And there is no generic type that describes either an object or a list of objects
     private List<Object> result;
     private ExperimentDAO.Status status;
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmDTO.java
index 5edfbfe77827179234caf339f3f627235f72e967..d991fde8011801be989488872826ad6ac72cd2e4 100644
--- a/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmDTO.java
+++ b/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmDTO.java
@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Optional;
 
 @Data
 @AllArgsConstructor
@@ -32,6 +33,9 @@ public class MIPEngineAlgorithmDTO {
     @SerializedName("inputdata")
     private MIPEngineAlgorithmInputdataDTO inputdata;
 
+    public Optional<Hashtable<String, MIPEngineAlgorithmParameterDTO>> getParameters() {
+        return Optional.ofNullable(parameters);
+    }
     @Data
     @AllArgsConstructor
     public static class MIPEngineAlgorithmParameterDTO {
@@ -67,6 +71,7 @@ public class MIPEngineAlgorithmDTO {
     @Data
     @AllArgsConstructor
     public static class MIPEngineAlgorithmInputdataDTO {
+
         @SerializedName("x")
         private MIPEngineAlgorithmInputDataDetailDTO x;
 
@@ -81,6 +86,10 @@ public class MIPEngineAlgorithmDTO {
 
         @SerializedName("filter")
         private MIPEngineAlgorithmInputDataDetailDTO filter;
+
+        public Optional<MIPEngineAlgorithmInputDataDetailDTO> getY() {
+            return Optional.ofNullable(y);
+        }
     }
 
     @Data
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmResultDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmResultDTO.java
deleted file mode 100644
index 69332ed5b04ffb047d0de1bb246f9cbda5536248..0000000000000000000000000000000000000000
--- a/src/main/java/eu/hbp/mip/models/DTOs/MIPEngineAlgorithmResultDTO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package eu.hbp.mip.models.DTOs;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-public class MIPEngineAlgorithmResultDTO {
-    private final String title;
-    private final List<Column> columns;
-
-    @Data
-    @AllArgsConstructor
-    public static class Column {
-        private final String name;
-        private final String type;
-        private final List<Object> data;
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/eu/hbp/mip/models/DTOs/TabularVisualizationDTO.java b/src/main/java/eu/hbp/mip/models/DTOs/TabularVisualizationDTO.java
deleted file mode 100644
index 8804c9576414c9ae0e7b87f600ea78281c508744..0000000000000000000000000000000000000000
--- a/src/main/java/eu/hbp/mip/models/DTOs/TabularVisualizationDTO.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package eu.hbp.mip.models.DTOs;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-import java.util.HashMap;
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-public class TabularVisualizationDTO {
-    private final String name;
-    private final String profile;
-    private final HashMap<String, List<Field>> schema;
-    private final List<List<Object>> data;
-
-
-    public TabularVisualizationDTO(MIPEngineAlgorithmResultDTO mipEngineAlgorithmResultDTO) {
-        HashMap<String, List<TabularVisualizationDTO.Field>> schema = new HashMap<>();
-        List<Field> fields = new ArrayList<TabularVisualizationDTO.Field>();
-        List<List<Object>> data = new ArrayList<ArrayList<TabularVisualizationDTO.Field>>()
-        for (Column column : mipEngineAlgorithmResultDTO.getColumns())
-        {
-            fields.add(new Field(column));
-            data.add(column.getData());
-        }
-        schema.put("fields", fields);
-        this.name = mipEngineAlgorithmResultDTO.getTitle();
-        this.profile = "tabular-data-resource";
-        this.schema = schema;
-        this.data = data;
-    }
-    @Data
-    @AllArgsConstructor
-    public static class Field {
-        private final String name;
-        private final String type;
-        public Field(Column column)
-        {
-            this.name = column.getName();
-            this.type = column.getType();
-        }
-    }
-}
-
diff --git a/src/main/java/eu/hbp/mip/services/ExperimentService.java b/src/main/java/eu/hbp/mip/services/ExperimentService.java
index 8ba1332614bc0941d8dbedfceb31445e8f545751..1a4403d7654cdab1ff945baf8203a28770287d70 100644
--- a/src/main/java/eu/hbp/mip/services/ExperimentService.java
+++ b/src/main/java/eu/hbp/mip/services/ExperimentService.java
@@ -390,18 +390,6 @@ public class ExperimentService {
         return experimentDatasets;
     }
 
-    private List<Object> convertMIPEngineToExaremeAlgorithmResult(
-            MIPEngineAlgorithmResultDTO mipEngineAlgorithmResultDTO
-    ) {
-        Map<String, Object> exaremeResultElement = new HashMap<>();
-        exaremeResultElement.put("data", new TabularVisualizationDTO(mipEngineAlgorithmResultDTO));
-        exaremeResultElement.put("type", "application/vnd.dataresource+json");
-
-        List<Object> exaremeResult = new ArrayList<>();
-        exaremeResult.add(exaremeResultElement);
-        return exaremeResult;
-    }
-
     /**
      * Creates an experiment and runs it on the background.
      * Uses the exareme or mip-engine engine that run an experiment synchronously.
@@ -527,9 +515,9 @@ public class ExperimentService {
 
         List<Object> exaremeAlgorithmResult = new ArrayList<>();
         if (requestResponseCode == 200) {
-            MIPEngineAlgorithmResultDTO mipEngineAlgorithmResultDTO =
-                    JsonConverters.convertJsonStringToObject(String.valueOf(requestResponseBody), MIPEngineAlgorithmResultDTO.class);
-            exaremeAlgorithmResult = convertMIPEngineToExaremeAlgorithmResult(mipEngineAlgorithmResultDTO);
+            Object mipEngineResult =
+                    JsonConverters.convertJsonStringToObject(String.valueOf(requestResponseBody), Object.class);
+            exaremeAlgorithmResult.add(mipEngineResult);
 
         } else if (requestResponseCode == 400) {
             Map<String, Object> exaremeAlgorithmResultElement = new HashMap<>();
@@ -543,6 +531,12 @@ public class ExperimentService {
             exaremeAlgorithmResultElement.put("type", "text/plain+user_error");
             exaremeAlgorithmResult.add(exaremeAlgorithmResultElement);
 
+        } else if (requestResponseCode == 461) {
+            Map<String, Object> exaremeAlgorithmResultElement = new HashMap<>();
+            exaremeAlgorithmResultElement.put("data", String.valueOf(requestResponseBody));
+            exaremeAlgorithmResultElement.put("type", "text/plain+error");
+            exaremeAlgorithmResult.add(exaremeAlgorithmResultElement);
+
         } else if (requestResponseCode == 500) {
             Map<String, Object> exaremeAlgorithmResultElement = new HashMap<>();
             exaremeAlgorithmResultElement.put("data",
@@ -551,6 +545,12 @@ public class ExperimentService {
             exaremeAlgorithmResultElement.put("type", "text/plain+error");
             exaremeAlgorithmResult.add(exaremeAlgorithmResultElement);
 
+        } else if (requestResponseCode == 512) {
+            Map<String, Object> exaremeAlgorithmResultElement = new HashMap<>();
+            exaremeAlgorithmResultElement.put("data", String.valueOf(requestResponseBody));
+            exaremeAlgorithmResultElement.put("type", "text/plain+error");
+            exaremeAlgorithmResult.add(exaremeAlgorithmResultElement);
+
         } else {
             logger.LogUserAction(
                     "MIP-Engine execution responded with an unexpected status code: " + requestResponseCode