diff --git a/src/agora/io/signal.py b/src/agora/io/signal.py
index 4193178abb71a2ca81d03c7435725ef28ef2fc57..ea407f1b88cbcab220dfe37f75be7afc5a3b3946 100644
--- a/src/agora/io/signal.py
+++ b/src/agora/io/signal.py
@@ -38,33 +38,19 @@ class Signal(BridgeH5):
         )
         self.candidate_channels = global_parameters.possible_imaging_channels
 
-    def __getitem__(self, dsets: t.Union[str, t.Collection]):
-        """Get and potentially pre-process data from h5 file and return as a data frame."""
-        if isinstance(dsets, str):
-            return self.get(dsets)
-        elif isinstance(dsets, list):
-            is_bgd = [dset.endswith("imBackground") for dset in dsets]
-            # Check we are not comparing tile-indexed and cell-indexed data
-            assert sum(is_bgd) == 0 or sum(is_bgd) == len(
-                dsets
-            ), "Tile data and cell data cannot be mixed."
-            return [self.get(dset) for dset in dsets]
-        else:
-            raise Exception(f"Invalid type {type(dsets)} to get datasets")
-
     def get(
         self,
-        dset_name: t.Union[str, t.Collection],
+        dset: t.Union[str, t.Collection],
         tmax_in_mins: int = None,
     ):
         """Get Signal after merging and picking."""
-        if isinstance(dset_name, str):
-            dsets = self.get_raw(dset_name, tmax_in_mins=tmax_in_mins)
-            if dsets is not None:
-                picked_merged = self.apply_merging_picking(dsets)
-                return self.add_name(picked_merged, dset_name)
-            else:
-                return None
+        if isinstance(dset, str):
+            record = self.get_raw(dset, tmax_in_mins=tmax_in_mins)
+            if record is not None:
+                picked_merged = self.apply_merging_picking(record)
+                return self.add_name(picked_merged, dset)
+        elif isinstance(dset, list):
+            return [self.get(d) for d in dset]
         else:
             raise Exception("Error in Signal.get")
 
diff --git a/src/postprocessor/core/postprocessing.py b/src/postprocessor/core/postprocessing.py
index f7e0811aa45bf0ad6c9f30d56965ca2058ce12cc..dd61ea44c0eb2b292013d31fdc8f4412a715dfe6 100644
--- a/src/postprocessor/core/postprocessing.py
+++ b/src/postprocessor/core/postprocessing.py
@@ -144,7 +144,7 @@ class PostProcessor(ProcessABC):
         # run picker
         picked_indices = np.array(
             self.picker.run(
-                self.signal[self.targets["merging_picking"]["picker"]]
+                self.signal.get(self.targets["merging_picking"]["picker"])
             )
         )
         if picked_indices.any():
@@ -186,9 +186,9 @@ class PostProcessor(ProcessABC):
         """Run processes to obtain single data sets and write the results."""
         # get pre-processed data
         if isinstance(dataset, list):
-            signal = [self.signal[d] for d in dataset]
+            signal = [self.signal.get(d) for d in dataset]
         elif isinstance(dataset, str):
-            signal = self.signal[dataset]
+            signal = self.signal.get(dataset)
         else:
             raise ("Incorrect dataset")
         # run process on signal
diff --git a/src/postprocessor/core/reshapers/bud_metric.py b/src/postprocessor/core/reshapers/bud_metric.py
index bad8e4e96168d029eb539d81a052cc740098474a..803b126f99beef6d700911d46c6184141970f0f9 100644
--- a/src/postprocessor/core/reshapers/bud_metric.py
+++ b/src/postprocessor/core/reshapers/bud_metric.py
@@ -19,7 +19,7 @@ class BudMetricParameters(LineageProcessParameters):
 
 class BudMetric(LineageProcess):
     """
-    Create a dataframe with indices mother IDs and values from buds.
+    Create a data frame with indices mother IDs and values from buds.
 
     Requires mother-bud information.
     """