diff --git a/pom.xml b/pom.xml
index e253b54b5d68ef31abc25ff496d06925eefd82e6..36149f4ac0018cdaa6f665c5c5e97624bc4b8bfd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
 
 	<groupId>de.hhu.ba</groupId>
 	<artifactId>yoshikoWrapper</artifactId>
-	<version>0.0.1</version>
+	<version>0.0.2</version>
 	
 	<name>YoshikoWrapper</name>
 
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java
index cebd4e4e29532894f70e63993ed5a2d7c760cdf1..683e86d6066f052b4618214b93d7fb3620eef16a 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/core/NetworkParser.java
@@ -47,9 +47,7 @@ public class NetworkParser {
 					System.out.println("Using column: "+weightColumn.getName());
 					try {
 						//Find out if the weights are double or int
-						@SuppressWarnings("unchecked")
-						Class<? extends Number> weightType = (Class<? extends Number>) weightColumn.getType();
-						logger.debug("Column has type: "+weightType.getName());
+						Class<?> weightType = weightColumn.getType();
 						if (weightType == Integer.class) {
 							weight = (int)edgeEntry.get(weightColumn.getName(), weightType);
 						}
@@ -68,10 +66,16 @@ public class NetworkParser {
 				boolean forbidden = false;
 				boolean permanent = false;
 				if (permanentColumn != null) {
-					permanent = (boolean)edgeEntry.get(permanentColumn.getName(), boolean.class);
+					//Additional check as it is not required to have a value in every row
+					if (edgeEntry.getAllValues().containsKey(permanentColumn.getName())) {
+						permanent =  (boolean)edgeEntry.get(permanentColumn.getName(), Boolean.class);
+					}
 				}
 				if (forbiddenColumn != null) {
-					forbidden = (boolean)edgeEntry.get(forbiddenColumn.getName(), boolean.class);
+					//Additional check as it is not required to have a value in every row
+					if (edgeEntry.getAllValues().containsKey(forbiddenColumn.getName())) {
+						forbidden =  (boolean)edgeEntry.get(forbiddenColumn.getName(), Boolean.class);
+					}
 				}
 
 
@@ -91,9 +95,4 @@ public class NetworkParser {
 		return generatedInput;
 	}
 
-
-
-	
-
-
 }
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java
index f04fffb9510e66654e989f2464cc84d3fa61ef90..b17b17b20cae59a787ae1ec3a9e2e848091dc1a5 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/ColumnMapper.java
@@ -1,9 +1,13 @@
 package de.hhu.ba.yoshikoWrapper.gui;
 
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
 
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 
@@ -28,7 +32,10 @@ public class ColumnMapper extends ComfortPanel{
 	private JCheckBox useMappingPerm;
 	private JCheckBox useMappingForb;
 	
+	private JButton updateColumns;
+	
 	public ColumnMapper() {
+		this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
 		cy = Core.getApplicationManager();
 
 		//SWING COMPONENTS
@@ -40,27 +47,22 @@ public class ColumnMapper extends ComfortPanel{
 		useMappingPerm = new JCheckBox("Map edges as permanent");
 		useMappingForb = new JCheckBox("Map edges as forbidden");
 		
-		useMappingCost.setToolTipText(
-				"When you use this value you can assign a column in the edge table to represent the modification costs that are to be paid for deleting an edge."
-				+"You can also assign negative values if you have a complete graph to represent insertion costs."
-				+"Note: Any missing values are assumed to be the default values"
-				);
-		this.addAll(useMappingCost,editingCostMapper,useMappingPerm,permanentMapper,useMappingForb,forbiddenMapper);
+		updateColumns = new JButton("Update Columns!");
+		
+		this.addAll(useMappingCost,editingCostMapper,useMappingPerm,permanentMapper,useMappingForb,forbiddenMapper,updateColumns);
 		//Initial call to get table values
 		updateValues();
 		//Add a focus listener to update values
-		this.addFocusListener (new FocusListener() {
+		updateColumns.addActionListener(new ActionListener() {
 
 			@Override
-			public void focusGained(FocusEvent e) {
-				updateValues();
+			public void actionPerformed(ActionEvent e) {
+				updateValues(); //shitty temporary solution
 			}
-
-			@Override
-			public void focusLost(FocusEvent e) {}
 			
 		});
 
+
 	}
 	
 	public void updateValues() {
@@ -82,7 +84,7 @@ public class ColumnMapper extends ComfortPanel{
 			for (CyColumn c : net.getDefaultEdgeTable().getColumns()){
 				//Only add columns with boolean values
 				if (c.getType() == Boolean.class) {
-					editingCostMapper.addItem(c);
+					forbiddenMapper.addItem(c);
 				}
 			}
 			
diff --git a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java
index 22456af30debbd9f33f794c0b89f8ec005e27e4c..c5b7c0e980f7888b3a7f63ba7ea6f0d3114abacd 100644
--- a/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java
+++ b/src/main/java/de/hhu/ba/yoshikoWrapper/gui/EditCostPanel.java
@@ -1,7 +1,9 @@
 package de.hhu.ba.yoshikoWrapper.gui;
 
 import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
 import javax.swing.JLabel;
+import javax.swing.JPanel;
 import javax.swing.border.EtchedBorder;
 
 import org.cytoscape.model.CyColumn;
@@ -16,7 +18,12 @@ public class EditCostPanel extends ComfortPanel {
 	private JLabel icLabel;
 	private JLabel dcLabel;
 	
+	private ComfortPanel groupIC;
+	private ComfortPanel groupDC;
+	
 	public EditCostPanel() {
+		//Define Layout
+		this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
 		//Initialize components
 		columnMapper = new ColumnMapper();
 		icField = new DoubleInputField(Double.NEGATIVE_INFINITY,0);
@@ -25,11 +32,16 @@ public class EditCostPanel extends ComfortPanel {
 		dcField.setText("1.0");
 		icLabel = new JLabel("Insertion Cost:");
 		dcLabel = new JLabel("Deletion Cost:");
-		icLabel.setLabelFor(icField);
-		dcLabel.setLabelFor(dcField);
-		this.addAll(columnMapper,icField,dcField,icLabel,dcLabel);
+		//Group the labels with their text fields
+		groupIC = new ComfortPanel();
+		groupDC = new ComfortPanel();
+		
+		groupIC.addAll(icLabel,icField);
+		groupDC.addAll(dcLabel,dcField);
+		
+		this.addAll(columnMapper,groupIC,groupDC);
 		
-		//
+		//Decoration/Visual
 		this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
 	}