diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f07edf43fd5a289e4b6ae3c41e745c07417fb94b
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+    <data-source source="LOCAL" name="battleArena@battlearena.database.windows.net" uuid="7b1fc391-14cb-46cf-a8a0-29c091f02047">
+      <driver-ref>azure.ms</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbc-driver>
+      <jdbc-url>jdbc:sqlserver://battlearena.database.windows.net:1433;database=battleArena;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8e5880919bb671e77ef02deb0617aba3a3be5031
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SqlDialectMappings">
+    <file url="file://$PROJECT_DIR$/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Scripts/DDL_Script.sql" dialect="GenericSQL" />
+    <file url="PROJECT" dialect="AZURE" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/AzureDB.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/AzureDB.java
new file mode 100644
index 0000000000000000000000000000000000000000..c02cf9141c4aae1c9808f4f3d39c6a57cb5d7b16
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/AzureDB.java
@@ -0,0 +1,177 @@
+package de.hdm_stuttgart.battlearena.Persistance.Classes;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Properties;
+import java.sql.*;
+
+public class DataBase implements IDataBase {
+
+    private static final Logger log = LogManager.getLogger(DataBase.class);
+
+
+    @Override
+    public Connection connect() throws IOException, SQLException {
+
+        log.info("Loading the properties File!");
+        Properties properties = new Properties();
+        properties.load(getClass().getClassLoader().getResourceAsStream("config.properties"));
+
+        log.info("Connecting to the database!");
+        Connection connection = DriverManager.getConnection(properties.getProperty("url"), properties.getProperty("user"), properties.getProperty("password"));
+        log.info("Database connection test" + connection.getCatalog());
+
+        connection.setAutoCommit(true);
+        return connection;
+    }
+
+
+    @Override
+    public void createNewPlayer(String playerName) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "INSERT INTO players (player_name, games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time)" + "VALUES (?,?,?,?,?,?,?)";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, playerName);
+        preparedStatement.setInt(2, 0);
+        preparedStatement.setInt(3, 0);
+        preparedStatement.setInt(4, 0);
+        preparedStatement.setInt(5, 0);
+        preparedStatement.setInt(6, 0);
+        preparedStatement.setInt(7, 0);
+
+        preparedStatement.execute();
+        connection.close();
+    }
+
+    @Override
+    public void createMap(String name, int length, int width, String mapData) throws SQLException, IOException {
+        Connection connection = connect();
+        String mapSize = length + "X" + width;
+
+        String sql = "INSERT INTO battleArena.dbo.maps (map_name, map_size, map_data) VALUES(?,?,?)";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, name);
+        preparedStatement.setString(2, mapSize);
+        preparedStatement.setString(3, mapData);
+
+        preparedStatement.execute();
+        connection.close();
+    }
+
+    @Override
+    public LinkedHashMap<String, String> getMapNames() throws SQLException, IOException {
+        LinkedHashMap<String, String> mapNames = new LinkedHashMap<>();
+        Connection connection = connect();
+        String sql = "SELECT maps.map_id, maps.map_name FROM maps";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        ResultSet results = preparedStatement.executeQuery();
+        while (results.next()) {
+            mapNames.put(results.getString("map_id"), results.getString("map_name"));
+        }
+        connection.close();
+        return mapNames;
+    }
+
+    @Override
+    public String getMapByID(String ID) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "SELECT map_name FROM maps WHERE map_id = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, ID);
+
+        String map = preparedStatement.executeQuery().toString();
+        connection.close();
+        return map;
+    }
+
+    @Override
+    public String getMapSizeByID(String ID) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "SELECT map_size FROM maps WHERE battleArena.dbo.maps.map_id=?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, ID);
+        ResultSet result = preparedStatement.executeQuery();
+
+        String mapSize = result.getString("map_size");
+        connection.close();
+        return mapSize;
+    }
+
+    @Override
+    public ResultSet getStatistics(String playerName) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "SELECT * FROM players where player_name = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, playerName);
+        ResultSet resultSet = preparedStatement.executeQuery();
+        connection.close();
+        return resultSet;
+    }
+
+    @Override
+    public void updateMap(String mapID, String mapName, String mapData) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "UPDATE maps SET map_name = ?, map_data = ? WHERE map_id = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, mapName);
+        preparedStatement.setString(2, mapData);
+        preparedStatement.setString(3, mapID);
+        preparedStatement.execute();
+        connection.close();
+    }
+
+
+    @Override
+    public void updatePlayerName(String playerNameNew, String playerNameOld) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "UPDATE players SET player_name = ? WHERE player_name = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, playerNameNew);
+        preparedStatement.setString(2, playerNameOld);
+        preparedStatement.execute();
+        connection.close();
+    }
+
+    @Override
+    public void updatePlayerStatistics(String playerName, int gamesWon, int gamesLost, int kills, int deaths, int blocksDestroyed, int gameTime) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "UPDATE players SET games_won = ?, games_lost = ?, kills = ?, " + "deaths = ?, blocks_destroyed = ?, ingame_time = ? WHERE player_name = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setInt(1, gamesWon);
+        preparedStatement.setInt(2, gamesLost);
+        preparedStatement.setInt(3, kills);
+        preparedStatement.setInt(4, deaths);
+        preparedStatement.setInt(5, blocksDestroyed);
+        preparedStatement.setInt(6, gameTime);
+        preparedStatement.setString(7, playerName);
+        preparedStatement.execute();
+        connection.close();
+    }
+
+
+    @Override
+    public void deletePlayer(String playerName) throws IOException, SQLException {
+        Connection connection = connect();
+        String sql = "DELETE FROM players WHERE player_name=?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, playerName);
+        preparedStatement.execute();
+        connection.close();
+    }
+
+    @Override
+    public void deleteMap(String mapID) throws SQLException, IOException {
+        Connection connection = connect();
+        String sql = "DELETE * FROM maps WHERE map_id = ?";
+        PreparedStatement preparedStatement = connection.prepareStatement(sql);
+        preparedStatement.setString(1, mapID);
+        preparedStatement.execute();
+        connection.close();
+    }
+
+
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/DataBase.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/DataBase.java
deleted file mode 100644
index e766e18264ef67496e300c52199eae616e794db6..0000000000000000000000000000000000000000
--- a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/DataBase.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package de.hdm_stuttgart.battlearena.Persistance;
-
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
-
-public class DataBase implements IDataBase{
-
-    private static final Logger log = LogManager.getLogger(DataBase.class);
-
-}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java
new file mode 100644
index 0000000000000000000000000000000000000000..398258dc565edcfb9b87123688a3f9b739db7fd9
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/MapData.java
@@ -0,0 +1,7 @@
+package de.hdm_stuttgart.battlearena.Persistance.Classes;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+public class MapData {
+private static final Logger log = LogManager.getLogger(MapData.class);
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java
new file mode 100644
index 0000000000000000000000000000000000000000..32cfeee358278cf5bcdfc25e4bd2b5897dc0979e
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/Persistence.java
@@ -0,0 +1,7 @@
+package de.hdm_stuttgart.battlearena.Persistance.Classes;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+public class Persistence {
+private static final Logger log = LogManager.getLogger(Persistence.class);
+}
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/PlayerStatistics.java b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/PlayerStatistics.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa1493f3a8aa063f861d91519d61c1c93d9fda30
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Classes/PlayerStatistics.java
@@ -0,0 +1,7 @@
+package de.hdm_stuttgart.battlearena.Persistance.Classes;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+
+public class PlayerStatistics {
+private static final Logger log = LogManager.getLogger(PlayerStatistics.class);
+}
diff --git a/src/main/resources/player/player.txt b/src/main/resources/player/player.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391