diff --git a/src/main/java/Enigma/App.java b/src/main/java/Enigma/App.java
index 1e8c80902cf8d08f3c1da4ff39b18a55028dac21..397e3da90e1e0d2b82b59228454c2238967d18c2 100644
--- a/src/main/java/Enigma/App.java
+++ b/src/main/java/Enigma/App.java
@@ -1,5 +1,8 @@
 package Enigma;
 
+import Enigma.model.Codebuch;
+import Enigma.model.DatenbankSqlite;
+import Enigma.model.Hardware;
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -7,6 +10,9 @@ import javafx.scene.Scene;
 import javafx.stage.Stage;
 
 import java.io.IOException;
+import java.sql.SQLException;
+import java.util.Calendar;
+import java.util.TimeZone;
 
 /**
  * JavaFX App
@@ -14,13 +20,15 @@ import java.io.IOException;
 public class App extends Application {
 
     private static Scene scene;
+    private Codebuch cb;
+    private Hardware h;
 
     @Override
     public void start(Stage stage) throws IOException {
         scene = new Scene(loadFXML("gui"));
         stage.setScene(scene);
         stage.show();
-
+        holeCodebuch();
     }
 
     static void setRoot(String fxml) throws IOException {
@@ -36,4 +44,31 @@ public class App extends Application {
         Application.launch();
     }
 
+    public void holeCodebuch() {
+        Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
+
+        try {
+            this.cb = new DatenbankSqlite().getCodebuch(Calendar.DATE);
+        } catch (SQLException ignored) { }
+
+        for(int i = 0; i < 3; i++) {
+            h.setWalzen(i + 1, Integer.parseInt(cb.getWalzenlage()[i]), cb.getRingstellung()[i].charAt(0));
+        }
+
+        /*Walze w1 = new Walze(3);
+		w1.setzeNotch(13);
+		Walze w2 = new Walze(5);
+		w2.setzeNotch(1);
+		Walze w3 = new Walze(1);
+		w3.setzeNotch(20);
+		Reflektor r = new Reflektor();
+		Steckbrett sb = new Steckbrett();
+
+		if(w1.dreheWalze()) {
+			if(w2.dreheWalze()) {
+				w3.dreheWalze();
+			}
+		}*/
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/Enigma/model/Hardware.java b/src/main/java/Enigma/model/Hardware.java
index 12f208eae012389f33458f4651cdb06282987786..4280ddc35b124f5b229a8bfab1315961a0d5c237 100644
--- a/src/main/java/Enigma/model/Hardware.java
+++ b/src/main/java/Enigma/model/Hardware.java
@@ -1,5 +1,9 @@
 package Enigma.model;
 
+import org.apache.http.HttpException;
+
+import java.io.IOException;
+
 public class Hardware {
 
 	private Walze[] walzen;
@@ -8,6 +12,10 @@ public class Hardware {
 	private String nachricht;
 	private String kenngruppe;
 
+	public Hardware() {
+		this.walzen = new Walze[4];
+	}
+
 	/**
 	 * Setzt eine Walze ein
 	 *
@@ -36,7 +44,7 @@ public class Hardware {
 	}
 
 	// Befehl die Nachricht an den Funker zu übergeben
-	public void sendeNachricht() {
+	public void sendeNachricht() throws IOException, HttpException {
 		new Funkraum().sendeFunkspruch(new Morsecode().convertBuchstabeToMorsecode(this.nachricht), this.kenngruppe);
 	}
 
@@ -67,7 +75,7 @@ public class Hardware {
 		buchstabe = this.walzen[3].codiere2(buchstabe);
 		buchstabe = this.walzen[2].codiere2(buchstabe);
 		buchstabe = this.walzen[1].codiere2(buchstabe);
-		buchstabe = this.steckbrett.codiere2(buchstabe);
+		buchstabe = this.steckbrett.codiere(buchstabe);
 
 		this.nachricht += buchstabe;
 
@@ -90,7 +98,7 @@ public class Hardware {
 		return this.walzen;
 	}
 
-	public void setWalzen(int walze, int position, char ringstellung) {
+	public void setWalzen(int walze, int position, int ringstellung) {
 		this.walzen[position] = new Walze(walze, ringstellung);
 	}
 
diff --git a/src/main/java/Enigma/model/Morsecode.java b/src/main/java/Enigma/model/Morsecode.java
index f8c759cf70fd7d17b2024ce91077b5835c46c618..38e2b1febd8d01994fd91365184f0d6c420ffe2c 100644
--- a/src/main/java/Enigma/model/Morsecode.java
+++ b/src/main/java/Enigma/model/Morsecode.java
@@ -93,7 +93,6 @@ public class Morsecode {
 	 */
 	private String getBuchstabe(String morsecode) {
 		// Initialisieren des Rückgabe Strings
-		// TODO: Darf bei der Initialisierung gleich einen Wert setzten lauf JAVA Konventionen?
 		String result = null;
 
 		// Loopt duch die Codemap und erstellt daraus ein Set
diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java
index 86cf8f4e1e8a76861c3aca23ea5dfef415816121..f12de2a19e99bdb33b4ef8ae9f4d50a6d875b105 100644
--- a/src/main/java/Enigma/model/Walze.java
+++ b/src/main/java/Enigma/model/Walze.java
@@ -1,246 +1,236 @@
 package Enigma.model;
 
+import java.time.Year;
+
 /**
  * Klasse Walze
- *
+ * <p>
  * Erzeugt ein Objekt des Typs Walze mit den Eigenschaften:
- *
+ * <p>
  * 1. Walzennummer (Die Walze enthält die 26 Buchstaben des Alphabeths und codiert diese.
  * 5 verschiedene Walzen stehen zur Auswahl, die jeweils verschieden die Buchstaben des Alphabeths
  * paarweise vertauschen)
- *
+ * <p>
  * 2. Ringstellung (Umspringpunkt der Walze wird festgelegt. Der Umspringpunkt bestimmt
  * den Drehzeitpunkt der linken Nachbarwalze)
- *
  */
 public class Walze {
 
-    /**
-     * Konstanten und Variablen der Klasse Walze
-     *
-     * buchstabe : Bestimmt den Buchstaben
-     * ringstellung : Bestimmt den Umspringpunkt der Walze
-     * walzennr : Bestimmt die Walzennr. (also wie der Buchstabe codiert wird)
-     * iPositionBuchstabe : gibt die Position des Buchstabens auf dem Array der Walze wieder.
-     * iPositionBuchstabeRe : gibt die Position des codierten Buchstabens im Alphabet wieder.
-     * private Character[] walze : Character-Array der Walze
-     */
-
-    private Character buchstabe;
-    private Character ringstellung;
-    private int walzennr;
-    private int iPositionBuchstabe;
-    private int iPositionBuchstabeRe;
-    private Character[] walze;
-
-
-
-    /**
-     * Gibt die Parameter der Walze mit
-     *
-     * @param walzennr : int : Nummer der gewaehlten Walze
-     * @param ringstellung : Character : Einstellung des Notch
-     */
-    public Walze(int walzennr, Character ringstellung) {
-        this.walze = new Character[25];
-        this.walzennr = walzennr;
-        this.buchstabe = 'A';
-        this.ringstellung = ringstellung;
-    }
-
-
-    /**
-     * Sortiert den Walzennummern das passenden Character-Array mittels switch zu.
-     *
-     * @return walze : Character[] : gibt die gewaehlte Walze zurueck
-     */
-    private Character[] walzenNummer() {
-
-        /*Walze nach der Chiffrierung*/
-        Character[] walzeEins = {'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'};
-        Character[] walzeZwei = {'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'};
-        Character[] walzeDrei = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
-        Character[] walzeVier = {'E', 'S', 'O', 'V', 'P', 'Z', 'J', 'A', 'Y', 'Q', 'U', 'I', 'R', 'H', 'X', 'L', 'N', 'F', 'T', 'G', 'K', 'D', 'C', 'M', 'W', 'B'};
-        Character[] walzeFuenf = {'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'};
-
-        switch (walzennr) {
-            case 1:
-                walze = walzeEins;
-                break;
-            case 2:
-                walze = walzeZwei;
-                break;
-            case 3:
-                walze = walzeDrei;
-                break;
-            case 4:
-                walze = walzeVier;
-                break;
-            case 5:
-                walze = walzeFuenf;
-                break;
-        }
-
-        return walze;
-    }
-
-
-
-    //walzenPosition() return int => Gibt die aktuelle Position des Buchstabens zurück
-    public int walzenPosition() {
+	/**
+	 * Konstanten und Variablen der Klasse Walze
+	 * <p>
+	 * buchstabe : Bestimmt den Buchstaben
+	 * ringstellung : Bestimmt den Umspringpunkt der Walze
+	 * walzennr : Bestimmt die Walzennr. (also wie der Buchstabe codiert wird)
+	 * iPositionBuchstabe : gibt die Position des Buchstabens auf dem Array der Walze wieder.
+	 * iPositionBuchstabeRe : gibt die Position des codierten Buchstabens im Alphabet wieder.
+	 * private Character[] walze : Character-Array der Walze
+	 */
+    /*Alphawalze*/
+    private final static Character[] walzeAlpha = {'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 buchstabe;
+	private int ringstellung;
+	private int walzennr;
+	private int iPositionBuchstabe;
+	private int iPositionBuchstabeRe;
+	private Character[] walze;
+
+
+	/**
+	 * Gibt die Parameter der Walze mit
+	 *
+	 * @param walzennr     : int : Nummer der gewaehlten Walze
+	 * @param ringstellung : Character : Einstellung des Notch
+	 */
+	public Walze(int walzennr, int ringstellung) {
+		this.walze = new Character[25];
+		this.walzennr = walzennr;
+		this.buchstabe = 'A';
+		this.iPositionBuchstabe = 0;
+		this.ringstellung = ringstellung;
+	}
+
+
+	/**
+	 * Sortiert den Walzennummern das passenden Character-Array mittels switch zu.
+	 *
+	 * @return walze : Character[] : gibt die gewaehlte Walze zurueck
+	 */
+	private Character[] walzenNummer() {
+
+	    Character[] walzeEins =         {'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'};
+		Character[] walzeZwei =         {'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'};
+		Character[] walzeDrei =         {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
+
+		Character[] walzeVier = {'E', 'S', 'O', 'V', 'P', 'Z', 'J', 'A', 'Y', 'Q', 'U', 'I', 'R', 'H', 'X', 'L', 'N', 'F', 'T', 'G', 'K', 'D', 'C', 'M', 'W', 'B'};
+		Character[] walzeFuenf ={'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'};
+
+		switch (this.walzennr) {
+			case 1:
+				walze = walzeEins;
+				break;
+			case 2:
+				walze = walzeZwei;
+				break;
+			case 3:
+				walze = walzeDrei;
+				break;
+			case 4:
+				walze = walzeVier;
+				break;
+			case 5:
+				walze = walzeFuenf;
+				break;
+		}
+
+		return walze;
+	}
+
+
+	//walzenPosition() return int => Gibt die aktuelle Position des Buchstabens zurück
+	public char walzenPosition() {
 
         /*Alphabetswalze*/
-        Character[] walzeAlphabeth = {'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'};
-
-        /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
-        for(int index = 0; index < walzeAlphabeth.length; index++) {
-            if(getBuchstabe().equals(walzeAlphabeth[index])) {
-                iPositionBuchstabe = index;
+        Character[] walzeAlphabeth = {'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'};
+
+        return walzeAlphabeth[iPositionBuchstabe];
+	}
+
+
+	//setzeNotch(int position) => Setze Startpunkt auf int Position des Buchstabens
+	// Setter für Ringstellung
+
+	/**
+	 * @return ringstellung : Character : gibt die neue Ringstellung zurueck
+	 */
+	public int getRingstellung() {
+		return ringstellung;
+	}
+
+	/**
+	 * Gibt die Initiale Ringstellung der Walze an.
+	 * Es sind nur Zahlen von 1 - 26 zugelassen.
+	 * Im Fehlerfall wird die Ringstellung standardmaessig auf '1' gesetzt.
+	 *
+	 * @param ringstellung : Character : Punkt an dem die Walze umspringt
+	 */
+	public void setRingstellung(int ringstellung) {
+
+		if (ringstellung > 0 && ringstellung <= 26) {
+			this.ringstellung = ringstellung;
+		} else {
+			this.ringstellung = 1;
+		}
+	}
+
+	//dreheWalze() return boolean => Wenn Notch erreicht, gib true zurück, ansonsten false
+	public boolean dreheWalze() {
+
+		boolean checkRing;
+
+		if (iPositionBuchstabe == 25) {
+			iPositionBuchstabe = 0;
+		} else {
+			iPositionBuchstabe += 1;
+    	}
+
+		if (iPositionBuchstabe == getRingstellung()) {
+			checkRing = true;
+		} else {
+			checkRing = false;
+    	}
+
+		return checkRing;
+	}
+
+
+	//codiere(char buchstabe) return char => Gibt den verschlüsselten Buchstaben zurück
+
+	/**
+	 * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
+	 * anhand der gewaehlten Walze.
+	 *
+	 * @param
+	 * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
+	 */
+	public char codiere(char buchstabe) {
+        for(int i = 0; i < walzeAlpha.length; i++) {
+            if(walzeAlpha[i].equals(buchstabe)) {
+                buchstabe = walzenNummer()[i];
                 break;
             }
         }
-        return iPositionBuchstabe;
-    }
-
-
-    //setzeNotch(int position) => Setze Startpunkt auf int Position des Buchstabens
-    // Setter für Ringstellung
-    /**
-     * Gibt die Initiale Ringstellung der Walze an.
-     * Es sind nur Zahlen von 1 - 26 zugelassen.
-     * Im Fehlerfall wird die Ringstellung standardmaessig auf '1' gesetzt.
-     *
-     * @param ringstellung : Character : Punkt an dem die Walze umspringt
-     */
-    public void setRingstellung(Character ringstellung) {
-
-        if(Character.isDigit(ringstellung) && ringstellung > 0 && ringstellung <= 26) {
-            this.ringstellung = ringstellung;
-        } else {
-            this.ringstellung = '1';
-        }
-    }
-
-    /**
-     * @return ringstellung : Character : gibt die neue Ringstellung zurueck
-     */
-    public Character getRingstellung() {
-        return ringstellung;
-    }
-
-
 
-    //dreheWalze() return boolean => Wenn Notch erreicht, gib true zurück, ansonsten false
-        public boolean dreheWalze(){
-
-        boolean checkRing;
-
-            if(iPositionBuchstabe == 25) {
-
-                iPositionBuchstabe = 0;
-
-            } else {
-
-                iPositionBuchstabe += 1;
-            }
+        return buchstabe;
+	}
 
-        if (iPositionBuchstabe == getRingstellung()){
 
-            checkRing = true;
+	//codiere2(char buchstabe) => Gibt den vertauschten Buchstaben zurück (Reverse)
 
-        }else{
+	/**
+	 * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
+	 * anhand der AlphaWalze.
+	 *
+	 * @param
+	 * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
+	 */
+	public char codiere2(char buchstabe) {
 
-            checkRing = false;
-        }
-
-        return checkRing;
-    }
-
-
-    //codiere(char buchstabe) return char => Gibt den verschlüsselten Buchstaben zurück
-    /**
-     * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabe()
-     * anhand der gewaehlten Walze.
-     *
-     * @param
-     * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
-     */
-    public Character codiere(Character buchstabe) {
-        setBuchstabe(buchstabe);
-        walzenPosition();
-        Character codierterBuchstabe = walzenNummer()[iPositionBuchstabe];
-        return codierterBuchstabe;
-    }
-
-
-    //codiere2(char buchstabe) => Gibt den vertauschten Buchstaben zurück (Reverse)
-    /**
-     * Chiffriert den Buchstaben an der Position aus der Methode positionBuchstabeReverse()
-     * anhand der AlphaWalze.
-     *
-     * @param
-     * @return codierterBuchstabeRe : Character : chiffrierter Buchstabe
-     */
-    public Character codiere2(char buchstabe) {
-
-        /*Alphawalze*/
-        Character[] walzeAlpha = {'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'};
-
-        setBuchstabe(buchstabe);
-
-        /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
-        for(int index = 0; index < walzenNummer().length; index++) {
-            if(getBuchstabe().equals(walzenNummer()[index])) {
-                iPositionBuchstabeRe = index;
+	    for(int i = 0; i < walzenNummer().length; i++) {
+            if(walzenNummer()[i].equals(buchstabe)) {
+                buchstabe = walzeAlpha[i];
                 break;
             }
         }
 
-        Character codierterBuchstabeRe = walzeAlpha[iPositionBuchstabeRe];
-        return codierterBuchstabeRe;
-
-
-    }
+		return buchstabe;
+	}
 
 //_________________________________________________________________________________________
 
 
-    /**
-     * @return buchstabe : Character : gibt den neuen Buchstaben zurueck
-     */
-    public Character getBuchstabe() {
-        return buchstabe;
-    }
-
-    /**
-     * Gibt die Grundeinstellung der Walze ein. Nur Buchstaben von A - Z sind zugelassen.
-     * Buchstaben werden automatisch in Grossbuchstaben umgewandelt.
-     * Im Fehlerfall wird die Grundeinstellung der Walze standardmaessig auf 'A' gesetzt.
-     *
-     * @param buchstabe : Character : Grundeinstellung der Walze
-     */
-    public void setBuchstabe(Character buchstabe) {
-
-        if(Character.isLetter(buchstabe)) {
-            this.buchstabe = Character.toUpperCase(buchstabe);
-        } else {
-            this.buchstabe = 'A';
-        }
-    }
-
-
-    //TODO: ??? Brauchen wir Setter, wo findet Überprüfung der Walzennr. statt.
-    /**
-     * Definiert die Walze. Es stehen fuenf Walze zur Auswahl.
-     *
-     * @param walzennr : int : setzt die Walzennummer
-     */
-    public void setWalzennr(int walzennr) {
-        if(walzennr > 0 && walzennr < 6) {
-            this.walzennr = walzennr;
-        } else {
-            System.err.println("Keine gültige Walzennummer");
-        }
-    }
+	/**
+	 * @return buchstabe : Character : gibt den neuen Buchstaben zurueck
+	 */
+	public Character getBuchstabe() {
+		return buchstabe;
+	}
+
+	/**
+	 * Gibt die Grundeinstellung der Walze ein. Nur Buchstaben von A - Z sind zugelassen.
+	 * Buchstaben werden automatisch in Grossbuchstaben umgewandelt.
+	 * Im Fehlerfall wird die Grundeinstellung der Walze standardmaessig auf 'A' gesetzt.
+	 *
+	 * @param buchstabe : Character : Grundeinstellung der Walze
+	 */
+	public void setBuchstabe(Character buchstabe) {
+
+		if (Character.isLetter(buchstabe)) {
+			this.buchstabe = Character.toUpperCase(buchstabe);
+			for(int i = 0; i < 25; i++) {
+			    if(walzeAlpha[i].equals(buchstabe)) {
+                    this.iPositionBuchstabe = i;
+                }
+            }
+		} else {
+			this.buchstabe = 'A';
+		}
+	}
+
+
+	//TODO: ??? Brauchen wir Setter, wo findet Überprüfung der Walzennr. statt.
+
+	/**
+	 * Definiert die Walze. Es stehen fuenf Walze zur Auswahl.
+	 *
+	 * @param walzennr : int : setzt die Walzennummer
+	 */
+	public void setWalzennr(int walzennr) {
+		if (walzennr > 0 && walzennr < 6) {
+			this.walzennr = walzennr;
+		} else {
+			System.err.println("Keine gültige Walzennummer");
+		}
+	}
 
 }