diff --git a/mozen/src/main/java/mozen/business/IModelManager.java b/mozen/src/main/java/mozen/business/IModelManager.java
index 57bda0d3fbedc0dcdeb67361543330207a01cea8..df1c4bf23e1cc5e5672fb0f9f7a8a3135466c868 100644
--- a/mozen/src/main/java/mozen/business/IModelManager.java
+++ b/mozen/src/main/java/mozen/business/IModelManager.java
@@ -12,8 +12,10 @@ import mozen.model.User;
 public interface IModelManager {
   Long addModel(ModelMessage message, User user) throws Exception;
   void addModelFile(MultipartFile file, long id, User user) throws Exception;
-  void updateModel(Model model, long id, User user) throws Exception;
-  void removeModel(long id, User user) throws Exception;  
+  void updateModel(ModelMessage message, long id, User user) throws Exception;
+  void removeModel(long id, User user) throws Exception; 
+
+  void setVerified(long id, User user) throws Exception;
 
   Model getModel(long id);
   Collection<Model> getModels();
diff --git a/mozen/src/main/java/mozen/business/ModelManager.java b/mozen/src/main/java/mozen/business/ModelManager.java
index 214553808ed618a314558f1a0cf6994be377a598..aa10a51340a5b8d8a5324a115d9eab22666f77b8 100644
--- a/mozen/src/main/java/mozen/business/ModelManager.java
+++ b/mozen/src/main/java/mozen/business/ModelManager.java
@@ -56,6 +56,7 @@ public class ModelManager implements IModelManager {
       model.setTags(tags);
     }
 
+    model.setIsVerified(false);
     model.setVotes(0);
     model.setAdded(new Date());
     model.setLastModified(new Date());
@@ -89,15 +90,32 @@ public class ModelManager implements IModelManager {
   }
 
   @Override
-  public void updateModel(Model model, long id, User user) throws Exception {
-    Model modelToUpdate = modelRepo.findById(id).get();
+  public void updateModel(ModelMessage message, long id, User user) throws Exception {
+    Model model = modelRepo.findById(id).get();
 
-    if (modelToUpdate == null)
+    if (model == null)
       throw new Exception("Unknown model");
-    if (!UserHelper.isAuthor(modelToUpdate.getAuthor(), user))
+    if (!UserHelper.isAuthor(model.getAuthor(), user))
       throw new Exception("Not the author");
 
-    model.setId(id);
+    if (message.getName() != null) model.setName(message.getName());
+    if (message.getShortDescription() != null) model.setShortDescription(message.getShortDescription());
+    if (message.getLongDescription() != null) model.setLongDescription(message.getLongDescription());
+    
+    model.setPerformance(message.getPerformance());
+    if(message.getPerformanceUnit() != null) model.setPerformanceUnit(message.getPerformanceUnit());
+    model.setParameterCount(message.getParameterCount());
+
+    if (message.getTags() != null) {
+      Set<Tag> tags = new HashSet<Tag>();
+      for (String tagName : message.getTags()) {
+        Tag tag = tagRepo.findByName(tagName);
+        tags.add(tag);
+      }
+      model.setTags(tags);
+    }
+
+    model.setLastModified(new Date());
 
     modelRepo.save(model);
   }
@@ -114,6 +132,19 @@ public class ModelManager implements IModelManager {
     modelRepo.deleteById(id);
   }
 
+  @Override
+  public void setVerified(long id, User user) throws Exception {
+    Model model = modelRepo.findById(id).get();
+
+    if (model == null)
+      throw new Exception("Unknown model");
+    if (!UserHelper.isAuthor(model.getAuthor(), user))
+      throw new Exception("Not admin");
+
+    model.setIsVerified(!model.getIsVerified());
+    modelRepo.save(model);
+  }
+
   @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);
diff --git a/mozen/src/main/java/mozen/model/Model.java b/mozen/src/main/java/mozen/model/Model.java
index 83b993026fcf091f8a77c308372605ecaab95515..48fe0a2346ee082c1aad1c84861ad0d7ea504423 100644
--- a/mozen/src/main/java/mozen/model/Model.java
+++ b/mozen/src/main/java/mozen/model/Model.java
@@ -88,6 +88,10 @@ public class Model implements Serializable{
 	@Column
   private Long checksum;
 
+  @Basic
+  @Column
+  private boolean isVerified;
+
   @Basic
   @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
   private User author;
@@ -109,7 +113,7 @@ public class Model implements Serializable{
   public Model() {
   }
 
-  public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, int parameterCount, byte[] file, String fileType, Long checksum, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments) {
+  public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, int parameterCount, byte[] file, String fileType, Long checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments) {
     this.id = id;
     this.name = name;
     this.shortDescription = shortDescription;
@@ -123,6 +127,7 @@ public class Model implements Serializable{
     this.file = file;
     this.fileType = fileType;
     this.checksum = checksum;
+    this.isVerified = isVerified;
     this.author = author;
     this.tags = tags;
     this.customLayers = customLayers;
@@ -267,5 +272,16 @@ public class Model implements Serializable{
     this.comments = comments;
   }
 
+  public boolean isIsVerified() {
+    return this.isVerified;
+  }
+
+  public boolean getIsVerified() {
+    return this.isVerified;
+  }
+
+  public void setIsVerified(boolean isVerified) {
+    this.isVerified = isVerified;
+  }
 
 }
\ No newline at end of file
diff --git a/mozen/src/main/java/mozen/utils/UserHelper.java b/mozen/src/main/java/mozen/utils/UserHelper.java
index 21f6fd70d78e963221408aaef7b638dc530b0881..3054c20f3aed61e927305e7edc37d9f29b86ff0e 100644
--- a/mozen/src/main/java/mozen/utils/UserHelper.java
+++ b/mozen/src/main/java/mozen/utils/UserHelper.java
@@ -11,11 +11,15 @@ import mozen.model.User;
 public class UserHelper {
   
   public static boolean isAuthor(User author, User userToCheck) {
-    if (userToCheck.getRole() == Role.ROLE_ADMIN)
+    if (isAdmin(userToCheck))
       return true;
     return author == userToCheck;
   }
 
+  public static boolean isAdmin(User user) {
+    return user.getRole() == Role.ROLE_ADMIN;
+  }
+
   public static User getCurrentUser(IUserManager userManager) {
     Authentication auth = SecurityContextHolder.getContext().getAuthentication();
 
diff --git a/mozen/src/main/java/mozen/web/ModelController.java b/mozen/src/main/java/mozen/web/ModelController.java
index 21f9aacb698f6c4ed9bfeb001b86948de519d540..ed7e5b39020273a0aadc357a297ff4d8466b04de 100644
--- a/mozen/src/main/java/mozen/web/ModelController.java
+++ b/mozen/src/main/java/mozen/web/ModelController.java
@@ -57,7 +57,7 @@ public class ModelController {
     if(user == null) {
       response.setError(true);
       response.setMessage("User unknown");
-      return ResponseEntity.ok(response);
+      return ResponseEntity.badRequest().body(response);
     }
 
     try {
@@ -66,26 +66,28 @@ public class ModelController {
     } catch (Exception e) {
       response.setError(true);
       response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
     }
 
     return ResponseEntity.ok(response);
   }
 
   @PutMapping("")
-  public ResponseEntity<ResponseMessage> updateModel(@RequestParam(value = "id", required = true) Long id, @RequestBody @Valid Model model) {
+  public ResponseEntity<ResponseMessage> updateModel(@RequestParam(value = "id", required = true) Long id, @RequestBody @Valid ModelMessage message) {
     ResponseMessage response = new ResponseMessage(false, "");
     User user = UserHelper.getCurrentUser(userManager);
     if(user == null) {
       response.setError(true);
       response.setMessage("User unknown");
-      return ResponseEntity.ok(response);
+      return ResponseEntity.badRequest().body(response);
     }
 
     try {
-      modelManager.updateModel(model, id, user);
+      modelManager.updateModel(message, id, user);
     } catch (Exception e) {
       response.setError(true);
       response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
     }
 
     return ResponseEntity.ok(response);
@@ -98,7 +100,7 @@ public class ModelController {
     if(user == null) {
       response.setError(true);
       response.setMessage("User unknown");
-      return ResponseEntity.ok(response);
+      return ResponseEntity.badRequest().body(response);
     }
 
     try {
@@ -106,6 +108,28 @@ public class ModelController {
     } catch (Exception e) {
       response.setError(true);
       response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
+    }
+
+    return ResponseEntity.ok(response);
+  }
+
+  @GetMapping("/setVerified")
+  public ResponseEntity<ResponseMessage> setVerified(@RequestParam(value = "id", required = true) Long id) {
+    ResponseMessage response = new ResponseMessage(false, "");
+    User user = UserHelper.getCurrentUser(userManager);
+    if(user == null) {
+      response.setError(true);
+      response.setMessage("User unknown");
+      return ResponseEntity.badRequest().body(response);
+    }
+
+    try {
+      modelManager.setVerified(id, user);
+    } catch (Exception e) {
+      response.setError(true);
+      response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
     }
 
     return ResponseEntity.ok(response);
@@ -123,7 +147,7 @@ public class ModelController {
     if(user == null) {
       response.setError(true);
       response.setMessage("User unknown");
-      return ResponseEntity.ok(response);
+      return ResponseEntity.badRequest().body(response);
     }
   
     try {
@@ -132,6 +156,7 @@ public class ModelController {
     } catch (Exception e) {
       response.setError(true);
       response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
     }
 
     return ResponseEntity.ok(response);
@@ -150,8 +175,7 @@ public class ModelController {
     } catch (Exception e) {
       response.setError(true);
       response.setMessage(e.getMessage());
+      return ResponseEntity.badRequest().body(response);
     }
-
-    return ResponseEntity.ok(response);
   }
 }
\ No newline at end of file