diff --git a/jupyter-openbis-extension/dataset.py b/jupyter-openbis-extension/dataset.py
index d105181ad9c3ece30e790ccebb87b50011d94995..9a656c74d94a806a82ff8216b7dd1937f4a56d42 100644
--- a/jupyter-openbis-extension/dataset.py
+++ b/jupyter-openbis-extension/dataset.py
@@ -127,34 +127,45 @@ class DataSetUploadHandler(IPythonHandler):
                 return
 
         errors = []
+        print("--------------_HERE_-----------1")
 
         sample = None
         experiment = None
 
-        if (data.get('sampleIdentifier')):
+        if (data.get('entityIdentifier')):
             try:
-                sample = conn.openbis.get_sample(data.get('sampleIdentifier'))
+                sample = conn.openbis.get_sample(data.get('entityIdentifier'))
             except Exception as e:
-                print(e)
+                pass
+            if sample is None:
+                try:
+                    experiment = conn.openbis.get_experiment(data.get('entityIdentifier'))
+                except Exception as e:
+                    pass
+
+            if sample is None and experiment is None:
                 errors.append(
-                    {"sampleIdentifier" : 'No such sample: {}'.format(data.get('sampleIdentifier')) }
+                    {"entityIdentifier" : 'No such sample or experiment: {}'.format(data.get('entityIdentifier')) }
                 )
         else:
             errors.append(
-                {"sampleIdentifier": "please provide a sample identifier"}
+                {"entityIdentifier": "please provide a sample or experiment identifier"}
             )
-        print("--------------_HERE_-----------1")
 
-        if (data.get('experimentIdentifier')):
-            try:
-                experiment = conn.openbis.get_experiment(data.get('experimentIdentifier'))
-            except Exception as e:
-                print(e)
-                errors.append(
-                    {"experimentIdentifier" : 'No such experiment: {}'.format(data.get('experimentIdentifier')) }
-                )
         print("--------------_HERE_-----------2")
 
+        parents = []
+        if data.get('parents'):
+            parents = data.get('parents')
+            for parent in parents:
+                try:
+                    conn.openbis.get_dataset(parent)
+                except Exception as e:
+                    errors.append({
+                        "parent": "Parent DataSet not found: {}".format(parent)
+                    })
+
+        print("--------------_HERE_-----------2a")
 
         filenames = []
         for filename in data.get('files'):
@@ -171,6 +182,7 @@ class DataSetUploadHandler(IPythonHandler):
             dataset = conn.openbis.new_dataset(
                 type   = data.get('type'),
                 sample = sample,
+                parents = parents,
                 experiment = experiment,
                 files  = filenames,
             )
@@ -226,6 +238,8 @@ class DataSetUploadHandler(IPythonHandler):
                 'status': 200,
                 'statusText': 'Jupyter Notebook was successfully uploaded to: {} with permId: {}'.format(conn.name, dataset.permId)
             })
+
+        print('Jupyter Notebook was successfully uploaded to: {} with permId: {}'.format(conn.name, dataset.permId))
         print("--------------_HERE_-----------8")
 
     def post(self, **params):