diff --git a/data/.gitignore b/data/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..6f8cd6338cce6b214cdbe5a3677699e24a5707cf
--- /dev/null
+++ b/data/.gitignore
@@ -0,0 +1 @@
+data.zip
diff --git a/docker-compose.yml b/docker-compose.yml
index aed9f483dedaf6cd6d3d2f181b4dc69d5214382e..05c85e64064e9b7d8b020a912b9355190bbfef6d 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -15,7 +15,7 @@ services:
       - drugstone_db_schema_volume:/usr/src/drugstone/drugstone/migrations
       - drugstone_data_volume:/usr/src/drugstone/data
     ports:
-      - 8002:8000
+      - 8001:8000
     networks:
       - drugstone_net
     depends_on:
@@ -26,8 +26,8 @@ services:
     container_name: drugstone_postgres
     restart: always
     hostname: drugstone_postgres
-#    ports:
-#      - 5432:5432
+    ports:
+      - 5432:5432
     networks:
       - drugstone_net
     volumes:
@@ -95,8 +95,8 @@ networks:
 
 volumes:
   drugstone_db_volume:
-    external: true
+#    external: true
   drugstone_db_schema_volume:
-    external: true
+#    external: true
   drugstone_data_volume:
-    external: true
\ No newline at end of file
+#    external: true
\ No newline at end of file
diff --git a/drugstone/management/commands/test.py b/drugstone/management/commands/test.py
deleted file mode 100644
index 4d01dd45c09e844124c1d244516d543bda8d9c58..0000000000000000000000000000000000000000
--- a/drugstone/management/commands/test.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import python_nedrex as nedrex
-from python_nedrex.core import get_nodes, get_edges, get_api_key
-from python_nedrex.static import get_metadata
-
-def iter_node_collection(coll_name, eval):
-    offset = 0
-    limit = 10000
-    while True:
-        result = get_nodes(coll_name, offset=offset, limit=limit)
-        if not result:
-            return
-        for node in result:
-            eval(node)
-        offset += limit
-
-
-def iter_edge_collection(coll_name, eval):
-    offset = 0
-    limit = 10000
-    while True:
-        result = get_edges(coll_name, offset=offset, limit=limit)
-        if not result:
-            return
-        for edge in result:
-            eval(edge)
-        offset += limit
-
-
-def iter_ppi(eval):
-    from python_nedrex import ppi
-    offset = 0
-    limit = 1000
-    while True:
-        result = ppi.ppis({"exp"},skip = offset, limit=limit)
-        if not result:
-            return
-        for edge in result:
-            eval(edge)
-        offset += limit
-
-base_url = "http://82.148.225.92:8123/"
-nedrex.config.set_url_base(base_url)
-api_key = get_api_key(accept_eula=True)
-nedrex.config.set_api_key(api_key)
-print(f'Nodes: {nedrex.core.get_node_types()}')
-print(f'Edges: {nedrex.core.get_edge_types()}')
-print(f'{get_metadata()}')
-
-
-iter_ppi(lambda node: print(node))
-# iter_edge_collection("gene_expressed_in_tissue", lambda node: {print(node)})
\ No newline at end of file
diff --git a/drugstone/models.py b/drugstone/models.py
index 4f160dbe5101281d53520f54a353835cf9c10570..5391a43d5383bf0ca5c3c5fbabe248714fada698 100755
--- a/drugstone/models.py
+++ b/drugstone/models.py
@@ -129,6 +129,9 @@ class Disorder(models.Model):
     def __ne__(self, other):
         return not self.__eq__(other)
 
+    def __hash__(self):
+        return hash((self.mondo_id, self.label, self.icd10))
+
     def update(self, other):
         self.mondo_id = other.mondo_id
         self.label = other.label
@@ -152,6 +155,9 @@ class Drug(models.Model):
     def __ne__(self, other):
         return not self.__eq__(other)
 
+    def __hash__(self):
+        return hash((self.drug_id, self.name, self.status))
+
     def update(self, other):
         self.drug_id = other.drug_id
         self.name = other.name
diff --git a/drugstone/views.py b/drugstone/views.py
index 6491d095b57ff99685997c02b63e6a61510e1b43..7822f3ab63e84c4c813a2d569fd290b8d3c0f207 100755
--- a/drugstone/views.py
+++ b/drugstone/views.py
@@ -531,7 +531,7 @@ def adjacent_disorders(request) -> Response:
     data = request.data
     if 'proteins' in data:
         drugstone_ids = data.get('proteins', [])
-        pdi_dataset = 'DisGeNET'
+        pdi_dataset = data.get('dataset','DisGeNET')
         # find adjacent drugs by looking at drug-protein edges
         pdis_objects = ProteinDisorderAssociation.objects.filter(protein__id__in=drugstone_ids,
                                                                  pdis_dataset__name=pdi_dataset)
@@ -541,7 +541,7 @@ def adjacent_disorders(request) -> Response:
         disorders = DisorderSerializer(many=True).to_representation(disorders)
     elif 'drugs' in data:
         drugstone_ids = data.get('drugs', [])
-        drdi_dataset = 'DrugBank'
+        drdi_dataset = data.get('dataset','DrugBank')
         # find adjacent drugs by looking at drug-protein edges
         drdi_objects = DrugDisorderIndication.objects.filter(drug__id__in=drugstone_ids,
                                                              drdi_dataset__name=drdi_dataset)
diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh
index 6dc4cd8b33ca3885b1507ec6296168651dcde399..c033d37ff042ec5966a07a83d151d164ae58caf5 100755
--- a/scripts/docker-entrypoint.sh
+++ b/scripts/docker-entrypoint.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-file="docker-entrypoint.lock"
+file="data/docker-entrypoint.lock"
 # exit if entrypoint.lock exists to prevent new import of data every time docker is restarted
 
 
@@ -13,7 +13,6 @@ if ! test -f "$file"; then
     python3 manage.py cleanuptasks
     python3 manage.py populate_db -u --all
     python3 manage.py make_graphs
-
     touch $file
 fi