diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
index 5687246797ffabda094891242c2f9112507d7d24..3390023478a9d659cca771eb725111beee4a321b 100644
--- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java
+++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
@@ -52,6 +52,8 @@ import com.ardublock.ui.listener.SaveImageButtonListener;
 //import com.ardublock.ui.listener.ZoomResetButtonListener;
 import com.ardublock.ui.listener.SimulateCodeButtonListener;
 import com.ardublock.ui.listener.SimulatorHelpButtonListener;
+import com.ardublock.ui.listener.ZoomInButtonListener;
+import com.ardublock.ui.listener.ZoomOutButtonListener;
 
 import edu.mit.blocks.controller.WorkspaceController;
 import edu.mit.blocks.workspace.Workspace;
@@ -152,8 +154,8 @@ public class OpenblocksFrame extends JFrame
 		JButton saveAsButton = new JButton(uiMessageBundle.getString("ardublock.ui.saveAs"));
 		ActionListener saveAsButtonListener = new SaveAsButtonListener(this);	
 		saveAsButton.addActionListener(saveAsButtonListener);
-		//KeyStroke ctrlshiftsKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.SHIFT_MASK);
-		//saveAsButton.registerKeyboardAction(saveAsButtonListener, ctrlshiftsKeyStroke, JComponent.WHEN_FOCUSED);
+		KeyStroke ctrlshiftsKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK);
+		saveAsButton.registerKeyboardAction(saveAsButtonListener, ctrlshiftsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		saveAsButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.saveAs.tooltip"));
 		
 		JButton openButton = new JButton(uiMessageBundle.getString("ardublock.ui.load"));
@@ -174,16 +176,12 @@ public class OpenblocksFrame extends JFrame
 		JButton simulateButton = new JButton(uiMessageBundle.getString("ardublock.ui.simulation"));
 		ActionListener simulateButtonListener = new SimulateCodeButtonListener(this, this, context);
 		simulateButton.addActionListener(simulateButtonListener);
-		//KeyStroke ctrlaKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);
-		//simulateButton.registerKeyboardAction(simulateButtonListener, ctrlaKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		simulateButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.simulation.tooltip"));
 		simulateButton.setVisible(false); //hide on startUp
 		
 		JButton simulatorHelpButton = new JButton(uiMessageBundle.getString("ardublock.ui.simulatorHelp"));
 		ActionListener simulatorHelpButtonListener = new SimulatorHelpButtonListener(this);
 		simulatorHelpButton.addActionListener(simulatorHelpButtonListener);
-		//KeyStroke ctrlaKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK);
-		//simulateButton.registerKeyboardAction(simulateButtonListener, ctrlaKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		simulatorHelpButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.simulatorHelp.tooltip"));
 		simulatorHelpButton.setVisible(false); //hide on startUp
 		
@@ -194,7 +192,7 @@ public class OpenblocksFrame extends JFrame
 			}
 		};
 		serialMonitorButton.addActionListener(serialButtonListener);
-		KeyStroke ctrlmKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK);
+		KeyStroke ctrlmKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK);
 		serialMonitorButton.registerKeyboardAction(serialButtonListener, ctrlmKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		serialMonitorButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.serialMonitor.tooltip"));
 		
@@ -205,7 +203,7 @@ public class OpenblocksFrame extends JFrame
 			}
 		};
 		serialPlotterButton.addActionListener(serialPlotterButtonListener);
-		KeyStroke ctrlLKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK);
+		KeyStroke ctrlLKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK);
 		serialPlotterButton.registerKeyboardAction(serialPlotterButtonListener, ctrlLKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		serialPlotterButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.serialPlotter.tooltip"));
 		
@@ -362,8 +360,8 @@ public class OpenblocksFrame extends JFrame
 		JButton saveDefaultButton = new JButton(uiMessageBundle.getString("ardublock.ui.saveDefaultProgram"));
 		ActionListener saveDefaultButtonListener = new SaveDefaultButtonListener(this);	
 		saveDefaultButton.addActionListener(saveDefaultButtonListener);
-		//KeyStroke ctrlshiftsKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.SHIFT_MASK);
-		//saveAsButton.registerKeyboardAction(saveAsButtonListener, ctrlshiftsKeyStroke, JComponent.WHEN_FOCUSED);
+		KeyStroke ctrlaltsKeyStroke  = KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK | ActionEvent.ALT_MASK);
+		saveDefaultButton.registerKeyboardAction(saveDefaultButtonListener, ctrlaltsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		saveDefaultButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.saveDefaultProgram.tooltip"));
 		
 		
@@ -383,7 +381,7 @@ public class OpenblocksFrame extends JFrame
 				//int currentWorkspaceZoom = zoomSlider.getValue();
 					
 				//get current zoomLevel
-				//TODO: check why blocks are rearanged while changing WS
+				//TODO: check why blocks are rearranged while changing WS
 				double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom();
 		        try {
 		        	WorkspaceController workspaceController = context.getWorkspaceController();
@@ -508,16 +506,16 @@ public class OpenblocksFrame extends JFrame
 		JButton copyButton = new JButton(uiMessageBundle.getString("ardublock.ui.copy"));
 		ActionListener copyButtonListener = new CopyButtonListener(context);
 		copyButton.addActionListener(copyButtonListener);
-		//KeyStroke ctrlcKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK);
-		//copyButton.registerKeyboardAction(copyButtonListener, ctrlcKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
+		KeyStroke ctrlcKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK);
+		copyButton.registerKeyboardAction(copyButtonListener, ctrlcKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		copyButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.copy.tooltip"));
 		
 		
 		JButton pasteButton = new JButton(uiMessageBundle.getString("ardublock.ui.paste"));
 		ActionListener pasteButtonListener = new PasteButtonListener(this, context, uiMessageBundle, workspaceModeState);
 		pasteButton.addActionListener(pasteButtonListener);
-		//KeyStroke ctrlvKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);
-		//pasteButton.registerKeyboardAction(pasteButtonListener, ctrlvKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
+		KeyStroke ctrlvKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK);
+		pasteButton.registerKeyboardAction(pasteButtonListener, ctrlvKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 		pasteButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.paste.tooltip"));
 		//*****************************************
 		
@@ -568,6 +566,15 @@ public class OpenblocksFrame extends JFrame
 		this.add(topPanel, BorderLayout.NORTH);
 		this.add(bottomPanel, BorderLayout.SOUTH);
 		this.add(workspace, BorderLayout.CENTER);
+
+		//** ActionListener without buttons*/
+		ActionListener zoomInButtonListener = new ZoomInButtonListener(workspace);
+		KeyStroke ctrlPlusKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, ActionEvent.CTRL_MASK);
+		workspace.registerKeyboardAction(zoomInButtonListener, ctrlPlusKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
+		
+		ActionListener zoomOutButtonListener = new ZoomOutButtonListener(workspace);
+		KeyStroke ctrlMinusKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, ActionEvent.CTRL_MASK);
+		workspace.registerKeyboardAction(zoomOutButtonListener, ctrlMinusKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 	}
 	
 	public void doOpenArduBlockFile()
diff --git a/src/main/java/com/ardublock/ui/listener/ZoomInButtonListener.java b/src/main/java/com/ardublock/ui/listener/ZoomInButtonListener.java
index 5213612a470b6efdcc6c58f6820c3b5ecec2c1f1..d633608277676d261918a9a656bc15fd2b222dec 100644
--- a/src/main/java/com/ardublock/ui/listener/ZoomInButtonListener.java
+++ b/src/main/java/com/ardublock/ui/listener/ZoomInButtonListener.java
@@ -12,6 +12,12 @@ public class ZoomInButtonListener implements ActionListener
 {
 	private Workspace workspace;
 	
+	/**workspace zoom settings 
+     * match with edu.mit.blocks.codeblockutil.CHoverScrollPane
+     */
+    private static final double WORKSPACE_MAX_ZOOM = 3.0;
+    private static final double WORKSPACE_ZOOM_STEPSIZE = 0.1;
+	
 	public ZoomInButtonListener(Workspace workspace)
 	{
 		Context.getContext();
@@ -23,8 +29,8 @@ public class ZoomInButtonListener implements ActionListener
 		
 		double zoomLevel = workspace.getCurrentWorkspaceZoom();
 		
-		if(zoomLevel < 2.5){
-			zoomLevel += 0.1;
+		if(zoomLevel < WORKSPACE_MAX_ZOOM){
+			zoomLevel += WORKSPACE_ZOOM_STEPSIZE;
 			workspace.setWorkspaceZoom(zoomLevel);
 			PageChangeEventManager.notifyListeners();
 		}
diff --git a/src/main/java/com/ardublock/ui/listener/ZoomOutButtonListener.java b/src/main/java/com/ardublock/ui/listener/ZoomOutButtonListener.java
index b46ae4d80c78363b0f8cc36c8d7b91f1b0b91fae..dc5798e9dec60c14e9290a28a27bf0191b7b2d20 100644
--- a/src/main/java/com/ardublock/ui/listener/ZoomOutButtonListener.java
+++ b/src/main/java/com/ardublock/ui/listener/ZoomOutButtonListener.java
@@ -9,6 +9,12 @@ public class ZoomOutButtonListener implements ActionListener
 {
 	private Workspace workspace;
 	
+	/**workspace zoom settings 
+     * match with edu.mit.blocks.codeblockutil.CHoverScrollPane
+     */
+    private static final double WORKSPACE_MIN_ZOOM = 0.6;
+    private static final double WORKSPACE_ZOOM_STEPSIZE = 0.1;
+	
 	public ZoomOutButtonListener(Workspace workspace)
 	{
 		
@@ -19,11 +25,12 @@ public class ZoomOutButtonListener implements ActionListener
 		
 		double zoomLevel = workspace.getCurrentWorkspaceZoom();
 		
-		if(zoomLevel > 0.6){
-			zoomLevel -= 0.1;
+		if(zoomLevel > WORKSPACE_MIN_ZOOM){
+			zoomLevel -= WORKSPACE_ZOOM_STEPSIZE;
 			workspace.setWorkspaceZoom(zoomLevel);
 			PageChangeEventManager.notifyListeners();
 		}
+		
 	}
 
 }
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index abd08dd5123c6076e1e65046866240692613a87a..21c2e3e1257f80a226c97c10be989b3fad4d8dbe 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -10,15 +10,15 @@ ardublock.file.suffix=Ardublock Program File(*.abp)
 #UI
 #****************************
 ardublock.ui.new=New
-ardublock.ui.new.tooltip=new program Ctrl-N
+ardublock.ui.new.tooltip=new program
 ardublock.ui.save=Save
-ardublock.ui.save.tooltip=save program Ctrl-S
+ardublock.ui.save.tooltip=save program
 ardublock.ui.saveAs=Save As
 ardublock.ui.saveAs.tooltip=save program as
 ardublock.ui.load=Open
-ardublock.ui.load.tooltip=open program Ctrl-O
+ardublock.ui.load.tooltip=open program
 ardublock.ui.upload=Upload
-ardublock.ui.upload.tooltip=Upload to Arduino Ctrl-U
+ardublock.ui.upload.tooltip=Upload to Arduino
 ardublock.ui.clone=Clone (rightclick-Ctrl)
 ardublock.ui.clone_all=Clone following (rightclick-Shift-Ctrl)
 ardublock.ui.reference=open block reference
@@ -42,15 +42,15 @@ ardublock.ui.mode.standard.tooltip=Die wichtigsten Bl
 ardublock.ui.mode.sim=Sim
 ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware"
 ardublock.ui.serialMonitor=Serial Monitor
-ardublock.ui.serialMonitor.tooltip=open Serial Monitor Ctrl-M
+ardublock.ui.serialMonitor.tooltip=open Serial Monitor
 ardublock.ui.serialPlotter=Serial Plotter
-ardublock.ui.serialPlotter.tooltip=open Serial Plotter Ctrl-L
+ardublock.ui.serialPlotter.tooltip=open Serial Plotter
 ardublock.ui.undo=Undo
-ardublock.ui.undo.tooltip=Undo Ctrl-Z
+ardublock.ui.undo.tooltip=undo
 ardublock.ui.redo=Redo
-ardublock.ui.redo.tooltip=redo Ctrl-Y
+ardublock.ui.redo.tooltip=redo
 ardublock.ui.saveImage=Save as image
-ardublock.ui.saveImage.tooltip=save current program as image... Ctrl-P
+ardublock.ui.saveImage.tooltip=save current program as image... 
 ardublock.ui.saveDefaultProgram=save as default
 ardublock.ui.saveDefaultProgram.tooltip=saves current program as default program
 ardublock.ui.zoomIn=+
@@ -58,11 +58,11 @@ ardublock.ui.zoomIn.tooltip=zoom in Ctrl-Plus
 ardublock.ui.zoomOut=-
 ardublock.ui.zoomOut.tooltip=zoom out Ctrl-Minus
 ardublock.ui.zoomReset=0
-ardublock.ui.zoomReset.tooltip=reset zoom Ctrl-0
+ardublock.ui.zoomReset.tooltip=reset zoom
 ardublock.ui.copy=copy
-ardublock.ui.copy.tooltip=copy program to clipboard Ctrl-C
+ardublock.ui.copy.tooltip=copy program to clipboard
 ardublock.ui.paste=paste
-ardublock.ui.paste.tooltip=paste program from clipboard Ctrl-V
+ardublock.ui.paste.tooltip=paste program from
 ardublock.ui.simulation=simulate
 ardublock.ui.simulation.tooltip=start simulation with basic block-set and letsgoING modules
 ardublock.ui.simulatorHelp=help
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index f92324ffc82ec6188cb8a939706500a36167f04d..6e723da5d16ccddd4d22e34d801dcfe9319493f7 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -10,15 +10,15 @@ ardublock.file.suffix=Ardublock Programmdatei (*.abp)
 #UI
 #****************************
 ardublock.ui.new=Neu
-ardublock.ui.new.tooltip=Neues Programm erstellen Strg-N
+ardublock.ui.new.tooltip=Neues Programm erstellen
 ardublock.ui.save=Speichern
-ardublock.ui.save.tooltip=ArduBlock-Programm speichern Strg-S
+ardublock.ui.save.tooltip=ArduBlock-Programm speichern
 ardublock.ui.saveAs=Speichern unter
 ardublock.ui.saveAs.tooltip=ArduBlock-Programm unter neuem Namen speichern
 ardublock.ui.load=Öffnen
-ardublock.ui.load.tooltip=ArduBlock-Programm öffnen  Strg-O
+ardublock.ui.load.tooltip=ArduBlock-Programm öffnen
 ardublock.ui.upload=Hochladen auf den Arduino
-ardublock.ui.upload.tooltip=Programm auf Arduino laden Strg-U
+ardublock.ui.upload.tooltip=Programm auf Arduino laden
 ardublock.ui.clone=klonen (Strg-Rechtsklick)
 ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick)
 ardublock.ui.reference=Block-Referenz öffnen 
@@ -42,29 +42,29 @@ ardublock.ui.mode.standard.tooltip=Die wichtigsten Bl
 ardublock.ui.mode.sim=Sim
 ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware"
 
-#ardublock.ui.modeButton.mode.tooltip=umschalten zwischen Grundlagen- und Projektblöcken Strg-B
+#ardublock.ui.modeButton.mode.tooltip=umschalten zwischen Grundlagen- und Projektblöcken
 ardublock.ui.serialMonitor=Serieller Monitor
-ardublock.ui.serialMonitor.tooltip=öffnet den seriellen Monitor Strg-M
+ardublock.ui.serialMonitor.tooltip=öffnet den seriellen Monitor
 ardublock.ui.serialPlotter=Serieller Plotter
-ardublock.ui.serialPlotter.tooltip=öffnet den seriellen Plotter Strg-L
+ardublock.ui.serialPlotter.tooltip=öffnet den seriellen Plotter
 ardublock.ui.undo=Undo
-ardublock.ui.undo.tooltip=Rückgängig Ctrl-Z
+ardublock.ui.undo.tooltip=Rückgängig
 ardublock.ui.redo=Redo
-ardublock.ui.redo.tooltip=Wiederherstellen Ctrl-Y
+ardublock.ui.redo.tooltip=Wiederherstellen
 ardublock.ui.saveImage=Bild speichern
-ardublock.ui.saveImage.tooltip=Speichert ein Bild des aktuellen Programms  Strg-P
+ardublock.ui.saveImage.tooltip=Speichert ein Bild des aktuellen Programms
 ardublock.ui.saveDefaultProgram=Als Vorlage speichern
 ardublock.ui.saveDefaultProgram.tooltip=Speichert aktuelles Programm als Vorlage für neue Programme
 ardublock.ui.zoomIn=+
-ardublock.ui.zoomIn.tooltip=vergrößere Programm Strg-Plus
+ardublock.ui.zoomIn.tooltip=vergrößere Programm
 ardublock.ui.zoomOut=-
-ardublock.ui.zoomOut.tooltip=verkleinere Programm Strg-Minus
+ardublock.ui.zoomOut.tooltip=verkleinere Programm
 ardublock.ui.zoomReset=0
-ardublock.ui.zoomReset.tooltip=zurücksetzen Strg-0
+ardublock.ui.zoomReset.tooltip=zurücksetzen
 ardublock.ui.copy=kopieren
-ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage Strg-C
+ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage
 ardublock.ui.paste=einfügen
-ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein Strg-V
+ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein
 ardublock.ui.simulation=Hochladen auf den Simulator
 ardublock.ui.simulation.tooltip=Starte den Simulator fuer die letsgoING-GrundlagenModule
 ardublock.ui.simulatorHelp=Hilfe