diff --git a/f500/collecting/Fairdom.py b/f500/collecting/Fairdom.py
index 43e7466920f9abb833658735a6de8adff8c5d2e5..05a25bba60a93fc2abee754f6a453430afe87005 100644
--- a/f500/collecting/Fairdom.py
+++ b/f500/collecting/Fairdom.py
@@ -33,7 +33,7 @@ class Fairdom:
         investigationJSON['data']['attributes']['description'] = "PlantEye data from NPEC"
         investigationJSON['data']['relationships'] = {}
         investigationJSON['data']['relationships']['projects'] = {}
-        investigationJSON['data']['relationships']['projects']['data'] = [{'id' : self.args.project , 'type' : 'projects'}]
+        investigationJSON['data']['relationships']['projects']['data'] = [{'id' : str(self.args.project) , 'type' : 'projects'}]
         return investigationJSON
 
     def createStudyJSON(self, study, investigationID):
@@ -46,7 +46,7 @@ class Fairdom:
         #studyJSON['data']['attributes']['policy'] = {'access':'view', 'permissions': [{'resource': {'id': '1','type': 'people'},'access': 'manage'}]}
         studyJSON['data']['relationships'] = {}
         studyJSON['data']['relationships']['investigation'] = {}
-        studyJSON['data']['relationships']['investigation']['data'] = {'id' : investigationID, 'type' : 'investigations'}
+        studyJSON['data']['relationships']['investigation']['data'] = {'id' : str(investigationID), 'type' : 'investigations'}
         return studyJSON
     
     def createAssayJSON(self, assay, studyID):
@@ -61,7 +61,7 @@ class Fairdom:
         #assayJSON['data']['attributes']['technology_type'] = {'uri' : "http://jermontology.org/ontology/JERMOntology#PlantEye"}
         assayJSON['data']['relationships'] = {}
         assayJSON['data']['relationships']['study'] = {}
-        assayJSON['data']['relationships']['study']['data'] = {'id' : studyID, 'type' : 'studies'}
+        assayJSON['data']['relationships']['study']['data'] = {'id' : str(studyID), 'type' : 'studies'}
         assayJSON['data']['relationships']['organisms'] = {}
         assayJSON['data']['relationships']['organisms']['data'] = [{'id' : str(self.args.organism), 'type' : 'organisms'}]
         return assayJSON
@@ -77,25 +77,27 @@ class Fairdom:
                                                                 'content-type': 'image/svg+xml'}]
         data_fileJSON['data']['relationships'] = {}
         data_fileJSON['data']['relationships']['projects'] = {}
-        data_fileJSON['data']['relationships']['projects']['data'] = [{'id' : self.args.project , 'type' : 'projects'}]
+        data_fileJSON['data']['relationships']['projects']['data'] = [{'id' : str(self.args.project) , 'type' : 'projects'}]
         return data_fileJSON
     
     def addSampleToAssayJSON(self, sampleID, assayJSON):
         if 'samples' not in assayJSON['data']['relationships']:
             assayJSON['data']['relationships']['samples'] = {} 
             assayJSON['data']['relationships']['samples']['data'] = []
-        assayJSON['data']['relationships']['samples']['data'].append({'id': sampleID, 'type': 'samples'})
+        assayJSON['data']['relationships']['samples']['data'].append({'id': str(sampleID), 'type': 'samples'})
 
     def addDataFileToAssayJSON(self, data_fileID, assayJSON):
         if 'data_files' not in assayJSON['data']['relationships']:
             assayJSON['data']['relationships']['data_files'] = {} 
             assayJSON['data']['relationships']['data_files']['data'] = []
-        assayJSON['data']['relationships']['data_files']['data'].append({'id': data_fileID, 'type': 'data_files'})
+        assayJSON['data']['relationships']['data_files']['data'].append({'id': str(data_fileID), 'type': 'data_files'})
 
     def addDataFilesToSampleJSON(self, assayJSON, sampleJSON):
         if 'data_files' not in sampleJSON['data']['relationships']:
-            sampleJSON['data']['relationships']['data_files'] = []
-        sampleJSON['data']['relationships']['data_files'].extend(assayJSON['data']['relationships']['data_files'])
+            sampleJSON['data']['relationships']['data_files'] = {}
+            sampleJSON['data']['relationships']['data_files']['data'] = [] 
+        if 'data_files' in assayJSON['data']['relationships']:
+            sampleJSON['data']['relationships']['data_files']['data'].extend(assayJSON['data']['relationships']['data_files']['data'])
 
     
     def createSampleJSON(self, sample):
@@ -107,9 +109,9 @@ class Fairdom:
         sampleJSON['data']['attributes']['attribute_map'] = {'PotID' : sample.name}
         sampleJSON['data']['relationships'] = {}
         sampleJSON['data']['relationships']['projects'] = {}
-        sampleJSON['data']['relationships']['projects']['data'] = [{'id' : self.args.project, 'type' : 'projects'}]
+        sampleJSON['data']['relationships']['projects']['data'] = [{'id' : str(self.args.project), 'type' : 'projects'}]
         sampleJSON['data']['relationships']['sample_type'] = {}
-        sampleJSON['data']['relationships']['sample_type']['data'] = {'id' : self.args.sample_type, 'type' : 'sample_types'}        
+        sampleJSON['data']['relationships']['sample_type']['data'] = {'id' : str(self.args.sample_type), 'type' : 'sample_types'}        
         return sampleJSON
     
     def upload(self):
@@ -135,6 +137,7 @@ class Fairdom:
             else: 
                 self.logger.error("Could not create new study, error code {}".format(r.status_code))
                 exit(1)
+            countFiles = 0
             for assay in study.assays:
                 self.datafiles = {}
                 # Assays have none-unique names for now
@@ -143,20 +146,22 @@ class Fairdom:
                     self.currentAssays[assay.filename] = self.createAssayJSON(assay, studyID)
                 assayJSON = self.currentAssays[assay.filename]
                 # create add data files
-                for data_file in assay.data_files:
-                    if "derived" in data_file.filename: # for now, only upload phenotypic data
-                        if data_file.filename not in self.datafiles:
-                            self.datafiles[data_file.filename] = self.createDataFileJSON(data_file)
-                            r = self.session.post(self.args.URL + '/data_files', json=self.datafiles[data_file.filename])
-                            if r.status_code == 201 or r.status_code == 200:
-                                data_fileID = r.json()['data']['id']
-                                self.logger.info("Data file id {} created ({}). Status: {}".format(data_fileID, data_file.filename, r.status_code))
-                            else: 
-                                self.logger.error("Could not create new data file, error code {}".format(r.status_code))
-                                exit(1)
-                            self.datafiles[data_file.filename]['id'] = data_fileID
-                        data_fileJSON = self.datafiles[data_file.filename]
-                        self.addDataFileToAssayJSON(data_fileID, assayJSON)
+                if countFiles < 5 : # limit to about 500 files for now
+                    for data_file in assay.data_files:
+                        if "derived" in data_file.filename: # for now, only upload phenotypic data
+                            if data_file.filename not in self.datafiles:
+                                self.datafiles[data_file.filename] = self.createDataFileJSON(data_file)
+                                r = self.session.post(self.args.URL + '/data_files', json=self.datafiles[data_file.filename])
+                                if r.status_code == 201 or r.status_code == 200:
+                                    data_fileID = r.json()['data']['id']
+                                    self.logger.info("Data file id {} created ({}). Status: {}".format(data_fileID, data_file.filename, r.status_code))
+                                else: 
+                                    self.logger.error("Could not create new data file, error code {}".format(r.status_code))
+                                    exit(1)
+                                self.datafiles[data_file.filename]['id'] = data_fileID
+                                countFiles += 1
+                            data_fileJSON = self.datafiles[data_file.filename]
+                            self.addDataFileToAssayJSON(data_fileID, assayJSON)
                         
                 # create / register sample
                 for sample in assay.samples:
@@ -175,6 +180,9 @@ class Fairdom:
                             self.logger.info("Sample id {} created ({}). Status: {}".format(sampleID, sample.name, r.status_code))
                         else: 
                             self.logger.error("Could not create new sample, error code {}".format(r.status_code))
+                            if r.status_code == 422:
+                                self.logger.info(self.logger.info(self.samples[sample.name]))
+                                self.logger.info(r.json())
                             exit(1)
                     sampleID = self.samples[sample.name]['id']
                     self.addSampleToAssayJSON(sampleID, self.currentAssays[assay.filename] )
diff --git a/f500/collecting/deleteFAIRObject.py b/f500/collecting/deleteFAIRObject.py
index 843f1b1d9e710f298d9ee05cab7f8352bc409be2..7803180c6770ac4b4ec865091ad489cecf26345b 100644
--- a/f500/collecting/deleteFAIRObject.py
+++ b/f500/collecting/deleteFAIRObject.py
@@ -11,7 +11,7 @@ headers = {"Content-type": "application/vnd.api+json",
 session = requests.Session()
 session.headers.update(headers)
 
-for i in range(22726):
+for i in range(24077,24577):
     session.delete("https://test.fairdom-seek.bif.containers.wurnet.nl/data_files/{}".format(i))