diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index 17b1fc5436d9364440c3fb1867f7e363e05e72ad..590ecf5ddb5f5c7dd500a76938ab2a31578c2858 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -470,12 +470,6 @@ public class Codierer {
 	 * Löscht das letzte Zeichen aus der Nachricht und dreht die Walzen eine Position zurück.
 	 */
 	public void letztesZeichenLoeschen() {
-		if (this.hardware.getWalzen()[2].dreheWalze(-1)) {
-			System.out.println("Drehe W2");
-			if (this.hardware.getWalzen()[1].dreheWalze(-1)) {
-				System.out.println("Drehe W1");
-				this.hardware.getWalzen()[0].dreheWalze(-1);
-			}
-		}
+		this.hardware.dreheWalzen(-1);
 	}
 }
diff --git a/src/main/java/projekt/enigma/model/Hardware.java b/src/main/java/projekt/enigma/model/Hardware.java
index b37ddd166c98d2274e0722e401418c81d354bc16..58ac07827ed796bc9bfa9605f9b8c1bfe31dff84 100644
--- a/src/main/java/projekt/enigma/model/Hardware.java
+++ b/src/main/java/projekt/enigma/model/Hardware.java
@@ -67,7 +67,7 @@ public class Hardware {
 	 * @return char : Der ver/entschlüsselte Buchstabe
 	 */
 	public char codiere(char buchstabe) {
-		this.dreheWalzen();
+		this.dreheWalzen(1);
 
 		buchstabe = this.steckbrett.codiere(Character.toUpperCase(buchstabe));
 		buchstabe = this.walzen[2].codiere(buchstabe);
@@ -86,10 +86,18 @@ public class Hardware {
 	 * Nach jeder codierung eines Buchstabens müssen die Walzen gedreht werden.
 	 * Hier überprüfen wir welche der Walzen gedreht werden müssen und stoßen die Vorgang an.
 	 */
-	private void dreheWalzen() {
-		if (this.walzen[2].dreheWalze()) {
-			if (this.walzen[1].dreheWalze()) {
-				this.walzen[0].dreheWalze();
+	public void dreheWalzen(int richtung) {
+		if (richtung > 0) {
+			for (int i = 0; i < richtung; i++) {
+				if (this.walzen[2].dreheWalze(1) && this.walzen[1].dreheWalze(1)) {
+					this.walzen[0].dreheWalze(1);
+				}
+			}
+		} else {
+			for (int i = 0; i > richtung; richtung++) {
+				if (this.walzen[2].dreheWalze(-1) && this.walzen[1].dreheWalze(-1)) {
+					this.walzen[0].dreheWalze(-1);
+				}
 			}
 		}
 	}
diff --git a/src/main/java/projekt/enigma/model/Walze.java b/src/main/java/projekt/enigma/model/Walze.java
index e43959ff3db9498099139438511f3cf0f1244786..dc350df82d32fb2fbf2630501368c0409e6b2041 100644
--- a/src/main/java/projekt/enigma/model/Walze.java
+++ b/src/main/java/projekt/enigma/model/Walze.java
@@ -131,51 +131,30 @@ public class Walze {
 	 * <p>
 	 * Ueberprueft, ob der Umspringpunkt der Walze nach der Drehung erreicht wurde.
 	 *
-	 * @param drehung : int[] : Anzahl der Drehungen
+	 * @param richtung : int : 1 dreht die Walze weiter und -1 dreht sie einen Schritt zurück
 	 * @return checkRing : boolean : gibt true zurueck wenn der Umspringpunkt erreicht wurde
 	 * TODO: Doku
 	 */
-	public boolean dreheWalze(int... drehung) {
+	public boolean dreheWalze(int richtung) {
 		boolean checkRing = false;
-		int richtung = 1;
 
-		if (drehung.length > 0 && drehung[0] < 0) {
-			richtung = -1;
-		}
+        if (richtung == 1) {
+            Collections.rotate(Arrays.asList(this.walzeAlpha), richtung);
+        } else {
+            richtung = -1;
+            Collections.rotate(Arrays.asList(this.walzeAlpha), richtung);
+        }
 
-		// fuehrt die Verschiebung des Alphabets um eine Stelle durch
-		verschiebung(richtung);
+        System.out.printf("W: %s R: %s\n", this.getPosition(), this.ringstellung);
 
-		// fuehrt die Verschiebung mehrfach aus, wenn mehrere Drehungen ausgefuehrt werden sollen
-		if (drehung.length > 0) {
-			for (int i = 1; i < drehung[0]; i++) {
-				verschiebung(richtung);
-			}
-		}
-
-		// gleicht die Ringstellung mit der aktuellen Position ab
-		if (this.getPosition().equals(this.ringstellung)) {
+        // gleicht die Ringstellung mit der aktuellen Position ab
+		if (this.getPosition() + 1 == this.ringstellung) {
 			checkRing = true;
 		}
 
 		return checkRing;
 	}
 
-	/**
-	 * Ueberschreibt die Alphabetswalze mit dem, durch die Drehung, verschobenen Alphabet.
-	 *
-	 * @param richtung : int : Wenn "normal" gedreht werden soll, wird 1 übergeben, reverse entspricht dann -1
-	 *                 TODO: Dokumentieren
-	 */
-	private void verschiebung(int richtung) {
-
-		if (richtung > 0) {
-            Collections.rotate(Arrays.asList(this.walzeAlpha), 1);
-        } else {
-            Collections.rotate(Arrays.asList(this.walzeAlpha), -1);
-        }
-	}
-
 	/**
 	 * TODO: Dokumentieren // dass selbe wie getPosition
 	 * Gibt den Buchstaben zurueck der in der Walze aktuell eingestellt ist.