diff --git a/mozen/src/main/java/mozen/business/IModelManager.java b/mozen/src/main/java/mozen/business/IModelManager.java
index df1c4bf23e1cc5e5672fb0f9f7a8a3135466c868..d383f7e3cac169a85c0d150b5ded1cdb1f80415e 100644
--- a/mozen/src/main/java/mozen/business/IModelManager.java
+++ b/mozen/src/main/java/mozen/business/IModelManager.java
@@ -10,7 +10,7 @@ import mozen.messages.SearchResult;
 import mozen.model.User;
 
 public interface IModelManager {
-  Long addModel(ModelMessage message, User user) throws Exception;
+  Model addModel(ModelMessage message, User user) throws Exception;
   void addModelFile(MultipartFile file, long id, User user) throws Exception;
   void updateModel(ModelMessage message, long id, User user) throws Exception;
   void removeModel(long id, User user) throws Exception; 
diff --git a/mozen/src/main/java/mozen/business/IUserManager.java b/mozen/src/main/java/mozen/business/IUserManager.java
index 58cfdf22af7a73bb2bb9ce6a458e574eea4737d7..874ffbc5049b7bafb39aa6c72455b0d7cbcb2126 100644
--- a/mozen/src/main/java/mozen/business/IUserManager.java
+++ b/mozen/src/main/java/mozen/business/IUserManager.java
@@ -6,7 +6,7 @@ import mozen.messages.SignupMessage;
 import mozen.model.User;
 
 public interface IUserManager {
-  Long addUser(SignupMessage message);
+  User addUser(SignupMessage message);
   void updateUser(User user, User userToUpdate);
   void removeUser(User user, Long id);
 
diff --git a/mozen/src/main/java/mozen/business/ModelManager.java b/mozen/src/main/java/mozen/business/ModelManager.java
index 2dc243625797e813e8824fdcf2d6a116392ef4ac..fd1daa802999a5d0247221cbd5678e79a6577879 100644
--- a/mozen/src/main/java/mozen/business/ModelManager.java
+++ b/mozen/src/main/java/mozen/business/ModelManager.java
@@ -3,6 +3,7 @@ package mozen.business;
 import java.util.Collection;
 import java.util.Date;
 import java.util.HashSet;
+import java.util.Optional;
 import java.util.Set;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +34,7 @@ public class ModelManager implements IModelManager {
   private TagRepository tagRepo;
 
   @Override
-  public Long addModel(ModelMessage message, User user) throws Exception {
+  public Model addModel(ModelMessage message, User user) throws Exception {
     Model model = new Model();
 
     System.err.println("[MODEL MANAGER] add model n:" + message.getName() + " sd:" + message.getShortDescription()
@@ -63,28 +64,23 @@ public class ModelManager implements IModelManager {
 
     modelRepo.save(model);
 
-    return model.getId();
+    return model;
   }
 
   @Override
   public void addModelFile(MultipartFile file, long id, User user) throws Exception {
-    System.err.println("[MODEL MANAGER] add model file 0");
     Model model = modelRepo.findById(id).get();
-    System.err.println("[MODEL MANAGER] add model file 1");
+
     if (model == null)
       throw new Exception("Unknown model");
     if (!UserHelper.isAuthor(model.getAuthor(), user))
       throw new Exception("Not the author");
-    
-    System.err.println("[MODEL MANAGER] add model file 2");
+
     model.setChecksum(Md5Utils.getMD5(file));
     model.setFile(file.getBytes());
     model.setFileType(file.getContentType());
 
-    System.err.println("[MODEL MANAGER] add model file 3");
-
     modelRepo.save(model);
-    System.err.println("[MODEL MANAGER] add model file 4");
   }
 
   @Override
@@ -145,12 +141,9 @@ public class ModelManager implements IModelManager {
 
   @Override
   public SearchResult findModel(String name, int page, int size, String sort) {
-    System.err.println("[MODEL MANAGER] search n:" + name + " p:" + page + " si:" + size + " so:" + sort);
     Pageable paging = PageRequest.of(page - 1, size, Sort.by(sort));
     Page<Model> resultPage = modelRepo.findByNameContainingIgnoreCase(name, paging);
 
-    System.err.println("[MODEL MANAGER] search result " + resultPage.getTotalElements());
-
     SearchResult result = new SearchResult();
     if (resultPage.hasContent()) {
       result.setTotalResult((int) resultPage.getTotalElements());
@@ -167,14 +160,10 @@ public class ModelManager implements IModelManager {
 
   @Override
   public SearchResult findModelWithTags(String name, int page, int size, String sort, Collection<String> tagsName) {
-    System.err.println(
-        "[MODEL MANAGER] search with tags n:" + name + " p:" + page + " si:" + size + " so:" + sort + " t:" + tagsName);
     Pageable paging = PageRequest.of(page - 1, size, Sort.by(sort));
     Collection<Tag> tags = tagRepo.findByNameIn(tagsName);
     Page<Model> resultPage = modelRepo.findDistinctByNameContainingIgnoreCaseAndTagsIn(name, tags, paging);
 
-    System.err.println("[MODEL MANAGER] search result " + resultPage.getTotalElements());
-
     SearchResult result = new SearchResult();
     if (resultPage.hasContent()) {
       result.setTotalResult((int) resultPage.getTotalElements());
@@ -191,7 +180,9 @@ public class ModelManager implements IModelManager {
 
   @Override
   public Model getModel(long id) {
-    return modelRepo.findById(id).get();
+    Optional<Model> model = modelRepo.findById(id);
+    if (model.isPresent()) return model.get();
+    else return null;
   }
 
   @Override
diff --git a/mozen/src/main/java/mozen/business/UserManager.java b/mozen/src/main/java/mozen/business/UserManager.java
index 84cb6c38c88e5dfc8e9e19ee68743f3691627c09..d2aac7fa7e0b3ee6dd063024b7f668aebb8d50c2 100644
--- a/mozen/src/main/java/mozen/business/UserManager.java
+++ b/mozen/src/main/java/mozen/business/UserManager.java
@@ -1,6 +1,7 @@
 package mozen.business;
 
 import java.util.Collection;
+import java.util.Optional;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -21,7 +22,7 @@ public class UserManager implements IUserManager {
   BCryptPasswordEncoder bCryptPasswordEncoder;
 
   @Override
-  public Long addUser(SignupMessage message) {
+  public User addUser(SignupMessage message) {
     System.err.println("[USER MANAGER] add new user u:" + message.getUsername() + " e:" + message.getEmail() + " p:"
         + message.getPassword());
     User u = new User();
@@ -31,7 +32,7 @@ public class UserManager implements IUserManager {
     u.setRole(Role.ROLE_DEFAULT);
 
     repo.save(u);
-    return u.getId();
+    return u;
   }
 
   @Override
@@ -47,7 +48,9 @@ public class UserManager implements IUserManager {
 
   @Override
   public User getUser(Long id) {
-    return repo.findById(id).get();
+    Optional<User> user = repo.findById(id);
+    if(user.isPresent()) return user.get();
+    else return null;
   }
 
   @Override
diff --git a/mozen/src/main/java/mozen/web/ModelController.java b/mozen/src/main/java/mozen/web/ModelController.java
index 6fab5277596463a1d0352bff6692145126db6441..0933527188064bc9d69cfde7b95d10caa140dde8 100644
--- a/mozen/src/main/java/mozen/web/ModelController.java
+++ b/mozen/src/main/java/mozen/web/ModelController.java
@@ -61,7 +61,7 @@ public class ModelController {
     }
 
     try {
-      long modelId = modelManager.addModel(message, user);
+      long modelId = modelManager.addModel(message, user).getId();
       response.setMessage(Long.toString(modelId));
     } catch (Exception e) {
       response.setError(true);
diff --git a/mozen/src/test/java/mozen/business/ModelManagerTest.java b/mozen/src/test/java/mozen/business/ModelManagerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9fce495a9489515f2b63980cb3031be0cc60cede
--- /dev/null
+++ b/mozen/src/test/java/mozen/business/ModelManagerTest.java
@@ -0,0 +1,117 @@
+package mozen.business;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.transaction.annotation.Transactional;
+
+import mozen.messages.ModelMessage;
+import mozen.model.Model;
+import mozen.model.User;
+
+@SpringBootTest
+public class ModelManagerTest {
+  
+  @Autowired
+  ModelManager modelManager;
+
+  @Test
+  @Transactional
+  void addModelTest () {
+    ModelMessage message = new ModelMessage();
+    message.setName("testmodel");
+    message.setShortDescription("this is short desc for testmodel");
+    message.setLongDescription("this is long desc for testmodel");
+    message.setPerformance(98.9);
+    message.setPerformanceUnit("test unit");
+    message.setParameterCount(84654);
+
+    User user = new User();
+    user.setUsername("test");
+    user.setEmail("test@test.com");
+    user.setUsername("1234");
+
+    try {
+      Model model = modelManager.addModel(message, user);
+
+      assertEquals(message.getName(), model.getName());
+      assertEquals(message.getShortDescription(), model.getShortDescription());
+      assertEquals(message.getLongDescription(), model.getLongDescription());
+      assertEquals(message.getParameterCount(), model.getParameterCount());
+      assertEquals(message.getPerformanceUnit(), model.getPerformanceUnit());
+      assertEquals(message.getPerformance(), model.getPerformance());
+      assertEquals(user.getUsername(), model.getAuthor().getUsername());
+      // check tags missing
+    } catch (Exception e) {
+      assertTrue(false);
+    }
+  }
+
+  @Test
+  @Transactional
+  void getModelTest () {
+    ModelMessage message = new ModelMessage();
+    message.setName("testmodel");
+    message.setShortDescription("this is short desc for testmodel");
+    message.setLongDescription("this is long desc for testmodel");
+    message.setPerformance(98.9);
+    message.setPerformanceUnit("test unit");
+    message.setParameterCount(84654);
+
+    User user = new User();
+    user.setUsername("test");
+    user.setEmail("test@test.com");
+    user.setUsername("1234");
+    
+    Model model;
+    try { model = modelManager.addModel(message, user);} catch (Exception e) {assertTrue(false); return;}
+
+    Model modelFind = modelManager.getModel(model.getId());
+    assertEquals(model, modelFind);
+  }
+
+  @Test
+  void getModelNotPresentTest () {
+    Model modelFind = modelManager.getModel(368436);
+
+    assertNull(modelFind);
+  }
+
+  @Test
+  @Transactional
+  void removeModelTest () {
+    ModelMessage message = new ModelMessage();
+    message.setName("testmodel");
+    message.setShortDescription("this is short desc for testmodel");
+    message.setLongDescription("this is long desc for testmodel");
+    message.setPerformance(98.9);
+    message.setPerformanceUnit("test unit");
+    message.setParameterCount(84654);
+
+    User user = new User();
+    user.setUsername("test");
+    user.setEmail("test@test.com");
+    user.setUsername("1234");
+    
+    Model model;
+    try { model = modelManager.addModel(message, user);} catch (Exception e) {assertTrue(false); return;}
+
+    try {
+      modelManager.removeModel(model.getId(), user);
+    } catch (Exception e) {
+      assertTrue(false);
+    }
+
+    try {
+      Model modelFind = modelManager.getModel(model.getId());
+      assertNull(modelFind);
+    } catch (Exception e) {
+      assertTrue(false);
+    }
+  }
+  
+}
\ No newline at end of file
diff --git a/mozen/src/test/java/mozen/business/UserManagerTest.java b/mozen/src/test/java/mozen/business/UserManagerTest.java
index 706b051ab60e17cbe02bfd0e9cd2138bf689ecb0..574a0e8df55bf18a9a35c532e456342d45c6510d 100644
--- a/mozen/src/test/java/mozen/business/UserManagerTest.java
+++ b/mozen/src/test/java/mozen/business/UserManagerTest.java
@@ -1,11 +1,85 @@
 package mozen.business;
 
-import org.junit.jupiter.api.extension.ExtendWith;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.transaction.annotation.Transactional;
+
+import mozen.messages.SignupMessage;
+import mozen.model.User;
 
-@ExtendWith(SpringExtension.class)
 @SpringBootTest
 public class UserManagerTest {
-  
+  @Autowired
+  UserManager userManager;
+
+  @Test
+  @Transactional
+  void addUserTest () {
+    SignupMessage message = new SignupMessage();
+    message.setEmail("test@test.com");
+    message.setUsername("testuser");
+    message.setPassword("1234");
+    
+    User user = userManager.addUser(message);
+
+    assertEquals(message.getEmail(), user.getEmail());
+    assertEquals(message.getUsername(), user.getUsername());
+    assertNotEquals(message.getPassword(), user.getPassword());
+  }
+
+  @Test
+  @Transactional
+  void getUserTest () {
+    User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
+
+    User userFind = userManager.getUser(user.getId());
+
+    assertEquals(user, userFind);
+  }
+
+  @Test
+  @Transactional
+  void getUserByUsernameTest () {
+    User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
+
+    User userFind = userManager.getUserByUsername(user.getUsername());
+
+    assertEquals(user, userFind);
+  }
+
+  @Test
+  void updateUserTest () {
+    assertTrue(true);
+  }
+
+  @Test
+  @Transactional
+  void removeUserTest () {
+    User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
+    Long id = user.getId();
+
+    userManager.removeUser(user, id);
+
+    User userFind = userManager.getUser(id);
+    assertNull(userFind);
+  }
+
+  @Test
+  @Transactional
+  void removeUserWrongTest () {
+    User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com"));
+    User user2 = userManager.addUser(new SignupMessage("testuser2", "1234", "test2@test.com"));
+    Long id = user.getId();
+    
+    userManager.removeUser(user2, id);
+
+    User userFind = userManager.getUser(id);
+    assertEquals(user, userFind);
+  }
 }
\ No newline at end of file
diff --git a/mozen/src/test/java/mozen/repos/UserRepositoryTest.java b/mozen/src/test/java/mozen/repos/UserRepositoryTest.java
deleted file mode 100644
index b83aacc575345f52c55b424fc19661be989a7778..0000000000000000000000000000000000000000
--- a/mozen/src/test/java/mozen/repos/UserRepositoryTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package mozen.repos;
-
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest
-public class UserRepositoryTest {
-  
-}
\ No newline at end of file