diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java
index 8cb417e611145d1124fdb9c2dfa5948295d7b8be..35f5c1ce67dc5170b2ee415fc2343b291f7c2dc7 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/CyActivator.java
@@ -32,7 +32,6 @@ import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.events.AddedEdgesListener;
 import org.cytoscape.model.events.ColumnCreatedListener;
 import org.cytoscape.model.events.ColumnDeletedListener;
-import org.cytoscape.model.events.NetworkAddedListener;
 import org.cytoscape.model.events.RemovedEdgesListener;
 import org.cytoscape.model.subnetwork.CyRootNetworkManager;
 import org.cytoscape.service.util.AbstractCyActivator;
@@ -90,6 +89,7 @@ public class CyActivator extends AbstractCyActivator {
 		CyCore.continuousMappingFactory = getService(context,VisualMappingFunctionFactory.class, "(mapping.type=continuous)");
 		CyCore.rootNetworkManager = getService(context,CyRootNetworkManager.class);
 		CyCore.applyVisualStyleTaskFactory = getService(context,ApplyVisualStyleTaskFactory.class);
+		//Not sure how to correctly infer arguments here
 		CyCore.renderingEngineFactory = getService(context,RenderingEngineFactory.class);
 		CyCore.cloneNetworkTaskFactory = getService(context,CloneNetworkTaskFactory.class);
 
@@ -114,7 +114,6 @@ public class CyActivator extends AbstractCyActivator {
 		
 		//Listener for Network-Changes -> Updating possible columns for mapping
 		NetChangeListener netChangeListener = new NetChangeListener(mainPanel.getColumnMapper());
-		registerService(context,netChangeListener, NetworkAddedListener.class, new Properties());
 		registerService(context,netChangeListener, AddedEdgesListener.class, new Properties());
 		registerService(context,netChangeListener, RemovedEdgesListener.class, new Properties());
 		registerService(context,netChangeListener, ColumnCreatedListener.class, new Properties());
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java
index 0cdd0cd7a88a9546e0515392722ce00e1a4b1991..58ec22117215531a4dc0af61245007d8fe470329 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/AlgorithmTask.java
@@ -161,14 +161,12 @@ public class AlgorithmTask extends AbstractTask {
 		result  = ca.run();
 		
 		taskMonitor.setProgress(0.9);
-		if (result == null) {
-			throw new Exception(LocalizationManager.get("noFeasible"));
-		}
+		
+		checkForInvalidSolutions(result);
+
 		long numberOfSolutions = result.getNumberOfSolutions();
 		
-		if (numberOfSolutions == 0) {
-			throw new Exception(LocalizationManager.get("noFeasible"));
-		}
+
 		taskMonitor.setStatusMessage("Found: "+numberOfSolutions+" solutions!"); //TODO localize
 				
 		YoshikoResult yoshikoResult = new YoshikoResult();
@@ -233,6 +231,25 @@ public class AlgorithmTask extends AbstractTask {
 
 	}
 	
+	private void checkForInvalidSolutions(ClusterEditingSolutions result) throws Exception {
+		if (result == null) {
+			//There was no result object generated at all
+			throw new Exception(LocalizationManager.get("noFeasible"));
+		}
+		
+		if (result.getNumberOfSolutions() == 0) {
+			//The result object is empty
+			throw new Exception(LocalizationManager.get("noFeasible"));
+		}
+		if (result.getNumberOfSolutions() == 1) {
+			//The result doesn't contain any clusters
+			if (result.getNumberOfClusters(0) == 0) {
+				throw new Exception(LocalizationManager.get("noFeasible"));
+			}
+		}
+		
+	}
+
 	@Override
 	public void cancel() {
 		//Free C++ resources
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java
index 9a9e48ca36cbdc7c42246efca44b1cd250603c38..1ada0eafb38400c7b783570d991156c6255d6cee 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetChangeListener.java
@@ -29,8 +29,6 @@ import org.cytoscape.model.events.ColumnCreatedEvent;
 import org.cytoscape.model.events.ColumnCreatedListener;
 import org.cytoscape.model.events.ColumnDeletedEvent;
 import org.cytoscape.model.events.ColumnDeletedListener;
-import org.cytoscape.model.events.NetworkAddedEvent;
-import org.cytoscape.model.events.NetworkAddedListener;
 import org.cytoscape.model.events.RemovedEdgesEvent;
 import org.cytoscape.model.events.RemovedEdgesListener;
 import org.cytoscape.session.events.SessionLoadedEvent;
@@ -40,7 +38,6 @@ import de.hhu.ba.yoshikoWrapper.gui.ColumnMapper;
 
 public class NetChangeListener 
 implements //everything
-NetworkAddedListener,
 AddedEdgesListener,
 RemovedEdgesListener,
 ColumnCreatedListener,
@@ -56,27 +53,48 @@ SetCurrentNetworkListener
 
 	@Override
 	public void handleEvent(ColumnDeletedEvent e) {
-		columnMapper.updateValues();
+		if (
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultEdgeTable() ||
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNetworkTable() ||
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNodeTable()
+				
+			)
+		{
+			columnMapper.updateValues();
+		}
 	}
 
 	@Override
 	public void handleEvent(ColumnCreatedEvent e) {
-		columnMapper.updateValues();
+		if (
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultEdgeTable() ||
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNetworkTable() ||
+				e.getSource() == CyCore.cy.getCurrentNetwork().getDefaultNodeTable()
+				
+			)
+		{
+			columnMapper.updateValues();
+		}
 	}
 
 	@Override
 	public void handleEvent(RemovedEdgesEvent e) {
-		columnMapper.updateValues();
+		if (
+				e.getSource() == CyCore.cy.getCurrentNetwork()
+			)
+		{
+			columnMapper.updateValues();
+		}
 	}
 
 	@Override
 	public void handleEvent(AddedEdgesEvent e) {
-		columnMapper.updateValues();
-	}
-
-	@Override
-	public void handleEvent(NetworkAddedEvent e) {
-		columnMapper.updateValues();
+		if (
+				e.getSource() == CyCore.cy.getCurrentNetwork()
+			)
+		{
+			columnMapper.updateValues();
+		}
 	}
 
 	@Override
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java
index a4cf3e708dc4d173f9fdd9b8daead3bb1852fb78..3d3733f6a86ec5f1fe49b3330b5ee04aac88232d 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/FormatHelper.java
@@ -45,7 +45,7 @@ public class FormatHelper {
 
 	public static NumberFormatter getDoubleFormatter(double minValue, double maxValue) {
 		NumberFormat format = DecimalFormat.getInstance();
-		format.setMaximumFractionDigits(12);
+		format.setMaximumFractionDigits(Integer.MAX_VALUE);
 	    NumberFormatter formatter = new NumberFormatter(format);
 	    formatter.setValueClass(Double.class);
 	    formatter.setMinimum(minValue);