diff --git a/backend/metagenedb/api/catalog/urls.py b/backend/metagenedb/api/catalog/urls.py
index 1d920ce0db195427839210f8471a266117d28b8e..f71083be3190f1610505b0052e27ceecc13c9585 100644
--- a/backend/metagenedb/api/catalog/urls.py
+++ b/backend/metagenedb/api/catalog/urls.py
@@ -1,5 +1,6 @@
 from django.urls import path
-from django.conf.urls import url, include
+from django.conf.urls import include
+from django.urls import re_path
 from rest_framework.routers import DefaultRouter, DynamicRoute, Route
 
 from metagenedb.api.catalog import views
@@ -64,7 +65,7 @@ api_router.register(r'statistics', views.StatisticsViewSet, basename='statistics
 
 
 urlpatterns = [
-    url(r'v1/', include((api_router.urls, 'v1'))),
+    re_path(r'v1/', include((api_router.urls, 'v1'))),
     path('admin/', include(('metagenedb.api.catalog.admin_urls', 'admin'))),
     path('celery-task-test/', test_task_view, name='celery-task-test'),
 ]
diff --git a/backend/metagenedb/common/utils/external_api/test_togows.py b/backend/metagenedb/common/utils/external_api/test_togows.py
index 1752ead8a0cd7140ae6fa6a964a92076a08d098f..88ad41c6e40d97d091ff507df7348023195df990 100644
--- a/backend/metagenedb/common/utils/external_api/test_togows.py
+++ b/backend/metagenedb/common/utils/external_api/test_togows.py
@@ -14,11 +14,11 @@ class TestGetFunctionExternalInfo(TestCase):
             external_info_retriever.get_details()
 
     def test_get_details_kegg(self):
-        with mock.patch('metagenedb.common.utils.external_api.togows.TogoWSEntryAPI') as MockTogoWSEntryAPI:
-            MockTogoWSEntryAPI.return_value.get.return_value = [{"info": "some_info"}]
+        with mock.patch('metagenedb.common.utils.external_api.togows.KEGGAPI') as MockKEGGAPI:
+            MockKEGGAPI.return_value.get.return_value.dict.return_value = {"info": "some_info"}
             test_url = "http://test.com/"
             test_id = "test_kegg_id"
-            MockTogoWSEntryAPI.return_value.url = test_url
+            MockKEGGAPI.return_value.url = test_url
             expected_dict = {
                 'info': 'some_info',
                 settings.API_KEY_ADDITIONAL_INFO: {
diff --git a/backend/metagenedb/common/utils/external_api/togows.py b/backend/metagenedb/common/utils/external_api/togows.py
index 560b55cad201bc84b471d73fb86151102e538c97..14ff0a76507f4b1f9f188b6786021046b33bdb49 100644
--- a/backend/metagenedb/common/utils/external_api/togows.py
+++ b/backend/metagenedb/common/utils/external_api/togows.py
@@ -2,7 +2,7 @@ import logging
 
 from django.conf import settings
 
-from dabeplech.togows import TogoWSEntryAPI
+from dabeplech import KEGGAPI
 
 
 logger = logging.getLogger(__name__)
@@ -21,8 +21,9 @@ class GetFunctionExternalInfo:
         """
         Get detailed information from KEGG orthology through Togows.
         """
-        kegg_api = TogoWSEntryAPI("kegg-orthology")
-        response = kegg_api.get(self.function_id)[0]
+        logger.info("Retrieving information from KEGG API")
+        kegg_api = KEGGAPI()
+        response = kegg_api.get(self.function_id).dict()
         response[settings.API_KEY_ADDITIONAL_INFO] = {
             'comment': f"Information retrieved from external source: {kegg_api.url}",
             'url': f"{kegg_api.url}{self.function_id}"
@@ -30,5 +31,4 @@ class GetFunctionExternalInfo:
         return response
 
     def get_details(self):
-        logger.info("Retrieving information from KEGG through togows")
         return getattr(self, f"_get_{self.source}", self._get_unknown_source)()
diff --git a/backend/metagenedb/common/utils/test_df_operations.py b/backend/metagenedb/common/utils/test_df_operations.py
index 502db40713ba2217d36ac1ffb899cdb6b7668b21..882da11bd8b5bc21d2c15ec36d60672c2d3bb575 100644
--- a/backend/metagenedb/common/utils/test_df_operations.py
+++ b/backend/metagenedb/common/utils/test_df_operations.py
@@ -1,7 +1,7 @@
 from unittest import TestCase
 
 import pandas as pd
-from pandas.util.testing import assert_series_equal
+from pandas.testing import assert_series_equal
 
 from metagenedb.common.utils.df_operations import get_mask
 
diff --git a/backend/metagenedb/urls.py b/backend/metagenedb/urls.py
index 03aa55aa3b56bfec4b9f90a9f53b2a326c66b501..17db747e2497b10ea5aeb7521124234a61e89981 100644
--- a/backend/metagenedb/urls.py
+++ b/backend/metagenedb/urls.py
@@ -14,12 +14,11 @@ Including another URLconf
     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 """
 from django.contrib import admin
-from django.urls import include, path
-from django.conf.urls import url
+from django.urls import include, path, re_path
 
 
 urlpatterns = [
     path('api/', include(('metagenedb.api.urls', 'api'))),
     path('admin/', admin.site.urls),
-    url(r'^ht/', include('health_check.urls')),
+    re_path(r'^ht/', include('health_check.urls')),
 ]
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 03de0946faba47fc72af0e1e490d79ef007bc3e2..3917125d0b90bba4bb9d80d0efdcae05abd2c6b4 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -5,6 +5,7 @@ services:
     container_name: backend
     build:
       context: ./backend
+    image: metagenedb-backend
     volumes:
       - ./backend:/code
       - django-static:/backend/public/static
@@ -73,13 +74,13 @@ services:
 
   celery:
     container_name: celery
-    build:
-      context: ./backend
+    image: metagenedb-backend
     volumes:
       - ./backend:/code
     depends_on:
       - postgresql
       - redis
+      - backend
     command: bash -c 'manage.py watch_celery'
     networks:
       - main
diff --git a/frontend/src/components/keggcard/keggcard.js b/frontend/src/components/keggcard/keggcard.js
index 5e783a1b90f2a66f69dd860f1b119d23b51fb885..fd92c8a1bff576275d65636e4ced36245058962f 100644
--- a/frontend/src/components/keggcard/keggcard.js
+++ b/frontend/src/components/keggcard/keggcard.js
@@ -69,7 +69,6 @@ export default {
         this.buildPathways(response),
         this.buildDiseases(response),
         this.buildModules(response),
-        this.buildReferences(response),
       ];
     },
     buildPathways(response) {
@@ -78,17 +77,19 @@ export default {
         icon: 'fas fa-bezier-curve',
         content: [],
       };
-      Object.entries(response.data.pathways).forEach(([key, value]) => {
-        pathways.content.push(
-          {
-            id: key,
-            name: value,
-            url: `https://www.genome.jp/kegg-bin/show_pathway?${key}+${this.keggId}`,
-            url_label: "Open in KEGG",
-            fetch: true,
-          },
-        );
-      });
+      if(response.data.pathways) {
+        Object.entries(response.data.pathways).forEach(([key, value]) => {
+          pathways.content.push(
+            {
+              id: key,
+              name: value,
+              url: `https://www.genome.jp/kegg-bin/show_pathway?${key}+${this.keggId}`,
+              url_label: "Open in KEGG",
+              fetch: true,
+            },
+          );
+        });
+      }
       return pathways;
     },
     buildModules(response) {
@@ -97,16 +98,18 @@ export default {
         icon: 'fas fa-bezier-curve',
         content: [],
       };
-      Object.entries(response.data.modules).forEach(([key, value]) => {
-        modules.content.push(
-          {
-            id: key,
-            name: value,
-            url: `https://www.genome.jp/kegg-bin/show_module?${key}+${this.keggId}`,
-            url_label: "Open in KEGG"
-          },
-        );
-      });
+      if(response.data.modules) {
+        Object.entries(response.data.modules).forEach(([key, value]) => {
+          modules.content.push(
+            {
+              id: key,
+              name: value,
+              url: `https://www.genome.jp/kegg-bin/show_module?${key}+${this.keggId}`,
+              url_label: "Open in KEGG"
+            },
+          );
+        });
+      }
       return modules;
     },
     buildDiseases(response) {
@@ -115,15 +118,17 @@ export default {
         icon: 'fas fa-laptop-medical',
         content: [],
       };
-      Object.entries(response.data.diseases).forEach(([key, value]) => {
-        diseases.content.push(
-          {
-            id: key,
-            name: value,
-            url: `https://www.genome.jp/dbget-bin/www_bget?ds:${key}`,
-          },
-        );
-      });
+      if(response.data.diseases) {
+        Object.entries(response.data.diseases).forEach(([key, value]) => {
+          diseases.content.push(
+            {
+              id: key,
+              name: value,
+              url: `https://www.genome.jp/dbget-bin/www_bget?ds:${key}`,
+            },
+          );
+        });
+      }
       return diseases;
     },
     buildReferences(response) {
@@ -132,16 +137,18 @@ export default {
         icon: 'fas fa-book-open',
         content: [],
       };
-      for (let i = 0; i < response.data.references.length; i++) {
-        references.content.push(
-          {
-            id: response.data.references[i].title,
-            name: `${response.data.references[i].authors[0]} et al. ${response.data.references[i].journal}`,
-            url: `https://www.ncbi.nlm.nih.gov/pubmed/${response.data.references[i].pubmed}`,
-            url_label: "Open in Pubmed"
-          },
-        );
-      };
+      if (response.data.references) {
+        for (let i = 0; i < response.data.references.length; i++) {
+          references.content.push(
+            {
+              id: response.data.references[i].title,
+              name: `${response.data.references[i].authors[0]} et al. ${response.data.references[i].journal}`,
+              url: `https://www.ncbi.nlm.nih.gov/pubmed/${response.data.references[i].pubmed}`,
+              url_label: "Open in Pubmed"
+            },
+          );
+        };
+      }
       return references;
     },
   },