diff --git a/mapping_provider/__init__.py b/mapping_provider/__init__.py
index bce382c88b8cf4f7f02458b6d9e943da84b3fd05..0e871170c847936329e00e020bb7c23864699209 100644
--- a/mapping_provider/__init__.py
+++ b/mapping_provider/__init__.py
@@ -12,7 +12,7 @@ from fastapi import FastAPI
 
 from mapping_provider import config, environment
 from mapping_provider.api import common, map
-from mapping_provider.backends import correlator, services, cache
+from mapping_provider.backends import correlator, inventory, cache
 
 logger = logging.getLogger(__name__)
 
@@ -23,8 +23,6 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera
     if not app_config.rmq:
         return  # don't start any background tasks
 
-    assert cache.cache_dir is None  # sanity
-
     with tempfile.TemporaryDirectory() as _tmp_working_dir:
 
         cache.init(_tmp_working_dir)
@@ -41,7 +39,7 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera
         _correlator_thread.start()
 
         _inventory_thread = threading.Thread(
-            target=services.worker_proc,
+            target=inventory.worker_proc,
             daemon=True,
             kwargs={
                 'inventory_base_uri': app_config.inventory,
diff --git a/mapping_provider/backends/cache.py b/mapping_provider/backends/cache.py
index 16c81c6fc47cf11179b0d8fa641e344ec0338624..879ce54f07dee75dd13e93c10aaeb59a030619df 100644
--- a/mapping_provider/backends/cache.py
+++ b/mapping_provider/backends/cache.py
@@ -32,11 +32,11 @@ def set(filename: str, data: dict[str, Any]) -> None:
     logger.debug(f"wrote cached data: {filename}")
 
 
-def get(filename: str) -> dict[str, Any]:
+def get(filename: str) -> Any:
     """
     Loads the cached data, parses it as json & returns the object.
     """
     assert _cache_dir is not None, f"cache_dir hasn't been initialized"
     with open(os.path.join(_cache_dir, filename), 'r') as f:
         logger.debug(f"reading cached data: {filename}")
-        return json.load(f)
\ No newline at end of file
+        return json.load(f)
diff --git a/mapping_provider/backends/inventory.py b/mapping_provider/backends/inventory.py
index c0e15b1093a38c8ff83d0720815713208257833b..861dbc65ef38cc70b61738b80017bad66a725eeb 100644
--- a/mapping_provider/backends/inventory.py
+++ b/mapping_provider/backends/inventory.py
@@ -20,7 +20,7 @@ INPROV_MAP_SERVICES_CACHE_FILENAME = 'inprov-map-services.json'
 def _load_and_cache_json(
         key: str,
         url: str,
-        cache_filename: str) -> None:
+        cache_filename: str) -> dict[str, Any]:
     """
     Load the JSON from the URL, return and cache it.
 
diff --git a/mapping_provider/backends/services.py b/mapping_provider/backends/services.py
index ae8c537eb69f6d0b3cbd208934a11c67be4ca596..750c0cc2033d6715ff324a9d613009d0e6f04d35 100644
--- a/mapping_provider/backends/services.py
+++ b/mapping_provider/backends/services.py
@@ -18,6 +18,7 @@ class Overlays(BaseModel):
 
 class Service(BaseModel):
     sid: str
+    scid: str
     name: str
     type: str
     endpoints: list[Endpoint]
@@ -44,7 +45,7 @@ def _services(service_type: str | None = None) -> Generator[Service, None, None]
         logger.exception('not enough data available to build the service list')
         return
 
-    def _get_down_correlator_services():
+    def _get_down_correlator_services() -> Generator[str, None, None]:
         for _e in correlator_state['endpoints']:
             if _e['up']:
                 continue
@@ -88,4 +89,4 @@ def build_service_info_list(service_type: str | None = None) -> ServiceList:
     """
     return a list of mappable info about all operational services
     """  
-    return ServiceList(services=_services(service_type))
+    return ServiceList(services=list(_services(service_type)))