diff --git a/include/core/processor/processor_diff_drive.h b/include/core/processor/processor_diff_drive.h
index 44496732262e024669c7592e51a3fdf7d5cc2277..98e7bfaa308e1a9c9d53efb19f3c047e62952ba8 100644
--- a/include/core/processor/processor_diff_drive.h
+++ b/include/core/processor/processor_diff_drive.h
@@ -34,8 +34,8 @@ class ProcessorDiffDrive : public ProcessorOdom2D
 {
     public:
         ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion);
+        WOLF_CREATE_PROCESSOR_AUTO(ProcessorDiffDrive, ProcessorParamsDiffDrive);
         static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params);
-        static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server);
         virtual ~ProcessorDiffDrive();
 
     protected:
diff --git a/include/core/processor/processor_odom_2D.h b/include/core/processor/processor_odom_2D.h
index 7edf655b449898c4744fca827a612ef6bd544461..e62f7a19bd8428fab07a3686f7d08de590af7b27 100644
--- a/include/core/processor/processor_odom_2D.h
+++ b/include/core/processor/processor_odom_2D.h
@@ -41,6 +41,7 @@ class ProcessorOdom2D : public ProcessorMotion
 {
     public:
         ProcessorOdom2D(ProcessorParamsOdom2DPtr _params);
+        WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom2D, ProcessorParamsOdom2D);
         virtual ~ProcessorOdom2D();
         virtual void configure(SensorBasePtr _sensor) override { };
 
@@ -95,7 +96,6 @@ class ProcessorOdom2D : public ProcessorMotion
         // Factory method
     public:
         static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params);
-        static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server);
 };
 
 inline Eigen::VectorXs ProcessorOdom2D::deltaZero() const
diff --git a/include/core/processor/processor_odom_3D.h b/include/core/processor/processor_odom_3D.h
index 35e559a3de2454664d82d932f9fb8ec7474c4d97..98bd95e4aec489c1d22ade5ec94689e0614f2762 100644
--- a/include/core/processor/processor_odom_3D.h
+++ b/include/core/processor/processor_odom_3D.h
@@ -61,6 +61,7 @@ class ProcessorOdom3D : public ProcessorMotion
 {
     public:
         ProcessorOdom3D(ProcessorParamsOdom3DPtr _params);
+        WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom3D, ProcessorParamsOdom3D);
         virtual ~ProcessorOdom3D();
         virtual void configure(SensorBasePtr _sensor) override;
 
diff --git a/src/processor/processor_diff_drive.cpp b/src/processor/processor_diff_drive.cpp
index f57e54a1d794e360b883116c860478a96360ed35..07bf75b344e1c9ccbafea0c5dfee8e1179b6e4b8 100644
--- a/src/processor/processor_diff_drive.cpp
+++ b/src/processor/processor_diff_drive.cpp
@@ -19,7 +19,7 @@ namespace wolf
 ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrivePtr _params) :
         ProcessorOdom2D(_params),
         params_prc_diff_drv_selfcal_(_params),
-        radians_per_tick_(0.0) // This params needs further initialization. See this->configure(sensor).
+        radians_per_tick_(0.0) // This param needs further initialization. See this->configure(sensor).
 {
     setType("DIFF DRIVE");  // overwrite odom2D setting
     calib_size_ = 3;        // overwrite odom2D setting
@@ -33,16 +33,10 @@ ProcessorDiffDrive::~ProcessorDiffDrive()
 
 ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params)
 {
-
-//    ProcessorDiffDrivePtr prc_ptr;
-
-//    std::shared_ptr<ProcessorParamsDiffDrive> params;
-//    if (_params)
-        auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
-//    else
-//        params = std::make_shared<ProcessorParamsDiffDrive>();
+    auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
 
     auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
+
     prc_ptr->setName(_unique_name);
 
     return prc_ptr;
@@ -183,17 +177,6 @@ FactorBasePtr ProcessorDiffDrive::emplaceFactor(FeatureBasePtr _feature,
     return fac_odom;
 }
 
-///////////// FACTORIES ///////////////
-
-ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server)
-{
-    auto params = std::make_shared<ProcessorParamsDiffDrive>(_unique_name, _server);
-
-    auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
-    prc_ptr->setName(_unique_name);
-
-    return prc_ptr;
-}
 
 } /* namespace wolf */
 
diff --git a/src/processor/processor_odom_2D.cpp b/src/processor/processor_odom_2D.cpp
index f3835649389f02583605c1290f17cbe081583fa0..e9b7dd34ac9ed073f6c68120b34293cd477e5fb1 100644
--- a/src/processor/processor_odom_2D.cpp
+++ b/src/processor/processor_odom_2D.cpp
@@ -178,16 +178,6 @@ ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const
     return prc_ptr;
 }
 
-ProcessorBasePtr ProcessorOdom2D::createAutoConf(const std::string& _unique_name, const ParamsServer& _server)
-{
-    auto params = std::make_shared<ProcessorParamsOdom2D>(_unique_name, _server);
-
-    auto prc_ptr = std::make_shared<ProcessorOdom2D>(params);
-
-    prc_ptr->setName(_unique_name);
-
-    return prc_ptr;
-}
 
 } /* namespace wolf */