diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
index 7994d7c482dee74c44de9005105cd8bff9f38464..5687246797ffabda094891242c2f9112507d7d24 100644
--- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java
+++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
@@ -55,7 +55,7 @@ import com.ardublock.ui.listener.SimulatorHelpButtonListener;
 
 import edu.mit.blocks.controller.WorkspaceController;
 import edu.mit.blocks.workspace.Workspace;
-import edu.mit.blocks.workspace.ZoomSlider;
+//import edu.mit.blocks.workspace.ZoomSlider;
 
 
 public class OpenblocksFrame extends JFrame
@@ -280,8 +280,9 @@ public class OpenblocksFrame extends JFrame
 		
 		//ADD ZOOM 
 		//*****************************************
-		ZoomSlider zoomSlider = new ZoomSlider(workspace);
-		zoomSlider.reset();
+		//ZoomSlider zoomSlider = new ZoomSlider(workspace);
+		//zoomSlider.reset();
+		
 		/*
 		JButton zoomOutButton = new JButton(uiMessageBundle.getString("ardublock.ui.zoomOut"));
 		ActionListener zoomOutButtonListener = new ZoomOutButtonListener(workspace);
@@ -379,7 +380,11 @@ public class OpenblocksFrame extends JFrame
 				//remove highlights
 				context.resetHightlightBlock();
 				
-				int currentWorkspaceZoom = zoomSlider.getValue();
+				//int currentWorkspaceZoom = zoomSlider.getValue();
+					
+				//get current zoomLevel
+				//TODO: check why blocks are rearanged while changing WS
+				double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom();
 		        try {
 		        	WorkspaceController workspaceController = context.getWorkspaceController();
 			        workspaceController.loadProject(getArduBlockString(), null , "default");	
@@ -393,10 +398,10 @@ public class OpenblocksFrame extends JFrame
 			        modeBasicButton.setFont(new Font("Sans", Font.BOLD, 12));
 			        modeProButton.setFont(new Font("Sans", Font.PLAIN, 12));
 			        modeSimButton.setFont(new Font("Sans", Font.PLAIN, 12));
-			        zoomSlider.reset();
-			        zoomSlider.setValue(currentWorkspaceZoom);
-			        workspaceModeState=false;
-			        
+			        //zoomSlider.reset();
+			        //zoomSlider.setValue(currentWorkspaceZoom);
+			        workspace.setWorkspaceZoom(currentWorkspaceZoom);
+			        workspaceModeState=false;			        
 		        } catch (Exception e1) {
 		            //e1.printStackTrace();
 		        }
@@ -416,9 +421,12 @@ public class OpenblocksFrame extends JFrame
 				
 				//remove highlights
 				context.resetHightlightBlock();
+
+				//int currentWorkspaceZoom = zoomSlider.getValue();
 				
 				//get current zoomLevel
-				int currentWorkspaceZoom = zoomSlider.getValue();
+				//TODO: check why blocks are rearanged while changing WS
+				double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom();
 		        try {
 		        	WorkspaceController workspaceController = context.getWorkspaceController();
 		        	workspaceController.loadProject(getArduBlockString(), null , "custom");
@@ -433,8 +441,9 @@ public class OpenblocksFrame extends JFrame
 			        appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.pro");
 			        setTitle(makeFrameTitle());
 			        
-			        zoomSlider.reset();
-			        zoomSlider.setValue(currentWorkspaceZoom);
+			        //zoomSlider.reset();
+			        //zoomSlider.setValue(currentWorkspaceZoom);
+			        workspace.setWorkspaceZoom(currentWorkspaceZoom);
 			        workspaceModeState=true;
 			        
 		        } catch (Exception e1) {
@@ -456,8 +465,13 @@ public class OpenblocksFrame extends JFrame
 				
 				//remove highlights
 				context.resetHightlightBlock();
+				
+				//int currentWorkspaceZoom = zoomSlider.getValue();
+				
 				//get current zoomLevel
-				int currentWorkspaceZoom = zoomSlider.getValue();
+				//TODO: check why blocks are rearanged while changing WS
+				double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom();
+				
 				try {
 				  	WorkspaceController workspaceController = context.getWorkspaceController();
 				  	//TODO check if reduced sim-blockset is necessary
@@ -473,8 +487,9 @@ public class OpenblocksFrame extends JFrame
 				    appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.sim");
 				    setTitle(makeFrameTitle());
 			        
-				    zoomSlider.reset();
-				    zoomSlider.setValue(currentWorkspaceZoom);
+				    //zoomSlider.reset();
+				    //zoomSlider.setValue(currentWorkspaceZoom);
+				    workspace.setWorkspaceZoom(currentWorkspaceZoom); 
 				    workspaceModeState=false;
 			      
 		        } catch (Exception e1) {
@@ -495,7 +510,7 @@ public class OpenblocksFrame extends JFrame
 		copyButton.addActionListener(copyButtonListener);
 		//KeyStroke ctrlcKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK);
 		//copyButton.registerKeyboardAction(copyButtonListener, ctrlcKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
-		//copyButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.copy.tooltip"));
+		copyButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.copy.tooltip"));
 		
 		
 		JButton pasteButton = new JButton(uiMessageBundle.getString("ardublock.ui.paste"));
@@ -503,7 +518,7 @@ public class OpenblocksFrame extends JFrame
 		pasteButton.addActionListener(pasteButtonListener);
 		//KeyStroke ctrlvKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);
 		//pasteButton.registerKeyboardAction(pasteButtonListener, ctrlvKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
-		//pasteButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.paste.tooltip"));
+		pasteButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.paste.tooltip"));
 		//*****************************************
 		
 		//WEBSITE BUTTON
@@ -533,7 +548,7 @@ public class OpenblocksFrame extends JFrame
 		bottomPanel.add(modeSimButton);
 		
 		bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0
-		bottomPanel.add(zoomSlider);
+		//bottomPanel.add(zoomSlider);
 		//bottomPanel.add(zoomInButton);
 		//bottomPanel.add(zoomResetButton);
 		//bottomPanel.add(zoomOutButton);
@@ -898,4 +913,5 @@ public class OpenblocksFrame extends JFrame
 	public boolean getModeState(){ //letsgoING
 		return workspaceModeState; 
 	}
+
 }
diff --git a/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java
index ba295ae97af0dd86bc3e092d6f41870273b6cac1..9c92fce95aae633242071aa7c817c8f95a639a38 100644
--- a/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java
+++ b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java
@@ -25,7 +25,7 @@ public class SimulatorHelpButtonListener implements ActionListener
 	
 	public void actionPerformed(ActionEvent e) {
 	
-		System.out.println("Help is pressed");
+		//System.out.println("Help is pressed");
 		ImageIcon icon = new ImageIcon(openBlocksFrame.getToolkit().getImage(GUI.class.getResource("/com/ardublock/block/SimHelp.png")));
         JOptionPane.showMessageDialog(
                 null,
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index ef3b42d9d8fed39c893f8c03f5237b34eef337f1..abd08dd5123c6076e1e65046866240692613a87a 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -21,6 +21,7 @@ ardublock.ui.upload=Upload
 ardublock.ui.upload.tooltip=Upload to Arduino Ctrl-U
 ardublock.ui.clone=Clone (rightclick-Ctrl)
 ardublock.ui.clone_all=Clone following (rightclick-Shift-Ctrl)
+ardublock.ui.reference=open block reference
 ardublock.ui.add_comment=Add Comment
 ardublock.ui.delete_comment=Delete Comment
 ardublock.ui.organize_blocks=Organize all blocks
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index 89a2bb4db767feea3803776bb0f07719d48b86f7..f92324ffc82ec6188cb8a939706500a36167f04d 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -21,6 +21,7 @@ ardublock.ui.upload=Hochladen auf den Arduino
 ardublock.ui.upload.tooltip=Programm auf Arduino laden Strg-U
 ardublock.ui.clone=klonen (Strg-Rechtsklick)
 ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick)
+ardublock.ui.reference=Block-Referenz öffnen 
 ardublock.ui.add_comment=Kommentar hinzufügen
 ardublock.ui.delete_comment=Kommentar löschen
 ardublock.ui.organize_blocks=Alle Blöcke neu anordnen
@@ -61,9 +62,9 @@ ardublock.ui.zoomOut.tooltip=verkleinere Programm Strg-Minus
 ardublock.ui.zoomReset=0
 ardublock.ui.zoomReset.tooltip=zurücksetzen Strg-0
 ardublock.ui.copy=kopieren
-ardublock.ui.copy.tooltip=kopiere Programm in Zwischenablage Strg-C
+ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage Strg-C
 ardublock.ui.paste=einfügen
-ardublock.ui.paste.tooltip=füge Programm aus Zwischenablage ein Strg-V
+ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein Strg-V
 ardublock.ui.simulation=Hochladen auf den Simulator
 ardublock.ui.simulation.tooltip=Starte den Simulator fuer die letsgoING-GrundlagenModule
 ardublock.ui.simulatorHelp=Hilfe
diff --git a/src/main/resources/com/ardublock/reference/loop.html b/src/main/resources/com/ardublock/reference/loop.html
new file mode 100644
index 0000000000000000000000000000000000000000..126a689b82780835bf84991c408d248fcebf8cd6
--- /dev/null
+++ b/src/main/resources/com/ardublock/reference/loop.html
@@ -0,0 +1,5 @@
+<html>
+<img style="-webkit-user-select: none"  src="loop.png" alt="image" ></br>
+<font size=+2>loop</font></br>
+<font color=red>info Text</font><font color=blue>Bild</font>
+<font size=-2>Troubleshooting</font></html>
diff --git a/src/main/resources/com/ardublock/reference/loop.jpg b/src/main/resources/com/ardublock/reference/loop.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d176f9a2bb1f3607db3eaa8c8a6ade687c251133
Binary files /dev/null and b/src/main/resources/com/ardublock/reference/loop.jpg differ
diff --git a/src/main/resources/com/ardublock/reference/loop.png b/src/main/resources/com/ardublock/reference/loop.png
new file mode 100644
index 0000000000000000000000000000000000000000..557e15745689ff62d67732c87d2310aaedc5dcf0
Binary files /dev/null and b/src/main/resources/com/ardublock/reference/loop.png differ
diff --git a/src/main/resources/com/ardublock/reference/program_comment.html b/src/main/resources/com/ardublock/reference/program_comment.html
new file mode 100644
index 0000000000000000000000000000000000000000..3b3607e49a56eb04fc53ea776f3e9611a9f48d18
--- /dev/null
+++ b/src/main/resources/com/ardublock/reference/program_comment.html
@@ -0,0 +1,5 @@
+<html>
+<img style="-webkit-user-select: none"  src="program_comment.png" alt="image" ></br>
+<font size=+2>loop</font></br>
+<font color=red>info Text</font><font color=blue>Bild</font>
+<font size=-2>Troubleshooting</font></html>
diff --git a/src/main/resources/com/ardublock/reference/program_comment.png b/src/main/resources/com/ardublock/reference/program_comment.png
new file mode 100644
index 0000000000000000000000000000000000000000..0124bd608c1edcddead3f9c1c348036e8fe2828e
Binary files /dev/null and b/src/main/resources/com/ardublock/reference/program_comment.png differ