diff --git a/src/main/java/projekt/enigma/App.java b/src/main/java/projekt/enigma/App.java
index 03f9260b62accc6a2544ef476fa58c3fb9082b91..2d5dcb1e0061b4fd3cc5bff24bd5cba1c97a55e8 100644
--- a/src/main/java/projekt/enigma/App.java
+++ b/src/main/java/projekt/enigma/App.java
@@ -2,10 +2,9 @@ package projekt.enigma;
 
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
+import javafx.geometry.Insets;
 import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.TextField;
+import javafx.scene.control.*;
 import javafx.scene.input.KeyCode;
 import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
@@ -20,86 +19,80 @@ import java.io.IOException;
  */
 public class App extends Application {
 
-	private static String kenngruppe;
-	private static GuiController gc;
-	private static int debug;
-
-	public static void main(String[] args) {
-		debug = 1;
-		launch(args);
-	}
-
-	public static int getDebug() {
-		return debug;
-	}
-
-	@Override
-	public void start(Stage primaryStage) throws IOException {
-
-		primaryStage.setTitle("Kenngruppenabfrage");
-
-		Label label1 = new Label("Bitte Kenngruppe eingeben!");
-		label1.setTranslateX(55);
-		Label l1 = new Label("");
-		Label l2 = new Label("");
-		TextField tfield = new TextField();
-		Button button1 = new Button("Kenngruppe setzen!");
-		VBox layout1 = new VBox();
-
-		layout1.getChildren().addAll(label1, l1, tfield, l2, button1);
-		Scene sceKenngruppe = new Scene(layout1, 234, 137);
-
-		FXMLLoader guiLoader = new FXMLLoader(App.class.getResource("gui.fxml"));
-
-		Scene sceApp = new Scene(guiLoader.load(), 962, 677);
-
-		tfield.setOnKeyPressed(e -> {
-			if (e.getCode() == KeyCode.ENTER) {
-				if (enter(tfield.getText())) {
-					gc = guiLoader.getController();
-					gc.setKenngruppe(tfield.getText());
-					primaryStage.setScene(sceApp);
-				} else {
-					tfield.setText("");
-					new Fehler().showErrorDialog("error", "Kenngruppe falsch",
-							"Regeln für die Kenngruppe: 4-8 Zeichen sowie nur Buchstaben von A-Z.");
-				}
-			}
-		});
-
-		button1.setOnAction(e -> {
-			if (enter(tfield.getText())) {
-				gc = guiLoader.getController();
-				gc.setKenngruppe(tfield.getText());
-				primaryStage.setScene(sceApp);
-			} else {
-				tfield.setText("");
-				new Fehler().showErrorDialog("error", "Kenngruppe falsch",
-						"Regeln für die Kenngruppe: 4-8 Zeichen sowie Buchstaben von A-Z.");
-			}
-		});
-
-		primaryStage.setScene(sceKenngruppe);
-		primaryStage.show();
-	}
-
-	private boolean enter(String kenngruppe) {
-
-		String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-		boolean result = true;
-
-		for (char c : kenngruppe.toUpperCase().toCharArray()) {
-			if (!alphabet.contains(String.valueOf(c))) {
-				result = false;
-				break;
-			}
-		}
-		if (kenngruppe.length() > 8 || kenngruppe.length() < 4) {
-			result = false;
-		}
-
-		return result;
-	}
+    private static GuiController gc;
+    private static int debug;
+
+    public static void main(String[] args) {
+        debug = 1;
+        launch(args);
+    }
+
+    public static int getDebug() {
+        return debug;
+    }
+
+    @Override
+    public void start(Stage primaryStage) throws IOException {
+        primaryStage.setTitle("Enigma");
+        Label lblEingbae = new Label("Bitte Kenngruppe eingeben!");
+        TextField tfEingabe = new TextField();
+        Button btnKenngruppe = new Button("Kenngruppe setzen!");
+        VBox layout = new VBox();
+        layout.setSpacing(30);
+        layout.setPadding(new Insets(30, 30, 30, 30));
+        btnKenngruppe.setMaxWidth(Double.MAX_VALUE);
+
+        layout.getChildren().addAll(lblEingbae, tfEingabe, btnKenngruppe);
+        Scene sceKenngruppe = new Scene(layout);
+
+        FXMLLoader guiLoader = new FXMLLoader(App.class.getResource("gui.fxml"));
+        Scene sceApp = new Scene(guiLoader.load(), 962, 677);
+
+        tfEingabe.setOnKeyPressed(e -> {
+            if (e.getCode() == KeyCode.ENTER) {
+                if (enter(tfEingabe.getText())) {
+                    gc = guiLoader.getController();
+                    gc.setKenngruppe(tfEingabe.getText());
+                    primaryStage.setScene(sceApp);
+                } else {
+                    tfEingabe.setText("");
+                    new Fehler().showErrorDialog("error", "Kenngruppe falsch",
+                            "Regeln für die Kenngruppe: 4-8 Zeichen sowie nur Buchstaben von A-Z.");
+                }
+            }
+        });
+        btnKenngruppe.setOnAction(e -> {
+            if (enter(tfEingabe.getText())) {
+                gc = guiLoader.getController();
+                gc.setKenngruppe(tfEingabe.getText());
+                primaryStage.setScene(sceApp);
+            } else {
+                tfEingabe.setText("");
+                new Fehler().showErrorDialog("error", "Kenngruppe falsch",
+                        "Regeln für die Kenngruppe: 4-8 Zeichen sowie Buchstaben von A-Z.");
+            }
+        });
+        primaryStage.setScene(sceKenngruppe);
+        primaryStage.show();
+    }
+
+    private boolean enter(String kenngruppe) {
+
+        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+        boolean result = true;
+
+        for (char c : kenngruppe.toUpperCase().toCharArray()) {
+            if (!alphabet.contains(String.valueOf(c))) {
+                result = false;
+                break;
+            }
+        }
+        if (kenngruppe.length() > 8 || kenngruppe.length() < 4) {
+            result = false;
+        }
+
+        return result;
+    }
 
 //	/**
 //	 * TODO Dokumentieren
diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java
index 024e2aa1a5327278b7f1daa5dac52e6c8d17762c..611dd941acb5f9a7463edc7986dbd0a829509dd7 100644
--- a/src/main/java/projekt/enigma/GuiController.java
+++ b/src/main/java/projekt/enigma/GuiController.java
@@ -12,6 +12,7 @@ import javafx.scene.control.MenuItem;
 import javafx.scene.control.TextField;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.GridPane;
+import javafx.scene.layout.Pane;
 import javafx.scene.shape.Circle;
 import javafx.stage.StageStyle;
 import org.apache.http.HttpException;
@@ -37,10 +38,8 @@ public class GuiController {
     private Codierer codierer;
     private char chiffrierterBuchstabe;
     private String[] empfangeneNachricht;
-    //deklariert die benötigten Textfelder
-    @FXML
-    private TextField tfStecker1, tfStecker2, tfStecker3, tfStecker4, tfStecker5, tfStecker6, tfStecker7, tfStecker8,
-            tfStecker9, tfStecker10, tfCodiert, tfKlartext;
+    private static final String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
 //endregion
 
     //region GUI-Elemente
@@ -48,7 +47,8 @@ public class GuiController {
     //deklariert die benötigten Buttons
     @FXML
     private Button btnA, btnB, btnC, btnD, btnE, btnF, btnG, btnH, btnI, btnJ, btnK, btnL, btnM, btnN, btnO, btnP, btnQ,
-            btnR, btnS, btnT, btnU, btnV, btnW, btnX, btnY, btnZ, btnSenden, btnEmpfangen, btnDelete, btnReset;
+            btnR, btnS, btnT, btnU, btnV, btnW, btnX, btnY, btnZ, btnSenden, btnEmpfangen, btnDelete, btnReset,
+            btnPort0, btnPort1, btnPort2, btnPort3, btnPort4, btnPort5, btnPort6, btnPort7, btnPort8, btnPort9;
     //deklariert die benötigten Kreise
     @FXML
     private Circle circA, circB, circC, circD, circE, circF, circG, circH, circI, circJ, circK, circL, circM, circN,
@@ -65,11 +65,18 @@ public class GuiController {
     @FXML
     private MenuButton mBtnWalzPos1, mBtnWalzPos2, mBtnWalzPos3, mBtnNotchPos1, mBtnNotchPos2, mBtnNotchPos3,
             mBtnStartPos1, mBtnStartPos2, mBtnStartPos3;
+    //deklariert die benötigten Textfelder
+    @FXML
+    private TextField tfStecker1, tfStecker2, tfStecker3, tfStecker4, tfStecker5, tfStecker6, tfStecker7, tfStecker8,
+            tfStecker9, tfStecker10, tfCodiert, tfKlartext;
+    //deklariert benötigte panes
+    @FXML
+    private Pane port0;
 
+    //deklariert benötigtes GridPane
     @FXML
     private GridPane mainGrid;
 
-    private static final String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
 //endregion
 
@@ -100,26 +107,29 @@ public class GuiController {
         menu(mBtnStartPos1, position);
         menu(mBtnStartPos3, position);
         menu(mBtnStartPos2, position);
+
     }
 
+
+
     /**
      * Für das Steckbrett müssen zehn CheckComboBoxen erstellt werden.
      * Hier wird die Funktion zum erstellen und Befüllen der Boxen, die Funktion zehn mal aufgerufen.
-     */
+     *//*
     private void generateSteckbrett() {
 
         for (int i = 0; i <= 9; i++) {
             this.createSteckbrettPort(i);
         }
-    }
+    }*/
 
-    /**
+     /**
      * Die Funktion createSteckbrettPort erstellt zehn CheckComboBoxen, holt sich die verfügbaren Buchstaben,
      * die bereits gesteckten Kabel und weißt sie zu.
      * Im Anschluss werden die CheckComboBoxen auf dem GridPane positioniert.
      *
      * @param port : int : Kabel Nummer (0-9)
-     */
+     *//*
     private void createSteckbrettPort(int port) {
 
         // Item Liste anlegen
@@ -136,7 +146,7 @@ public class GuiController {
         /**
          * Die Buchstaben in die CheckComboBox laden und zusätzlich in einen String um später den
          * Index des Buchstaben auslesen zu können
-         */
+         *//*
         for (char c : verfuegbareBuchstaben) {
             items.add(c);
             sb.append(c);
@@ -151,7 +161,7 @@ public class GuiController {
         // Die Gesteckten Buchstaben in der CheckComboBox selektieren
         ccb.getCheckModel().check(sb.toString().indexOf(this.codierer.fetchSteckverbindungen()[port][0]));
         ccb.getCheckModel().check(sb.toString().indexOf(this.codierer.fetchSteckverbindungen()[port][1]));
-    }
+    }*/
 
     /**
      * init Methode zur Erstellung der Einträge und Action Listener für die einzelnen Menüs
@@ -352,6 +362,17 @@ public class GuiController {
             this.resetDisplay = true;
             this.setzeTagesSchluessel();
         }
+        if (e.getSource()==btnPort0){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort1){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort2){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort3){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort4){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort5){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort6){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort7){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort8){ }//TODO pane0 anzeigen
+        if (e.getSource()==btnPort9){ }//TODO pane0 anzeigen
+
     }
     //endregion
 
@@ -464,16 +485,16 @@ public class GuiController {
      * mit dem Werten die die Klasse Codierer zur Verfügung stellt gefüllt.
      */
     private void setzeSteckverbindungen() {
-        tfStecker1.setText(codierer.fetchSteckverbindungen()[0][0] + "" + codierer.fetchSteckverbindungen()[0][1]);
-        tfStecker2.setText(codierer.fetchSteckverbindungen()[1][0] + "" + codierer.fetchSteckverbindungen()[1][1]);
-        tfStecker3.setText(codierer.fetchSteckverbindungen()[2][0] + "" + codierer.fetchSteckverbindungen()[2][1]);
-        tfStecker4.setText(codierer.fetchSteckverbindungen()[3][0] + "" + codierer.fetchSteckverbindungen()[3][1]);
-        tfStecker5.setText(codierer.fetchSteckverbindungen()[4][0] + "" + codierer.fetchSteckverbindungen()[4][1]);
-        tfStecker6.setText(codierer.fetchSteckverbindungen()[5][0] + "" + codierer.fetchSteckverbindungen()[5][1]);
-        tfStecker7.setText(codierer.fetchSteckverbindungen()[6][0] + "" + codierer.fetchSteckverbindungen()[6][1]);
-        tfStecker8.setText(codierer.fetchSteckverbindungen()[7][0] + "" + codierer.fetchSteckverbindungen()[7][1]);
-        tfStecker9.setText(codierer.fetchSteckverbindungen()[8][0] + "" + codierer.fetchSteckverbindungen()[8][1]);
-        tfStecker10.setText(codierer.fetchSteckverbindungen()[9][0] + "" + codierer.fetchSteckverbindungen()[9][1]);
+        btnPort0.setText(codierer.fetchSteckverbindungen()[0][0] + "" + codierer.fetchSteckverbindungen()[0][1]);
+        btnPort1.setText(codierer.fetchSteckverbindungen()[1][0] + "" + codierer.fetchSteckverbindungen()[1][1]);
+        btnPort2.setText(codierer.fetchSteckverbindungen()[2][0] + "" + codierer.fetchSteckverbindungen()[2][1]);
+        btnPort3.setText(codierer.fetchSteckverbindungen()[3][0] + "" + codierer.fetchSteckverbindungen()[3][1]);
+        btnPort4.setText(codierer.fetchSteckverbindungen()[4][0] + "" + codierer.fetchSteckverbindungen()[4][1]);
+        btnPort5.setText(codierer.fetchSteckverbindungen()[5][0] + "" + codierer.fetchSteckverbindungen()[5][1]);
+        btnPort6.setText(codierer.fetchSteckverbindungen()[6][0] + "" + codierer.fetchSteckverbindungen()[6][1]);
+        btnPort7.setText(codierer.fetchSteckverbindungen()[7][0] + "" + codierer.fetchSteckverbindungen()[7][1]);
+        btnPort8.setText(codierer.fetchSteckverbindungen()[8][0] + "" + codierer.fetchSteckverbindungen()[8][1]);
+        btnPort9.setText(codierer.fetchSteckverbindungen()[9][0] + "" + codierer.fetchSteckverbindungen()[9][1]);
     }
 
     /**
@@ -631,7 +652,7 @@ public class GuiController {
                 walzeNr = 2;
                 break;
             case "IV":
-                walzeNr = 4;
+                walzeNr = 3;
                 break;
             case "V":
                 walzeNr = 4;
@@ -769,9 +790,8 @@ public class GuiController {
         // Steckbrett Felder setzen
 
         // Setzt das Steckbrett
-        generateSteckbrett();
+        //generateSteckbrett();
 
-        /*
         tfStecker1.setText(codierer.fetchSteckverbindungen()[0][0] + "" +
                 codierer.fetchSteckverbindungen()[0][1]);
         tfStecker2.setText(codierer.fetchSteckverbindungen()[1][0] + "" +
@@ -791,7 +811,7 @@ public class GuiController {
         tfStecker9.setText(codierer.fetchSteckverbindungen()[8][0] + "" +
                 codierer.fetchSteckverbindungen()[8][1]);
         tfStecker10.setText(codierer.fetchSteckverbindungen()[9][0] + "" +
-                codierer.fetchSteckverbindungen()[9][1]);*/
+                codierer.fetchSteckverbindungen()[9][1]);
         this.textCodiert = "";
         this.textEingabe = "";
         this.tfKlartext.setText("");
diff --git a/src/main/java/projekt/enigma/Main.java b/src/main/java/projekt/enigma/Main.java
index b5abaf5e0ca620dbe5c06670a79b78aa1ee41db4..e392797f63815a8ddc0c01a6afcd70d1a0ddd5c8 100644
--- a/src/main/java/projekt/enigma/Main.java
+++ b/src/main/java/projekt/enigma/Main.java
@@ -1,13 +1,17 @@
 package projekt.enigma;
 
-
-import projekt.enigma.threads.ThreadApp;
-import projekt.enigma.threads.ThreadFunkraum;
-
 import java.sql.SQLException;
 
+/**
+ * Startpunkt des Programms. Startet die Klasse App und damit die GUI.
+ */
 public class Main {
 
+    /**
+     * Startet die App
+     *
+     * @param args : String[] : Standard-Kommandozeilen-Parameter
+     */
     public static void main(String[] args) throws SQLException {
         App.main(args);
     }
diff --git a/src/main/java/projekt/enigma/model/Codebuch.java b/src/main/java/projekt/enigma/model/Codebuch.java
index d2ab4a6bec190fb04459e49a5cd2d45093ce073a..b710a0a6ec7e524cbfc9df59adec6f1ea2eb1dfd 100644
--- a/src/main/java/projekt/enigma/model/Codebuch.java
+++ b/src/main/java/projekt/enigma/model/Codebuch.java
@@ -25,18 +25,17 @@ public class Codebuch {
 
 	//region Variablen
 	/**
-	 * TODO: Dokumentieren tag
-	 * tag : int : gibt den Tag an
+	 * tag : int : gibt den Tag eines Monats an
 	 */
 	private int tag;
 
 	/**
-	 * walzenlage : int[] : legt die Positionen der Walzen fest
+	 * walzenlage : int[] : legt die Positionen der drei Walzen fest
 	 */
 	private int[] walzenlage;
 
 	/**
-	 * ringstellung : int[] : TODO ringstellung: char || int ?
+	 * ringstellung : int[] : legt die Ringstellungen der drei Walzen fest
 	 */
 	private int[] ringstellung;
 
diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index ce401e31527f9a557c8b505c0ed3cc7b8b6a67c9..8631af6186be26701d629893a62ba15d82c94ee0 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -46,7 +46,9 @@ public class Codierer {
      */
     private Codebuch codebuch;
 
-    //TODO Dokumentieren
+    /**
+     * Thread mit der Abfolge an Aufgaben des Funkraums.
+     */
     private Thread funk;
     //endregion
 
@@ -344,10 +346,10 @@ public class Codierer {
     }
 
     /**
-     * TODO: Doku
+     * Ueberprueft welche Buchstaben noch zur Vertauschung verfügbar sind
      *
-     * @param port
-     * @return
+     * @param port: Zahl zwischen 0-9: entspricht der Kabelnummer.
+     * @return String: liefert einen String mit den verfuegbaren Buchstaben zurueck.
      */
     public String fetchVerfuegbareBuchstaben(int port) {
         return this.hardware.getSteckbrett().fetchVerfuegbareBuchstaben(port);
diff --git a/src/main/java/projekt/enigma/model/Fehler.java b/src/main/java/projekt/enigma/model/Fehler.java
index 2617b700baed9a77d9b3c5a249649dd20f7aaf05..624e5e267f73d10fb512fcd8799429489bb4e39e 100644
--- a/src/main/java/projekt/enigma/model/Fehler.java
+++ b/src/main/java/projekt/enigma/model/Fehler.java
@@ -9,69 +9,85 @@ import projekt.enigma.App;
  */
 public class Fehler {
 
-    private String functionPrefix = "- ";
-    private String messagePrefix = "--> ";
+    private static final String FUNCTION_PREFIX = "- ";
+    private static final String MESSAGE_PREFIX = "--> ";
 
     /**
      * Zeige Fehler Dialog
      *
      * @param type    : String : Art der Meldung (warning/information/error)
-     * @param subject : Titel des Dialoges
-     * @param message : Nachricht der Meldung
+     * @param subject : String : Titel des Dialoges
+     * @param message : String : Nachricht der Meldung
      */
     public void showErrorDialog(String type, String subject, String message) {
-
-        new Fehler().debug(this.getClass().getName() + "." + new Throwable().getStackTrace()[0].getMethodName(), true);
-
         Alert alert;
 
-        /* Der Titel darf auch als leerer String übergeben werden, dann wird ein Default gesetzt */
+        new Fehler().debug(this.getClass().getName() + "."
+                + new Throwable().getStackTrace()[0].getMethodName(), true);
+
+        /* Der Titel darf auch als leerer String uebergeben werden, dann wird ein Default gesetzt */
         if (subject.equals("")) {
             subject = "Es ist ein Fehler aufgetreten";
         }
 
-        /* Welcher Fehler Typ wurde übergeben? */
+        /* Welcher Fehler Typ wurde uebergeben? */
         switch (type) {
             case "warning":
                 alert = new Alert(AlertType.WARNING);
                 break;
+
             case "info":
                 alert = new Alert(AlertType.INFORMATION);
                 break;
+
             case "error":
                 alert = new Alert(AlertType.ERROR);
                 break;
+
             default:
                 alert = new Alert(AlertType.NONE);
         }
-        /* Setzt den Titel des Dialoges */
+
+        //Anzeige des Alerts definieren
         alert.setTitle(subject);
-        /* Setzt den Headertext des Dialoges */
         alert.setHeaderText(null);
-        /* Setzt die Nachricht des Dialoges */
         alert.setContentText(message);
-        /* Zeige den Dialog an */
         alert.showAndWait();
     }
 
+    /**
+     * Unter zuhilfenahme dieser Funktion koennen Debug Meldungen auf der Konsole ausgegeben werden,
+     * wenn in der App.java der Getter getDebug einen int > 0 zurueck gibt.
+     * Ueber diesen Getter kann man steuern ob Meldungen in der Konsole angezeigt werden sollen oder nicht.
+     *
+     * @param message : String : Nachricht
+     * @param isFunction : boolean : Gibt an ob ein Funktionsname übergeben wird oder eine Debug Meldung
+     */
     public void debug(String message, boolean isFunction) {
-
         if (App.getDebug() != 0) {
             if (isFunction) {
-                System.out.println(functionPrefix + message);
+                System.out.println(FUNCTION_PREFIX + message);
             } else {
-                System.out.println(messagePrefix + message);
+                System.out.println(MESSAGE_PREFIX + message);
             }
         }
     }
 
+    /**
+     * Umter zuhilfenahme dieser Funktion koennen Debug Meldungen auf der Konsole ausgegeben werden,
+     * wenn in der App.java der Getter getDebug einen int > 0 zurueck gibt.
+     * Ueber diesen Getter kann man steuern ob Meldungen in der Konsole angezeigt werden sollen oder nicht.
+     *
+     * @param message : String : Nachricht
+     * @param isFunction : boolean : Gibt an ob ein Funktionsname übergeben wird oder eine Debug Meldung
+     */
     public void debug(String message, boolean isFunction, int debugLevel) {
 
         if (App.getDebug() != 0 && (App.getDebug() >= debugLevel || App.getDebug() == 3)) {
             if (isFunction) {
-                System.out.println(functionPrefix + message);
+                System.out.println(FUNCTION_PREFIX + message);
             } else {
-                System.out.println(messagePrefix + message);
+                System.out.println(MESSAGE_PREFIX + message);
             }
         }
     }
diff --git a/src/main/java/projekt/enigma/model/Funkraum.java b/src/main/java/projekt/enigma/model/Funkraum.java
index 3310b32c5a145e4adadcb6fa73314b1d7f6731f6..77131a58b194b31ed6bf6012822786dc033f07fd 100644
--- a/src/main/java/projekt/enigma/model/Funkraum.java
+++ b/src/main/java/projekt/enigma/model/Funkraum.java
@@ -23,7 +23,7 @@ import java.util.List;
  * Der Funkraum kann Funksprueche empfangen und senden.
  * Hierfuer wird eine Verbindung zu einem externen Service aufgebaut.
  * Dieser Servive erwartet die Nachrichten im JSON Format. Dazu wird ein k als Kenngruppe
- * (Benutzername) uebergeben und falls eine Nachricht gesendet werden soll, zusätzlich ein m mit der Nachricht.
+ * (Benutzername) uebergeben und falls eine Nachricht gesendet werden soll, zusaetzlich ein m mit der Nachricht.
  * Beides wird als String gesendet.
  */
 public class Funkraum {
@@ -36,6 +36,9 @@ public class Funkraum {
 	 * @param kenngruppe : String : Kenngruppe dieser Enigma
 	 * @return funkspruch : String[] : String Array wobei Index 0 dem Empfangstag entspricht und Index 1
 	 * der empfangenen Nachricht
+	 * @throws UnsupportedEncodingException : Exception : falsche Zeichenkodierung
+	 * @throws IOException : Exception : Fehler bei der uebergabe an den Webservice
+	 * @throws NullPointerException : Exception : Keine Nachricht
 	 */
 	public String[] empfangeFunkspruch(String kenngruppe) {
 		String[] funkspruch = new String[2];
diff --git a/src/main/java/projekt/enigma/model/Hardware.java b/src/main/java/projekt/enigma/model/Hardware.java
index f188a2c935d9c0f622502e1bd92a18a99a293727..0ddd8ed605bc771ee67247e6e3a3e39bd669add3 100644
--- a/src/main/java/projekt/enigma/model/Hardware.java
+++ b/src/main/java/projekt/enigma/model/Hardware.java
@@ -17,10 +17,18 @@ public class Hardware {
 
 	//region Variablen
 	/**
-	 * TODO: Dokumentieren
+	 * walzen: Walze-Array: erzeugt ein privates Array mit der die Anzahl der Walzen festgelegt wird.
 	 */
 	private Walze[] walzen;
+
+	/**
+	 * steckbrett: Steckbrett: erzeugt ein privates Steckbrett-Objekt
+	 */
 	private Steckbrett steckbrett;
+
+	/**
+	 * reflektor: Reflektor: erzeugt ein privates Reflektor-Objekt.
+	 */
 	private Reflektor reflektor;
 	//endregion
 
diff --git a/src/main/java/projekt/enigma/model/Steckbrett.java b/src/main/java/projekt/enigma/model/Steckbrett.java
index 426424bac13c717a37c9b7529a39d71436ea033e..aae70e4ffde4f36ac4927ccdea78e05904a31832 100644
--- a/src/main/java/projekt/enigma/model/Steckbrett.java
+++ b/src/main/java/projekt/enigma/model/Steckbrett.java
@@ -12,12 +12,12 @@ package projekt.enigma.model;
 public class Steckbrett {
 
     /**
-     * orginalBuchstaben: Character-Array, der jeweils den ersten zu vertauschenden Buchstaben enthält
+     * orginalBuchstaben: String : der jeweils den ersten zu vertauschenden Buchstaben enthaelt
      */
     private String originalBuchstaben;
 
     /**
-     * getauschteBuchstaben: Character-Array, der jeweils den zweiten zu vertauschenden Buchstaben enthält
+     * getauschteBuchstaben: String : der jeweils den zweiten zu vertauschenden Buchstaben enthaelt
      */
     private String getauschteBuchstaben;
 
@@ -25,10 +25,9 @@ public class Steckbrett {
     /**
      * Konstruktor Steckbrett
      * <br>
-     * Erzeugt zwei Charakter-Arrays (orginalBuchstaben und getauschteBuchstaben) der Länge 10.
+     * Erzeugt zwei Strings und initialisiert diese mit einer leeren Menge.
      */
     public Steckbrett() {
-
         originalBuchstaben = "";
         getauschteBuchstaben = "";
     }
@@ -36,25 +35,24 @@ public class Steckbrett {
     /**
      * Funktion setzeVertauschung
      * <br>
-     * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) übergeben.
-     * Zuerst wird überprüft ob einer der beiden Buchstaben bereits enthalten ist, was unzulässig wäre.
+     * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) uebergeben.
+     * Zuerst wird ueberprueft ob einer der beiden Buchstaben bereits enthalten ist, was unzulaessig waere.
      * <br>
      * Anschließend wird:
      * <p>
-     * buchstabe1 in das Array orginalBuchstaben auf den nächsten, freien Index geschrieben
-     * buchstabe2 in das Array getauschteBuchstaben auf den nächsten, freien Index geschrieben.
+     * buchstabe1 dem String orginalBuchstaben angehaengt.
+     * buchstabe2 dem String  getauschteBuchstaben angehaengt.
      * </p>
      *
-     * @param buchstabe1 : char: Gibt den ersten Buchstaben an, der getauscht werden soll.
-     * @param buchstabe2 : char: gibt den zweiten Buchstaben an, mit dem der erste getauscht werden soll.
-     * @return boolean : Wenn die Vertauschung zulässig ist, true, ansonsten false
+     * @param buchstabe1 : char : Gibt den ersten Buchstaben an, der getauscht werden soll.
+     * @param buchstabe2 : char : gibt den zweiten Buchstaben an, mit dem der erste getauscht werden soll.
+     * @return boolean : Wenn die Vertauschung zulaessig ist, true, ansonsten false
      */
     public boolean setzeVertauschung(char buchstabe1, char buchstabe2) {
-
-        if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2) && originalBuchstaben.length() <= 20) {
+        if ((!ueberpruefeVertauschungen(buchstabe1)) && (!ueberpruefeVertauschungen(buchstabe2))
+                && (originalBuchstaben.length() <= 20)) {
             originalBuchstaben += buchstabe1;
             getauschteBuchstaben += buchstabe2;
-
             return true;
         } else {
             return false;
@@ -62,15 +60,15 @@ public class Steckbrett {
     }
 
     /**
-     * Funktion setzeVertauschung mit angabe eines Ports von 1 - 10
+     * Funktion setzeVertauschung mit Angabe eines Ports von 1 - 10
      * <br>
-     * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) sowie der Port übergeben.
-     * Zuerst wird überprüft ob einer der beiden Buchstaben bereits enthalten ist, was unzulässig wäre.
+     * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) sowie der Port uebergeben.
+     * Zuerst wird ueberprueft ob einer der beiden Buchstaben bereits enthalten ist, was unzulaessig waere.
      * <br>
      * Anschließend wird:
      * <p>
-     * buchstabe1 in das Array orginalBuchstaben auf den Index (steckbrettPort) geschrieben
-     * buchstabe2 in das Array getauschteBuchstaben auf den Index (steckbrettPort) geschrieben.
+     * buchstabe1 in den String orginalBuchstaben auf die Position (steckbrettPorts) geschrieben
+     * buchstabe2 in den String getauschteBuchstaben auf die Position (steckbrettPort) geschrieben.
      * </p>
      *
      * @param buchstabe1 : char: Gibt den ersten Buchstaben an, der getauscht werden soll.
@@ -78,31 +76,27 @@ public class Steckbrett {
      * @return boolean : Wenn die Vertauschung zulässig ist, true, ansonsten false
      */
     public boolean setzeVertauschung(int steckbrettPort, char buchstabe1, char buchstabe2) {
-
         if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2)) {
             originalBuchstaben.replace(originalBuchstaben.charAt(steckbrettPort), buchstabe1);
             getauschteBuchstaben.replace(getauschteBuchstaben.charAt(steckbrettPort), buchstabe2);
-
             return true;
         } else {
             return false;
         }
-
     }
 
     /**
      * Funktion ueberpruefeVertauschungen
      * <br>
-     * Die Funktion ueberpruefeVertauschungen prueft ob der übergebene Buchstabe bereits in den beiden Arrays
-     * (orginalBuchstaben) und (getauschteBuchstaben) vorhanden ist.
+     * Die Funktion ueberpruefeVertauschungen prueft ob der uebergebene Buchstabe bereits in den beiden Strings
+     * orginalBuchstaben und getauschteBuchstaben vorhanden ist.
      * Eine Buchstabenvertauschung ist zulaessig, wenn keine Dopplungen der zu vertauschenden Buchstaben auftritt
      * (ein Buchstabe nicht mehrmals vertauscht wird).
      *
-     * @return boolean :    Wenn false, dann darf der Buchstabe genutzt werden.
-     * Wenn er schon vorhanden ist, wird true zurück gegeben
+     * @return result : boolean : Wenn false, dann darf der Buchstabe genutzt werden. Wenn er schon vorhanden ist,
+     * wird true zurueck gegeben
      */
     public boolean ueberpruefeVertauschungen(Character buchstabe) {
-
         boolean result = false;
 
         if (originalBuchstaben.contains(String.valueOf(buchstabe)) ||
@@ -122,7 +116,6 @@ public class Steckbrett {
      * @return buchstabe : Character : Codierter Buchstabe.
      */
     public char codiere(Character buchstabe) {
-
         if (originalBuchstaben.contains(String.valueOf(buchstabe))) {
             return getauschteBuchstaben.charAt(originalBuchstaben.indexOf(buchstabe));
         } else if(getauschteBuchstaben.contains(String.valueOf(buchstabe))) {
@@ -133,12 +126,12 @@ public class Steckbrett {
     }
 
     /**
-     * TODO: Doku
-     * @param port
-     * @return
+     * Tauscht die Buchstaben im Alphabet aus und gibt ein modifiziertes Alphabet zurueck
+     *
+     * @param port : int : Platz der getauschten Buchstaben
+     * @return alphabet : String : Alphabet mit getauschen Buchstabenpaaren
      */
     public String fetchVerfuegbareBuchstaben(int port) {
-
         String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
         for (char c : this.originalBuchstaben.toCharArray()) {
@@ -154,5 +147,4 @@ public class Steckbrett {
 
         return alphabet;
     }
-
 }
\ No newline at end of file
diff --git a/src/main/java/projekt/enigma/view/ChkBoxPanel.java b/src/main/java/projekt/enigma/view/ChkBoxPanel.java
new file mode 100644
index 0000000000000000000000000000000000000000..04b93074aa47a1b13447584a66b580b8c8a2d284
--- /dev/null
+++ b/src/main/java/projekt/enigma/view/ChkBoxPanel.java
@@ -0,0 +1,74 @@
+package projekt.enigma.view;
+
+import java.awt.*;
+import javax.swing.*;
+
+public class ChkBoxPanel extends JPanel {
+    /*private static JPanel panel = new JPanel();*/
+    private static JCheckBox[] checkbox;
+    private static Character[] alphabet;/* = {'A','B','C','D'};*/
+    private static int charSize;
+
+    public ChkBoxPanel(Character[] alphabet) {
+        this.charSize = alphabet.length;
+        this.alphabet = alphabet;
+        /*this.setTitle("Vertausche Buchstaben");
+        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*/
+        this.setSize(30, charSize * 25);
+        //this.setLocation(getMousePosition()/*.x, getMousePosition().y+this.getHeight()+30*/);
+        initializeComponents();
+    }
+
+    private void initializeComponents() {
+        this.checkbox = new JCheckBox[charSize];
+        GridLayout panelLayout = new GridLayout();
+        this.setLayout(panelLayout);
+        if (!(charSize % 2 == 0)) {
+            this.setSize(30, (charSize + 1) * 20);
+            panelLayout.setRows((charSize + 1) / 2);
+        } else {
+            this.setSize(30, charSize * 10);
+            panelLayout.setRows(charSize / 2);
+        }
+        panelLayout.setColumns(2);
+        //panelLayout.setVgap(5);
+        //panelLayout.setHgap(-5);
+
+
+        for (int i = 0; i < charSize; i++) {
+            checkbox[i] = new JCheckBox(alphabet[i] + "");
+            checkbox[i].setSize(15, 20);
+            checkbox[i].setHorizontalTextPosition(SwingConstants.CENTER);
+            checkbox[i].setVerticalTextPosition(SwingConstants.TOP);
+/*            if (!(i%2==0)){
+            }*/
+            checkbox[i].setMargin(new Insets(0, 20, 0, 20));
+            //checkbox[i].setLocation(20, (i + 1) * 30);
+            this.add(checkbox[i]);
+        }
+        /* this.getContentPane().add(panel);*/
+        checkbox[0].setSelected(true);
+        //this.add(panel);
+        //this.setLocation(100, 100);
+        this.setVisible(true);
+    }
+
+
+    private int isChecked() {
+        for (int i = 0; i < charSize; i++) {
+            if (checkbox[i].isSelected()) {
+
+                // do something...
+
+            } else {
+
+                // do something else...
+
+            }
+        }
+        return 0;
+    }
+
+
+}
+
diff --git a/src/main/resources/projekt/enigma/gui.fxml b/src/main/resources/projekt/enigma/gui.fxml
index e1f89f7b45830201cfc80800a7eff6bcffcec0f3..880cf98c05bdb737af6ec466469a6fabffe35587 100644
--- a/src/main/resources/projekt/enigma/gui.fxml
+++ b/src/main/resources/projekt/enigma/gui.fxml
@@ -13,9 +13,8 @@
 <?import javafx.scene.shape.Circle?>
 <?import javafx.scene.text.Font?>
 
-<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="677.0" prefWidth="962.0" xmlns="http://javafx.com/javafx/8.0.999-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="projekt.enigma.GuiController">
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="677.0" prefWidth="962.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="projekt.enigma.GuiController">
    <children>
-      <AnchorPane layoutX="207.0" layoutY="-111.0" prefHeight="111.0" prefWidth="487.0" AnchorPane.leftAnchor="207.0" AnchorPane.rightAnchor="274.0" />
       <GridPane layoutX="23.0" layoutY="60.0" prefHeight="158.0" prefWidth="237.0" AnchorPane.leftAnchor="23.0" AnchorPane.topAnchor="60.0">
         <columnConstraints>
             <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
@@ -125,56 +124,6 @@
           <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
         </rowConstraints>
          <children>
-            <TextField fx:id="tfStecker1" prefHeight="25.0" prefWidth="20.0" GridPane.columnIndex="1" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker2" prefHeight="25.0" prefWidth="20.0" GridPane.columnIndex="2" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker3" prefHeight="25.0" prefWidth="20.0" GridPane.columnIndex="3" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker4" prefHeight="25.0" prefWidth="20.0" GridPane.columnIndex="4" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker5" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="5" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker6" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="6" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker7" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="7" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker8" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="8" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker9" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="9" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
-            <TextField fx:id="tfStecker10" prefHeight="25.0" prefWidth="48.0" GridPane.columnIndex="10" GridPane.rowIndex="8">
-               <GridPane.margin>
-                  <Insets left="10.0" right="10.0" />
-               </GridPane.margin>
-            </TextField>
             <Button fx:id="btnA" minHeight="35.0" mnemonicParsing="false" onMousePressed="#tasteRunter" onMouseReleased="#tasteRauf" prefHeight="43.0" prefWidth="45.0" style="-fx-background-radius: 100; -fx-background-color: #0d0d0d;" text="A" textFill="#fffdfd" GridPane.columnIndex="2" GridPane.rowIndex="5">
                <font>
                   <Font name="System Bold" size="18.0" />
@@ -670,10 +619,93 @@
                   <Insets left="42.0" />
                </GridPane.margin>
             </Label>
-            <Pane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="7" />
+            <Pane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="7">
+               <children>
+                  <Pane fx:id="port0" disable="true" layoutX="-3.0" layoutY="-303.0" prefHeight="346.0" prefWidth="86.0" visible="false" />
+               </children>
+            </Pane>
+            <Button fx:id="btnPort0" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="1" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort9" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="10" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort8" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="9" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort7" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="8" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort6" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="7" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort5" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="6" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort4" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="5" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort3" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="4" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort2" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="3" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
+            <Button fx:id="btnPort1" mnemonicParsing="false" onAction="#gedrueckteTaste" prefHeight="25.0" prefWidth="79.0" GridPane.columnIndex="2" GridPane.rowIndex="8">
+               <padding>
+                  <Insets left="10.0" right="10.0" />
+               </padding>
+               <GridPane.margin>
+                  <Insets left="10.0" right="10.0" />
+               </GridPane.margin>
+            </Button>
          </children>
       </GridPane>
-      <Label layoutX="684.0" layoutY="-164.0" prefHeight="17.0" prefWidth="195.0" />
       <GridPane layoutX="297.0" layoutY="64.0" prefHeight="168.0" prefWidth="585.0">
         <columnConstraints>
           <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
@@ -702,5 +734,6 @@
             </Button>
          </children>
       </GridPane>
+      <Label fx:id="lblKenngruppe" layoutX="682.0" layoutY="34.0" prefHeight="17.0" prefWidth="177.0" style="-fx-border-color: #000000;" />
    </children>
 </AnchorPane>
diff --git a/src/test/java/projekt/enigma/model/HardwareTest.java b/src/test/java/projekt/enigma/model/HardwareTest.java
index a31589d72eb89244671c0cb2877026548023be9b..cec7b3fc3e2c029f9ceda25c22e08c77f99cd912 100644
--- a/src/test/java/projekt/enigma/model/HardwareTest.java
+++ b/src/test/java/projekt/enigma/model/HardwareTest.java
@@ -18,7 +18,7 @@ public class HardwareTest {
         Steckbrett  "W S L V H Y G I X A"
         Steckbrett  "J E F B K P M Q U C"
 
-		Walze 3     "E K M F L G D Q V Z N T O W Y H X U S P A I B R C J"
+		Walze 3   "E K M F L G D Q V Z N T O W Y H X U S P A I B R C J"
         Walze 2     "V Z B R G I T Y U P S D N H L X A W M J Q O F E C K"
         Walze 1   	"A J D K S I R U X B L H W T M C Q G Z N P Y F V O E"
         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"