diff --git a/README.md b/README.md
index f94cb49097fab97319d0aa231d22814ead2f211d..039e6bef69812f03f27b7b9e3b87a940a62c4ab1 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
 # Blob API
 
-This API handles the connection to the data stored in Coscine. 
+This API handles the connection to the research data stored in Coscine. 
   
+Metadata has to have been provided, before storing of research data can proceed.
+
+Check out the [docs](https://coscine.rwth-aachen.de/coscine/api/Coscine.Api.Blob/swagger). 
diff --git a/src/Blob/Controllers/BlobController.cs b/src/Blob/Controllers/BlobController.cs
index 226a8b9f082d11df5e716be83eab154f5fcb5e6b..d6bcf79441ee99bf5dd829e19df7b08ed14bb40d 100644
--- a/src/Blob/Controllers/BlobController.cs
+++ b/src/Blob/Controllers/BlobController.cs
@@ -1,4 +1,3 @@
-using Coscine.Api.Blob.Util;
 using Coscine.ApiCommons;
 using Coscine.Configuration;
 using Coscine.Database.DataModel;
@@ -36,6 +35,7 @@ namespace Coscine.Api.Blob.Controllers
         private readonly CoscineLogger _coscineLogger;
         private readonly AnalyticsLogObject _analyticsLogObject;
         private readonly RdfStoreConnector _rdfStoreConnector;
+        private readonly CoscineLDPHelper _coscineLDPHelper;
         private readonly string _prefix;
 
         /// <summary>
@@ -54,17 +54,7 @@ namespace Coscine.Api.Blob.Controllers
             _coscineLogger = new CoscineLogger(logger);
             _analyticsLogObject = new AnalyticsLogObject();
             _prefix = _configuration.GetStringAndWait("coscine/global/epic/prefix");
-        }
-
-        /// <summary>
-        /// Generates Id
-        /// </summary>
-        /// <param name="resourceId">Id of the resource</param>
-        /// <param name="path"> Path to file</param>
-        /// <returns> Uri </returns>
-        public Uri GenerateId(string resourceId, string path)
-        {
-            return new CustomUri($"https://hdl.handle.net/{_prefix}/{resourceId}@path={Uri.EscapeDataString(path)}");
+            _coscineLDPHelper = new CoscineLDPHelper(_rdfStoreConnector, _prefix);
         }
 
         /// <summary>
@@ -225,7 +215,7 @@ namespace Coscine.Api.Blob.Controllers
                 return BadRequest("Only one file can be uploaded per request.");
             }
 
-            var id = GenerateId(resourceId, $"/{path}");
+            var id = _coscineLDPHelper.GetId(resourceId, $"/{path}", true);
             if (!_rdfStoreConnector.HasGraph(id))
             {
                 return StatusCode((int)HttpStatusCode.Forbidden,
diff --git a/src/Blob/Util/CustomUri.cs b/src/Blob/Util/CustomUri.cs
deleted file mode 100644
index 1dfec1983a109c920320f1c7d8835daa3ace0666..0000000000000000000000000000000000000000
--- a/src/Blob/Util/CustomUri.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-
-namespace Coscine.Api.Blob.Util
-{
-    /// <summary>
-    /// Adapts the returned ToString of a Uri
-    /// </summary>
-    public class CustomUri : Uri
-    {
-        /// <summary>
-        /// Constructs a Custom Uri
-        /// </summary>
-        /// <param name="uri"></param>
-        public CustomUri(string uri) : base(uri)
-        {
-
-        }
-
-        /// <summary>
-        /// Overwrites the ToString for returning the AbsoluteUri (for dotNetRDF)
-        /// </summary>
-        /// <returns></returns>
-        public override string ToString()
-        {
-            return AbsoluteUri;
-        }
-    }
-}