diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java
index e205d562ac3cbe07426feb8a5b8f78682748995d..9c0973c81d0efc5810df4bfb53ffeae317d6f173 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java
@@ -1,5 +1,7 @@
 package com.galaxytrucker.galaxytruckerreloaded.Model.Map;
 
+import com.badlogic.gdx.scenes.scene2d.ui.List;
+import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
 import com.j256.ormlite.field.DatabaseField;
 import lombok.*;
 
@@ -37,7 +39,7 @@ public class Planet implements Serializable {
      */
     @DatabaseField(columnName = "event", foreign = true)
     @NonNull
-    private PlanetEvent event;
+    private Enum<PlanetEvent> event;
 
     /**
      * If already discovered set to true
@@ -45,4 +47,9 @@ public class Planet implements Serializable {
     @DatabaseField(columnName = "discovered")
     @NonNull
     private boolean discovered = false;
+
+    /** Ships at this planet */
+    @DatabaseField(foreign = true, columnName = "ships")
+    @NonNull
+    private List<Ship> ships;
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java
index bc031b9cb2194e11229af510d30f850101b5b7d4..432d840422ce20e78636041b685a75b6c9282f5e 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java
@@ -3,6 +3,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Model;
 import com.badlogic.gdx.scenes.scene2d.ui.List;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet;
+import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
 import com.j256.ormlite.field.DatabaseField;
 import com.j256.ormlite.table.DatabaseTable;
@@ -103,12 +104,7 @@ public class Ship implements Serializable {
     /** This ship's systems */
     @NonNull
     @DatabaseField(columnName = "systems",foreign = true)
-    private List<System> systems;
-
-    /** List of crew */
-    @NonNull
-    @DatabaseField(foreign = true,columnName = "crew")
-    private List<Crew> crew;
+    private List<Room> systems;
 
     /** Inventory */
     @NonNull
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java
new file mode 100644
index 0000000000000000000000000000000000000000..4742bded7cb67bd24ae1008e127aa743b2ff1bf6
--- /dev/null
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java
@@ -0,0 +1,18 @@
+package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout;
+
+import com.j256.ormlite.field.DatabaseField;
+import com.j256.ormlite.table.DatabaseTable;
+import lombok.*;
+
+@Getter
+@Setter
+@RequiredArgsConstructor(access = AccessLevel.PUBLIC)
+@NoArgsConstructor(access = AccessLevel.PUBLIC)
+@DatabaseTable(tableName = "blankRoom")
+public class BlankRoom extends Room {
+
+    /** ID */
+    @NonNull
+    @DatabaseField(id = true)
+    private int id;
+}
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java
index fd9356024ae6681c6ebada007c54dc931c66a72f..7cf0fe03e7279e8a85a83666021109d7dd368fd3 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java
@@ -38,4 +38,14 @@ public abstract class Room implements Serializable {
     @DatabaseField(columnName = "oxygen")
     @NonNull
     private int oxygen;
+
+    /** X position */
+    @NonNull
+    @DatabaseField(columnName = "posX")
+    private int posX;
+
+    /** Y position */
+    @NonNull
+    @DatabaseField(columnName = "posY")
+    private int posY;
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java
index 20432389b4ee7501e336b90616490f2e8680ad83..559155c7824ae382cdd7b3648ae72ffadc00701c 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java
@@ -1,5 +1,7 @@
 package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout;
 
+import com.badlogic.gdx.scenes.scene2d.ui.List;
+import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew;
 import com.j256.ormlite.field.DatabaseField;
 import lombok.*;
 
@@ -36,4 +38,9 @@ public abstract class System extends Room implements Serializable {
     @DatabaseField(columnName = "damage")
     @NonNull
     private int damage;
+
+    /** Crew in this system */
+    @DatabaseField(foreign = true, columnName = "crew")
+    @NonNull
+    private List<Crew> crew;
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java
index 6fed1c72d4f35d495a431471e08f9dc4b3540bdd..5ee02b68db77b12677243d74df05be9bed1f9d72 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java
@@ -1,5 +1,6 @@
 package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons;
 
+import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
 import com.j256.ormlite.field.DatabaseField;
 import lombok.*;
 
@@ -15,7 +16,7 @@ public abstract class Weapon implements Serializable {
      */
     @DatabaseField(id = true, columnName = "ID")
     @NonNull
-    private int ID;
+    private int id;
 
     /** Weapon level */
     @NonNull
@@ -92,4 +93,9 @@ public abstract class Weapon implements Serializable {
     @DatabaseField(columnName = "weaponBurst")
     private int burst;
 
+    /** Ship this weapon belongs to */
+    @NonNull
+    @DatabaseField(foreign = true, columnName = "associatedShip")
+    private Ship associatedShip;
+
 }
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java
index 50436249d2812f7d33c5bc0154d6486ae72c476b..9575986fa2964b7c042263770b404236eec5e8d1 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java
@@ -8,11 +8,6 @@ import com.j256.ormlite.support.ConnectionSource;
 
 public class CrewDAO extends ObjectDAO<Crew> {
 
-    /**
-     * Database connection
-     */
-    private ConnectionSource source;
-
     /**
      * Crew dao
      */
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java
index fdd9c7efb3f0d096b450c007b641125ddf483d61..7050f5c814333a7e08d647fb093c0551b389826d 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java
@@ -1,8 +1,15 @@
 package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
 
+import com.j256.ormlite.support.ConnectionSource;
+
 /** Template for DAOs */
 public abstract class ObjectDAO<T> {
 
+    /**
+     * Database connection
+     */
+    private ConnectionSource source;
+
     /**
      * Save the object to the database
      *
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java
index d6eaf36f5a3148912b40a00ba190c7808bc035c5..e17195dc40979397e32da33452db36d5a5f5fc38 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java
@@ -4,9 +4,13 @@ import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Overworld;
 import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateOverworldException;
 import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.OverworldNotFoundException;
 import com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.ObjectDAO;
+import com.j256.ormlite.dao.Dao;
 
 public class OverworldDAO extends ObjectDAO<Overworld> {
 
+    /** OverworldDAO */
+    private Dao<Overworld,String> overworldDAO;
+
     /**
      * Add a new OverWorld to the database
      *
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java
index 5032ff5818137357a7daffbff32a2f246d8efb97..7c2f42798813040ebd25cba1d9cad980138a4c2d 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java
@@ -3,9 +3,13 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
 import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet;
 import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicatePlanetException;
 import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.PlanetNotFoundException;
+import com.j256.ormlite.dao.Dao;
 
 public class PlanetDAO extends ObjectDAO<Planet> {
 
+    /** Planet DAO */
+    private Dao<Planet,String> planetDAO;
+
     /**
      * Add a new planet to the database
      *
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java
index c52866f94cba392ea8b64606d0d18c40bdf1c211..2519a4893d7066ace3f3346ac1f3a76b6aca4b3b 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java
@@ -9,11 +9,6 @@ import com.j256.ormlite.support.ConnectionSource;
 
 public class ShipDAO extends ObjectDAO<Ship> {
 
-    /**
-     * Database connection source
-     */
-    private ConnectionSource source;
-
     /**
      * ShipDAO
      */
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java
index 1476317173a0f78b7e3cd2c23c32125fab894868..5f8be49d8033a6bd80789c37db6706b2ce00840d 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java
@@ -8,11 +8,6 @@ import com.j256.ormlite.support.ConnectionSource;
 
 public class UserDAO extends ObjectDAO<User> {
 
-    /**
-     * Database connection source
-     */
-    private ConnectionSource source;
-
     /**
      * UserDAO
      */
diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java
index 3d4c2bf58dcc40917ba6db9a0dc45453584f2d82..f4b8703dbdba0e1128855d3f445884ffda5b0e59 100644
--- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java
+++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java
@@ -1,6 +1,7 @@
 package com.galaxytrucker.galaxytruckerreloaded.Server;
 
 import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database;
+import com.galaxytrucker.galaxytruckerreloaded.Server.Services.CrewService;
 
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/doc/UML/Datenmodell.drawio b/doc/UML/Datenmodell.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..213ba5d6c96ecfdf7761d54d4ce194f1b994759d
--- /dev/null
+++ b/doc/UML/Datenmodell.drawio
@@ -0,0 +1 @@
+<mxfile host="app.diagrams.net" modified="2020-05-27T15:20:21.330Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" etag="LVy6xN6CRc7D_DMOXAaF" version="13.1.2" type="device"><diagram id="eSud1R6gVXv-HQVYPhv1" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
diff --git a/doc/UML/Persistence.drawio b/doc/UML/Persistence.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..995aff71df9044695f61873293aef78ed1a77ffb
--- /dev/null
+++ b/doc/UML/Persistence.drawio
@@ -0,0 +1 @@
+<mxfile host="app.diagrams.net" modified="2020-05-27T15:41:41.457Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" etag="muEOTpiCteKXb1eRQTGz" version="13.1.2" type="device"><diagram id="vfHjjWkVMplfIyUdYfi3" name="Page-1">7Vtdc+I2FP01zKQPMP7ABh4DJE3b6WympLPdvgl8A9qVLVcWAfrrKyHJ2LLJwiawhm0eEuvYvta9Ouf6SlZa/ihe/8xQuvidRkBanhOtW/645Ymfnif+SGSjkF7gKmDOcKSgAjDB/4IGHY0ucQRZ6UJOKeE4LYMzmiQw4yUMMUZX5cueKSk/NUVzqACTGSJV9COO+EKh/cDZ4Q+A5wvzZNfRZ2JkLtZAtkARXRUg/67ljxilXB3F6xEQGTwTF3Xf/Z6zeccYJPygG/4Y/H3/6deHj09T7ze4X6NfolVbW3lBZKkd1p3lGxMB0e9UHsrQAWv5w2ea8Ik+74p2lqIZTuZPNJWAIxCOpiZYbk8DeZS6GnikGeaYJgIi8CzODBc8Jtqm7hYwDuu9/rp5FAX9gMbA2UZcom9ou2aQDPV0c7UbR9cNNbgoDGLXkA9p8sxz47v4igMd4iPC7deEOyTS97QU9PCfpaTFMEZsjkWEbsVZJ12L39vYOApvcxlyea5bOCcixtuI4Lm+bybiJcYttymO5vrv9sm4AKBYGBySaut2mnGGhL4MWr6jZFBEBtsPmbIKYoAP089CuOPbD+UnPu01PrVNCSy1sQWTATXpxPju7g/DNw2AIm4+AlXb8tqMLtkM1GUjlaYE7ScKvQwXUmAZzvjN00/q0hcqaP5K10/XEwYxfYEDOmJlMZlKsEjrt0oY4610hlomJgEJy+yZbJP0M5bKVrlODYHr6fY9ijGROeUByAtIq++eu3w/KKUu36/JXYOa1OWeLHV1G5i68kwwYrBSGeRSk8RMe6D8pnHnsxeEHcpigjl0IkQ7Y0TLGVI63fJGE87E23dPYk6mWXo5QVimEeJwIx27bn23Xb9cm7g1AvedGoH3T6XvoMn6/iCivaKMRJctclp04wil5+5fj9z3lYVXJPKwe4DGg3NqPGyyxh8JSoBftsDT3Icj1K0c/1/aFyTtyvvbq9O2e05t95qs7ckCp5et7Ex7cISupdPXo+pCfS4d++4LAXPgsh/DzZ8ZsBsVZN0pFfirSzpeUF4UOLieON2iQL/RSWeTcYgvPO3kPhyTeLY3XU/q+QEKCnuu4A0O1PbJ6olBk6Utc/5lC3upPThC1tLp6xF1oZ6QjjWhnpD9UPVEgmIo1xQq+N/vi8drfftRFknrvoLUTrJOV/AYw4W0eLfmkERZJdgCvJUbEERrSujsiwiKgEwcQ9W830Z47NQFD6LK1gQrdLtvi1+bFnJBOOCvXOfXD0Xxe5P5VM6AII5fyn2ri7Q290ix6HU+rF3PetWF1mApn/RdxQ0NlqGg/xVDyumKoe3A5z6+gQvVzRMn4AKsMf9LHnccx9ftT/KyTugFuj1e6/u2jU2h8QgMCz/lvo2x877M6jaOWXnRZAhhF0eHMss25PfOzCzvwrJM2DgudIN3yjK2obwKPxcXqnuGms2FQfO4EFpcsOV8MBcsQ/653zjVTRjN5kLQPC703ukdYRs6+zui+sH+FNVHInqpyw83B1T90XUGBtgVINvWptg6YQnSbx697Jp08K30sgz5Nk9PTa/qt+InWPMKt+QSTpkyGWf0C4wooXLEE5qAnDIKdlmQmXbqRR9/aM9OYxxF8jHD1QJzmKRoy4UVQ3LSyugyiSAqcepNs83KS8LsvimwxCzSFeeanrOfI2+bah77RY/gBNqma3JdwJV9C/Yv7Mh5fK0leaKtloikHc+rW514VHtCISntYlU2j1invRoCVfab96sEcnvvwyDR3P3jgJL87t8v/Lv/AA==</diagram></mxfile>
\ No newline at end of file
diff --git a/doc/UML/Persistence.png b/doc/UML/Persistence.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0e0f675b42f5dcbef79d5eda4a6cf4f6473aa79
Binary files /dev/null and b/doc/UML/Persistence.png differ
diff --git a/doc/UML/Untitled Diagram.png b/doc/UML/Untitled Diagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9cb63e5c4491dceae5ee3d7da07f09ea8b40599
Binary files /dev/null and b/doc/UML/Untitled Diagram.png differ