diff --git a/core/processes/merger.py b/core/processes/merger.py
index 259d752fb1130ee52eaf1e20c106dfb0ccd79594..6132e72544660314ff5b188a3731aa0ec7c887bb 100644
--- a/core/processes/merger.py
+++ b/core/processes/merger.py
@@ -2,7 +2,7 @@ from postprocessor.core.processes.base import ParametersABC, ProcessABC
 from postprocessor.core.functions.tracks import clean_tracks, merge_tracks, join_tracks
 
 
-class MergerParameters(ParametersABC):
+class mergerParameters(ParametersABC):
     """
     :param tol: float or int threshold of average (prediction error/std) necessary
         to consider two tracks the same. If float is fraction of first track,
@@ -43,7 +43,7 @@ class MergerParameters(ParametersABC):
         )
 
 
-class Merger(ProcessABC):
+class merger(ProcessABC):
     """
     TODO Integrate functions/tracks.py inside this class?
     """
diff --git a/core/processes/picker.py b/core/processes/picker.py
index 9ddd72813147f10dca026872af5871493324aefb..8be722eb609c598f6d21f425fb8a6c798dcb53f2 100644
--- a/core/processes/picker.py
+++ b/core/processes/picker.py
@@ -10,7 +10,7 @@ from postprocessor.core.processes.base import ParametersABC, ProcessABC
 from postprocessor.core.functions.tracks import max_ntps, max_nonstop_ntps
 
 
-class PickerParameters(ParametersABC):
+class pickerParameters(ParametersABC):
     def __init__(
         self,
         condition: Tuple[str, Union[float, int]] = None,
@@ -32,7 +32,7 @@ class PickerParameters(ParametersABC):
         )
 
 
-class Picker(ProcessABC):
+class picker(ProcessABC):
     """
     :cells: Cell object passed to the constructor
     :condition: Tuple with condition and associated parameter(s), conditions can be
@@ -43,7 +43,7 @@ class Picker(ProcessABC):
 
     def __init__(
         self,
-        parameters: PickerParameters,
+        parameters: pickerParameters,
         cells: CellsHDF,
     ):
         super().__init__(parameters=parameters)
diff --git a/core/processes/savgol.py b/core/processes/savgol.py
index b006c42202139221db68dd4f77df3b67a51612d0..cd4da13809109a8b79c9d09520181a865cca23c9 100644
--- a/core/processes/savgol.py
+++ b/core/processes/savgol.py
@@ -1,7 +1,8 @@
+import pandas as pd
 from postprocessor.core.processes.base import ParametersABC, ProcessABC
 
 
-class SavgolParameters(ParametersABC):
+class savgolParameters(ParametersABC):
     """
     Parameters
 
@@ -21,13 +22,13 @@ class SavgolParameters(ParametersABC):
         return cls.from_dict({"window": 3, "polynom": 3})
 
 
-class Savgol(ProcessABC):
+class savgol(ProcessABC):
     """
     Apply Savitzky-Golay filter (works with NaNs, but it might return
     NaN regions).
     """
 
-    def __init__(self, parameters: SavgolParameters):
+    def __init__(self, parameters: savgolParameters):
         super().__init__(parameters)
 
     def run(self, signal: pd.DataFrame):
diff --git a/core/processor.py b/core/processor.py
index 87bc475fc5ebd73dd46c5e35263c31aa481eaaf1..6673d60cb447ee09f6d1e49a53125584661489a9 100644
--- a/core/processor.py
+++ b/core/processor.py
@@ -1,9 +1,10 @@
+from pydoc import locate
 from typing import List, Dict, Union
 import pandas as pd
 
 from postprocessor.core.processes.base import ParametersABC
-from postprocessor.core.processes.merger import MergerParameters, Merger
-from postprocessor.core.processes.picker import PickerParameters, Picker
+from postprocessor.core.processes.merger import mergerParameters, merger
+from postprocessor.core.processes.picker import pickerParameters, picker
 from core.io.writer import Writer
 from core.io.signal import Signal
 
@@ -23,11 +24,9 @@ class PostProcessorParameters(ParametersABC):
     """
 
     def __init__(self, merger=None, picker=None, processes=[]):
-        self.merger: MergerParameters = merger
-        self.picker: PickerParameters = picker
-        self.processes: List = processes
-
-        self.datasets: Dict = datasets
+        self.merger: mergerParameters = merger
+        self.picker: pickerParameters = picker
+        self.processes: Dict = processes
 
     def __getitem__(self, item):
         return getattr(self, item)
@@ -36,9 +35,9 @@ class PostProcessorParameters(ParametersABC):
     def default(cls, kind=None):
         if kind == "defaults" or kind == None:
             return cls(
-                merger=MergerParameters.default(),
-                picker=PickerParameters.default(),
-                datasets={
+                merger=mergerParameters.default(),
+                picker=pickerParameters.default(),
+                processes={
                     "merger": "/extraction/general/None/area",
                     "picker": "/extraction/general/None/area",
                     "processes": {"dSignal": ["/general/None/area"]},
@@ -56,21 +55,29 @@ class PostProcessor:
         self._writer = Writer(filename)
 
         # self.outpaths = parameters["outpaths"]
-        self.merger = Merger(parameters["merger"])
-        self.picker = Picker(
+        self.merger = merger(parameters["merger"])
+        self.picker = picker(
             parameters=parameters["picker"], cells=Cells.from_source(filename)
         )
-        self.processes = [
-            self.get_process(process) for process in parameters["processes"]
-        ]
+        self.process_dict = {
+            process: locate(process) for process in parameters["processes"].keys()
+        }
+        self.processes = parameters["processes"]
+
+    @staticmethod
+    def get_process(process):
+        """
+        Get process from  folder ./processes
+        """
+        print(__file__)
+        return locate("postprocessor.core.processes." + process + "." + process)
 
     def run(self):
-        new_ids = self.merger.run(self._signal[self.datasets["merger"]])
+        new_ids = self.merger.run(self._signal[self.processes["merger"]])
         for name, ids in new_ids.items():
             self._writer.write(ids, "/postprocessing/cell_info/" + name)
-        picks = self.picker.run(self._signal[self.datasets["picker"]])
+        picks = self.picker.run(self._signal[self.processes["picker"][0]])
         return picks
-        # print(merge, picks)
         # for process, dataset, outpath in zip(
         #     self.processes, self.datasets["processes"], self.outpaths
         # ):