diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py
index 69da36bf491509215fec9a4a55a6b3d7c281f86f..a034dc639f1e65be2244252ecb90297b8b034432 100644
--- a/brian_dashboard_manager/grafana/provision.py
+++ b/brian_dashboard_manager/grafana/provision.py
@@ -390,7 +390,7 @@ def _interfaces_to_keep(interface, excluded_nrens):
     return should_keep
 
 
-def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token):
+def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_config, ds_name, token, interfaces, services, regions):
     """
     This function is used to provision most dashboards,
     overwriting existing ones.
@@ -403,10 +403,6 @@ def _provision_interfaces(thread_executor: ThreadPoolExecutor, config, org_confi
     :return: generator of dashboards that were created
     """
 
-    interfaces = get_interfaces(config['inventory_provider'])
-    services = fetch_services(config['reporting_provider'])
-    regions = get_nren_regions(config['inventory_provider'])
-
     excluded_nrens = org_config['excluded_nrens']
     excluded_folders = org_config.get('excluded_folders', {})
 
@@ -779,7 +775,7 @@ def _provision_orgs(config):
     return all_orgs
 
 
-def _provision_org(config, org, org_config):
+def _provision_org(config, org, org_config, interfaces, services, regions):
     try:
         request = AdminRequest(**config)
         org_id = org['id']
@@ -812,7 +808,7 @@ def _provision_org(config, org, org_config):
 
             # call to list is needed to queue up the futures
             managed_dashboards = list(itertools.chain(
-                _provision_interfaces(*args),
+                _provision_interfaces(*args, interfaces, services, regions),
                 _provision_gws_indirect(*args),
                 _provision_gws_direct(*args),
                 _provision_eumetsat_multicast(*args),
@@ -901,9 +897,11 @@ def provision(config):
             return None
 
     orgs = list(filter(lambda t: t[1] is not None, [(org, _find_org_config(org)) for org in all_orgs]))
-
+    interfaces = get_interfaces(config['inventory_provider'])
+    services = fetch_services(config['reporting_provider'])
+    regions = get_nren_regions(config['inventory_provider'])
     for org, org_config in orgs:
-        _provision_org(config, org, org_config)
+        _provision_org(config, org, org_config, interfaces, services, regions)
 
     logger.info(f'Time to complete: {time.time() - start}')