diff --git a/core/processes/aggregate.py b/core/processes/aggregate.py
index 2efff0755c80a1145a0fd840cb4572426ad7d1c5..cfe8e8f03ad5a5cb8ee4c1a58f1dcb837eaedc4f 100644
--- a/core/processes/aggregate.py
+++ b/core/processes/aggregate.py
@@ -12,13 +12,13 @@ class aggregateParameters(ParametersABC):
     reduction: str to be passed to a dataframe for collapsing across columns
     """
 
-    def __init__(self, reduction):
+    def __init__(self, reductions):
         super().__init__()
-        self.reduction = reduction
+        self.reductions = reductions
 
     @classmethod
     def default(cls):
-        return cls.from_dict({"reduction": "mean"})
+        return cls.from_dict({"reductions": ["mean", "median", "max"]})
 
 
 class aggregate(ProcessABC):
@@ -31,13 +31,14 @@ class aggregate(ProcessABC):
 
     def run(self, signals):
         names = np.array([signal.index.names for signal in signals])
-        if not np.all(names == names[0]):
-            "Not all indices are the same, selecting smallest set"
-            index = signals[0].index
-            for s in signals[0:]:
-                index = index.intersection(s.index)
+        index = signals[0].index
+        for s in signals[0:]:
+            index = index.intersection(s.index)
 
-            signals = [s.loc[index] for s in signals]
+        tmp_signals = [s.loc[index] for s in signals]
+        for i, s in enumerate(signals):
+            tmp_signals[i].name = s.name
+        signals = tmp_signals
 
         assert len(signals), "Signals is empty"
 
@@ -54,9 +55,17 @@ class aggregate(ProcessABC):
             for ind in item.split("/")
             if ind not in bad_words
         ]
-        colnames = ["_".join(get_keywords(s)) for s in signals]
+        colnames = [
+            "_".join(get_keywords(s) + [red])
+            for s in signals
+            for red in self.parameters.reductions
+        ]
         concat = pd.concat(
-            [getattr(signal, self.parameters.reduction)(axis=1) for signal in signals],
+            [
+                getattr(signal, red)(axis=1)
+                for signal in signals
+                for red in self.parameters.reductions
+            ],
             names=signals[0].index.names,
             axis=1,
         )
diff --git a/core/processes/picker.py b/core/processes/picker.py
index 23be1f70257d520e4b0ded677a09b4d8aa10332f..a7221e6f8146609a59921e3752826aedac6c3802 100644
--- a/core/processes/picker.py
+++ b/core/processes/picker.py
@@ -10,7 +10,7 @@ from utils_find_1st import find_1st, cmp_equal
 import numpy as np
 import pandas as pd
 
-from core.cells import CellsHDF
+from pcore.cells import CellsHDF
 
 from agora.base import ParametersABC, ProcessABC
 from postprocessor.core.functions.tracks import max_ntps, max_nonstop_ntps
diff --git a/core/processor.py b/core/processor.py
index 9e6130f608881ed36ef262a37c7549ef48345b08..81c54b6f19f60df1316223df87ad8dbb883c1ef3 100644
--- a/core/processor.py
+++ b/core/processor.py
@@ -8,10 +8,10 @@ import pandas as pd
 from tqdm import tqdm
 
 from agora.base import ParametersABC
-from core.io.writer import Writer
-from core.io.signal import Signal
+from pcore.io.writer import Writer
+from pcore.io.signal import Signal
 
-from core.cells import Cells
+from pcore.cells import Cells
 from postprocessor.core.processes.merger import mergerParameters, merger
 from postprocessor.core.processes.picker import pickerParameters, picker
 
@@ -82,15 +82,13 @@ class PostProcessorParameters(ParametersABC):
                                     "/extraction/em_ratio_bgsub/np_max/median",
                                     "/extraction/gsum/np_max/median",
                                     "/extraction/gsum/np_max/mean",
-                                    "/postprocessing/bud_metric/extraction_general_None_volume",
-                                    "/postprocessing/bud_metric/extraction_em_ratio_np_max_mean",
-                                    "/postprocessing/bud_metric/extraction_em_ratio_np_max_median",
+                                    "postprocessing/bud_metric/extraction_general_None_volume",
+                                    "postprocessing/bud_metric/extraction_em_ratio_np_max_mean",
+                                    "postprocessing/bud_metric/extraction_em_ratio_np_max_median",
                                     "postprocessing/dsignal/extraction_general_None_volume",
                                     "postprocessing/dsignal/postprocessing_bud_metric_extraction_general_None_volume",
                                     "postprocessing/dsignal/postprocessing_bud_metric_extraction_em_ratio_np_max_median",
                                     "postprocessing/dsignal/postprocessing_bud_metric_extraction_em_ratio_np_max_mean",
-                                    "postprocessing/dsignal/postprocessing_bud_metric_extraction_em_ratio_bgsub_np_max_median",
-                                    "postprocessing/dsignal/postprocessing_bud_metric_extraction_em_ratio_bgsub_np_max_mean",
                                 ]
                             ],
                         ),