diff --git a/src/main/java/com/ardublock/translator/block/control/DelayBlock.java b/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
index e496e51741582d1efdda7e488fd0c4223de96742..7aebd8840186efd3b200ffebd72fb0d802aa7331 100644
--- a/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
+++ b/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
@@ -30,7 +30,6 @@ public class DelayBlock extends TranslatorBlock
 	
 	@Override
 	public SimCode toSim() throws BlockException, SocketNullException {
-		System.out.println("New Delayblock");
 		CodeDelay delay = new CodeDelay((SimTypeInt)this.getRequiredTranslatorBlockAtSocket(0).toSim()); 
 		return delay;
 	}
diff --git a/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java b/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
index 282c44db8604faf4734ebde42035a4ecf6a336cf..78d683242a0d3b91d664a72c9365ae12c1aae4f6 100644
--- a/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
+++ b/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
@@ -4,6 +4,7 @@ import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.ConstBlock;
 
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 
 public class DigitalHighBlock extends ConstBlock
 {
@@ -15,6 +16,6 @@ public class DigitalHighBlock extends ConstBlock
 	}
 	
 	public SimCode toSim() {
-		return null;//FIXME @Lucas Continue Work here!
+		return new SimTypeBool(true);
 	}
 }
diff --git a/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java b/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
index 696f171c552f7a2d6ae7dabd06f5b5a7363c3f51..386b513970ffed1c9aa2213cd2d86c809e36d280 100644
--- a/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
+++ b/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
@@ -3,6 +3,9 @@ package com.ardublock.translator.block.numbers;
 import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.ConstBlock;
 
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+
 public class DigitalLowBlock extends ConstBlock
 {
 
@@ -11,4 +14,8 @@ public class DigitalLowBlock extends ConstBlock
 		super(blockId, translator, codePrefix, codeSuffix, label);
 		this.setCode("LOW");
 	}
+	
+	public SimCode toSim() {
+		return new SimTypeBool(false);
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java b/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
index e9bab2a27d4e2cfe9f23461a0183a3010f5fbbc7..3688405ce3dbb2e9dd8dfbe22c2e6c1528409358 100644
--- a/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
+++ b/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
@@ -2,12 +2,14 @@ package com.ardublock.translator.block.output;
 
 import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
 import com.ardublock.translator.block.exception.SocketNullException;
 import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
 import com.ardublock.translator.block.numbers.NumberBlock;
 import com.ardublock.translator.block.numbers.VariableNumberBlock;
 
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.io.CodeDigitalWrite;
 
@@ -41,9 +43,12 @@ public class DigitalOutputBlock extends TranslatorBlock
 		return ret;
 	}
 	
-	public SimCode toSim() {
-		//SimTypeInt(Integer.parseInt(label));
-		return null;//new CodeDigitalWrite(); 
+	public SimCode toSim() throws BlockException, SocketNullException {
+		TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
+		SimTypeInt pin=new SimTypeInt(translatorBlock.toSim());
+		translatorBlock = this.getRequiredTranslatorBlockAtSocket(1);
+		SimTypeBool lvl=new SimTypeBool(translatorBlock.toSim());
+		return new CodeDigitalWrite(pin,lvl);//new CodeDigitalWrite(); 
 	}
 
 }
diff --git a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
index 20e46d53f69bba22cfa7963795b7aa8208d239b5..1a225d36914b5bedaeccaa158c455252bfb1689b 100644
--- a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
+++ b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
@@ -25,6 +25,9 @@ import edu.mit.blocks.workspace.Workspace;
 
 import tec.letsgoing.ardublock.simulator.Simulator;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.control.CodeWhile;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.CodeExecuteFunction;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 public class SimulateCodeButtonListener implements ActionListener
@@ -306,7 +309,22 @@ public class SimulateCodeButtonListener implements ActionListener
 				System.out.println(codeOut);
 			}	
 			context.didGenerate(codeOut, false);
+			
+	
+			
+			SimTypeBool boolTrue = new SimTypeBool(true);
+			Vector<SimCode> mainVec = new Vector<SimCode>();
+			//mainVec.add(new CodeExecuteFunction("setup"));
+			Vector<SimCode> loopVec = new Vector<SimCode>();
+			loopVec.add(new CodeExecuteFunction("loop"));
+			mainVec.add(new CodeWhile(boolTrue, loopVec));
+			SimCodeFunction main = new SimCodeFunction("main", mainVec);
+
+			//sim.addFunctionsCode(setupCode);
+			System.out.println("Add new Functions");
+			sim.resetFunctions();
 			sim.addFunctionsCode(loop);
+			sim.addFunctionsCode(main);
 			//TODO ! start simulator here
 			//sim.run();
 			//sim.startSimu();