diff --git a/beat/backend/python/algorithm.py b/beat/backend/python/algorithm.py
index 7db30cda3d8c64db56c042c284083dc6d200215e..b6b66f0ac5e7acfa897855152aeb099ddccfc617 100755
--- a/beat/backend/python/algorithm.py
+++ b/beat/backend/python/algorithm.py
@@ -63,9 +63,13 @@ class Storage(utils.CodeStorage):
             raise RuntimeError("invalid algorithm name: `%s'" % name)
 
         self.username, self.name, self.version = name.split('/')
-        self.prefix = prefix
         self.fullname = name
 
+        if isinstance(prefix, utils.Prefix):
+            self.prefix = prefix
+        else:
+            self.prefix = utils.Prefix(prefix)
+
         path = utils.hashed_or_simple(self.prefix, 'algorithms', name + '.json')
         path = path[:-5]
         super(Storage, self).__init__(path, language)
diff --git a/beat/backend/python/database.py b/beat/backend/python/database.py
index 089618867c4fc176865219eb23d2c8c6976613ef..8dceb0df8bc5888d3083c2800f9ec0074dc91c14 100755
--- a/beat/backend/python/database.py
+++ b/beat/backend/python/database.py
@@ -68,7 +68,12 @@ class Storage(utils.CodeStorage):
         self.name, self.version = name.split('/')
         self.fullname = name
 
-        path = prefix.path(os.path.join('databases', name + '.json'))
+        if isinstance(prefix, utils.Prefix):
+            self.prefix = prefix
+        else:
+            self.prefix = utils.Prefix(prefix)
+
+        path = self.prefix.path(os.path.join('databases', name + '.json'))
         path = path[:-5]
         super(Storage, self).__init__(path, 'python') #views are coded in Python
 
diff --git a/beat/backend/python/dataformat.py b/beat/backend/python/dataformat.py
index f28604f58dd3f300737513e2aaf6ad46668274a5..055f1ce37fbed94f42a7c05d7c47660685b9d356 100755
--- a/beat/backend/python/dataformat.py
+++ b/beat/backend/python/dataformat.py
@@ -64,7 +64,12 @@ class Storage(utils.Storage):
         self.username, self.name, self.version = name.split('/')
         self.fullname = name
 
-        path = utils.hashed_or_simple(prefix, 'dataformats', name + '.json')
+        if isinstance(prefix, utils.Prefix):
+            self.prefix = prefix
+        else:
+            self.prefix = utils.Prefix(prefix)
+
+        path = utils.hashed_or_simple(self.prefix, 'dataformats', name + '.json')
         path = path[:-5]
         super(Storage, self).__init__(path)
 
diff --git a/beat/backend/python/library.py b/beat/backend/python/library.py
index b02cac06f19c73ee508947cf2820e3ad06a99a9c..24ae4bb9c8212d755691d14eaf983f3524b9d095 100755
--- a/beat/backend/python/library.py
+++ b/beat/backend/python/library.py
@@ -29,7 +29,7 @@
 """Validation for libraries"""
 
 import os
-
+import six
 import simplejson
 
 from . import loader
@@ -58,9 +58,13 @@ class Storage(utils.CodeStorage):
             raise RuntimeError("invalid library name: `%s'" % name)
 
         self.username, self.name, self.version = name.split('/')
-        self.prefix = prefix
         self.fullname = name
 
+        if isinstance(prefix, utils.Prefix):
+            self.prefix = prefix
+        else:
+            self.prefix = utils.Prefix(prefix)
+
         path = utils.hashed_or_simple(self.prefix, 'libraries', name + '.json')
         path = path[:-5]
         super(Storage, self).__init__(path, language)