diff --git a/gga_load_data.py b/gga_load_data.py
index 4c18272240e1f291c598aff92873dd98a6df3d8e..9590fd5b852101bde5319165aacfd5ae5ea2ea0a 100755
--- a/gga_load_data.py
+++ b/gga_load_data.py
@@ -67,25 +67,22 @@ class LoadData(speciesData.SpeciesData):
         """
 
         logging.debug("Getting 'Homo sapiens' ID in chado database")
-        get_sapiens_id_job = self.instance.tools.run_tool(
+        get_sapiens_id_job_output_dataset_id = utilities.run_tool_and_get_single_output_dataset_id(self.instance,
             tool_id=GET_ORGANISMS_TOOL,
             history_id=self.history_id,
             tool_inputs={"genus": "Homo", "species": "sapiens"})
-        get_sapiens_id_job_output_dataset_id = get_sapiens_id_job["outputs"][0]["id"]
         get_sapiens_id_json_output = self.instance.datasets.download_dataset(dataset_id=get_sapiens_id_job_output_dataset_id)
+
+        logging.debug("Deleting Homo 'sapiens' in the instance's chado database")
         try:
-            logging.debug("Deleting Homo 'sapiens' in the instance's chado database")
             get_sapiens_id_final_output = json.loads(get_sapiens_id_json_output)[0]
-            sapiens_id = str(
-                get_sapiens_id_final_output["organism_id"])  # needs to be str to be recognized by the chado tool
-            self.instance.tools.run_tool(
+            sapiens_id = str(get_sapiens_id_final_output["organism_id"])  # needs to be str to be recognized by the chado tool
+            utilities.run_tool(
                 tool_id=DELETE_ORGANISMS_TOOL,
                 history_id=self.history_id,
-                tool_inputs={"organism": str(sapiens_id)})
-        except bioblend.ConnectionError:
-            logging.debug("Homo sapiens isn't in the instance's chado database (bioblend.ConnectionError)")
+                tool_inputs={"organism": sapiens_id})
         except IndexError:
-            logging.debug("Homo sapiens isn't in the instance's chado database (IndexError)")
+            logging.error("Homo sapiens isn't in the instance's chado database (IndexError)")
             pass
 
     def purge_histories(self):
@@ -98,7 +95,6 @@ class LoadData(speciesData.SpeciesData):
         """
 
         histories = self.instance.histories.get_histories()
-        self.instance.histories.get_histories(deleted=False)
         for h in histories:
             self.instance.histories.delete_history(history_id=h["id"])
 
diff --git a/utilities.py b/utilities.py
index 93c3e72d49d6709548402e87e3b14c2cd3945b9d..e633843af5a59c26f1109a9573420ae8f8ee06c6 100755
--- a/utilities.py
+++ b/utilities.py
@@ -6,6 +6,7 @@ import logging
 import sys
 import os
 import subprocess
+import bioblend
 
 
 def parse_config(config_file):
@@ -172,3 +173,24 @@ def get_unique_species_dict_list(sp_dict_list):
         unique_species_list_of_dict.append(v)
 
     return unique_species_list_of_dict
+
+def run_tool(instance, tool_id, history_id, tool_inputs):
+
+    output_dict = None
+    try:
+        logging.debug("Running tool {0} with tool inputs: {1}".format(tool_id, tool_inputs))
+        output_dict =  instance.tools.run_tool(
+            tool_id=tool_id,
+            history_id=history_id,
+            tool_inputs=tool_inputs)
+    except bioblend.ConnectionError:
+        logging.error("Unexpected HTTP response (bioblend.ConnectionError) when running tool {0} with tool inputs: {1}".format(tool_id, tool_inputs))
+
+    return output_dict
+
+def run_tool_and_get_single_output_dataset_id(instance, tool_id, history_id, tool_inputs):
+
+    output_dict = run_tool(instance, tool_id, history_id, tool_inputs)
+    single_output_dataset_id = output_dict["outputs"][0]["id"]
+
+    return single_output_dataset_id
\ No newline at end of file