diff --git a/brian_dashboard_manager/templating/nren_access.py b/brian_dashboard_manager/templating/nren_access.py
index 1f0a8194ca74f124f730342d978d732a2448526a..bf258ea240618a9127d8d184a8808ac9162fa27d 100644
--- a/brian_dashboard_manager/templating/nren_access.py
+++ b/brian_dashboard_manager/templating/nren_access.py
@@ -2,11 +2,10 @@ import json
 import os
 import jinja2
 from concurrent.futures import ProcessPoolExecutor
-from brian_dashboard_manager.templating.render import create_dropdown_panel, \
-    create_panel_target
+from brian_dashboard_manager.templating.render import create_dropdown_panel
 from brian_dashboard_manager.templating.helpers import \
     is_aggregate_interface, is_logical_interface, is_physical_interface, \
-    num_generator, gridPos_generator, letter_generator, \
+    num_generator, gridPos_generator, get_aggregate_targets, \
     get_panel_fields
 
 
@@ -66,37 +65,6 @@ id_gen = num_generator(start=3)
 gridPos = gridPos_generator(id_gen, start=1)
 
 
-# Aggregate panels have unique targets,
-# handle those here.
-def get_aggregate_targets(aggregates):
-    ingress = []
-    egress = []
-
-    # used to generate refIds
-    letters = letter_generator()
-
-    for target in aggregates:
-        ref_id = next(letters)
-        in_data = {
-            **target,
-            'alias': f"{target['alias']} - Ingress Traffic",
-            'refId': ref_id,
-            'select_field': 'ingress'
-        }
-        out_data = {
-            **target,
-            'alias': f"{target['alias']} - Egress Traffic",
-            'refId': ref_id,
-            'select_field': 'egress'
-        }
-        ingress_target = create_panel_target(in_data)
-        egress_target = create_panel_target(out_data)
-        ingress.append(ingress_target)
-        egress.append(egress_target)
-
-    return ingress, egress
-
-
 def get_panel_definitions(panels, datasource, errors=False):
     result = []
     for panel in panels: