diff --git a/src/calng/base_correction.py b/src/calng/base_correction.py
index 459ef83f37da4c27d289b9d0b71ff53f47252204..6d56b2d26d6508a079f32276dd85f0be995a8076 100644
--- a/src/calng/base_correction.py
+++ b/src/calng/base_correction.py
@@ -545,9 +545,7 @@ class BaseCorrection(PythonDevice):
             addon_prefix = f"addons.{addon_class.__name__}"
             if not self.get(f"{addon_prefix}.enable"):
                 continue
-            addon = addon_class(self._parameters[addon_prefix])
-            addon._device = self
-            addon._prefix = addon_prefix
+            addon = addon_class(self, addon_prefix, self._parameters[addon_prefix])
             self._enabled_addons.append(addon)
         if (
             (self.get("useShmemHandles") != self._use_shmem_handles)
diff --git a/src/calng/correction_addons/base_addon.py b/src/calng/correction_addons/base_addon.py
index b5578c1e5166948d5bbfbad8cf5075c28c477dd7..0a063bde862cecf7f5755aba34e8b53a14019d53 100644
--- a/src/calng/correction_addons/base_addon.py
+++ b/src/calng/correction_addons/base_addon.py
@@ -15,9 +15,10 @@ class BaseCorrectionAddon:
         and add properties to it."""
         pass
 
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
         """Will be given the node from extend_device_schema, no prefix needed here"""
-        pass
+        self._device = device
+        self._prefix = prefix
 
     def post_correction(
         self, train_id, processed_data, cell_table, pulse_table, output_hash
diff --git a/src/calng/correction_addons/integrated_intensity.py b/src/calng/correction_addons/integrated_intensity.py
index 5cfaad9ee436c64c66ecc05f43a2c76b3270b68a..188b6d4f26ac629a9a323d646aca54f120be2568 100644
--- a/src/calng/correction_addons/integrated_intensity.py
+++ b/src/calng/correction_addons/integrated_intensity.py
@@ -11,7 +11,8 @@ def maybe_get(a):
 
 
 class IntegratedIntensity(BaseCorrectionAddon):
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
+        super().__init__(device, prefix, config)
         global cupy
         import cupy
 
diff --git a/src/calng/correction_addons/litpixel_counter.py b/src/calng/correction_addons/litpixel_counter.py
index 7baa14fd506e2a45d2fab61a0944c85c66c05d42..cc1c9a4ca698dd2555f6fe7014d4c0b05dd84806 100644
--- a/src/calng/correction_addons/litpixel_counter.py
+++ b/src/calng/correction_addons/litpixel_counter.py
@@ -6,7 +6,8 @@ from .base_addon import BaseCorrectionAddon
 
 
 class LitPixelCounter(BaseCorrectionAddon):
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
+        super().__init__(device, prefix, config)
         global cupy
         import cupy
 
diff --git a/src/calng/correction_addons/peakfinder9.py b/src/calng/correction_addons/peakfinder9.py
index dba7421411a5b64371ffef2bbc99aaf9836685ae..1647350cb0e7e7a9cb567d99d77159e966a76d52 100644
--- a/src/calng/correction_addons/peakfinder9.py
+++ b/src/calng/correction_addons/peakfinder9.py
@@ -169,7 +169,8 @@ class Peakfinder9(BaseCorrectionAddon):
             except AttributeError:
                 pass
 
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
+        super().__init__(device, prefix, config)
         global cupy
         import cupy
 
diff --git a/src/calng/correction_addons/random_frames.py b/src/calng/correction_addons/random_frames.py
index d3447710323565099626cfa1bc29e6533b1ed172..bfbb78cf2a12681133081d5fc0c6c506543849a2 100644
--- a/src/calng/correction_addons/random_frames.py
+++ b/src/calng/correction_addons/random_frames.py
@@ -30,7 +30,8 @@ class RandomFrames(BaseCorrectionAddon):
             .commit(),
         )
 
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
+        super().__init__(device, prefix, config)
         # TODO: figure out why no / 100 here...
         self._probability = config["probability"]
 
diff --git a/src/calng/correction_addons/saturation_monitor.py b/src/calng/correction_addons/saturation_monitor.py
index 1c48a2196e06496db11a9208f3266f15f2afb259..31bcec59791bbe7957a9ee1830ffb48eb10829c2 100644
--- a/src/calng/correction_addons/saturation_monitor.py
+++ b/src/calng/correction_addons/saturation_monitor.py
@@ -87,7 +87,8 @@ def saturation_monitoring_schema(schema=None):
 
 
 class SaturationMonitor(BaseCorrectionAddon):
-    def __init__(self, config):
+    def __init__(self, device, prefix, config):
+        super().__init__(device, prefix, config)
         global cupy
         import cupy
         self._alarmThreshold = config["alarmThreshold"]