diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
index 676469c699f92317fc319900d99ad2952ecba628..5e74d0320fd482029e50d3369650343a55131550 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
@@ -3,6 +3,9 @@ package unipotsdam.gf.config;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 import unipotsdam.gf.core.management.Management;
 import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.group.GroupDAO;
+import unipotsdam.gf.core.management.project.ProjectDAO;
+import unipotsdam.gf.core.management.user.UserDAO;
 import unipotsdam.gf.core.states.PhasesImpl;
 import unipotsdam.gf.core.testsandbox.TestList;
 import unipotsdam.gf.core.testsandbox.TestListInterface;
@@ -39,6 +42,9 @@ public class GFApplicationBinder extends AbstractBinder {
         bind(TestList.class).to(TestListInterface.class);
         bind(DummyGroupfinding.class).to(IGroupFinding.class);
         bind(DummyProjectCreationService.class);
+        bind(UserDAO.class).to(UserDAO.class);
+        bind(ProjectDAO.class).to(ProjectDAO.class);
+        bind(GroupDAO.class).to(GroupDAO.class);
 
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java
index 442f743a44e161ebf614b94e2332dea460a7f573..c919c527a0453673341c3547314d1250e891c325 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java
@@ -6,9 +6,6 @@ import unipotsdam.gf.core.management.project.ProjectConfiguration;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.management.user.UserInterests;
 import unipotsdam.gf.core.management.user.UserProfile;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
-
-import java.util.List;
 
 /**
  * Created by dehne on 31.05.2018.
@@ -18,9 +15,9 @@ public interface Management {
     /**
      * delete a User in the database
      *
-     * @param identifier
+     * @param user
      */
-    void delete(StudentIdentifier identifier);
+    void delete(User user);
 
     /**
      * create a User in the database
@@ -85,52 +82,6 @@ public interface Management {
 
     Boolean exists(Group group);
 
-    /**
-     * Get all the users linked to a project
-     *
-     * @param project
-     * @return
-     */
-    List<User> getUsers(Project project);
-
-    /**
-     * get the token for the user
-     *
-     * @param user
-     * @return
-     */
-    String getUserToken(User user);
-
-    /**
-     * get the user given his http token
-     *
-     * @param token
-     * @return
-     */
-    User getUserByToken(String token);
-
-    /**
-     * get user by its email address
-     *
-     * @param email
-     * @return
-     */
-    User getUserByEmail(String email);
-
-    /**
-     * get project by its id
-     *
-     * @param id
-     * @return
-     */
-    Project getProjectById(String id);
-
-    void addGroupMember(User groupMember, int groupId);
-
-    void deleteGroupMember(User groupMember, int groupId);
-
-    List<Group> getGroupsByProjectId(String projectId);
-
     void create(ProjectConfiguration projectConfiguration, Project project);
 
     ProjectConfiguration getProjectConfiguration(Project project);
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
index 5159addd7123b44a345d58c40a1c69723f9ed226..0a6eb7ab5e8a9e51e582fd72df54046520436d19 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -3,25 +3,22 @@ package unipotsdam.gf.core.management;
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
 import unipotsdam.gf.core.management.group.Group;
+import unipotsdam.gf.core.management.group.GroupDAO;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.project.ProjectConfiguration;
 import unipotsdam.gf.core.management.project.ProjectConfigurationDAO;
+import unipotsdam.gf.core.management.project.ProjectDAO;
 import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.management.user.UserDAO;
 import unipotsdam.gf.core.management.user.UserInterests;
 import unipotsdam.gf.core.management.user.UserProfile;
-import unipotsdam.gf.core.states.ProjectPhase;
 import unipotsdam.gf.modules.assessment.controller.model.Quiz;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import javax.annotation.ManagedBean;
 import javax.annotation.Resource;
+import javax.inject.Inject;
 import javax.inject.Singleton;
-import java.sql.Timestamp;
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.UUID;
 
 /**
  * Created by dehne on 31.05.2018.
@@ -30,59 +27,13 @@ import java.util.UUID;
 @Resource
 @Singleton
 public class ManagementImpl implements Management {
-    @Override
-    public void delete(StudentIdentifier identifier) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "DELETE FROM users where email = (?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, identifier.getStudentId());
-        connect.close();
-    }
-
-    @Override
-    public void create(User user, UserProfile profile) {
-        UUID uuid = UUID.randomUUID();
-        String token = uuid.toString();
-
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "INSERT INTO users (`name`, `password`, `email`, `token`,`isStudent`," +
-                "`rocketChatId`,`rocketChatAuthToken`) values (?,?,?,?,?,?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
-                token, user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken());
-        connect.close();
 
-        // TODO implmement UserProfile @Mar
-    }
-
-    @Override
-    public void create(Project project) {
-        UUID uuid = UUID.randomUUID();
-        String token = uuid.toString();
-
-
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest =
-                "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, "
-                        + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(),
-                project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase()
-                        == null ? ProjectPhase.CourseCreation : project.getPhase());
-        connect.close();
-    }
-
-    @Override
-    public void delete(Project project) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "DELETE FROM projects where id = (?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId());
-
-        // TODO: delete all groups of project?
-
-        connect.close();
-    }
+    @Inject
+    private UserDAO userDAO;
+    @Inject
+    private GroupDAO groupDAO;
+    @Inject
+    private ProjectDAO projectDAO;
 
     @Override
     public void register(User user, Project project, UserInterests interests) {
@@ -93,155 +44,6 @@ public class ManagementImpl implements Management {
         connect.close();
     }
 
-    @Override
-    public void update(User user) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," +
-                "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1";
-        //TODO: maybe add handling if a line is actually updated
-        //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user
-
-        connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
-                user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail());
-        connect.close();
-    }
-
-    @Override
-    public void update(Group group) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "UPDATE group SET projectId=?,chatRoomid=?";
-        connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId());
-
-        // TODO: implement update of groupuser if needed later (if member list need to be updated)
-    }
-
-    @Override
-    public Boolean exists(User user) {
-        Boolean result;
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
-        result = vereinfachtesResultSet.next();
-        connect.close();
-        return result;
-    }
-
-    @Override
-    public Boolean exists(Project project) {
-        Boolean result;
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword());
-        result = vereinfachtesResultSet.next();
-        connect.close();
-        return result;
-    }
-
-    @Override
-    public Boolean exists(Group group) {
-        List<Group> groups = getGroupsByProjectId(group.getProjectId());
-        return groups.contains(group);
-    }
-
-    @Override
-    public List<User> getUsers(Project project) {
-        String query =
-                "SELECT * FROM users u "
-                        + " JOIN projectuser pu ON u.email=pu.userId"
-                        + " JOIN projects p ON pu.projectId = p.id"
-                        + " WHERE pu.projectId = ?";
-
-        ArrayList<User> result = new ArrayList<>();
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId());
-        while (!vereinfachtesResultSet.isLast()) {
-            Boolean next = vereinfachtesResultSet.next();
-            if (next) {
-                User user = getUserFromResultSet(vereinfachtesResultSet);
-                String token = vereinfachtesResultSet.getString("token");
-                user.setToken(token);
-                result.add(user);
-            } else {
-                break;
-            }
-        }
-        connect.close();
-        return result;
-    }
-
-    private User getUserFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
-        String name = vereinfachtesResultSet.getString("name");
-        String password = vereinfachtesResultSet.getString("password");
-        String email = vereinfachtesResultSet.getString("email");
-        String token = vereinfachtesResultSet.getString("token");
-        String rocketChatId = vereinfachtesResultSet.getString("rocketChatId");
-        String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken");
-        Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent");
-        return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent);
-    }
-
-    private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
-        String id = vereinfachtesResultSet.getString("id");
-        String password = vereinfachtesResultSet.getString("password");
-        boolean active = vereinfachtesResultSet.getBoolean("active");
-        Timestamp timestamp = vereinfachtesResultSet.getTimestamp("timecreated");
-        String author = vereinfachtesResultSet.getString("author");
-        String adminPassword = vereinfachtesResultSet.getString("adminpassword");
-        String token = vereinfachtesResultSet.getString("token");
-        String phase = vereinfachtesResultSet.getString("phase");
-
-        return new Project(id, password, active, timestamp, author, adminPassword, token, phase);
-    }
-
-    private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) {
-        int id = vereinfachtesResultSet.getInt("id");
-        if (existingGroups.containsKey(id)) {
-            existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet));
-        } else {
-            String projectId = vereinfachtesResultSet.getString("projectId");
-            User user = getUserFromResultSet(vereinfachtesResultSet);
-            String chatRoomId = vereinfachtesResultSet.getString("chatRoomId");
-            ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user));
-            Group group = new Group(userList, projectId, chatRoomId);
-            existingGroups.put(id, group);
-        }
-    }
-
-    @Override
-    public String getUserToken(User user) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
-        boolean next = vereinfachtesResultSet.next();
-        if (!next) {
-            connect.close();
-            return null;
-        }
-        String token = vereinfachtesResultSet.getString("token");
-        connect.close();
-        return token;
-    }
-
-    @Override
-    public User getUserByToken(String token) {
-        return getUserByField("token", token);
-    }
-
-    @Override
-    public User getUserByEmail(String email) {
-        return getUserByField("email", email);
-    }
-
-
     /**
      * TODO @Axel bitte in modules/asessment verschieben
      *
@@ -279,87 +81,54 @@ public class ManagementImpl implements Management {
         return quiz;
     }
 
-    private User getUserByField(String field, String value) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM users where " + field + " = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, value);
-        boolean next = vereinfachtesResultSet.next();
-        if (next) {
-            User user = getUserFromResultSet(vereinfachtesResultSet);
-            connect.close();
-            return user;
-        } else {
-            connect.close();
-            return null;
-        }
+    @Override
+    public void delete(User user) {
+        userDAO.delete(user);
     }
 
     @Override
-    public Project getProjectById(String id) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM projects where id = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, id);
-        boolean next = vereinfachtesResultSet.next();
-        if (next) {
-            Project project = getProjectFromResultSet(vereinfachtesResultSet);
-            connect.close();
-            return project;
-        } else {
-            connect.close();
-            return null;
-        }
+    public void create(User user, UserProfile profile) {
+        userDAO.persist(user, profile);
     }
 
     @Override
-    public void create(Group group) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
+    public void update(User user) {
+        userDAO.update(user);
+    }
 
-        String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId());
+    @Override
+    public Boolean exists(User user) {
+        return userDAO.exists(user);
+    }
 
-        for (User groupMember : group.getMembers()) {
-            String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
-            connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId());
-        }
-        connect.close();
+    @Override
+    public void create(Project project) {
+        projectDAO.persist(project);
     }
 
     @Override
-    public void addGroupMember(User groupMember, int groupId) {
-        // TODO: implement
+    public void delete(Project project) {
+        projectDAO.delete(project);
     }
 
     @Override
-    public void deleteGroupMember(User groupMember, int groupId) {
-        // TODO: implement
+    public Boolean exists(Project project) {
+        return projectDAO.exists(project);
     }
 
     @Override
-    public List<Group> getGroupsByProjectId(String projectId) {
-        MysqlConnect connect = new MysqlConnect();
-        connect.connect();
-        String mysqlRequest = "SELECT * FROM groups g " +
-                "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" +
-                "where g.projectId = ?";
-        VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, projectId);
-        HashMap<Integer, Group> groupHashMap = new HashMap<>();
-        while (vereinfachtesResultSet.next()) {
-            fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap);
-        }
-        ArrayList<Group> groups = new ArrayList<>();
-        groupHashMap.forEach((key, group) -> groups.add(group));
-        if (groups.isEmpty()) {
-            return null;
-        }
-        connect.close();
+    public void create(Group group) {
+        groupDAO.persist(group);
+    }
+
+    @Override
+    public void update(Group group) {
+        groupDAO.update(group);
+    }
 
-        return groups;
+    @Override
+    public Boolean exists(Group group) {
+        return groupDAO.exists(group);
     }
 
     @Override
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d7ce6d3a83f2108c53c9d683ed3cb263da399b9
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java
@@ -0,0 +1,93 @@
+package unipotsdam.gf.core.management.group;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.management.util.ResultSetUtil;
+
+import javax.annotation.ManagedBean;
+import javax.annotation.Resource;
+import javax.inject.Singleton;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+@ManagedBean
+@Resource
+@Singleton
+public class GroupDAO {
+
+    public void persist(Group group) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+
+        String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId());
+
+        for (User groupMember : group.getMembers()) {
+            String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
+            connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId());
+        }
+        connect.close();
+    }
+
+    public void update(Group group) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "UPDATE group SET projectId=?,chatRoomid=?";
+        connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId());
+
+        // TODO: implement update of groupuser if needed later (if member list need to be updated)
+    }
+
+
+    public Boolean exists(Group group) {
+        List<Group> groups = getGroupsByProjectId(group.getProjectId());
+        return groups.contains(group);
+    }
+
+    public void addGroupMember(User groupMember, int groupId) {
+        // TODO: implement
+    }
+
+    public void deleteGroupMember(User groupMember, int groupId) {
+        // TODO: implement
+    }
+
+    public List<Group> getGroupsByProjectId(String projectId) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM groups g " +
+                "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" +
+                "where g.projectId = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, projectId);
+        HashMap<Integer, Group> groupHashMap = new HashMap<>();
+        while (vereinfachtesResultSet.next()) {
+            fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap);
+        }
+        ArrayList<Group> groups = new ArrayList<>();
+        groupHashMap.forEach((key, group) -> groups.add(group));
+        if (groups.isEmpty()) {
+            return null;
+        }
+        connect.close();
+
+        return groups;
+    }
+
+    private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) {
+        int id = vereinfachtesResultSet.getInt("id");
+        if (existingGroups.containsKey(id)) {
+            existingGroups.get(id).addMember(ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet));
+        } else {
+            String projectId = vereinfachtesResultSet.getString("projectId");
+            User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet);
+            String chatRoomId = vereinfachtesResultSet.getString("chatRoomId");
+            ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user));
+            Group group = new Group(userList, projectId, chatRoomId);
+            existingGroups.put(id, group);
+        }
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectDAO.java
new file mode 100644
index 0000000000000000000000000000000000000000..4dec207bf972d569a98c57e8fa77ad7528e34fee
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/ProjectDAO.java
@@ -0,0 +1,86 @@
+package unipotsdam.gf.core.management.project;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.annotation.ManagedBean;
+import javax.annotation.Resource;
+import javax.inject.Singleton;
+import java.sql.Timestamp;
+import java.util.UUID;
+
+@ManagedBean
+@Resource
+@Singleton
+public class ProjectDAO {
+
+    public void persist(Project project) {
+        UUID uuid = UUID.randomUUID();
+        String token = uuid.toString();
+
+
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest =
+                "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, "
+                        + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(),
+                project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase()
+                        == null ? ProjectPhase.CourseCreation : project.getPhase());
+        connect.close();
+    }
+
+    public void delete(Project project) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "DELETE FROM projects where id = (?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId());
+
+        // TODO: delete all groups of project?
+
+        connect.close();
+    }
+
+    public Boolean exists(Project project) {
+        Boolean result;
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword());
+        result = vereinfachtesResultSet.next();
+        connect.close();
+        return result;
+    }
+
+    public Project getProjectById(String id) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM projects where id = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, id);
+        boolean next = vereinfachtesResultSet.next();
+        if (next) {
+            Project project = getProjectFromResultSet(vereinfachtesResultSet);
+            connect.close();
+            return project;
+        } else {
+            connect.close();
+            return null;
+        }
+    }
+
+    private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
+        String id = vereinfachtesResultSet.getString("id");
+        String password = vereinfachtesResultSet.getString("password");
+        boolean active = vereinfachtesResultSet.getBoolean("active");
+        Timestamp timestamp = vereinfachtesResultSet.getTimestamp("timecreated");
+        String author = vereinfachtesResultSet.getString("author");
+        String adminPassword = vereinfachtesResultSet.getString("adminpassword");
+        String token = vereinfachtesResultSet.getString("token");
+        String phase = vereinfachtesResultSet.getString("phase");
+
+        return new Project(id, password, active, timestamp, author, adminPassword, token, phase);
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java
index 879ce2268e2cf4187e8f529b6636636520c39c06..715c568c00c6cd42750deae8da892a92c6645b87 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/HiddenUserTag.java
@@ -1,7 +1,7 @@
 package unipotsdam.gf.core.management.user;
 
-import unipotsdam.gf.core.management.ManagementImpl;
-
+import javax.annotation.ManagedBean;
+import javax.inject.Inject;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.PageContext;
@@ -12,15 +12,19 @@ import java.io.IOException;
  * implemented while porting the login page. It might be useful to have a hidden user field on the page in order to
  * manipulate the user data with jquery
  */
+@ManagedBean
 public class HiddenUserTag extends SimpleTagSupport {
+
+    @Inject
+    UserDAO userDAO;
+
     public void doTag() throws IOException {
         PageContext pageContext = (PageContext) getJspContext();
         HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
         String token = request.getParameter("token");
 
-        ManagementImpl management = new ManagementImpl();
-        User user = management.getUserByToken(token);
+        User user = userDAO.getUserByToken(token);
         JspWriter out = getJspContext().getOut();
-        out.println("<p id=\"user\" hidden>"+user.getName()+"</p>");
+        out.println("<p id=\"user\" hidden>" + user.getName() + "</p>");
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
index 16e3f3ffe900a17b77df2719adfc93ee1d5b6053..2a1f7c5c4a955cc819961317d9a7cad2805b7827 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
@@ -1,7 +1,7 @@
 package unipotsdam.gf.core.management.user;
 
-import unipotsdam.gf.core.management.ManagementImpl;
-
+import javax.annotation.ManagedBean;
+import javax.inject.Inject;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
@@ -11,43 +11,47 @@ import java.io.IOException;
 
 
 // TODO: please move this to a view package at the top of the hierarchy as this is not part of the user package
+@ManagedBean
 public class Menu extends SimpleTagSupport {
+
+    @Inject
+    private UserDAO userDAO;
+
     public void doTag() throws JspException, IOException {
         PageContext pageContext = (PageContext) getJspContext();
         HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
         String token = request.getParameter("token");
-        ManagementImpl management = new ManagementImpl();
         JspWriter out = getJspContext().getOut();
-        if (token!=null){
-            User user =  management.getUserByToken(token);
+        if (token != null) {
+            User user = userDAO.getUserByToken(token);
             Boolean isStudent = user.getStudent();
-            if (isStudent){
+            if (isStudent) {
                 out.println("<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
-                        "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"\">overview</a></li>\n" +
-                        "            <li><a href=\"profile.jsp?token="+token+"\">Profil</a></li>\n" +
-                        "            <li><a href=\"Quiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
-                        "            <li><a href=\"eportfolio.jsp?token="+token+"\">ePortfolio</a></li>\n" +
-                        "            <li><a href=\"researchReportTitle.jsp?token="+token+"\">Beitrag</a></li>\n" +
-                        "            <li><a href=\"finalAssessments.jsp?token="+token+"\">Bewertung</a></li>\n" +
+                        "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token=" + token + "\">overview</a></li>\n" +
+                        "            <li><a href=\"profile.jsp?token=" + token + "\">Profil</a></li>\n" +
+                        "            <li><a href=\"Quiz.jsp?token=" + token + "\">Quizfrage</a></li>\n" +
+                        "            <li><a href=\"eportfolio.jsp?token=" + token + "\">ePortfolio</a></li>\n" +
+                        "            <li><a href=\"researchReportTitle.jsp?token=" + token + "\">Beitrag</a></li>\n" +
+                        "            <li><a href=\"finalAssessments.jsp?token=" + token + "\">Bewertung</a></li>\n" +
                         "            <li><a href=\"../index.jsp\">Logout</a></li>\n" +
                         "        </ul>\n" +
                         "    </div>");
             } else {
                 out.println("<div id=\"sidebar-wrapper\">\n" +
                         "        <ul class=\"sidebar-nav\">\n" +
-                        "            <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"\">overview</a></li>\n" +
-                        "            <li><a href=\"Quiz.jsp?token="+token+"\">Quizfrage</a></li>\n" +
+                        "            <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token=" + token + "\">overview</a></li>\n" +
+                        "            <li><a href=\"Quiz.jsp?token=" + token + "\">Quizfrage</a></li>\n" +
                         "            <li><a href=\"#\">ePortfolio</a></li>\n" +
                         "            <li><a href=\"#\">Beitrag</a></li>\n" +
                         "            <li><a href=\"#\">Gruppen erstellen</a></li>\n" +
                         "            <li><a href=\"#\">Projektphase ändern</a></li>\n" +
-                        "            <li><a href=\"finalAssessments.jsp?token="+token+"\">Bewertung</a></li>\n" +
+                        "            <li><a href=\"finalAssessments.jsp?token=" + token + "\">Bewertung</a></li>\n" +
                         "            <li><a href=\"../index.jsp\">Logout</a></li>\n" +
                         "        </ul>\n" +
                         "    </div>");
             }
-        }else{
+        } else {
             out.println("<div class='alert alert-warning'>" +
                     "You probably did not give the token to the url" +
                     "</div>");
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java
index 3a3a695d7e870ddca681c05918a9a5c4acafddfd..d5f33ab1b826d4b6c91e2430e8feba0a7e23bf32 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/SessionValidator.java
@@ -2,8 +2,9 @@ package unipotsdam.gf.core.management.user;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import unipotsdam.gf.core.management.ManagementImpl;
 
+import javax.annotation.ManagedBean;
+import javax.inject.Inject;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -17,10 +18,14 @@ import java.io.IOException;
  * this filter can be applied to a given space in order to validate, that the tag in the url is a valid one
  * not applied to to a folder yet (because might lead to confusing experiences in debugging)
  */
+@ManagedBean
 public class SessionValidator implements Filter {
 
     private final static Logger log = LoggerFactory.getLogger(SessionValidator.class);
 
+    @Inject
+    private UserDAO userDAO;
+
     private void redirectToLogin(ServletRequest request, ServletResponse response) {
         log.debug("redirecting user to login because token does not exist");
         String loginJSP = "../../index.jsp";
@@ -41,8 +46,8 @@ public class SessionValidator implements Filter {
         if (token == null) {
             redirectToLogin(request, response);
         }
-        ManagementImpl management = new ManagementImpl();
-        User user = management.getUserByToken(token);
+
+        User user = userDAO.getUserByToken(token);
         if (user == null) {
             redirectToLogin(request, response);
         }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3e2bd2bcc5b99ca1b83aec370529033982baa86
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserDAO.java
@@ -0,0 +1,136 @@
+package unipotsdam.gf.core.management.user;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.util.ResultSetUtil;
+
+import javax.annotation.ManagedBean;
+import javax.annotation.Resource;
+import javax.inject.Singleton;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+@ManagedBean
+@Resource
+@Singleton
+public class UserDAO {
+
+    public void persist(User user, UserProfile profile) {
+        UUID uuid = UUID.randomUUID();
+        String token = uuid.toString();
+
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "INSERT INTO users (`name`, `password`, `email`, `token`,`isStudent`," +
+                "`rocketChatId`,`rocketChatAuthToken`) values (?,?,?,?,?,?,?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
+                token, user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken());
+        connect.close();
+
+        // TODO implmement UserProfile @Mar
+    }
+
+    public void delete(User user) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "DELETE FROM users where email = (?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, user.getEmail());
+        connect.close();
+    }
+
+    public void update(User user) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," +
+                "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1";
+        //TODO: maybe add handling if a line is actually updated
+        //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user
+
+        connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(),
+                user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail());
+        connect.close();
+    }
+
+    public boolean exists(User user) {
+        boolean result;
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
+        result = vereinfachtesResultSet.next();
+        connect.close();
+        return result;
+    }
+
+    public List<User> getUsers(Project project) {
+        String query =
+                "SELECT * FROM users u "
+                        + " JOIN projectuser pu ON u.email=pu.userId"
+                        + " JOIN projects p ON pu.projectId = p.id"
+                        + " WHERE pu.projectId = ?";
+
+        ArrayList<User> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId());
+        while (!vereinfachtesResultSet.isLast()) {
+            boolean next = vereinfachtesResultSet.next();
+            if (next) {
+                User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet);
+                String token = vereinfachtesResultSet.getString("token");
+                user.setToken(token);
+                result.add(user);
+            } else {
+                break;
+            }
+        }
+        connect.close();
+        return result;
+    }
+
+    public String getUserToken(User user) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM users where email = ? and password = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
+        boolean next = vereinfachtesResultSet.next();
+        if (!next) {
+            connect.close();
+            return null;
+        }
+        String token = vereinfachtesResultSet.getString("token");
+        connect.close();
+        return token;
+    }
+
+    public User getUserByToken(String token) {
+        return getUserByField("token", token);
+    }
+
+    public User getUserByEmail(String email) {
+        return getUserByField("email", email);
+    }
+
+    private User getUserByField(String field, String value) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM users where " + field + " = ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, value);
+        boolean next = vereinfachtesResultSet.next();
+        if (next) {
+            User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet);
+            connect.close();
+            return user;
+        } else {
+            connect.close();
+            return null;
+        }
+    }
+
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
index c457c47cbc5f6e5a115d7d44fc9fe4cb59858e12..9684fa6bce15e06cbce30b030d6a81eedfaca4fe 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/UserService.java
@@ -22,6 +22,9 @@ public class UserService {
     @Inject
     private ICommunication communicationService;
 
+    @Inject
+    private UserDAO userDAO;
+
     /**
      * creates a user with given credentials
      *
@@ -111,9 +114,8 @@ public class UserService {
     }
 
     private User fillUserFields(User user) {
-        ManagementImpl m = new ManagementImpl();
-        String token = m.getUserToken(user);
-        user = m.getUserByToken(token);
+        String token = userDAO.getUserToken(user);
+        user = userDAO.getUserByToken(token);
         return user;
     }
 
@@ -142,7 +144,7 @@ public class UserService {
         } else {
             successUrl = "../pages/overview-docent.jsp?token=";
         }
-        successUrl += management.getUserToken(user);
+        successUrl += userDAO.getUserToken(user);
         return forwardToLocation(successUrl);
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/util/ResultSetUtil.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/util/ResultSetUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a79f816542360f3039f8468b9440c8d3bc91330
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/util/ResultSetUtil.java
@@ -0,0 +1,18 @@
+package unipotsdam.gf.core.management.util;
+
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.user.User;
+
+public class ResultSetUtil {
+
+    public static User getUserFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
+        String name = vereinfachtesResultSet.getString("name");
+        String password = vereinfachtesResultSet.getString("password");
+        String email = vereinfachtesResultSet.getString("email");
+        String token = vereinfachtesResultSet.getString("token");
+        String rocketChatId = vereinfachtesResultSet.getString("rocketChatId");
+        String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken");
+        Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent");
+        return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent);
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
index e3ad42205b6ae45070ae70f643a9f6e662757a18..acdd40ae1ef5327f42b8fd1336079937ea535a12 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
@@ -1,11 +1,15 @@
 package unipotsdam.gf.core.states;
 
-import unipotsdam.gf.core.management.Management;
-import unipotsdam.gf.core.management.project.Project;
+import unipotsdam.gf.core.management.project.ProjectDAO;
 import unipotsdam.gf.interfaces.IPhases;
 
 import javax.inject.Inject;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
 /**
@@ -19,7 +23,7 @@ public class PhasesService  {
     private IPhases phases;
 
     @Inject
-    private Management management;
+    private ProjectDAO projectDAO;
 
     /**
      * end phase
@@ -30,7 +34,7 @@ public class PhasesService  {
     @POST
     @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public void endPhase(@PathParam("projectPhase") String projectPhase, @PathParam("projectId") String projectId) {
-        phases.endPhase(ProjectPhase.valueOf(projectPhase), management.getProjectById(projectId));
+        phases.endPhase(ProjectPhase.valueOf(projectPhase), projectDAO.getProjectById(projectId));
     }
 
     /**
@@ -42,6 +46,6 @@ public class PhasesService  {
     @GET
     @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public String getCurrentPhase(@PathParam("projectId") String projectId) {
-        return management.getProjectById(projectId).getPhase();
+        return projectDAO.getProjectById(projectId).getPhase();
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/dummy/service/DummyProjectCreationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/dummy/service/DummyProjectCreationService.java
index 809ead314966492fbc0142b823f7a9167eaf2133..a4356f47bb67779049f3333665c9121f2c6f00ff 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/dummy/service/DummyProjectCreationService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/dummy/service/DummyProjectCreationService.java
@@ -2,8 +2,10 @@ package unipotsdam.gf.modules.groupfinding.dummy.service;
 
 import unipotsdam.gf.core.management.Management;
 import unipotsdam.gf.core.management.group.Group;
+import unipotsdam.gf.core.management.group.GroupDAO;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.management.user.UserDAO;
 import unipotsdam.gf.core.management.user.UserProfile;
 import unipotsdam.gf.interfaces.ICommunication;
 
@@ -27,6 +29,12 @@ public class DummyProjectCreationService {
     @Inject
     private Management management;
 
+    @Inject
+    private GroupDAO groupDAO;
+
+    @Inject
+    private UserDAO userDAO;
+
     public boolean createExampleProject() {
 
         User docentUser = getDocentUser();
@@ -43,7 +51,7 @@ public class DummyProjectCreationService {
             nonCreatedGroups.forEach(group -> management.create(group));
         }
 
-        List<Group> groupsWithId = management.getGroupsByProjectId(project.getId());
+        List<Group> groupsWithId = groupDAO.getGroupsByProjectId(project.getId());
         groupsWithId.forEach(group -> {
             String chatRoomName = String.join(" - ", project.getId(), String.valueOf(group.getId()));
             group.setChatRoomId(communicationService.createChatRoom(chatRoomName, group.getMembers()));
@@ -83,7 +91,7 @@ public class DummyProjectCreationService {
         if (!management.exists(docent)) {
             saveUserToDatabase(docent);
         } else {
-            docent = management.getUserByEmail(docent.getEmail());
+            docent = userDAO.getUserByEmail(docent.getEmail());
         }
         return docent;
     }
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
index 9fbce54234111c240d671b9fb5e6ea7443201dda..e087e61c5f583e340d5709e76303ec3f232c1b5b 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ManagementTest.java
@@ -1,26 +1,20 @@
 package unipotsdam.gf.interfaces;
 
-import javafx.application.Application;
-import org.glassfish.hk2.api.ServiceLocator;
-import org.glassfish.hk2.utilities.Binder;
-import org.glassfish.hk2.utilities.ServiceLocatorUtilities;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
-import org.junit.Before;
 import org.junit.Test;
 import uk.co.jemos.podam.api.PodamFactory;
 import uk.co.jemos.podam.api.PodamFactoryImpl;
-import unipotsdam.gf.config.GFApplicationBinder;
-import unipotsdam.gf.config.GFResourceConfig;
 import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.project.ProjectConfiguration;
 import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.management.user.UserDAO;
 import unipotsdam.gf.core.management.user.UserProfile;
 
 import java.util.List;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 /**
  * Created by dehne on 01.06.2018.
@@ -87,6 +81,7 @@ public class ManagementTest  {
     @Test
     public void testUpdateUser() {
         ManagementImpl management = new ManagementImpl();
+        UserDAO userDAO = new UserDAO();
         User user = new User("julian", "1234", "testUpdateUser@stuff.com", true);
         user.setToken("abc");
         management.create(user, new UserProfile());
@@ -95,7 +90,7 @@ public class ManagementTest  {
         user.setStudent(false);
         management.update(user);
         assertTrue(management.exists(user));
-        User managementUser = management.getUserByToken(user.getToken());
+        User managementUser = userDAO.getUserByToken(user.getToken());
         assertEquals(user.getStudent(), managementUser.getStudent());
     }
 
@@ -116,7 +111,8 @@ public class ManagementTest  {
         management.create(user2, new UserProfile());
         assert management.exists(user2);
 
-        List<User> users = management.getUsers(project);
+        UserDAO userDAO = new UserDAO();
+        List<User> users = userDAO.getUsers(project);
         assert users != null;
         assert !users.isEmpty();