diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp
index ae1d3cc3d0fc2b860a66f7f0a1e454caaadd7b47..d12fa8b159203afac4067e7c87dc12f4857c58cc 100644
--- a/hello_wolf/processor_range_bearing.cpp
+++ b/hello_wolf/processor_range_bearing.cpp
@@ -100,8 +100,7 @@ void ProcessorRangeBearing::processCapture(CaptureBasePtr _capture)
 }
 
 ProcessorBasePtr ProcessorRangeBearing::create(const std::string& _unique_name,
-                                               const ProcessorParamsBasePtr _params,
-                                               const SensorBasePtr _sen_ptr)
+                                               const ProcessorParamsBasePtr _params)
 {
     auto params = std::static_pointer_cast<ProcessorParamsRangeBearing>(_params);
 
diff --git a/hello_wolf/processor_range_bearing.h b/hello_wolf/processor_range_bearing.h
index b5337425f2d98a77ea3fee10fd329c5d5609dd3c..4752972086b1473dc33b2bc382773b2f45b051e0 100644
--- a/hello_wolf/processor_range_bearing.h
+++ b/hello_wolf/processor_range_bearing.h
@@ -51,9 +51,8 @@ class ProcessorRangeBearing : public ProcessorBase
 
         // Factory method for high level API
         static ProcessorBasePtr create(const std::string& _unique_name,
-                                       const ProcessorParamsBasePtr _params,
-                                       const SensorBasePtr sensor_ptr = nullptr);
-        WOLF_CREATE_PROCESSOR_AUTO(ProcessorRangeBearing, ProcessorParamsRangeBearing, SensorRangeBearing);
+                                       const ProcessorParamsBasePtr _params);
+        WOLF_CREATE_PROCESSOR_AUTO(ProcessorRangeBearing, ProcessorParamsRangeBearing);
 
     protected:
         // Implementation of pure virtuals from ProcessorBase
diff --git a/include/core/processor/autoconf_processor_factory.h b/include/core/processor/autoconf_processor_factory.h
index 051b8d8578544f0fb4c195e5e591064b6b6f116f..418f488f9587388361dbfab8d015ad458732454e 100644
--- a/include/core/processor/autoconf_processor_factory.h
+++ b/include/core/processor/autoconf_processor_factory.h
@@ -167,8 +167,7 @@ namespace wolf
 
 typedef Factory<ProcessorBase,
         const std::string&,
-        const ParamsServer&,
-        const SensorBasePtr> AutoConfProcessorFactory;
+        const ParamsServer&> AutoConfProcessorFactory;
 template<>
 inline std::string AutoConfProcessorFactory::getClass()
 {
diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h
index 6d0159f7e695ca3f5d09628a5b78b3df553bd004..c940dbf5ffdeed1995138be4e015304b52bc6ec1 100644
--- a/include/core/processor/processor_base.h
+++ b/include/core/processor/processor_base.h
@@ -30,10 +30,9 @@ namespace wolf {
  *
  *   ProcessorClass(const SensorClassPtr _sensor, const ProcessorParamsClassPtr _params);
  */
-#define WOLF_CREATE_PROCESSOR_AUTO(ProcessorClass, ProcessorParamsClass, SensorClass)   \
+#define WOLF_CREATE_PROCESSOR_AUTO(ProcessorClass, ProcessorParamsClass)                \
 static ProcessorBasePtr createAutoConf(const std::string& _unique_name,                 \
-                                       const ParamsServer& _server,                     \
-                                       const SensorBasePtr _sensor)                     \
+                                       const ParamsServer& _server)                     \
 {                                                                                       \
     auto params     = std::make_shared<ProcessorParamsClass>(_unique_name, _server);    \
                                                                                         \
diff --git a/include/core/processor/processor_diff_drive.h b/include/core/processor/processor_diff_drive.h
index d1ffd344f06c5788382236eb83b4aaa76167f144..44496732262e024669c7592e51a3fdf7d5cc2277 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);
-        static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr sensor_ptr = nullptr);
-        static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr = nullptr);
+        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_factory.h b/include/core/processor/processor_factory.h
index 8b2fdb2472b99a6eb1271e63e0196a3f0459e699..4b305a83b944b371a36f151175d4d7ef63633d42 100644
--- a/include/core/processor/processor_factory.h
+++ b/include/core/processor/processor_factory.h
@@ -167,8 +167,7 @@ namespace wolf
 
 typedef Factory<ProcessorBase,
         const std::string&,
-        const ProcessorParamsBasePtr,
-        const SensorBasePtr> ProcessorFactory;
+        const ProcessorParamsBasePtr> ProcessorFactory;
 template<>
 inline std::string ProcessorFactory::getClass()
 {
diff --git a/include/core/processor/processor_odom_2D.h b/include/core/processor/processor_odom_2D.h
index de53f9fb400df6098785d144d11a9210dab9ebda..7edf655b449898c4744fca827a612ef6bd544461 100644
--- a/include/core/processor/processor_odom_2D.h
+++ b/include/core/processor/processor_odom_2D.h
@@ -94,8 +94,8 @@ class ProcessorOdom2D : public ProcessorMotion
 
         // Factory method
     public:
-        static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr sensor_ptr = nullptr);
-        static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr = nullptr);
+        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 7eab40c33609139afab9e59301c816400bdea95f..35e559a3de2454664d82d932f9fb8ec7474c4d97 100644
--- a/include/core/processor/processor_odom_3D.h
+++ b/include/core/processor/processor_odom_3D.h
@@ -129,8 +129,7 @@ class ProcessorOdom3D : public ProcessorMotion
     // Factory method
     public:
         static ProcessorBasePtr create(const std::string& _unique_name,
-                                       const ProcessorParamsBasePtr _params,
-                                       const SensorBasePtr sensor_ptr = nullptr);
+                                       const ProcessorParamsBasePtr _params);
 };
 
 inline Eigen::VectorXs ProcessorOdom3D::deltaZero() const
diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 9796de853c787ec17f31ab3384e9ab32e1b9837c..f330c67941257173e480400c7e5c8b7ddc6be149 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -177,7 +177,7 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, //
       return ProcessorBasePtr();
     }
 
-    ProcessorBasePtr prc_ptr = ProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _prc_params, _corresponding_sensor_ptr);
+    ProcessorBasePtr prc_ptr = ProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _prc_params);
     prc_ptr->configure(_corresponding_sensor_ptr);
     prc_ptr->link(_corresponding_sensor_ptr);
 
@@ -218,7 +218,7 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, //
     SensorBasePtr sen_ptr = getSensor(_corresponding_sensor_name);
     if (sen_ptr == nullptr)
         throw std::runtime_error("Cannot bind processor. Reason: Sensor \"" + _corresponding_sensor_name + "\" not found. Check sensor name, in must match in sensor and processor!");
-    ProcessorBasePtr prc_ptr = AutoConfProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _server, sen_ptr);
+    ProcessorBasePtr prc_ptr = AutoConfProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _server);
     prc_ptr->configure(sen_ptr);
     prc_ptr->link(sen_ptr);
 
diff --git a/src/processor/processor_diff_drive.cpp b/src/processor/processor_diff_drive.cpp
index 9552b46457d8e517eea02371a2315592a4ce0c42..f57e54a1d794e360b883116c860478a96360ed35 100644
--- a/src/processor/processor_diff_drive.cpp
+++ b/src/processor/processor_diff_drive.cpp
@@ -31,18 +31,18 @@ ProcessorDiffDrive::~ProcessorDiffDrive()
     //
 }
 
-ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr)
+ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params)
 {
 
-    ProcessorDiffDrivePtr prc_ptr;
+//    ProcessorDiffDrivePtr prc_ptr;
 
-    std::shared_ptr<ProcessorParamsDiffDrive> params;
-    if (_params)
-        params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
-    else
-        params = std::make_shared<ProcessorParamsDiffDrive>();
+//    std::shared_ptr<ProcessorParamsDiffDrive> params;
+//    if (_params)
+        auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
+//    else
+//        params = std::make_shared<ProcessorParamsDiffDrive>();
 
-    prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
+    auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
     prc_ptr->setName(_unique_name);
 
     return prc_ptr;
@@ -185,7 +185,7 @@ FactorBasePtr ProcessorDiffDrive::emplaceFactor(FeatureBasePtr _feature,
 
 ///////////// FACTORIES ///////////////
 
-ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr)
+ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server)
 {
     auto params = std::make_shared<ProcessorParamsDiffDrive>(_unique_name, _server);
 
diff --git a/src/processor/processor_odom_2D.cpp b/src/processor/processor_odom_2D.cpp
index 9253e23c08ca3b12e296c7c92a825f93ce6ee599..f3835649389f02583605c1290f17cbe081583fa0 100644
--- a/src/processor/processor_odom_2D.cpp
+++ b/src/processor/processor_odom_2D.cpp
@@ -167,28 +167,23 @@ FeatureBasePtr ProcessorOdom2D::emplaceFeature(CaptureMotionPtr _capture_motion)
     return key_feature_ptr;
 }
 
-ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr)
+ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params)
 {
+    auto params = std::static_pointer_cast<ProcessorParamsOdom2D>(_params);
 
-    ProcessorOdom2DPtr prc_ptr;
-
-    std::shared_ptr<ProcessorParamsOdom2D> params;
-    if (_params)
-        params = std::static_pointer_cast<ProcessorParamsOdom2D>(_params);
-    else
-        params = std::make_shared<ProcessorParamsOdom2D>();
+    auto prc_ptr = std::make_shared<ProcessorOdom2D>(params);
 
-    prc_ptr = std::make_shared<ProcessorOdom2D>(params);
     prc_ptr->setName(_unique_name);
 
     return prc_ptr;
 }
 
-ProcessorBasePtr ProcessorOdom2D::createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_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;
diff --git a/src/processor/processor_odom_3D.cpp b/src/processor/processor_odom_3D.cpp
index 6d60447c261f6244f4bcf7adf38d469a326ef56d..e519b9470cf857e050b4afe8a5af52f66cfba017 100644
--- a/src/processor/processor_odom_3D.cpp
+++ b/src/processor/processor_odom_3D.cpp
@@ -333,7 +333,7 @@ Motion ProcessorOdom3D::interpolate(const Motion& _ref1,
 }
 
 
-ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr _sen_ptr)
+ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params)
 {
     // cast inputs to the correct type
     auto params     = std::static_pointer_cast<ProcessorParamsOdom3D>(_params);
diff --git a/test/dummy/processor_tracker_feature_dummy.cpp b/test/dummy/processor_tracker_feature_dummy.cpp
index 0222ebb5f8cb91bea365c0d3c8249c4392c4a248..d11dcf09f36616d0379945a0bea78a3ad1769b98 100644
--- a/test/dummy/processor_tracker_feature_dummy.cpp
+++ b/test/dummy/processor_tracker_feature_dummy.cpp
@@ -93,16 +93,16 @@ FactorBasePtr ProcessorTrackerFeatureDummy::emplaceFactor(FeatureBasePtr _featur
 }
 
 ProcessorBasePtr ProcessorTrackerFeatureDummy::create(const std::string& _unique_name,
-                                                      const ProcessorParamsBasePtr _params,
-                                                      const SensorBasePtr)
+                                                      const ProcessorParamsBasePtr _params)
 {
-    ProcessorParamsTrackerFeatureDummyPtr params = std::static_pointer_cast<ProcessorParamsTrackerFeatureDummy>(_params);
+    auto params = std::static_pointer_cast<ProcessorParamsTrackerFeatureDummy>(_params);
 
     // if cast failed use default value
     if (params == nullptr)
         params = std::make_shared<ProcessorParamsTrackerFeatureDummy>();
 
-    ProcessorTrackerFeatureDummyPtr prc_ptr = std::make_shared<ProcessorTrackerFeatureDummy>(params);
+    auto  prc_ptr = std::make_shared<ProcessorTrackerFeatureDummy>(params);
+
     prc_ptr->setName(_unique_name);
 
     return prc_ptr;
diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h
index d4f6dfbcde8fda17e75806ae9b4353afd27497bd..4ba333dfb0bb9ee6009a70781f223efccb316ec6 100644
--- a/test/dummy/processor_tracker_feature_dummy.h
+++ b/test/dummy/processor_tracker_feature_dummy.h
@@ -105,8 +105,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature
     public:
 
         static ProcessorBasePtr create(const std::string& _unique_name,
-                                       const ProcessorParamsBasePtr _params,
-                                       const SensorBasePtr sensor_ptr = nullptr);
+                                       const ProcessorParamsBasePtr _params);
 
 };
 
diff --git a/test/gtest_odom_2D.cpp b/test/gtest_odom_2D.cpp
index 3c286eb2e2633e54213f0b518d9cbd5694e3205f..31c8dd77ae9ac1df078b4218c3ea2d389757aa42 100644
--- a/test/gtest_odom_2D.cpp
+++ b/test/gtest_odom_2D.cpp
@@ -205,6 +205,7 @@ TEST(Odom2D, VoteForKfAndSolve)
     ProcessorBasePtr prc_base = problem->installProcessor("ODOM 2D", "odom", sensor_odom2d, params);
     ProcessorOdom2DPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2D>(prc_base);
 
+
     // NOTE: We integrate and create KFs as follows:
     // i=    0    1    2    3    4    5    6
     // KF -- * -- * -- KF - * -- * -- KF - *
diff --git a/test/gtest_processor_diff_drive.cpp b/test/gtest_processor_diff_drive.cpp
index f021ba4248e88e85353354abbb52cdee33de7ef0..46f3a9e3299a8074747a4d07d6e9add8fc49e249 100644
--- a/test/gtest_processor_diff_drive.cpp
+++ b/test/gtest_processor_diff_drive.cpp
@@ -167,7 +167,7 @@ TEST(ProcessorDiffDrive, create)
     auto params = std::make_shared<ProcessorParamsDiffDrive>();
 
     // processor
-    auto prc_base = ProcessorDiffDrive::create("prc", params, sen);
+    auto prc_base = ProcessorDiffDrive::create("prc", params);
 
     auto prc = std::static_pointer_cast<ProcessorDiffDrive>(prc_base);