diff --git a/src/main/java/Enigma/model/Reflektor.java b/src/main/java/Enigma/model/Reflektor.java
index cc7c69dc5d6291056189ae515715aa2ddb1356a1..a3069b863341a420aa9e30cd70620d8d043706c6 100644
--- a/src/main/java/Enigma/model/Reflektor.java
+++ b/src/main/java/Enigma/model/Reflektor.java
@@ -2,10 +2,10 @@ package Enigma.model;
 
 /**
  * Klasse Reflektor
- *
+ * <p>
  * Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und kodiert diesen.
  * Der kodierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
- *
+ * <p>
  * Prinzipiell verhält sich die Klasse Refelktor wie die Klasse Walze, außer das sie sich
  * nach Betätigung einer Taste nicht dreht (starr montiert) und sie gibt keine Signale
  * an andere Walzen zum drehen.
@@ -14,70 +14,38 @@ public class Reflektor {
 
     /**
      * Konstanten und Variablen der Klasse Reflektor
-     *
+     * <p>
      * WALZE_ALPHABET : konstanter Char-Array mit den Werten des Alphabeths (26 Werte)
      * WALZE_REFLEKTOR : konstanter Char-Array mit den Werten des Reflektors (26 Werte)
      * reflektorBuchstabeRein : Character mit dem an die Klasse übergebenen Character
      * reflektorBuchstabeRaus : Character nach der Codierung in der Klasse Reflektor
      * iPositionReflektor : Integer mit der Positionsnummer des Characters im Array
      */
-    private final Character[] WALZE_ALPHABET = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
-    private final Character[] WALZE_REFLEKTOR= {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
-    private Character reflektorBuchstabeRein;
-    private Character reflektorBuchstabeRaus;
-    private int iPositionReflektor;
+    private final Character[] WALZE_ALPHABET = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
+    private final Character[] WALZE_REFLEKTOR = {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
 
 
     /**
      * Funktion Codiere
-     *
+     * <p>
      * Durchsucht das konstante Char-Array WALZE_ALPHABET nach der Position eines bestimmten
      * Buchstabens und gibt den Character an der entsprechenden Position im konstanten
      * Char-Array WALZE_REFLEKTOR zurück.
      *
      * @return reflektorBuchstabeRaus: Character: Der kodierte Buchstabe aus dem Reflektor
      */
-    public char codiere (){
-        int index = 0;
+    public char codiere(Character buchstabe) {
+        int iPositionReflektor = 0;
 
         /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
-        for(index = 0; index < WALZE_ALPHABET.length; index++) {
-            if(getReflektorBuchstabeRein().equals(WALZE_ALPHABET[index])) {
+        for (int index = 0; index < WALZE_ALPHABET.length; index++) {
+            if (buchstabe.equals(WALZE_ALPHABET[index])) {
                 iPositionReflektor = index;
                 break;
             }
         }
         /*Im Char-Array WALZE_REFLEKTOR wird der Character an der Position iPositionReflektor ausgegeben*/
-        reflektorBuchstabeRaus = WALZE_REFLEKTOR[iPositionReflektor];
-        return reflektorBuchstabeRaus;
-    }
-
-    /**
-     * Getter getReflektorBuchstabeRein
-     *
-     * Gibt den Wert der Variablen reflektorBuchstabeRein zurück
-     *
-     * @return reflektorBuchstabeRein: Character: gibt den Buchstaben zurück
-     */
-    public Character getReflektorBuchstabeRein() {
-        return reflektorBuchstabeRein;
-    }
-
-
-    /**
-     * Setter setReflektorBuchstabeRein
-     *
-     * Setzt den Wert der Variablen reflektorBuchstabeRein
-     *
-     * @param reflektorBuchstabeRein: Character: setzt den Wert des Buchstabens
-     */
-    public void setReflektorBuchstabeRein(Character reflektorBuchstabeRein) {
-        if (Character.isLetter(reflektorBuchstabeRein)){
-            this.reflektorBuchstabeRein = reflektorBuchstabeRein;
-        } else{
-            System.err.println("Kein Buchstabe übergeben im Reflektor");
-        }
-
+        return WALZE_REFLEKTOR[iPositionReflektor];
     }
 
 }
diff --git a/src/main/java/Enigma/model/Steckbrett.java b/src/main/java/Enigma/model/Steckbrett.java
index c6ebc5bd4bbc60c758734787d0de69e95dcf168c..d4c503af76d16371f4791c3e6cdf2e6552aaa766 100644
--- a/src/main/java/Enigma/model/Steckbrett.java
+++ b/src/main/java/Enigma/model/Steckbrett.java
@@ -1,61 +1,77 @@
-//package Enigma.model;
-//
-//public class Steckbrett {
-//
-//    private final Character[] WALZE_ALPHABET = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
-//    private Character buchstabeEins;
-//    private Character buchstabeZwei;
-//    private int iPositionEins;
-//    private int iPositionZwei;
-//
-//    public Character getBuchstabeEins() {
-//        return buchstabeEins;
-//    }
-//
-//    public void setBuchstabeEins(Character buchstabeEins) {
-//        this.buchstabeEins = buchstabeEins;
-//    }
-//
-//    public Character getBuchstabeZwei() {
-//        return buchstabeZwei;
-//    }
-//
-//    public void setBuchstabeZwei(Character buchstabeZwei) {
-//        this.buchstabeZwei = buchstabeZwei;
-//    }
-//
-//
-//
-//    public char vertauscheBuchstaben(){
-//        /*Variable um Index zu speichern*/
-//        int indexA = 0;
-//        int indexB = 0;
-//
-//        /*Ermittelt die Position des Buchstaben buchstabeEins auf der Alphabetswalze*/
-//        for(indexA = 0; indexA < WALZE_ALPHABET.length; indexA++) {
-//            if(getBuchstabeEins().equals(WALZE_ALPHABET[index])) {
-//                iPositionEins = index;
-//                break;
-//            }
-//        }
-//
-//        /*Ermittelt die Position des Buchstaben buchstabeZwei auf der Alphabetswalze*/
-//        for(indexA = 0; index < WALZE_ALPHABET.length; index++) {
-//            if(getBuchstabeEins().equals(WALZE_ALPHABET[index])) {
-//                iPositionEins = index;
-//                break;
-//            }
-//        }
-//
-//
-//        /*Im Char-Array WALZE_REFLEKTOR wird der Character an der Position iPositionReflektor ausgegeben*/
-//        reflektorBuchstabeRaus = WALZE_REFLEKTOR[iPositionReflektor];
-//        return reflektorBuchstabeRaus;
-//
-//
-//
-//
-//
-//        return 0;
-//    }
-//}
+package Enigma.model;
+
+/**
+ *
+ */
+public class Steckbrett {
+    /**
+     *
+     */
+    private int zaehler;
+    private Character[] orginalBuchstaben;
+    private Character[] getauschteBuchstaben;
+
+    /**
+     *
+     */
+    public Steckbrett() {
+
+        orginalBuchstaben = new Character[10];
+        getauschteBuchstaben = new Character[10];
+    }
+
+
+    /**
+     *
+     * @param buchstabe1
+     * @param buchstabe2
+     * @return
+     */
+    public boolean setzeVertauschung(char buchstabe1, char buchstabe2) {
+
+        if (zaehler < orginalBuchstaben.length) {
+            orginalBuchstaben[zaehler] = buchstabe1;
+            getauschteBuchstaben[zaehler++] = buchstabe2;
+        } else {
+            System.err.println("Zu viele Vertauschungen angegeben!");
+        }
+
+        return ueberpruefeVertauschungen();
+    }
+
+    /**
+     *
+     * @return
+     */
+    public boolean ueberpruefeVertauschungen() {
+
+        boolean result = true;
+        for (int n = 0; n < orginalBuchstaben.length; n++) {
+            if (orginalBuchstaben.equals(orginalBuchstaben[n]) || getauschteBuchstaben.equals(orginalBuchstaben[n]) || getauschteBuchstaben.equals(getauschteBuchstaben[n])) {
+                System.err.println("Vertauschungen enthalten unzulässige Dopplungen");
+                result = false;
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * 
+     * @param buchstabe
+     * @return
+     */
+    public char codiere(Character buchstabe) {
+
+        for (int index = 0; index < getauschteBuchstaben.length; index++) {
+            if (buchstabe.equals(getauschteBuchstaben[index])) {
+                buchstabe = orginalBuchstaben[index];
+            } else if (buchstabe.equals(orginalBuchstaben[index])) {
+                buchstabe = getauschteBuchstaben[index];
+            }
+        }
+
+        return buchstabe;
+    }
+
+}
diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java
index 886b1cb3158e84b0f5a293c60f07f3aa4ffa96b1..86cf8f4e1e8a76861c3aca23ea5dfef415816121 100644
--- a/src/main/java/Enigma/model/Walze.java
+++ b/src/main/java/Enigma/model/Walze.java
@@ -33,6 +33,8 @@ public class Walze {
     private int iPositionBuchstabeRe;
     private Character[] walze;
 
+
+
     /**
      * Gibt die Parameter der Walze mit
      *
@@ -46,6 +48,7 @@ public class Walze {
         this.ringstellung = ringstellung;
     }
 
+
     /**
      * Sortiert den Walzennummern das passenden Character-Array mittels switch zu.
      *
@@ -159,8 +162,7 @@ public class Walze {
      * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
      * anhand der gewaehlten Walze.
      *
-     * @param iPositionBuchstabe : int : Position des zu chiffrierenden Buchstabens
-     * @param walze : Character[] : ausgewaehlte Walze
+     * @param
      * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
      */
     public Character codiere(Character buchstabe) {
@@ -176,7 +178,7 @@ public class Walze {
      * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
      * anhand der AlphaWalze.
      *
-     * @param iPositionBuchstabeRe : int : Position des zu chiffrierenden Buchstabens
+     * @param
      * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
      */
     public Character codiere2(char buchstabe) {
@@ -241,5 +243,4 @@ public class Walze {
         }
     }
 
-
 }