diff --git a/src/main/java/it/inaf/oats/vospace/CollectionsController.java b/src/main/java/it/inaf/oats/vospace/CollectionsController.java
index 4e08fd0fed764825d99789bfc873d88b3be87e87..b8710dfdb24f8885858622b4310bede8c40a9cd0 100644
--- a/src/main/java/it/inaf/oats/vospace/CollectionsController.java
+++ b/src/main/java/it/inaf/oats/vospace/CollectionsController.java
@@ -13,42 +13,61 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
  *
  * @author Nicola Fulvio Calabria <nicola.calabria at inaf.it>
  */
-
 @RestController
 public class CollectionsController {
-    
+
     private static final Logger LOG = LoggerFactory.getLogger(CollectionsController.class);
-    
+
     @Autowired
     private CollectionsService collectionsService;
-        
+
     // list collections owned by user
     @GetMapping(value = "/collections")
     public ResponseEntity<NodeCollectionsList> listCollections(
             HttpServletRequest request, User principal) {
-        LOG.debug("listCollections called for user {}", principal.getName());
-        
+        LOG.debug("list collections called for user {}", principal.getName());
+
         NodeCollectionsList ncl = new NodeCollectionsList();
-                
+
         ncl.setNodeCollections(
-                collectionsService.listCollections(principal.getName()));       
+                collectionsService.listCollections(principal.getName()));
 
         return ResponseEntity.ok(ncl);
     }
-        
-    
+
     // create a new collection with specified title
-    
-    
+    @PutMapping(value = "/collections")
+    public ResponseEntity<String> createCollection(
+            @RequestBody String collectionName, User principal) {
+        LOG.debug("create collection called with name {} called for user {}", 
+                collectionName, principal.getName());       
+
+        collectionsService.createNewCollection(collectionName, principal.getName());
+
+        return ResponseEntity.ok("Collection created");
+    }
+
     // delete collection by id
-    
-    
+    @DeleteMapping(value = "/collections")
+    public ResponseEntity<String> deleteCollection(
+            @RequestBody Long collectionId, User principal) {
+        LOG.debug("delete collection called with id {} for user {}", 
+                collectionId, principal.getName());
+        
+        collectionsService.deleteCollectionById(collectionId, principal.getName());
+        
+        return ResponseEntity.ok("Collection deleted");
+                
+    }
     
 }
diff --git a/src/main/java/it/inaf/oats/vospace/CollectionsService.java b/src/main/java/it/inaf/oats/vospace/CollectionsService.java
index c7d8218d8dbd093d3189f2428e4925508c4b9bfb..79e89056419bff076556ed3a319c480d272c2846 100644
--- a/src/main/java/it/inaf/oats/vospace/CollectionsService.java
+++ b/src/main/java/it/inaf/oats/vospace/CollectionsService.java
@@ -7,6 +7,7 @@ package it.inaf.oats.vospace;
 
 import it.inaf.oats.vospace.persistence.CollectionsDAO;
 import it.inaf.oats.vospace.datamodel.collections.NodeCollection;
+import it.inaf.oats.vospace.exception.PermissionDeniedException;
 import java.util.ArrayList;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,12 +33,32 @@ public class CollectionsService {
         if (isUserAuthenticated(userId)) {
             result.addAll(
                     collectionsDAO.getUserNodeCollections(userId));
+        } else {
+            throw new PermissionDeniedException("Authentication required");
         }
 
         return result;
 
     }
 
+    public void createNewCollection(String collectionTitle, String userId) {
+        if (isUserAuthenticated(userId)) {
+            collectionsDAO.createNewCollection(collectionTitle, userId);
+        } else {
+            throw new PermissionDeniedException("Authentication required");
+        }
+    }
+
+    public void deleteCollectionById(Long collectionId, String userId) {
+        if(isUserAuthenticated(userId))
+        {
+            // TODO: Implement delete
+            throw new UnsupportedOperationException("delete collection");
+        } else {
+            throw new PermissionDeniedException("Authentication required");
+        }
+    }
+   
     private boolean isUserAuthenticated(String userId) {
         return userId != null
                 && !userId.equals("anonymous");
diff --git a/src/main/java/it/inaf/oats/vospace/DeleteNodeController.java b/src/main/java/it/inaf/oats/vospace/DeleteNodeController.java
index b714c9481b45cbcb4adb34d671669baaab877745..09cd994ba1a982047f6c64813251ea36f55f1ef4 100644
--- a/src/main/java/it/inaf/oats/vospace/DeleteNodeController.java
+++ b/src/main/java/it/inaf/oats/vospace/DeleteNodeController.java
@@ -10,7 +10,6 @@ import javax.servlet.http.HttpServletRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
diff --git a/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
index c97d438ae9c4643778411abdb8f5102557c7edbb..d520bfc03eeac165da07d951feb757f1ac121a99 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/CollectionsDAO.java
@@ -30,7 +30,7 @@ public class CollectionsDAO {
         jdbcTemplate = new JdbcTemplate(dataSource);
     }
 
-    void createNewCollection(String title, String ownerId) {
+    public void createNewCollection(String title, String ownerId) {
 
         String sql = "INSERT INTO collections (title, owner_id) VALUES (?,?)";