diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a268f3ec0f5f08af9dd80a6cb2f84e2170dc172..38eb02c21cd954fd5c5790ff9f94d63a5198a735 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -223,8 +223,6 @@ SET(HDRS_FACTOR
   include/core/factor/factor_base.h
   include/core/factor/factor_block_absolute.h
   include/core/factor/factor_diff_drive.h
-  include/core/factor/factor_feature_dummy.h
-  include/core/factor/factor_landmark_dummy.h
   include/core/factor/factor_odom_2D.h
   include/core/factor/factor_odom_2D_analytic.h
   include/core/factor/factor_odom_3D.h
@@ -260,9 +258,7 @@ SET(HDRS_PROCESSOR
   include/core/processor/processor_odom_3D.h
   include/core/processor/processor_tracker.h
   include/core/processor/processor_tracker_feature.h
-  include/core/processor/processor_tracker_feature_dummy.h
   include/core/processor/processor_tracker_landmark.h
-  include/core/processor/processor_tracker_landmark_dummy.h
   include/core/processor/track_matrix.h
   )
 SET(HDRS_SENSOR
@@ -289,6 +285,9 @@ SET(HDRS_YAML
   include/core/yaml/parser_yaml.hpp
   include/core/yaml/yaml_conversion.h
   )
+SET(HDRS_DUMMY
+  test/dummy/factor_feature_dummy.h
+  )
 #SOURCES
 SET(SRCS_PROBLEM
   src/problem/problem.cpp
@@ -354,9 +353,7 @@ SET(SRCS_PROCESSOR
   src/processor/processor_odom_3D.cpp
   src/processor/processor_tracker.cpp
   src/processor/processor_tracker_feature.cpp
-  src/processor/processor_tracker_feature_dummy.cpp
   src/processor/processor_tracker_landmark.cpp
-  src/processor/processor_tracker_landmark_dummy.cpp
   src/processor/track_matrix.cpp
   )
 SET(SRCS_SENSOR
@@ -516,6 +513,8 @@ INSTALL(FILES ${HDRS_SERIALIZATION}
   DESTINATION include/iri-algorithms/wolf/plugin_core/core/serialization)
 INSTALL(FILES ${HDRS_YAML}
   DESTINATION include/iri-algorithms/wolf/plugin_core/core/yaml)
+INSTALL(FILES ${HDRS_DUMMY}
+  DESTINATION include/iri-algorithms/wolf/plugin_core/core/dummy)
 
 FILE(WRITE ${PROJECT_NAME}.found "")
 INSTALL(FILES ${PROJECT_NAME}.found
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index f4d96771cf0b3b1c7d8be66202d129296bb02daf..2d5f40fb25c86c6f5642848487375108fc040322 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -28,11 +28,14 @@ include_directories(${GTEST_INCLUDE_DIRS})
 #                                                         #
 # Create a specific test executable for gtest_example     #
 wolf_add_gtest(gtest_example gtest_example.cpp)           #
-target_link_libraries(gtest_example ${PROJECT_NAME})      #
+target_link_libraries(gtest_example ${PROJECT_NAME} dummy)      #
 #                                                         #
 ###########################################################
-
-
+set(SRC_DUMMY
+  dummy/processor_tracker_feature_dummy.cpp
+  dummy/processor_tracker_landmark_dummy.cpp
+  )
+add_library(dummy ${SRC_DUMMY})
 ################# ADD YOUR TESTS BELOW ####################
 #                                                         #
 #           ==== IN ALPHABETICAL ORDER! ====              #
@@ -42,71 +45,71 @@ target_link_libraries(gtest_example ${PROJECT_NAME})      #
 
 # CaptureBase class test
 wolf_add_gtest(gtest_capture_base gtest_capture_base.cpp)
-target_link_libraries(gtest_capture_base ${PROJECT_NAME})
+target_link_libraries(gtest_capture_base ${PROJECT_NAME} dummy)
 
 # CaptureBase class test
 #wolf_add_gtest(gtest_factor_sparse gtest_factor_sparse.cpp)
-#target_link_libraries(gtest_factor_sparse ${PROJECT_NAME})
+#target_link_libraries(gtest_factor_sparse ${PROJECT_NAME} dummy)
 
 # FactorAutodiff class test
 wolf_add_gtest(gtest_factor_autodiff gtest_factor_autodiff.cpp)
-target_link_libraries(gtest_factor_autodiff ${PROJECT_NAME})
+target_link_libraries(gtest_factor_autodiff ${PROJECT_NAME} dummy)
 
 # Converter from String to various types used by the parameters server
 wolf_add_gtest(gtest_converter gtest_converter.cpp)
-target_link_libraries(gtest_converter ${PROJECT_NAME})
+target_link_libraries(gtest_converter ${PROJECT_NAME} dummy)
 
 # FeatureBase classes test
 wolf_add_gtest(gtest_eigen_predicates gtest_eigen_predicates.cpp)
-target_link_libraries(gtest_eigen_predicates ${PROJECT_NAME})
+target_link_libraries(gtest_eigen_predicates ${PROJECT_NAME} dummy)
 
 # Node Emplace test
 wolf_add_gtest(gtest_emplace gtest_emplace.cpp)
-target_link_libraries(gtest_emplace ${PROJECT_NAME})
+target_link_libraries(gtest_emplace ${PROJECT_NAME} dummy)
 
 # FeatureBase classes test
 wolf_add_gtest(gtest_feature_base gtest_feature_base.cpp)
-target_link_libraries(gtest_feature_base ${PROJECT_NAME})
+target_link_libraries(gtest_feature_base ${PROJECT_NAME} dummy)
 
 # FrameBase classes test
 wolf_add_gtest(gtest_frame_base gtest_frame_base.cpp)
-target_link_libraries(gtest_frame_base ${PROJECT_NAME})
+target_link_libraries(gtest_frame_base ${PROJECT_NAME} dummy)
 
 # LocalParametrizationXxx classes test
 wolf_add_gtest(gtest_local_param gtest_local_param.cpp)
-target_link_libraries(gtest_local_param ${PROJECT_NAME})
+target_link_libraries(gtest_local_param ${PROJECT_NAME} dummy)
 
 # Logging test
 wolf_add_gtest(gtest_logging gtest_logging.cpp)
-target_link_libraries(gtest_logging ${PROJECT_NAME})
+target_link_libraries(gtest_logging ${PROJECT_NAME} dummy)
 
 # MotionBuffer class test
 wolf_add_gtest(gtest_motion_buffer gtest_motion_buffer.cpp)
-target_link_libraries(gtest_motion_buffer ${PROJECT_NAME})
+target_link_libraries(gtest_motion_buffer ${PROJECT_NAME} dummy)
 
 # PackKFBuffer
 wolf_add_gtest(gtest_pack_KF_buffer gtest_pack_KF_buffer.cpp)
-target_link_libraries(gtest_pack_KF_buffer ${PROJECT_NAME})
+target_link_libraries(gtest_pack_KF_buffer ${PROJECT_NAME} dummy)
 
 # Parameters server
 wolf_add_gtest(gtest_param_server gtest_param_server.cpp ${CMAKE_CURRENT_LIST_DIR})
-target_link_libraries(gtest_param_server ${PROJECT_NAME})
+target_link_libraries(gtest_param_server ${PROJECT_NAME} dummy)
 
 # YAML parser
 wolf_add_gtest(gtest_parser_yaml gtest_parser_yaml.cpp)
-target_link_libraries(gtest_parser_yaml ${PROJECT_NAME})
+target_link_libraries(gtest_parser_yaml ${PROJECT_NAME} dummy)
 
 # Problem class test
 wolf_add_gtest(gtest_problem gtest_problem.cpp)
-target_link_libraries(gtest_problem ${PROJECT_NAME})
+target_link_libraries(gtest_problem ${PROJECT_NAME} dummy)
 
 # ProcessorBase class test
 wolf_add_gtest(gtest_processor_base gtest_processor_base.cpp)
-target_link_libraries(gtest_processor_base ${PROJECT_NAME})
+target_link_libraries(gtest_processor_base ${PROJECT_NAME} dummy)
 
 # ProcessorMotion class test
 wolf_add_gtest(gtest_processor_motion gtest_processor_motion.cpp)
-target_link_libraries(gtest_processor_motion ${PROJECT_NAME})
+target_link_libraries(gtest_processor_motion ${PROJECT_NAME} dummy)
   
 # Rotation test
 wolf_add_gtest(gtest_rotation gtest_rotation.cpp)
@@ -116,91 +119,95 @@ wolf_add_gtest(gtest_SE3 gtest_SE3.cpp)
 
 # SensorBase test
 wolf_add_gtest(gtest_sensor_base gtest_sensor_base.cpp)
-target_link_libraries(gtest_sensor_base ${PROJECT_NAME})
+target_link_libraries(gtest_sensor_base ${PROJECT_NAME} dummy)
 
 # shared_from_this test
 wolf_add_gtest(gtest_shared_from_this gtest_shared_from_this.cpp)
-target_link_libraries(gtest_shared_from_this ${PROJECT_NAME})
+target_link_libraries(gtest_shared_from_this ${PROJECT_NAME} dummy)
 
 # SolverManager test
 wolf_add_gtest(gtest_solver_manager gtest_solver_manager.cpp)
-target_link_libraries(gtest_solver_manager ${PROJECT_NAME})
+target_link_libraries(gtest_solver_manager ${PROJECT_NAME} dummy)
 
 # TimeStamp class test
 wolf_add_gtest(gtest_time_stamp gtest_time_stamp.cpp)
-target_link_libraries(gtest_time_stamp ${PROJECT_NAME})
+target_link_libraries(gtest_time_stamp ${PROJECT_NAME} dummy)
 
 # TrackMatrix class test
 wolf_add_gtest(gtest_track_matrix gtest_track_matrix.cpp)
-target_link_libraries(gtest_track_matrix ${PROJECT_NAME})
+target_link_libraries(gtest_track_matrix ${PROJECT_NAME} dummy)
 
 # TrajectoryBase class test
 wolf_add_gtest(gtest_trajectory gtest_trajectory.cpp)
-target_link_libraries(gtest_trajectory ${PROJECT_NAME})
+target_link_libraries(gtest_trajectory ${PROJECT_NAME} dummy)
 
 # ------- Now Derived classes ----------
 
 IF (Ceres_FOUND)
 # CeresManager test
 wolf_add_gtest(gtest_ceres_manager gtest_ceres_manager.cpp)
-target_link_libraries(gtest_ceres_manager ${PROJECT_NAME})
+target_link_libraries(gtest_ceres_manager ${PROJECT_NAME} dummy)
 ENDIF(Ceres_FOUND)
 
 # FactorAbs(P/O/V) classes test
 wolf_add_gtest(gtest_factor_absolute gtest_factor_absolute.cpp)
-target_link_libraries(gtest_factor_absolute ${PROJECT_NAME})
+target_link_libraries(gtest_factor_absolute ${PROJECT_NAME} dummy)
 
 # FactorAutodiffDistance3D test
 wolf_add_gtest(gtest_factor_autodiff_distance_3D gtest_factor_autodiff_distance_3D.cpp)
-target_link_libraries(gtest_factor_autodiff_distance_3D ${PROJECT_NAME})
+target_link_libraries(gtest_factor_autodiff_distance_3D ${PROJECT_NAME} dummy)
 
 # FactorOdom3D class test
 wolf_add_gtest(gtest_factor_odom_3D gtest_factor_odom_3D.cpp)
-target_link_libraries(gtest_factor_odom_3D ${PROJECT_NAME})
+target_link_libraries(gtest_factor_odom_3D ${PROJECT_NAME} dummy)
 
 # FactorPose2D class test
 wolf_add_gtest(gtest_factor_pose_2D gtest_factor_pose_2D.cpp)
-target_link_libraries(gtest_factor_pose_2D ${PROJECT_NAME})
+target_link_libraries(gtest_factor_pose_2D ${PROJECT_NAME} dummy)
 
 # FactorPose3D class test
 wolf_add_gtest(gtest_factor_pose_3D gtest_factor_pose_3D.cpp)
-target_link_libraries(gtest_factor_pose_3D ${PROJECT_NAME})
+target_link_libraries(gtest_factor_pose_3D ${PROJECT_NAME} dummy)
 
 # MakePosDef function test
 wolf_add_gtest(gtest_make_posdef gtest_make_posdef.cpp)
-target_link_libraries(gtest_make_posdef ${PROJECT_NAME})
+target_link_libraries(gtest_make_posdef ${PROJECT_NAME} dummy)
 
 # Map yaml save/load test
 wolf_add_gtest(gtest_map_yaml gtest_map_yaml.cpp)
-target_link_libraries(gtest_map_yaml ${PROJECT_NAME})
+target_link_libraries(gtest_map_yaml ${PROJECT_NAME} dummy)
 
 # Parameter prior test
 wolf_add_gtest(gtest_param_prior gtest_param_prior.cpp)
-target_link_libraries(gtest_param_prior ${PROJECT_NAME})
+target_link_libraries(gtest_param_prior ${PROJECT_NAME} dummy)
 
 # ProcessorLoopClosureBase class test
 wolf_add_gtest(gtest_processor_loopclosure gtest_processor_loopclosure.cpp)
-target_link_libraries(gtest_processor_loopclosure ${PROJECT_NAME})
+target_link_libraries(gtest_processor_loopclosure ${PROJECT_NAME} dummy)
+
+# ProcessorFrameNearestNeighborFilter class test
+# wolf_add_gtest(gtest_processor_frame_nearest_neighbor_filter_2D gtest_processor_frame_nearest_neighbor_filter_2D.cpp)
+# target_link_libraries(gtest_processor_frame_nearest_neighbor_filter_2D ${PROJECT_NAME} dummy)
 
 # ProcessorMotion in 2D
 wolf_add_gtest(gtest_odom_2D gtest_odom_2D.cpp)
-target_link_libraries(gtest_odom_2D ${PROJECT_NAME})
+target_link_libraries(gtest_odom_2D ${PROJECT_NAME} dummy)
 
 # ProcessorOdom3D class test
 wolf_add_gtest(gtest_processor_odom_3D gtest_processor_odom_3D.cpp)
-target_link_libraries(gtest_processor_odom_3D ${PROJECT_NAME})
+target_link_libraries(gtest_processor_odom_3D ${PROJECT_NAME} dummy)
 
 # ProcessorTrackerFeatureDummy class test
 wolf_add_gtest(gtest_processor_tracker_feature_dummy gtest_processor_tracker_feature_dummy.cpp)
-target_link_libraries(gtest_processor_tracker_feature_dummy ${PROJECT_NAME})
+target_link_libraries(gtest_processor_tracker_feature_dummy ${PROJECT_NAME} dummy)
 
 # ProcessorTrackerLandmarkDummy class test
 wolf_add_gtest(gtest_processor_tracker_landmark_dummy gtest_processor_tracker_landmark_dummy.cpp)
-target_link_libraries(gtest_processor_tracker_landmark_dummy ${PROJECT_NAME})
+target_link_libraries(gtest_processor_tracker_landmark_dummy ${PROJECT_NAME} dummy)
 
 # yaml conversions
 wolf_add_gtest(gtest_yaml_conversions gtest_yaml_conversions.cpp)
-target_link_libraries(gtest_yaml_conversions ${PROJECT_NAME})
+target_link_libraries(gtest_yaml_conversions ${PROJECT_NAME} dummy)
 
 # ------- Now Core classes Serialization ----------
 
diff --git a/include/core/factor/factor_feature_dummy.h b/test/dummy/factor_feature_dummy.h
similarity index 100%
rename from include/core/factor/factor_feature_dummy.h
rename to test/dummy/factor_feature_dummy.h
diff --git a/include/core/factor/factor_landmark_dummy.h b/test/dummy/factor_landmark_dummy.h
similarity index 100%
rename from include/core/factor/factor_landmark_dummy.h
rename to test/dummy/factor_landmark_dummy.h
diff --git a/src/processor/processor_tracker_feature_dummy.cpp b/test/dummy/processor_tracker_feature_dummy.cpp
similarity index 98%
rename from src/processor/processor_tracker_feature_dummy.cpp
rename to test/dummy/processor_tracker_feature_dummy.cpp
index 48838b3cda114b17cf0ce840b16983534fb7d258..0222ebb5f8cb91bea365c0d3c8249c4392c4a248 100644
--- a/src/processor/processor_tracker_feature_dummy.cpp
+++ b/test/dummy/processor_tracker_feature_dummy.cpp
@@ -5,7 +5,7 @@
  *      \author: jvallve
  */
 
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "processor_tracker_feature_dummy.h"
 #include "core/feature/feature_base.h"
 
 namespace wolf
diff --git a/include/core/processor/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h
similarity index 99%
rename from include/core/processor/processor_tracker_feature_dummy.h
rename to test/dummy/processor_tracker_feature_dummy.h
index 007207cecb59a4d5028bfe5f1b0e205a0b0726b8..3621ce3017d8a362c999f9376908ab4e0445b910 100644
--- a/include/core/processor/processor_tracker_feature_dummy.h
+++ b/test/dummy/processor_tracker_feature_dummy.h
@@ -10,7 +10,7 @@
 
 #include "core/common/wolf.h"
 #include "core/processor/processor_tracker_feature.h"
-#include "core/factor/factor_feature_dummy.h"
+#include "factor_feature_dummy.h"
 
 namespace wolf
 {
diff --git a/src/processor/processor_tracker_landmark_dummy.cpp b/test/dummy/processor_tracker_landmark_dummy.cpp
similarity index 97%
rename from src/processor/processor_tracker_landmark_dummy.cpp
rename to test/dummy/processor_tracker_landmark_dummy.cpp
index 422e778279f605a01fddbaa67b10baab5f4de92d..dd1147fdc1a09b60059bc69047adb46ba24ae16f 100644
--- a/src/processor/processor_tracker_landmark_dummy.cpp
+++ b/test/dummy/processor_tracker_landmark_dummy.cpp
@@ -5,9 +5,9 @@
  *      \author: jvallve
  */
 
-#include "core/processor/processor_tracker_landmark_dummy.h"
+#include "processor_tracker_landmark_dummy.h"
 #include "core/landmark/landmark_base.h"
-#include "core/factor/factor_landmark_dummy.h"
+#include "factor_landmark_dummy.h"
 
 namespace wolf
 {
diff --git a/include/core/processor/processor_tracker_landmark_dummy.h b/test/dummy/processor_tracker_landmark_dummy.h
similarity index 100%
rename from include/core/processor/processor_tracker_landmark_dummy.h
rename to test/dummy/processor_tracker_landmark_dummy.h
diff --git a/test/gtest_emplace.cpp b/test/gtest_emplace.cpp
index cf6ae9004d91a009c87768373f5974c27c879086..7e32bf8fad08c13274168d176c8767c51f642ae7 100644
--- a/test/gtest_emplace.cpp
+++ b/test/gtest_emplace.cpp
@@ -15,7 +15,7 @@
 #include "core/processor/processor_odom_3D.h"
 #include "core/processor/processor_odom_2D.h"
 #include "core/feature/feature_odom_2D.h"
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "dummy/processor_tracker_feature_dummy.h"
 
 #include <iostream>
 
diff --git a/test/gtest_pack_KF_buffer.cpp b/test/gtest_pack_KF_buffer.cpp
index 1b1f1ffb61ded8028dfbe7814f6f813f76793334..be1c74dc9631c219f3e84893b46bc135b036189e 100644
--- a/test/gtest_pack_KF_buffer.cpp
+++ b/test/gtest_pack_KF_buffer.cpp
@@ -10,7 +10,7 @@
 #include "core/processor/processor_odom_2D.h"
 #include "core/sensor/sensor_odom_2D.h"
 
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "dummy/processor_tracker_feature_dummy.h"
 #include "core/capture/capture_void.h"
 
 #include "core/problem/problem.h"
diff --git a/test/gtest_problem.cpp b/test/gtest_problem.cpp
index 7570f6c1870274ac8315b57468fff1da9e7b7be5..9ec12ff698906851acfc49b033242bea5df78317 100644
--- a/test/gtest_problem.cpp
+++ b/test/gtest_problem.cpp
@@ -13,7 +13,7 @@
 #include "core/sensor/sensor_odom_2D.h"
 #include "core/sensor/sensor_odom_3D.h"
 #include "core/processor/processor_odom_3D.h"
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "dummy/processor_tracker_feature_dummy.h"
 #include "core/solver/solver_manager.h"
 
 #include <iostream>
diff --git a/test/gtest_processor_base.cpp b/test/gtest_processor_base.cpp
index d4e4f082be12c5a39ecf79e5fbb184a0f6777182..8a3f4e8954034801647224581abf7f9a27e381ab 100644
--- a/test/gtest_processor_base.cpp
+++ b/test/gtest_processor_base.cpp
@@ -11,7 +11,7 @@
 #include "core/processor/processor_odom_2D.h"
 #include "core/sensor/sensor_odom_2D.h"
 
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "dummy/processor_tracker_feature_dummy.h"
 #include "core/capture/capture_void.h"
 
 #include "core/problem/problem.h"
diff --git a/test/gtest_processor_tracker_feature_dummy.cpp b/test/gtest_processor_tracker_feature_dummy.cpp
index ea169fcf994feeb624f88e718e94265aa4fbdb10..31dee4670b60e286a55ea315a8a1507338b3022d 100644
--- a/test/gtest_processor_tracker_feature_dummy.cpp
+++ b/test/gtest_processor_tracker_feature_dummy.cpp
@@ -2,7 +2,7 @@
 // wolf includes
 #include "core/utils/utils_gtest.h"
 #include "core/sensor/sensor_factory.h"
-#include "core/processor/processor_tracker_feature_dummy.h"
+#include "dummy/processor_tracker_feature_dummy.h"
 #include "core/capture/capture_void.h"
 
 using namespace wolf;
diff --git a/test/gtest_processor_tracker_landmark_dummy.cpp b/test/gtest_processor_tracker_landmark_dummy.cpp
index 8ed266881c29e43a29836eac706ec0dd9c96f19e..779ac7de285105263ae1214e0e61463e311983e5 100644
--- a/test/gtest_processor_tracker_landmark_dummy.cpp
+++ b/test/gtest_processor_tracker_landmark_dummy.cpp
@@ -2,7 +2,7 @@
 // wolf includes
 #include "core/utils/utils_gtest.h"
 #include "core/sensor/sensor_factory.h"
-#include "core/processor/processor_tracker_landmark_dummy.h"
+#include "dummy/processor_tracker_landmark_dummy.h"
 #include "core/capture/capture_void.h"
 
 using namespace wolf;