diff --git a/UML.dia b/UML.dia
index ff72c97fbfdcdafea574de3752e99e25ce12d437..6f33a4c400cee424817c34093c0c7f55ad92a964 100644
Binary files a/UML.dia and b/UML.dia differ
diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java
index 81753958b25aaf0d26e8982aa37e6eb1f42ea9aa..9a75e78f2d740bd5703175035cf275bc56b92550 100644
--- a/src/tec/letsgoing/ardublock/simulator/Simulator.java
+++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java
@@ -179,16 +179,19 @@ public class Simulator implements Runnable, ActionListener{
 		Point locationWindow = gui.getLocation();
 		
 		
-		int WidthWindow  = ((int)((gui.getWidth() * 1.0975) - 13.307));
-		int HeightWindow = ((int)((gui.getHeight() * 1.2709) - 174.77));
+//		int widthWindow  = ((int)((gui.getWidth() * 1.0975) - 13.307));
+//		int heightWindow = ((int)((gui.getHeight() * 1.2709) - 174.77));
 		
+		//Die bisherige Größe des Fenster wird abgespeichert
+		int widthWindow = gui.getWidth();
+		int heightWindow = gui.getHeight();
 
 		gui.stopThread();
 		gui.dispose();
 
 		
-		//Die neue GUI wird mit den gespeicherten Werten gestartet
-		createSubClasses(WidthWindow, HeightWindow);		
+		//Die neue Objekte werden mit den gespeicherten Werten erzeugt
+		createSubClasses(widthWindow, heightWindow);		
 		//die GUI wird an die gespeicherte Position verschoben
 		gui.setLocation(locationWindow);
 
diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
index af159eddbaae9d346faa0808d941a947ef3365cf..d721bda333f9ca8097a57abcde3e978b45ebfa1c 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
@@ -67,7 +67,9 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	private int yscale;
 	private JPanel modulPanel;
 	private Container mainPane;
-	private int WindowHeight, WindowWidth;
+	private int windowHeight, windowWidth;
+	private final int scalingOffset = 100; //wird für die Skalierung des Arduinos benötigt
+	private final int updateGap = 10; //Legt fest wie groß eine Fenstergrößenänderung sein muss um eine Fensteraktualisierungen durchzuführen
 	
 
 	/**
@@ -78,11 +80,20 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	public GUI(Simulator simu, int _xscale, int _yscale) {
 		super("ArduBlock Simulator");
 	
-		// TODO: Größenverhätlnisse mit +80 eventuell
-		xscale = _xscale;
-		yscale = _yscale;
-		WindowWidth = _xscale;
-		WindowHeight = _yscale;
+		
+		//Das Fenster wird gemäß des kleineren Seitenverhältnisses erstellt
+		if(_xscale <= _yscale - scalingOffset) {					
+			xscale = _xscale;
+			yscale = _xscale;					
+		}								
+		else {						
+			xscale = _yscale - scalingOffset;
+			yscale = _yscale - scalingOffset;						
+		}	
+		
+
+		windowWidth = _xscale;
+		windowHeight = _yscale;
 		
 		// Konstruktor der Module
 				modules[0] = new RGB(new ImageIcon(getToolkit()
@@ -134,10 +145,16 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 				//Panel der Buttons auf der rechten Seite wird ausgeblendet
 				//mainPane.add(createControlPanel(simu), BorderLayout.EAST);
 				mainPane.add(createSerialLog(), BorderLayout.PAGE_END);
-				//this.setSize(xscale, yscale);
-				super.pack();
+				
+				//Die Fenstergröße wird mit der dem Konstruktor übergebenen Größe festgelegt
+				super.setSize(_xscale, _yscale);
+				//Eine Minimum Fenstergröße wird festgelegt
+				super.setMinimumSize(new Dimension(200, 200));
 				// this.setLocation(-1300, 0); //Möglichkeit die Renderingposition festzulegen
 				super.setVisible(true);
+				//Eine Aktualisierung der GUI gemäß den übergebenen Seitenverhältnissen wird aufgerufen.
+				updateGUI(xscale, yscale);
+			
 				
 				//ComponentListener wird hinzugefügt, der auf das Vergrößern des Fenster reagiert und die GUI neu lädt
 		this.addComponentListener(new ComponentListener() {
@@ -147,23 +164,23 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 				
 				
 
-					//Das Fenster soll erst dann upgedatet werden wenn eine Größenänderung größer 30 stattgefunden hat
+					//Das Fenster soll erst dann upgedatet werden wenn eine Größenänderung größer 5 stattgefunden hat
 					//um zu verhindern dass die update Funktion durch ein zu häufiges Aufrufen das Programm aufhängt.
-					if((Math.abs(WindowHeight - getHeight()) > 5) || (Math.abs(WindowWidth - getWidth()) > 5)) {
-											
-							WindowHeight = getHeight();
-							WindowWidth = getWidth();
-						//	topPanelWidth = topPanel.getWidth();
-						//	topPanelHeight = topPanel.getHeight();
+					if((Math.abs(windowHeight - getHeight()) > updateGap) || (Math.abs(windowWidth - getWidth()) > updateGap)) {
+							
+							//Die aktuelle Fenstergröße wird abgespeichert
+							windowHeight = getHeight();
+							windowWidth = getWidth();
+
 							
 							//GUI wird nur gleichmäßig skaliert mit den Größen des kleineren Seitenverhätlnisses
-							if(WindowWidth <= (WindowHeight - 80)) {					
-								xscale = WindowWidth;
-								yscale = WindowWidth;					
+							if(windowWidth <= windowHeight - scalingOffset) {					
+								xscale = windowWidth;
+								yscale = windowWidth;					
 							}								
 							else {						
-								xscale = WindowHeight - 80;
-								yscale = WindowHeight - 80;						
+								xscale = windowHeight - scalingOffset;
+								yscale = windowHeight - scalingOffset;						
 							}		
 							
 								//GUI wird upgedatet
@@ -207,7 +224,7 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	public void updateGUI(int _xscale, int _yscale) {
 		
 	
-		
+		//Jedes Modul wird mit den neuen Seitenverhätlnissen aktualisiert
 		for(int i = 0; i < 4; i++) {
 			
 			modules[i].updateGUI(_xscale, _yscale);
@@ -215,10 +232,10 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 		}
 		
 	
-		
+		//Wird benötigt um kleine Anzeigefehler zu beseitigen
 		super.setVisible(true);
-		
-		updateSerialLog(getHeight()-topPanel.getHeight());	
+		//Die Höhe des SerialLog wird gemäß den Seitenverhältnissen angepasst
+		updateSerialLogHeight(getHeight()-topPanel.getHeight());	
 		
 		
 		
@@ -326,8 +343,8 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	 * @param size
 	 * Aktuelle Größe Fenster in y
 	 */
-	public void updateSerialLog(int size) {
-		
+	public void updateSerialLogHeight(int size) {
+		//Die Reihenanzahl des SerialLog wird anhand der Größe des oberen Panels berechnet
 		int numRows =  Math.min(Math.max(((int)size/20)-3, 3), 20);
 		serialLog.setRows(numRows);			
 		this.setVisible(true);
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
index 6ed893363ee4d45e5509ce67b94583911d2bda2a..ecd583550519f66df927e4ffe8cbc138d04be217 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
@@ -33,18 +33,22 @@ public class ArduinoUno extends Modul {
 	private JLabel labelPower, chiplabel, label13, labelButton;
 	private ImageIcon chipIcon, chipIcon_temp;
 	private JButton button;
-	private int xscale;
-	private int yscale;
+
 	
 	public ArduinoUno(ImageIcon _icon, Simulator simu, int _xscale, int _yscale) {
+		//Die übergebenen Skalierungswerte werden in das Objekt geschrieben
 		this.xscale = _xscale; 
 		this.yscale = _yscale;
+		//Das Label für den Arduino wird erzeugt
 		chiplabel = new JLabel();
-		
+		//Das Bild des Arduinos wird in chipIcon geladen
 		chipIcon = _icon;
+		//Die temporäre Variable chipIcon_temp speichert das den Seitenverhältnissen entsprechend neu skalierte Bild
 		chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH));
+		//das neue skalierte Bild wird in das chipLabel geschrieben
 		chiplabel.setIcon(chipIcon_temp);
 		
+		//Der Reset-Button wird erzeugt und initialisiert
 		button = new JButton();
 		button.setActionCommand("reset");
 		button.addActionListener(simu);
@@ -52,6 +56,7 @@ public class ArduinoUno extends Modul {
 		button.setContentAreaFilled(false);
 		button.setBorderPainted(false);
 		
+		//Ein Label für den Reset-Button wird erzeugt
 		labelButton = new JLabel();
 		labelButton.add(button);
 		layerpane.add(labelButton, 0);
@@ -86,7 +91,7 @@ public class ArduinoUno extends Modul {
 
 		};
 		
-		
+		//Die update-Funktion wird mit den übergebenene Werten der Seitenverhältnisse aufgerufen
 		updateGUI(xscale, yscale);
 		
 		
@@ -96,50 +101,43 @@ public class ArduinoUno extends Modul {
 	@Override
 	public void updateGUI(int _xscale, int _yscale) {
 		
-		//Alte label werden entfernt, wenn vorhanden. Da sonst die alten Label bestehen bleiben würden
-		if(labelPower != null) {
-			layerpane.remove(labelPower);
-		}
 		
-		if(label13 != null) {
-			layerpane.remove(label13);
-		}
 		
 		this.xscale = _xscale; 
 		this.yscale = _yscale;
 		
 		
 		// Offset für den Arduino um diesen mehr mittig zu platzieren.
-				int locx = ((int)(0.0516*xscale));
-				int locy = ((int)(0.0517*yscale));
+		int locx = ((int)(0.0516*xscale));
+		int locy = ((int)(0.0517*yscale));
 				
-				layerpane.setPreferredSize(new Dimension(((int)(0.606*xscale)) + locx, ((int)(0.432*yscale)) + locy));
+		layerpane.setPreferredSize(new Dimension(((int)(0.606*xscale)) + locx, ((int)(0.432*yscale)) + locy));
 				
-				chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH));
+		chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.606*xscale)), ((int)(0.432*yscale)), Image.SCALE_SMOOTH));
 				
-				chiplabel.setSize(((int)(0.606*xscale)), ((int)(0.432*yscale)));				
-				chiplabel.setLocation(locx, locy);
+		chiplabel.setSize(((int)(0.606*xscale)), ((int)(0.432*yscale)));				
+		chiplabel.setLocation(locx, locy);
 				
-				layerpane.add(chiplabel, 0);
+		layerpane.add(chiplabel, 0);
 
-							
-				labelPower.setLocation(((int)(0.5207*xscale))+locx, ((int)(0.13*yscale))+locy);
-				labelPower.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale)));
-				layerpane.add(labelPower, 0);
+		//Position und Größe der PowerLED werden aktualisiert				
+		labelPower.setLocation(((int)(0.5207*xscale))+locx, ((int)(0.13*yscale))+locy);
+		labelPower.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale)));
+		layerpane.add(labelPower, 0);
 				
+		
+		//Position und Größe der LED13 werden aktualisiert
+		label13.setLocation(((int)(0.2655*xscale))+locx, ((int)(0.092*yscale))+locy);
+		label13.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale)));
+		layerpane.add(label13, 0);
 
-				label13.setLocation(((int)(0.2655*xscale))+locx, ((int)(0.092*yscale))+locy);
-				label13.setSize(((int)(0.02066*xscale)), ((int)(0.01034*yscale)));
-				layerpane.add(label13, 0);
-
-				// unsichtbarer Resetbutton
-				
-				button.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
+		//Größe und Position des Buttons werden aktualisiert
+		button.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
 								
-				labelButton.setSize(((int)(0.062*xscale)), ((int)(0.0527*yscale)));
-				labelButton.setLocation(((int)(0.06612*xscale))+locx, ((int)(0.00103*yscale))+locy);
-				
-				calculatePinPos(locx, locy);
+		labelButton.setSize(((int)(0.062*xscale)), ((int)(0.0527*yscale)));
+		labelButton.setLocation(((int)(0.06612*xscale))+locx, ((int)(0.00103*yscale))+locy);
+		//Die Pin Positionen werden neu berechnet
+		calculatePinPos(locx, locy);
 	}
 	
 
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
index 87a3b09616aff8601e5f13211353936efb1fdd22..6f88c152801c1effb50e63c4ce35d64f9e66be41 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
@@ -32,8 +32,7 @@ public class Button extends Modul implements ActionListener, MouseListener {
 	//private JToggleButton but1, but2, but3;
 	private JLabel chiplabel, label1, label2, label3;
 	private LockButton but1, but2, but3;
-	private int xscale;
-	private int yscale;
+
 	
 	
 	
@@ -96,7 +95,7 @@ public class Button extends Modul implements ActionListener, MouseListener {
 	}
 	
 	public Button(ImageIcon _icon, ImageIcon _icon1, ImageIcon _icon2, int _xscale, int _yscale) {
-
+		//Die übergebenen Skalierungswerte werden in das Objekt geschrieben
 		this.xscale = _xscale; 
 		this.yscale = _yscale;
 		chipIcon = _icon;
@@ -123,8 +122,9 @@ public class Button extends Modul implements ActionListener, MouseListener {
 		label1 = new JLabel();						
 		label2 = new JLabel();				
 		label3 = new JLabel();
-		
+		//Das neu skalierte Icon wird in die temporäre Variable chipIcon_temp geladen
 		chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
+		//Das skalierte Icon wird als Icon des chipLabels gesetzt.
 		chiplabel.setIcon(chipIcon_temp);
 		iconOff_temp = new ImageIcon(iconOff.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH));
 		iconOn_temp = new ImageIcon(iconOn.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH));
@@ -132,6 +132,7 @@ public class Button extends Modul implements ActionListener, MouseListener {
 		but1.setIcon(iconOff_temp);
 		but2.setIcon(iconOff_temp);
 		but3.setIcon(iconOff_temp);
+		//eine Aktualisierung des Moduls wird aufgerufen
 		updateGUI(xscale, yscale);
 		
 	
@@ -142,52 +143,29 @@ public class Button extends Modul implements ActionListener, MouseListener {
 		this.xscale = _xscale; 
 		this.yscale = _yscale;
 		
+		//Das Icon wird gemäß den neuen Seitenverhältnissen neu skaliert und geladen
 		layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale))));		
-		chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
-		
+		chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));		
 		chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale)));
 		
-		
-		but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));	
-	
-		
+		//Die Größe und Position des Buttons 1 wird aktualisiert
+		but1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));				
 		label1.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
 		label1.setLocation(((int)(0.02996*xscale)), ((int)(0.06618*yscale)));
 		
-		
+		//Die Icons On und Off werden neu skaliert und in die temporären Variablen geschrieben
 		iconOff_temp.setImage(iconOff.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH));
 		iconOn_temp.setImage(iconOn.getImage().getScaledInstance(((int)(0.0723*xscale)), ((int)(0.0724*yscale)), Image.SCALE_SMOOTH));
 
-		//Abfrage ob der jeweilige Button im moment gedr�ckt wurde oder nicht und dementsprechend wird das gas gezoomte icon gesetzt
-//		if(!but1.isSelected()) 
-//			but1.setIcon(iconOff_temp);
-//		else
-//			but1.setIcon(iconOn_temp);
-//		
-//		
-//			
-//		
-//		if(!but2.isSelected()) 
-//			but2.setIcon(iconOff_temp);
-//		else
-//			but2.setIcon(iconOn_temp);
-//		
-//		
-//		
-//		if(!but3.isSelected()) 
-//			but3.setIcon(iconOff_temp);	
-//		else		
-//			but3.setIcon(iconOn_temp);
-//		
-		
+	
 		
-		but2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
-			
+		//Die Größe und Position des Buttons 2 wird aktualisiert
+		but2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));			
 		label2.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
 		label2.setLocation(((int)(0.1147*xscale)), ((int)(0.03619*yscale)));
 		
-		but3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
-						
+		//Die Größe und Position des Buttons 3 wird aktualisiert
+		but3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));						
 		label3.setSize(((int)(0.0723*xscale)), ((int)(0.0724*yscale)));
 		label3.setLocation(((int)(0.200*xscale)), ((int)(0.06618*yscale)));
 
@@ -198,7 +176,7 @@ public class Button extends Modul implements ActionListener, MouseListener {
 		layerpane.add(label1, 0);
 		layerpane.add(label2, 0);
 		layerpane.add(label3, 0);
-		
+		//Die Positionen der Pins werden neu berechnet
 		calculatePinPos();
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
index 53d734fcfd00281210c659fd620205058d47139c..18c9b59cf843e7362a9db11752afecc2adb681bf 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
@@ -25,6 +25,7 @@ public abstract class Modul implements Observer {
 	protected Vector<Pin> pins = new Vector<Pin>();
 	protected JLayeredPane layerpane = new JLayeredPane();
 	protected Vector<Point> pinPos = new Vector<Point>();
+	protected int xscale, yscale;
 
 	public void setState(boolean State) {
 		active = State;
@@ -59,7 +60,8 @@ public abstract class Modul implements Observer {
 	
 	
 	/**
-	 * Funktion wird aufgerufen wenn sich die Größe des aktuellen Fensters ändert
+	 * Funktion wird aufgerufen wenn sich die Größe des aktuellen Fensters ändert und die Module werden entsprechend der neuen Fenstergröße
+	 * neu skaliert und angepasst.
 	 * @param xscale
 	 * Fenstergröße in x
 	 * @param yscale
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
index bc8a167d17d3f26014184c9363061e22673c808c..496c10f9299249bdcffb4ed656f46b0db4e27a4e 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
@@ -36,8 +36,7 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 	private ImageIcon chipIcon, chipIcon_temp;
 	private JPanel sliderPanel;
 	private Hashtable<Integer, JLabel> labelTable;
-	private int xscale;
-	private int yscale;
+
 	
 	private static final String POTI_TOOLTIP = "Slider ziehen oder mit Mausrad verstellen";
 	
@@ -52,7 +51,7 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 		slider.setMinorTickSpacing(64);
 		slider.setPaintTicks(true);		
 		
-		// Erzeuge eine individuelle Slider Beschriftung
+		// Erzeuge eine Slider mit individueller Beschriftung
 		sliderlabel1 = new JLabel("0%");
 		sliderlabel2 = new JLabel("50%");
 		sliderlabel3 = new JLabel("100%");
@@ -70,9 +69,10 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 		sliderPanel.setOpaque(false);
 		layerpane.add(chiplabel, 0);
 		layerpane.add(sliderPanel, 0);
-		
+		//Das ImageIcon des Potis wird neu skaliert und temporär geladen
 		chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
 		chiplabel.setIcon(chipIcon_temp);
+		//Eine Aktualisierung des Moduls wird aufgerufen
 		updateGUI(xscale, yscale);
 		
 
@@ -86,19 +86,17 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 		this.yscale = _yscale;
 		
 		layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale))));				
-
 		chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
-		
 		chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale)));
 		
-		
+		//Die Schriftgröße wird gemäß den Seitenverhältnissen neu berechnet
 		sliderlabel1.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale))));
 		sliderlabel2.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale))));
 		sliderlabel3.setFont(new Font(sliderlabel1.getName(), Font.BOLD, ((int)(0.0115*xscale))));
 		slider.setPreferredSize(new Dimension(((int)(0.186*xscale)), ((int)(0.05*yscale))));
 		sliderPanel.setSize(((int)(0.2066*xscale)), ((int)(0.066*yscale)));
 		sliderPanel.setLocation(((int)(0.04855*xscale)), ((int)(0.175*yscale)));
-
+		//Die Pin-Positionen werden neu berechnet
 		calculatePinPos();
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
index 3023d9e925af09299a0b89fe6ece05e2f2c2e0c2..9627774663e0ff21e1b5ffb4d4661ad373abee95 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
@@ -31,8 +31,7 @@ public class RGB extends Modul {
 	private int transparancy, tredValue, tgreenValue, tblueValue;
 	private JLabel chiplabel, ledlabel;
 	private ImageIcon chipIcon, chipIcon_temp;
-	private int xscale;
-	private int yscale;
+
 
 	public RGB(ImageIcon _icon, int _xscale, int _yscale) {
 		this.xscale = _xscale; 
@@ -69,41 +68,34 @@ public class RGB extends Modul {
 
 		};
 		
+		layerpane.add(chiplabel, 0);
+		layerpane.add(ledlabel, 0);
+		//das ImageIcon wird mit dem neu skalierten Bild geladen
 		chipIcon_temp = new ImageIcon(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
+		//Das Neue ImageIcon wird als Icon des chipLabels gesetzt
 		chiplabel.setIcon(chipIcon_temp);
+		//Eine Aktualisierung des Moduls wird aufgerufen
 		updateGUI(xscale, yscale);
 	
 	}
 	
 	@Override
 	public void updateGUI(int _xscale, int _yscale) {
-	
-	
-		//Alte label werden entfernt, wenn vorhanden. Da sonst die alten Label bestehen bleiben würden
-		if(ledlabel != null) {
-			layerpane.remove(ledlabel);
-		}
-		
+						
 		this.xscale = _xscale; 
 		this.yscale = _yscale;
 		
-		// Erstellen der JLayerPane für das Modul
-				layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale))));
+		// Erstellen der JLayerPane für das Modul
+		layerpane.setPreferredSize(new Dimension(((int)(0.3037*xscale)), ((int)(0.304*yscale))));
+		chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
+		chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale)));		
 				
-				chipIcon_temp.setImage(chipIcon.getImage().getScaledInstance(((int)(0.3037*xscale)), ((int)(0.304*yscale)), Image.SCALE_SMOOTH));
-				
-				chiplabel.setSize(((int)(0.3037*xscale)), ((int)(0.304*yscale)));
-				layerpane.add(chiplabel, 0);
-
-				// Erzeuge ein JLabel welches das Leuchten der LED darstellt.
-				
-
-				// Setze Position des Labels
-				ledlabel.setLocation(((int)(0.11*xscale)), ((int)(0.0383*yscale)));
-				ledlabel.setSize(((int)(0.2066*xscale)), ((int)(0.2068*yscale)));
-				layerpane.add(ledlabel, 0);
+		// Setze Position des Labels
+		ledlabel.setLocation(((int)(0.11*xscale)), ((int)(0.0383*yscale)));
+		ledlabel.setSize(((int)(0.2066*xscale)), ((int)(0.2068*yscale)));
 		
-				calculatePinPos();
+		//Die Pin-Positionen werden neu berechnet
+		calculatePinPos();
 	}
 
 	/**