diff --git a/src/Tree/App.config b/src/Tree/App.config
index fc9a954f5d50eac03ef5da1f2dd8452ec1892a1c..1d6b42ea964f8595b6acbc9eb77cc2b59aa5a615 100644
--- a/src/Tree/App.config
+++ b/src/Tree/App.config
@@ -149,7 +149,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Coscine.Database" publicKeyToken="767d77427707b70a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.21.0.0" newVersion="1.21.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.22.2.0" newVersion="1.22.2.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" />
diff --git a/src/Tree/Controllers/TreeController.cs b/src/Tree/Controllers/TreeController.cs
index c2f6a04198267994ba806509e594c3d3ece91da3..9ee59af5e906a69598f22e862870897aa272627b 100644
--- a/src/Tree/Controllers/TreeController.cs
+++ b/src/Tree/Controllers/TreeController.cs
@@ -59,7 +59,8 @@ namespace Coscine.Api.Tree.Controllers
 
         public Uri GenerateId(string resourceId, string path)
         {
-            return new Uri($"https://purl.org/coscine/md/{resourceId}/{path}/".ToLower());
+            var escapedPath = Uri.EscapeDataString(Uri.UnescapeDataString(path));
+            return new Uri($"https://purl.org/coscine/md/{resourceId}/{escapedPath}/".ToLower());
         }
 
         [HttpGet("[controller]/{resourceId}/{path}")]
@@ -86,7 +87,7 @@ namespace Coscine.Api.Tree.Controllers
             }
 
             var provider = GetResourceTypeName(resource);
-            var infos = await _waterbutlerInterface.GetObjectInfoAsync(HttpUtility.UrlDecode(path), provider, authHeader);
+            var infos = await _waterbutlerInterface.GetObjectInfoAsync(Uri.UnescapeDataString(path), provider, authHeader);
 
             // Not found
             if (infos == null)
@@ -98,7 +99,7 @@ namespace Coscine.Api.Tree.Controllers
 
             foreach (var info in infos)
             {
-                var id = GenerateId(resourceId, HttpUtility.UrlEncode(info.Path));
+                var id = GenerateId(resourceId, info.Path);
                 if (_util.HasGraph(id))
                 {
                     var graph = _util.GetGraph(id);
@@ -121,7 +122,7 @@ namespace Coscine.Api.Tree.Controllers
         public IActionResult StoreMetadataForFile(string resourceId, string path)
         {
             var innerBlock = ObjectFactory<JToken>.DeserializeFromStream(Request.Body);
-            var graphNameUri = (GenerateId(resourceId, path));
+            var graphNameUri = GenerateId(resourceId, path);
 
             var json = new JObject
             {
@@ -205,7 +206,6 @@ namespace Coscine.Api.Tree.Controllers
             {
                 return BadRequest("Data has the wrong format!");
             }
-
             // store the data
             if (_util.HasGraph(graphNameUri))
             {
diff --git a/src/Tree/Program.cs b/src/Tree/Program.cs
index 61ac6abcdc2d4bb69ba41aef436c250a0ceb58d9..4e62cb67a975129085ad641d4ad86f9d3492c9db 100644
--- a/src/Tree/Program.cs
+++ b/src/Tree/Program.cs
@@ -7,6 +7,7 @@ namespace Coscine.Api.Tree
     {
         public static void Main()
         {
+            System.Net.ServicePointManager.DefaultConnectionLimit = int.MaxValue;
             InitializeWebService<Startup>();
         }
     }
diff --git a/src/Tree/Tree.csproj b/src/Tree/Tree.csproj
index 50b7175f3a259517c200cb25dd3fa449aacf868a..48f142896995e40d4bb4e14ade4e253e43f4b8fe 100644
--- a/src/Tree/Tree.csproj
+++ b/src/Tree/Tree.csproj
@@ -45,8 +45,8 @@
     <Reference Include="Consul, Version=0.7.2.6, Culture=neutral, PublicKeyToken=20a6ad9a81df1d95, processorArchitecture=MSIL">
       <HintPath>..\packages\Consul.0.7.2.6\lib\net45\Consul.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Api.WaterbutlerHelper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Api.WaterbutlerHelper.1.0.0-topic-802-refact0010\lib\net461\Coscine.Api.WaterbutlerHelper.dll</HintPath>
+    <Reference Include="Coscine.Api.WaterbutlerHelper, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Api.WaterbutlerHelper.1.1.0-topic-853-refact0003\lib\net461\Coscine.Api.WaterbutlerHelper.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.ApiCommons, Version=1.8.0.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.ApiCommons.1.8.0\lib\net461\Coscine.ApiCommons.dll</HintPath>
@@ -54,14 +54,14 @@
     <Reference Include="Coscine.Configuration, Version=1.5.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.Configuration.1.5.0\lib\net461\Coscine.Configuration.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Database, Version=1.21.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Database.1.21.0\lib\net461\Coscine.Database.dll</HintPath>
+    <Reference Include="Coscine.Database, Version=1.22.2.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Database.1.22.2-product-801-refa0003\lib\net461\Coscine.Database.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.Logging, Version=1.2.0.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.Logging.1.2.0\lib\net461\Coscine.Logging.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Metadata, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Metadata.1.1.2\lib\net461\Coscine.Metadata.dll</HintPath>
+    <Reference Include="Coscine.Metadata, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Metadata.1.3.0-topic-853-refact0001\lib\net461\Coscine.Metadata.dll</HintPath>
     </Reference>
     <Reference Include="dotNetRDF, Version=2.5.1.0, Culture=neutral, PublicKeyToken=6055ffe4c97cc780, processorArchitecture=MSIL">
       <HintPath>..\packages\dotNetRDF.2.5.1\lib\net40\dotNetRDF.dll</HintPath>
diff --git a/src/Tree/packages.config b/src/Tree/packages.config
index e9a44ed3b6eb53ba704af3fbdfd18826a0ad129e..20e9909c176b2a02d62a5cf2e17205ef92d6df7e 100644
--- a/src/Tree/packages.config
+++ b/src/Tree/packages.config
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="Consul" version="0.7.2.6" targetFramework="net461" />
-  <package id="Coscine.Api.WaterbutlerHelper" version="1.0.0-topic-802-refact0010" targetFramework="net461" />
+  <package id="Coscine.Api.WaterbutlerHelper" version="1.1.0-topic-853-refact0003" targetFramework="net461" />
   <package id="Coscine.ApiCommons" version="1.8.0" targetFramework="net461" />
   <package id="Coscine.Configuration" version="1.5.0" targetFramework="net461" />
-  <package id="Coscine.Database" version="1.21.0" targetFramework="net461" />
+  <package id="Coscine.Database" version="1.22.2-product-801-refa0003" targetFramework="net461" />
   <package id="Coscine.Logging" version="1.2.0" targetFramework="net461" />
-  <package id="Coscine.Metadata" version="1.1.2" targetFramework="net461" />
+  <package id="Coscine.Metadata" version="1.3.0-topic-853-refact0001" targetFramework="net461" />
   <package id="dotNetRDF" version="2.5.1" targetFramework="net461" />
   <package id="dotNetRDF.Data.Virtuoso" version="2.5.1" targetFramework="net461" />
   <package id="EntityFramework" version="6.2.0" targetFramework="net461" />