diff --git a/bootstrap.py b/bootstrap.py
index 2b6ebeb766fecf86b72a8fe3af8c7285751a3df6..5eac2a5d6e5b8658fbb52d4199b53da846322934 100755
--- a/bootstrap.py
+++ b/bootstrap.py
@@ -94,10 +94,9 @@ example:
 def sort(args):
     logging.basicConfig(level=logging.WARNING)
     import util
-    data_path = os.path.join(args.sort_path, 'nims')
     quarantine_path = os.path.join(args.sort_path, 'quarantine')
-    if not os.path.exists(data_path):
-        os.makedirs(data_path)
+    if not os.path.exists(args.sort_path):
+        os.makedirs(args.sort_path)
     if not os.path.exists(quarantine_path):
         os.makedirs(quarantine_path)
     print 'initializing DB'
@@ -120,7 +119,7 @@ def sort(args):
             with open(filepath, 'rb') as fd:
                 for chunk in iter(lambda: fd.read(1048577 * hash_.block_size), ''):
                     hash_.update(chunk)
-        status, detail = util.insert_file(db.acquisitions, None, None, filepath, hash_.hexdigest(), data_path, quarantine_path)
+        status, detail = util.insert_file(db.acquisitions, None, None, filepath, hash_.hexdigest(), args.sort_path, quarantine_path)
         if status != 200:
             print detail
 
diff --git a/containers.py b/containers.py
index b25fb5cd863ca5260d268ff264d24ec9496abcc4..9c7ab41caa6dec556602cc44aae740a8f932e202 100644
--- a/containers.py
+++ b/containers.py
@@ -183,7 +183,7 @@ class Container(base.RequestHandler):
         except (ValueError, jsonschema.ValidationError) as e:
             self.abort(400, str(e))
         _id = bson.ObjectId(cid)
-        container, _ = self._get(_id, 'download')
+        container, _ = self._get(_id, 'ro')
         for file_info in container['files']:
             if 'name' in file_spec:
                 if file_info['name'] == file_spec['name'] and file_info['ext'] == file_spec['ext']:
@@ -324,7 +324,7 @@ class Container(base.RequestHandler):
         """Download one attachment."""
         fname = self.request.get('name')
         _id = bson.ObjectId(cid)
-        container, _ = self._get(_id, 'download')
+        container, _ = self._get(_id, 'ro')
         fpath = os.path.join(self.app.config['data_path'], str(_id)[-3:] + '/' + str(_id), fname)
         for a_info in container['attachments']:
             if (a_info['name'] + a_info['ext']) == fname:
@@ -344,7 +344,7 @@ class Container(base.RequestHandler):
         """Delete one attachment."""
         fname = self.request.get('name')
         _id = bson.ObjectId(cid)
-        container, _ = self._get(_id, 'download')
+        container, _ = self._get(_id, 'rw')
         fpath = os.path.join(self.app.config['data_path'], str(_id)[-3:] + '/' + str(_id), fname)
         for a_info in container['attachments']:
             if (a_info['name'] + a_info['ext']) == fname:
diff --git a/util.py b/util.py
index 21df542cd41ada15591afadae07d5194119db3e5..0980255b0fee0ed79df639a6932a9590d4857405 100644
--- a/util.py
+++ b/util.py
@@ -18,6 +18,7 @@ PROJECTION_FIELDS = ['timestamp', 'permissions', 'public']
 def insert_file(dbc, _id, file_info, filepath, digest, data_path, quarantine_path, flavor='file'):
     """Insert a file as an attachment or as a file."""
     filename = os.path.basename(filepath)
+    flavor += 's'
     if _id is None:
         try:
             log.info('Parsing     %s' % filename)
@@ -49,7 +50,6 @@ def insert_file(dbc, _id, file_info, filepath, digest, data_path, quarantine_pat
                 )
         filename = dataset.nims_file_name + dataset.nims_file_ext
     else:
-        flavor = flavor + 's'
         file_spec = dict(
                 _id=_id,
                 flavor={'$elemMatch': {