diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java b/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java
index 86b039fd0b6a10be83ea136e835bdfa07a609273..77d089353787599477ae7e606a689a656585a94f 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/tasks/AlgorithmTask.java
@@ -22,8 +22,15 @@
 package de.hhu.ba.yoshikoWrapper.tasks;
 
 import java.awt.Window;
+import java.util.List;
+import java.util.Properties;
 
+import de.hhu.ba.yoshikoWrapper.core.CyCore;
 import de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm.YoshikoAlgoritmController;
+import org.cytoscape.application.swing.CytoPanel;
+import org.cytoscape.application.swing.CytoPanelComponent;
+import org.cytoscape.application.swing.CytoPanelName;
+import org.cytoscape.application.swing.CytoPanelState;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.ContainsTunables;
 import org.cytoscape.work.TaskMonitor;
@@ -34,6 +41,8 @@ import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult;
 import de.hhu.ba.yoshikoWrapper.logging.YoshikoLogger;
 import de.hhu.ba.yoshikoWrapper.swing.components.ResultPanel;
 
+import javax.swing.*;
+
 
 public class AlgorithmTask extends AbstractTask {
 
@@ -85,7 +94,9 @@ public class AlgorithmTask extends AbstractTask {
 			throw new Exception("CoreAlgorithm called on a net that is NULL!"); //TODO: Localize
 		}
 
-		YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor);
+		result = new YoshikoResult(parameterSet.net);
+
+		YoshikoAlgoritmController yoshikoAlgoritmController = new YoshikoAlgoritmController(parameterSet, taskMonitor, result);
 		yoshikoAlgoritmController.controllAlgorithm();
 		taskMonitor.setProgress(1);
 
@@ -127,10 +138,10 @@ public class AlgorithmTask extends AbstractTask {
 
 
 		//Generate solutionsPanel*/
-		//resultPanel = new ResultPanel(result);
-/*
+		resultPanel = new ResultPanel(result);
+
 		//Show solution panel
-		CyCore.registrar.registerService(resultPanel,CytoPanelComponent.class, new Properties());
+		CyCore.registrar.registerService(resultPanel, CytoPanelComponent.class, new Properties());
 		//Focus solution panel
 		CytoPanel eastPanel = CyCore.swing.getCytoPanel(CytoPanelName.EAST);
 		eastPanel.setSelectedIndex(eastPanel.indexOfComponent(resultPanel));
@@ -146,8 +157,8 @@ public class AlgorithmTask extends AbstractTask {
 					}
 				}
 			);
-		//eastPanel.getThisComponent().revalidate();
-*/
+		eastPanel.getThisComponent().revalidate();
+
 	}
 
 
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/GraphTranslator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/GraphTranslator.java
index e8f99a56dda218f5244c5670e3225942738356c9..d6feff67afe004e552cdde859e70e7ba6c0d0d9d 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/GraphTranslator.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/GraphTranslator.java
@@ -4,6 +4,8 @@ import de.hhu.ba.yoshikoWrapper.core.CyCore;
 import de.hhu.ba.yoshikoWrapper.core.ParameterSet;
 import de.hhu.ba.yoshikoWrapper.cytoUtil.NodeMap;
 import de.hhu.ba.yoshikoWrapper.cytoUtil.StyleManager;
+import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoCluster;
+import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoSolution;
 import org.cytoscape.model.*;
 import org.cytoscape.model.subnetwork.CyRootNetwork;
 import org.cytoscape.model.subnetwork.CySubNetwork;
@@ -101,61 +103,15 @@ public final class GraphTranslator {
         return weight;
     }
 
-    public void makeCytoscapeGraph(List<List<Integer>> clusters){
-        CySubNetwork resultNetwork = createNewGaph();
-
-        addNodesToResultNetwork(resultNetwork);
-
-        addEdgesToResultNetwork(clusters, resultNetwork);
-
-        //  createNetworkView(resultNetwork);
-    }
-
-    private CySubNetwork createNewGaph(){
-        CyRootNetwork rootNetwork  = CyCore.rootNetworkManager.getRootNetwork(network);
-        CySubNetwork resultNetwork = rootNetwork.addSubNetwork();
-
-        CyCore.networkManager.addNetwork(resultNetwork, false);
-        resultNetwork.getRow(resultNetwork).set(CyNetwork.NAME, "Result-Graph");
-
-        return resultNetwork;
-    }
-
-    private void addNodesToResultNetwork(CySubNetwork resultNetwork){
-        for (CyNode node : nodeMap.values()){
-            resultNetwork.addNode(node);
-        }
-    }
-
-    private void addEdgesToResultNetwork(List<List<Integer>> clusters, CySubNetwork resultNetwork){
-         for (List<Integer> cluster : clusters){
-            for (Integer i : cluster){
-                for (Integer j : cluster){
-                    if (j<i){
-                        addEdgeToResultNetwork(edgeArray[i][j],resultNetwork);
-                    }
-                }
+    public void  transateClusters(List<List<Integer>> clusters, YoshikoSolution solution){
+        int i = 0;
+        for (List<Integer> cluster : clusters){
+            YoshikoCluster yoshikoCluster = new YoshikoCluster(solution, i);
+            i++;
+            solution.addCluster(yoshikoCluster);
+            for (Integer nodeId : cluster){
+                yoshikoCluster.addNode(nodeMap.get(nodeId));
             }
         }
     }
-
-    private void addEdgeToResultNetwork(YoshikoEdge yoshikoEdge, CySubNetwork resultNetwork) {
-        if (yoshikoEdge.suid < 0) {
-            CyNode node1 = nodeMap.get(yoshikoEdge.source);
-            CyNode node2 = nodeMap.get(yoshikoEdge.target);
-
-            CyEdge edge = resultNetwork.addEdge(node1, node2, false);
-
-        } else {
-            resultNetwork.addEdge(network.getEdge(yoshikoEdge.suid));
-        }
-    }
-
-    private CyNetworkView createNetworkView(CyNetwork resultNetwork){
-
-        CyNetworkView view = CyCore.networkViewFactory.createNetworkView(resultNetwork);
-
-        CyCore.networkViewManager.addNetworkView(view,false);
-        return view;
-    }
 }
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/YoshikoAlgoritmController.java b/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/YoshikoAlgoritmController.java
index a9bbb96ac360ec009f75b6d13a56a7c07d100237..1b77221b0204614824ddc89d89e3f456a6872921 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/YoshikoAlgoritmController.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/yoshikoAlgorithm/YoshikoAlgoritmController.java
@@ -1,7 +1,11 @@
 package de.hhu.ba.yoshikoWrapper.yoshikoAlgorithm;
 
 import de.hhu.ba.yoshikoWrapper.core.ParameterSet;
+import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoCluster;
+import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoResult;
+import de.hhu.ba.yoshikoWrapper.graphModel.YoshikoSolution;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
 import org.cytoscape.work.TaskMonitor;
 
 import java.util.List;
@@ -12,12 +16,14 @@ public class YoshikoAlgoritmController {
     private CyNetwork network;
     private ParameterSet parameterSet;
     private TaskMonitor taskMonitor;
+    private YoshikoResult result;
 
-    public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor){
+    public YoshikoAlgoritmController(ParameterSet parameterSet, TaskMonitor taskMonitor, YoshikoResult result){
          this.parameterSet = parameterSet;
          this.network = parameterSet.net;
          this.k = parameterSet.clusterCount;
          this.taskMonitor = taskMonitor;
+         this.result = result;
     }
 
     public void controllAlgorithm(){
@@ -32,9 +38,10 @@ public class YoshikoAlgoritmController {
         taskMonitor.setStatusMessage("Clustering the Graph");
         clusters = clusteringAlgorithm.runClusteringAlgorithm();
 
-        taskMonitor.setStatusMessage("Makeing new Graph");
-        translator.makeCytoscapeGraph(clusters);
-    }
-
+        YoshikoSolution solution = new YoshikoSolution(result, 0);
+        result.addSolution(solution);
 
+        taskMonitor.setStatusMessage("Processing Clusters");
+        translator.transateClusters(clusters, solution);
+    }
 }
\ No newline at end of file