diff --git a/src/main/java/Enigma/Main.java b/src/main/java/Enigma/Main.java
index 37c9833e5330d953580ce896ef61cfbb30be991e..6adb9204e8eda602b491142bacbe98185c6c0eaa 100644
--- a/src/main/java/Enigma/Main.java
+++ b/src/main/java/Enigma/Main.java
@@ -1,9 +1,14 @@
 package Enigma;
 
+import Enigma.model.DatenbankSqlite;
+import Enigma.model.Morsecode;
+
+import java.sql.SQLException;
+
 public class Main {
 
-        public static void main(String[] args) {
-            App.main(args);
-        }
+    public static void main(String[] args) {
+        App.main(args);
+    }
 
 }
diff --git a/src/main/java/Enigma/model/Codebuch.java b/src/main/java/Enigma/model/Codebuch.java
new file mode 100644
index 0000000000000000000000000000000000000000..c32345ed483066ea6daa01e4d0f9bc88776e49f0
--- /dev/null
+++ b/src/main/java/Enigma/model/Codebuch.java
@@ -0,0 +1,166 @@
+package Enigma.model;
+
+/**
+ * Das Codebuch war eines der essentiel wichtigen Sachen bei der Enigma.
+ * Jeder Enigma gehörte auch ein Codebuch bei, welches notwenidg war um die Nachrichten zu ver/entschlüsseln.
+ * Im Codebuch standen für jeden Tag des Monats die notwendigen Einstellungen welche vorgenommen werden
+ * mussten um die Texte zu ver/entschlüsseln.
+ * Hiernach wurden die Walzen eingesetzt, die Ringe für den Rücksprung der Walzen gesetzt und deren Grundeinstellung
+ * vorgenommen.
+ * Bei der Enigma um welche es hier geht (Enigma I) gab es zusätzlich ein Steckbrett, welches ebenfalls im Codebuch
+ * festgelegt war.
+ *
+ * Dieses Codebuch Objekt enthält die Einstellungen eines Tages, welche mittels Getter und Setter
+ * verarbeitet werden können.
+ *
+ * Zusätzlich gibt es zu Debug Zwecken eine überschriebene toString Funktion welche das Objekt als String zurück
+ * geben kann.
+ */
+public class Codebuch {
+	private int tag;
+	private String[] Walzenlage = new String[3];
+	private String[] Ringstellung = new String[3];
+	private String[] Grundstellung = new String[3];
+	private String[] Steckverbindung = new String[10];
+
+	/**
+	 * Gibt die aktuelle Instanz des Codebuches als String zurück.
+	 * Hierbei werden der Tag die Walzenlagen, Ring/Grundstellung sowie die Steckverbindungen zurück gegeben.
+	 *
+	 * @return String : String des gesamten Objektes
+	 */
+	@Override
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		boolean wlLoop = false;
+		boolean rsLoop = false;
+		boolean gsLoop = false;
+		boolean svLoop = false;
+
+		sb.append("Tag: ").append(this.getTag()).append("\n");
+
+		sb.append("Walzenlage: ");
+		for(String wl : this.getWalzenlage()) {
+			sb.append(wl).append(",");
+			wlLoop = true;
+		}
+		if(wlLoop) {
+			sb.setLength(sb.length() - 1);
+		}
+		sb.append("\n");
+
+		sb.append("Ringstellung: ");
+		for(String rs : this.getRingstellung()) {
+			sb.append(rs).append(",");
+			rsLoop = true;
+		}
+		if(rsLoop) {
+			sb.setLength(sb.length() - 1);
+		}
+		sb.append("\n");
+
+		sb.append("Grundstellung: ");
+		for (String gs : this.getGrundstellung()) {
+			sb.append(gs).append(",");
+			gsLoop = true;
+		}
+		if(gsLoop) {
+			sb.setLength(sb.length() - 1);
+		}
+		sb.append("\n");
+
+		sb.append("Steckverbindung: ");
+		for (String s : this.getSteckverbindung()) {
+			if (!s.isEmpty()) {
+				sb.append(s).append(",");
+				svLoop = true;
+			}
+		}
+		if(svLoop) {
+			sb.setLength(sb.length() - 1);
+		}
+		sb.append("\n");
+
+		return sb.toString();
+	}
+
+	/**
+	 * Gibt den Tag dieser Instanz zurück
+	 * @return int : Tag
+	 */
+	public int getTag() {
+		return tag;
+	}
+
+	/**
+	 * Gibt die Walzenlage dieser Instanz zurück
+	 * @return String[] : Walzenlage
+	 */
+	public String[] getWalzenlage() {
+		return Walzenlage;
+	}
+
+	/**
+	 * Gibt die Ringstellung dieser Instanz zurück
+	 * @return String[] : Ringstellung
+	 */
+	public String[] getRingstellung() {
+		return Ringstellung;
+	}
+
+	/**
+	 * Gibt die Grundstellung dieser Instanz zurück
+	 * @return String[] : Grundstellung
+	 */
+	public String[] getGrundstellung() {
+		return Grundstellung;
+	}
+
+	/**
+	 * Gibt die Steckverbindung dieser Instanz zurück
+	 * @return String[] : Steckverbindung
+	 */
+	public String[] getSteckverbindung() {
+		return Steckverbindung;
+	}
+
+	/**
+	 * Setzt den Tag dieser Instanz
+	 * @param tag : int
+	 */
+	public void setTag(int tag) {
+		this.tag = tag;
+	}
+
+	/**
+	 * Setzt die Walzenlage dieser Instanz
+	 * @param walzenlage : String[]
+	 */
+	public void setWalzenlage(String[] walzenlage) {
+		Walzenlage = walzenlage;
+	}
+
+	/**
+	 * Setzt die Ringstellung dieser Instanz
+	 * @param ringstellung : String[]
+	 */
+	public void setRingstellung(String[] ringstellung) {
+		Ringstellung = ringstellung;
+	}
+
+	/**
+	 * Setzt die Grundstellung dieser Instanz
+	 * @param grundstellung : String[]
+	 */
+	public void setGrundstellung(String[] grundstellung) {
+		Grundstellung = grundstellung;
+	}
+
+	/**
+	 * Setzt die Steckverbindung dieser Instanz
+	 * @param steckverbindung : String[]
+	 */
+	public void setSteckverbindung(String[] steckverbindung) {
+		Steckverbindung = steckverbindung;
+	}
+}
diff --git a/src/main/java/Enigma/model/DatenbankSqlite.java b/src/main/java/Enigma/model/DatenbankSqlite.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a203b58e38cca810c87d4ecf18838dd7c8168f1
--- /dev/null
+++ b/src/main/java/Enigma/model/DatenbankSqlite.java
@@ -0,0 +1,64 @@
+package Enigma.model;
+
+import java.sql.*;
+
+/**
+ * Dies ist die SQLite Datenbank Klasse
+ * In der SQLite Datei im Resources Ordner liegt das Codebuch welches benötigt wird um die
+ * Nachrichten mit der Enigma zu ver/entschlüsseln.
+ * Die Datenbank ist statisch und deshalb konnte sie im Resources Ordner hinterlegt werden.
+ * Für jeden Tag des Monats (1-31) ist ein eigener Eintrag enthalten welcher über die Funktion
+ * getCodebuch abgerufen werden kann.
+ * Zurückgegeben wird ein Array welcher in der getCodebuch Funktion genauer dokumentiert ist.
+ */
+public class DatenbankSqlite {
+
+	/**
+	 * Verbindung zur SQLite Datenbank aufbauen.
+	 * Die Datei liegt in den Resources und ändert sich nicht,
+	 * weshalb der Pfad zu derselben fest hinterlegt ist.
+	 *
+	 * @return conn : Connection
+	 */
+	private Connection connect() {
+
+		String url = "jdbc:sqlite::resource:Enigma/codebuch.sqlite";
+		Connection conn = null;
+
+		try {
+			conn = DriverManager.getConnection(url);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		}
+
+		return conn;
+	}
+
+	/**
+	 * Liest das Codebuch aus der SQLite Datenbank aus
+	 * Dieser Funktion muss ein tag als int Wert übergeben werden.
+	 * Anschließend wir eine Verbindung zur SQLite Datenbank aufgebaut und das Codebuch angefragt.
+	 * Dieses wird in ein Object vom Type Codebuch gepackt und zurück gegeben.
+	 *
+	 * @param tag : int : Tag für welchen ein Codebuch benötigt wird.
+	 * @return Codebuch : Codebuch Object mit dem Codebuch des angefragten Tages
+	 */
+	public Codebuch getCodebuch(int tag) throws SQLException {
+		Codebuch cb = new Codebuch();
+
+		Connection conn = this.connect();
+		PreparedStatement pstm = conn.prepareStatement("SELECT * FROM table_codebuch WHERE Tag=? LIMIT 1");
+		pstm.setInt(1, tag);
+		ResultSet rs = pstm.executeQuery();
+
+		while (rs.next()) {
+			cb.setTag(rs.getInt("Tag"));
+			cb.setWalzenlage(rs.getString("Walzenlage").split(","));
+			cb.setRingstellung(rs.getString("Ringstellung").split(","));
+			cb.setGrundstellung(rs.getString("Grundstellung").split(","));
+			cb.setSteckverbindung(rs.getString("Steckverbindung").split(","));
+		}
+
+		return cb;
+	}
+}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
deleted file mode 100644
index c9e95ca6609f106a0b33fb601d9ccb92414d4f49..0000000000000000000000000000000000000000
--- a/src/main/java/module-info.java
+++ /dev/null
@@ -1,7 +0,0 @@
-module Projektarbeit {
-    requires javafx.controls;
-    requires javafx.fxml;
-
-    opens Enigma to javafx.fxml;
-    exports Enigma;
-}
\ No newline at end of file