diff --git a/core/group.py b/core/group.py
index 773f151e8f92f19553a88e0a9f60734d813dbbc5..99cf00cf775f034d69be6f29fd7d9bb77dba5f54 100644
--- a/core/group.py
+++ b/core/group.py
@@ -105,12 +105,10 @@ class Group(ProcessABC):
         self.concat_signals()
         # processed_signals = self.process_signals(grouped_signals)
 
-        return concated_signals
+        return self.concated_signals
         # return processed_signals
 
 
-# "/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01"
-# simulate poses
 poses = [
     x.name.split("store")[0]
     for x in Path(
diff --git a/core/processes/births.py b/core/processes/births.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5a0d9b4834ec8f46d6e0d1256c6dcaad2e460fe
--- /dev/null
+++ b/core/processes/births.py
@@ -0,0 +1 @@
+#!/usr/bin/env python3
diff --git a/core/processes/dsignal.py b/core/processes/dsignal.py
new file mode 100644
index 0000000000000000000000000000000000000000..a33234b3967e28c9642e9e102e4c03eda0063b8b
--- /dev/null
+++ b/core/processes/dsignal.py
@@ -0,0 +1,27 @@
+from postprocessor.core.processes.base import ParametersABC, ProcessABC
+from postprocessor.core.functions.tracks import clean_tracks, merge_tracks, join_tracks
+
+
+class dSignalParameters(ParametersABC):
+    """
+    :window: Number of timepoints to consider for signal.
+    """
+
+    def __init__(self, window):
+        super().__init__()
+
+    @classmethod
+    def default(cls):
+        return cls.from_dict({"window": 3})
+
+
+class dSignal(ProcessABC):
+    """
+    Calculate the change in a signal depending on a window
+    """
+
+    def __init__(self, parameters: ParametersTemplate):
+        super().__init__(parameters)
+
+    def run(self, signal: pd.DataFrame):
+        return signal.rolling(window=self.parameters.window, axis=1).mean().diff(axis=1)
diff --git a/examples/group.py b/examples/group.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e59978acca5cd34c7796cb65d93d95d1657773c
--- /dev/null
+++ b/examples/group.py
@@ -0,0 +1,21 @@
+from pathlib import Path
+
+from postprocessor.core.group import GroupParameters, Group
+
+poses = [
+    x.name.split("store")[0]
+    for x in Path(
+        "/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01"
+    ).rglob("*")
+    if x.name != "images.h5"
+]
+
+gr = Group(
+    GroupParameters(
+        signals=["/extraction/general/None/area", "/extraction/mCherry/np_max/median"]
+    )
+)
+gr.run(
+    central_store="/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01",
+    poses=poses,
+)
diff --git a/examples/signals.py b/examples/signals.py
new file mode 100644
index 0000000000000000000000000000000000000000..2008c8fdb1dbd5fa689c28913a37605db57fe525
--- /dev/null
+++ b/examples/signals.py
@@ -0,0 +1,5 @@
+from postprocessor.core.io.signals import Signal
+
+signal = Signal(
+    "/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01/ph_5_04_001store.h5"
+)