diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
index f5902dac33366a72afef79270ce67114bc0a3ab6..6c6824cac14ab639b9b221fcee994fae7cf35c0a 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
@@ -107,6 +107,7 @@ public class Controller extends BaseController
 	private Payment selectedPayment;
 	private SearchPreferences searchPreferences;
 	private CommandLine cmd;
+	private Process localServerProcess;
 
 	private boolean alertIsShowing = false;
 	private static DateTimeFormatter DATE_FORMAT;
@@ -136,6 +137,11 @@ public class Controller extends BaseController
 	public void init()
 	{		
 		getStage().setOnCloseRequest((event)->{
+			if(localServerProcess != null) 
+			{
+				Logger.debug("Stopping local BudgetMasterServer...");
+				localServerProcess.destroy();
+			}
 			Worker.shutdown();
 			System.exit(0);
 		});
@@ -315,6 +321,11 @@ public class Controller extends BaseController
 	{
 		this.settings = settings;
 	}
+	
+	public void setLocalServerProcess(Process process)
+	{
+		this.localServerProcess = process;
+	}
 
 	public void showNotification(String text)
 	{
diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
index 1f5350ea3f6da91ae3623395a42e475c3559d42d..d15e8952c7b79013996010d8135b1985f887ec52 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
@@ -3,6 +3,7 @@ package de.deadlocker8.budgetmasterclient.ui.controller;
 import java.io.IOException;
 import java.util.ArrayList;
 
+import de.deadlocker8.budgetmaster.logic.LocalServerHandler;
 import de.deadlocker8.budgetmaster.logic.ServerType;
 import de.deadlocker8.budgetmaster.logic.Settings;
 import de.deadlocker8.budgetmaster.logic.updater.Updater;
@@ -98,10 +99,17 @@ public class LocalServerSettingsController extends SettingsController
 		hboxSettings.prefWidthProperty().bind(scrollPane.widthProperty().subtract(25));
 		
 		refreshLabelsUpdate();
+		
+		save();
 	}
 	
+	@Override
 	public void prefill()
 	{
+		checkServerStatus();
+		
+		textFieldCurrency.setText(controller.getSettings().getCurrency());
+		
 		if(controller.getSettings().isRestActivated())
 		{
 			radioButtonRestActivated.setSelected(true);
@@ -121,6 +129,82 @@ public class LocalServerSettingsController extends SettingsController
 		checkboxEnableAutoUpdate.setSelected(controller.getSettings().isAutoUpdateCheckEnabled());
 	}
 	
+	private void checkServerStatus()
+	{
+		LocalServerHandler serverHandler = new LocalServerHandler();
+		if(serverHandler.isServerPresent())
+		{
+			if(serverHandler.isServerRunning())
+			{
+				labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_OK));
+				buttonLocalServerAction.setVisible(false);
+			}
+			else
+			{
+				labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_NOT_STARTED));
+				buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_STARTED));
+				buttonLocalServerAction.setVisible(true);
+				buttonLocalServerAction.setDisable(false);
+				buttonLocalServerAction.setOnAction((event)->{
+					buttonLocalServerAction.setDisable(true);
+					try
+					{
+						controller.setLocalServerProcess(serverHandler.startServer());
+						try
+						{
+							Thread.sleep(2000);
+						}
+						catch(InterruptedException e)
+						{							
+						}
+						checkServerStatus();
+						
+						//TODO refresh all data
+						//TODO modals for download and start of server
+						//TODO autostart server on startup if serverType = local and server is present
+					}
+					catch(IOException e)
+					{
+						Logger.error(e);
+						AlertGenerator.showAlert(AlertType.ERROR, 
+												Localization.getString(Strings.TITLE_ERROR), 
+												"", 
+												Localization.getString(Strings.ERROR_LOCAL_SERVER_START, e.getMessage()),
+												controller.getIcon(), controller.getStage(), null, false);
+						buttonLocalServerAction.setDisable(false);
+					}
+				});
+			}
+		}
+		else
+		{
+			labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_NOT_PRESENT));
+			buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_PRESENT));
+			buttonLocalServerAction.setVisible(true);
+			buttonLocalServerAction.setDisable(false);
+			
+			buttonLocalServerAction.setOnAction((event)->{
+				try
+				{
+					buttonLocalServerAction.setDisable(true);
+					serverHandler.downloadServer(Localization.getString(Strings.VERSION_NAME));
+					serverHandler.createServerSettings();
+					checkServerStatus();
+				}
+				catch(Exception e)
+				{
+					Logger.error(e);
+					AlertGenerator.showAlert(AlertType.ERROR, 
+											Localization.getString(Strings.TITLE_ERROR), 
+											"", 
+											Localization.getString(Strings.ERROR_LOCAL_SERVER_DOWNLOAD, e.getMessage()),
+											controller.getIcon(), controller.getStage(), null, false);
+					buttonLocalServerAction.setDisable(false);
+				}
+			});
+		}		
+	}
+	
 	@Override
 	void refreshLabelsUpdate()
 	{
@@ -161,7 +245,6 @@ public class LocalServerSettingsController extends SettingsController
 			return;
 		}
 
-		//TODO
 		if(controller.getSettings().isComplete())
 		{
 			if(!clientSecret.equals("******"))
@@ -195,7 +278,7 @@ public class LocalServerSettingsController extends SettingsController
 		}
 		
 		controller.getSettings().setSecret(HashUtils.hash("BudgetMaster", Helpers.SALT));
-		controller.getSettings().setUrl("localhost:9000");
+		controller.getSettings().setUrl("https://localhost:9000");
 		ArrayList<String> trustedHosts = new ArrayList<>();
 		trustedHosts.add("localhost");
 		controller.getSettings().setTrustedHosts(trustedHosts);
@@ -235,6 +318,7 @@ public class LocalServerSettingsController extends SettingsController
 		toggleButtonOnline.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14; -fx-background-radius: 3 0 0 3");
 		toggleButtonLocal.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_DARK_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14; -fx-background-radius: 0 3 3 0; -fx-effect: innershadow(gaussian, rgba(0,0,0,0.7), 10,0,0,0);");
 		buttonSave.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;");
+		buttonLocalServerAction.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;");
 		buttonExportDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;");
 		buttonImportDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_BLUE) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;");
 		buttonDeleteDB.setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(Colors.BACKGROUND_BUTTON_RED) + "; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 14;");
diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java
index 5d6f616d3933f49b674b34982b12c98068b4a12a..365a45b53ebf37094a32d15b0264722e7f6715e5 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/OnlineServerSettingsController.java
@@ -112,7 +112,7 @@ public class OnlineServerSettingsController extends SettingsController
 		{
 			textFieldURL.setText(controller.getSettings().getUrl());
 			textFieldSecret.setText("******");
-			textFieldCurrency.setText(controller.getSettings().getCurrency());		
+			textFieldCurrency.setText(controller.getSettings().getCurrency());	
 		}
 		
 		if(controller.getSettings().isRestActivated())
diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
index 9408c7b3cadd42b27aafd19352b0906cf21271d1..7441d6681d9ec491f6c9f1bad57deb79ac708836 100644
--- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
+++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
@@ -1,7 +1,7 @@
 # DEFAULT
 app.name=BudgetMaster
 version.code=13
-version.name=1.8.0_alpha
+version.name=1.7.0
 version.date=07.11.17
 author=Robert Goldmann
 credits=L�nderflaggen von Freepik auf https://www.flaticon.com\nVerwendete Schriftarten: OpenSans\nVerwendete Bibliotheken:\ngson 2.8.1\njoda-time 2.9.7\nitextpdf 5.0.6\nlaunch4j-maven-plugin 1.7.21\nspark-core 2.5.4\nslf4j 1.7.21\nmysql-connector 6.0.5\njunit 4.12\nsqlite-jdbc 3.21.0
@@ -67,6 +67,11 @@ trusted.hosts.placeholder=z.B. localhost
 undefined=unbekannt
 tagfield.placeholder=Neuen Tag hier eingeben
 shortcut.dev.console=F12
+local.server.status.ok=Server ist gestartet.
+local.server.status.not.started=Server is nicht gestartet.
+local.server.action.not.started=Starten
+local.server.status.not.present=Server nicht gefunden.
+local.server.action.not.present=Herunterladen
 
 # REPORT
 report.position=Nr.
@@ -208,6 +213,8 @@ error.password.save=Beim Speichern des Passworts ist ein Fehler aufgetreten.
 error.updater.get.latest.version=Beim �berpr�fen auf Updates ist ein Fehler aufgetreten. Informationen zu neuen Versionen konnten nicht abgerufen werden. Versuche es sp�ter noch einmal.
 error.updater.download.latest.version=Beim Herunterladen des Updates ist ein Fehler aufgetreten.\n\n{0}
 error.open.browser=Beim �ffnen des Standardwebbrowsers ist ein Fehler aufgetreten.
+error.local.server.start=Beim Starten des BudgetMasterServers ist ein Fehler aufgetreten.\n\n{0}
+error.local.server.download=Beim Herunterladen des BudgetMasterServers ist ein Fehler aufgetreten.\n\n{0}
 
 # UI
 categorytab.button.category.new=\ Neue Kategorie
diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
index d5b062fb34e9105cca993ace9c74a7b707d9308c..9f40fe8fa1aa3f62f580a3a3a11434386ba2ccd3 100644
--- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
+++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
@@ -67,6 +67,11 @@ trusted.hosts.placeholder=e.g. localhost
 undefined=undefined
 tagfield.placeholder=Enter new Tag here
 shortcut.dev.console=F12
+local.server.status.ok=Server is running.
+local.server.status.not.started=Server is not running.
+local.server.action.not.started=Start
+local.server.status.not.present=Server not found.
+local.server.action.not.present=Download
 
 # REPORT
 report.position=No.
@@ -208,6 +213,8 @@ error.password.save=An error occurred while saving the password.
 error.updater.get.latest.version=An error occurred while checking for updates. Information about latest versions could not be retrieved. Please try again later.
 error.updater.download.latest.version=An error occurred while downloading the update.\n\n{0}
 error.open.browser=An error occurred while opening the default web browser.
+error.local.server.start=An error occurred while starting the BudgetMasterServer.\n\n{0}
+error.local.server.download=An error occurred while downloading the BudgetMasterServer.\n\n{0}
 
 # UI
 categorytab.button.category.new=\ New Category
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca9fb5f6d93f547dbc62bb91a73bce09f5a56245
--- /dev/null
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java
@@ -0,0 +1,99 @@
+package de.deadlocker8.budgetmaster.logic;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.ArrayList;
+
+import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection;
+import de.deadlocker8.budgetmaster.logic.utils.Helpers;
+import de.deadlocker8.budgetmaster.logic.utils.Strings;
+import logger.Logger;
+import tools.HashUtils;
+import tools.Localization;
+import tools.PathUtils;
+
+public class LocalServerHandler
+{
+	private static final String BUILD_FOLDER = "https://github.com/deadlocker8/BudgetMaster/raw/{}/build/";
+	
+	public LocalServerHandler()
+	{
+		
+	}
+	
+	public boolean isServerPresent()
+	{
+		File file = new File(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar");
+		return file.exists();
+	}
+	
+	public boolean isServerRunning()
+	{
+		try
+		{
+			Settings settings = new Settings();
+			settings.setUrl("https://localhost:9000");
+			settings.setSecret(HashUtils.hash("BudgetMaster", Helpers.SALT));
+			ArrayList<String> trustedHosts = new ArrayList<>();
+			trustedHosts.add("localhost");
+			settings.setTrustedHosts(trustedHosts);		
+			ServerConnection connection = new ServerConnection(settings);
+			connection.getServerInfo();
+			
+			return true;
+		}
+		catch(Exception e)
+		{
+			Logger.error(e);
+			return false;
+		}
+	}
+	
+	public void createServerSettings() throws FileNotFoundException
+	{
+		String databasePath = PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMaster.db";
+		String settings = "{\"databaseType\": \"sqlite\"," + 
+							"\"databaseUrl\": \"" + databasePath + "\"," + 
+							"\"databaseName\": \"budgetmaster\"," + 
+							"\"databaseUsername\": \"root\"," + 
+							"\"databasePassword\": \"\"," + 
+							"\"serverPort\": 9000," + 
+							"\"serverSecret\": \"BudgetMaster\"," + 
+							"\"keystorePath\": \"default\"," + 
+							"\"keystorePassword\": \"BudgetMaster\"}";
+		PrintWriter writer = new PrintWriter(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/settings.json");
+		writer.println(settings);
+		writer.close();
+	}
+	
+	public void downloadServer(String versionName) throws Exception
+	{
+		PathUtils.checkFolder(new File(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer"));
+		
+		//download into temp directory and file
+		Path target = Paths.get(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar");
+		download(BUILD_FOLDER.replace("{}", "v" + versionName) + "BudgetMasterServer.jar", target);			
+		Logger.debug("Successfully downloaded BudgetMasterServer " + versionName);
+	}
+	
+	private void download(String url, Path target) throws IOException
+	{
+		URL website = new URL(url);
+		InputStream in = website.openStream();
+		Files.copy(in, target, StandardCopyOption.REPLACE_EXISTING);
+	}
+	
+	public Process startServer() throws IOException
+	{
+		ProcessBuilder pb = new ProcessBuilder("java", "-jar", Paths.get(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar").toString()); 				
+		return pb.start();		
+	}
+}
\ No newline at end of file
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
index ebbd78bc29c9c42ba37fcc655f86c5bb7bad19fd..9fdf6543d702f810477f339fb13eae2d34b229ee 100644
--- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
@@ -70,6 +70,11 @@ public class Strings
     public static final String UNDEFINED = "undefined";
     public static final String TAGFIELD_PLACEHOLDER = "tagfield.placeholder";
     public static final String SHORTCUT_DEV_CONSOLE = "shortcut.dev.console";
+    public static final String LOCAL_SERVER_STATUS_OK = "local.server.status.ok";
+    public static final String LOCAL_SERVER_STATUS_NOT_STARTED = "local.server.status.not.started";
+    public static final String LOCAL_SERVER_STATUS_NOT_PRESENT = "local.server.status.not.present";
+    public static final String LOCAL_SERVER_ACTION_NOT_STARTED = "local.server.action.not.started";
+    public static final String LOCAL_SERVER_ACTION_NOT_PRESENT = "local.server.action.not.present";
     
     //REPORT
     public static final String REPORT_POSITION = "report.position";
@@ -177,7 +182,7 @@ public class Strings
     public static final String WARNING_PAYMENT_AMOUNT = "warning.payment.amount";
     public static final String WARNING_EMPTY_PAYMENT_DATE = "warning.empty.payment.date";
     public static final String WARNING_PAYMENT_REPEATING = "warning.payment.repeating";    
-    public static final String WARNING_EMPTY_SECRET_CLIENT = " warning.empty.secret.client";
+    public static final String WARNING_EMPTY_SECRET_CLIENT = "warning.empty.secret.client";
     public static final String WARNING_EMPTY_URL = "warning.empty.url";
     public static final String WARNING_EMPTY_SECRET_SERVER = "warning.empty.secret.server";
     public static final String WARNING_EMPTY_CURRENCY = "warning.empty.currency";
@@ -211,6 +216,8 @@ public class Strings
     public static final String ERROR_UPDATER_GET_LATEST_VERSION = "error.updater.get.latest.version";
     public static final String ERROR_UPDATER_DOWNLOAD_LATEST_VERSION = "error.updater.download.latest.version";
     public static final String ERROR_OPEN_BROWSER = "error.open.browser";
+    public static final String ERROR_LOCAL_SERVER_START = "error.local.server.start";
+    public static final String ERROR_LOCAL_SERVER_DOWNLOAD = "error.local.server.download";
     
     //ABOUT
     public static final String ABOUT = "about";
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java
index 3b8f6ac01a3e19cc8f6f03811297613f1af1c6d4..4d4fd5d39ca4a53158b0bd56c88f15736f31570a 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/logic/Utils.java
@@ -28,14 +28,14 @@ public class Utils
 	{
 		String settingsJSON;
 		Settings settings;
-		
+
 		Gson gson = new Gson();
-		
-		settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json")));		
-		settings = gson.fromJson(settingsJSON, Settings.class);	
-		return settings;		
+
+		settingsJSON = new String(Files.readAllBytes(Paths.get(Settings.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParent().resolve("settings.json")));
+		settings = gson.fromJson(settingsJSON, Settings.class);
+		return settings;
 	}
-	
+
 	public static void saveSettings(Settings settings) throws IOException, URISyntaxException
 	{
 		Gson gson = new GsonBuilder().setPrettyPrinting().create();
@@ -44,9 +44,11 @@ public class Utils
 		writer.write(jsonString);
 		writer.close();
 	}
-	
-	public static Connection getDatabaseConnection(Settings settings) throws SQLException
+
+	public static Connection getDatabaseConnection(Settings settings) throws SQLException, ClassNotFoundException
 	{
+		Class.forName("org.sqlite.JDBC");
+		
 		if(settings.getDatabaseType().equals("mysql"))
 		{
 			return DriverManager.getConnection("jdbc:mysql://" + settings.getDatabaseUrl() + settings.getDatabaseName() + "?useLegacyDatetimeCode=false&serverTimezone=Europe/Berlin&autoReconnect=true&wait_timeout=86400", settings.getDatabaseUsername(), settings.getDatabasePassword());
@@ -56,38 +58,38 @@ public class Utils
 			return DriverManager.getConnection("jdbc:sqlite://" + settings.getDatabaseUrl());
 		}
 	}
-	
+
 	public static DatabaseCreator getDatabaseCreator(Connection connection, Settings settings)
 	{
 		if(settings.getDatabaseType().equals("mysql"))
 		{
 			return new MysqlDatabaseCreator(connection, settings);
 		}
-		else		
+		else
 		{
 			return new SqliteDatabaseCreator(connection, settings);
 		}
 	}
-	
+
 	public static DatabaseHandler getDatabaseHandler(Settings settings)
 	{
 		if(settings.getDatabaseType().equals("mysql"))
 		{
 			return new MysqlDatabaseHandler(settings);
 		}
-		else		
+		else
 		{
 			return new SqliteDatabaseHandler(settings);
 		}
 	}
-	
+
 	public static DatabaseTagHandler getDatabaseTagHandler(Settings settings)
 	{
 		if(settings.getDatabaseType().equals("mysql"))
 		{
 			return new MysqlDatabaseTagHandler(settings);
 		}
-		else		
+		else
 		{
 			return new SqliteDatabaseTagHandler(settings);
 		}
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java
index 5ff516091fb8490d558beb75b0cfb94d42e7703b..900e3b54e4fdd9ca51e716e9ff9aa86e228b6c9f 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java
@@ -108,14 +108,14 @@ public class SparkServer
 		
 		RouteOverview.enableRouteOverview();
 		
-		Logger.info("Trying to connect to database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + settings.getDatabaseName() + ")");
+		Logger.info("Trying to connect to database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + ", databaseName: " + settings.getDatabaseName() + ")");
 		
 		try
 		{
 			Connection connection = Utils.getDatabaseConnection(settings);
 			DatabaseCreator creator = Utils.getDatabaseCreator(connection, settings);
 			creator.createTables();
-			Logger.info("Successfully initialized database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + settings.getDatabaseName() + ")");
+			Logger.info("Successfully initialized database (jdbc:" + settings.getDatabaseType() + "://" + settings.getDatabaseUrl() + ", databaseName: " + settings.getDatabaseName() + ")");
 			connection.close();
 		}
 		catch(Exception e)
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java
index e6a5f5ced5935bf653632800019affe044d34fb0..c9a6c13791fe99da67c8f0b4a43577ff3144a7ac 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/database/DatabaseDelete.java
@@ -44,7 +44,7 @@ public class DatabaseDelete implements AdvancedRoute
 	
 			return "";
 		}
-		catch(IllegalStateException | SQLException ex)
+		catch(IllegalStateException | SQLException | ClassNotFoundException ex)
 		{
 			halt(500, "Internal Server Error");
 		}
diff --git a/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json b/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json
index 4de1cf29b1942c6d0fab4778daf28fe5573f7eca..bbe6f030a7ca760d8308ba046d6068565acf28e1 100644
--- a/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json
+++ b/BudgetMasterServer/src/main/resources/de/deadlocker8/budgetmasterserver/settings.json
@@ -5,7 +5,7 @@
 	"databaseUsername": "root",
 	"databasePassword": "",
 	"serverPort": 9000,
-	"serverSecret": "geheim",
+	"serverSecret": "BudgetMaster",
 	"keystorePath": "default",
 	"keystorePassword": "BudgetMaster"
 }
\ No newline at end of file
diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java
index 4014f6c7925a10bd958d85cb4c36586842a08788..216c65fc477c7f2bbb08dd09953a98d604225343 100644
--- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java
+++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseHandlerTest.java
@@ -51,7 +51,7 @@ public class DatabaseHandlerTest
 			Localization.init("de/deadlocker8/budgetmaster/");
 			Localization.loadLanguage(Locale.ENGLISH);
 		}
-		catch(IOException | URISyntaxException | SQLException e)
+		catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e)
 		{
 			fail(e.getMessage());
 		}		
diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java
index f3d334296576c27bd1c96ad8ea6286fbb7ee507e..ad8214ff31ff313e87f87c9af999b24008256c7c 100644
--- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java
+++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseImportExportTest.java
@@ -62,7 +62,7 @@ public class DatabaseImportExportTest
 			Localization.init("de/deadlocker8/budgetmaster/");
 			Localization.loadLanguage(Locale.ENGLISH);
 		}
-		catch(IOException | URISyntaxException | SQLException e)
+		catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e)
 		{
 			fail(e.getMessage());
 		}	
diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java
index 49d8a5fef10046b726a37488946e5d1495b9c6c4..5a6520d6adca0f95bee5b059a64608b1c3341a27 100644
--- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java
+++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/tests/database/DatabaseTagHandlerTest.java
@@ -50,7 +50,7 @@ public class DatabaseTagHandlerTest
 			Localization.init("de/deadlocker8/budgetmaster/");
 			Localization.loadLanguage(Locale.ENGLISH);
 		}
-		catch(IOException | URISyntaxException | SQLException e)
+		catch(IOException | URISyntaxException | SQLException | ClassNotFoundException e)
 		{
 			fail(e.getMessage());
 		}