diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e7e6a86d878f76216be29bb107a7fa307a60f7e..67ef6f0b03b6d7d9c8638a38439607ddb35b09d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,9 +47,18 @@ if(UNIX)
     "${CMAKE_CXX_FLAGS} -Werror=all -Werror=extra -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers")
 endif(UNIX)
 
+IF(NOT BUILD_TESTS)
+  OPTION(BUILD_TESTS "Build Unit tests" ON)
+ENDIF(NOT BUILD_TESTS)
+
+IF(NOT BUILD_DEMOS)
+  OPTION(BUILD_DEMOS "Build Demos" OFF)
+ENDIF(NOT BUILD_DEMOS)
+
+IF(NOT BUILD_DOC)
+  OPTION(BUILD_DOC "Build Documentation" OFF)
+ENDIF(NOT BUILD_DOC)
 
-#OPTION(BUILD_DOC "Build Documentation" OFF)
-OPTION(BUILD_TESTS "Build Unit tests" ON)
 #############
 ## Testing ##
 #############
@@ -78,9 +87,6 @@ ENDIF()
 
 option(_WOLF_TRACE "Enable wolf tracing macro" ON)
 
-# option(BUILD_EXAMPLES "Build examples" OFF)
-set(BUILD_TESTS true)
-
 # Does this has any other interest
 # but for the examples ?
 # yes, for the tests !
@@ -115,8 +121,6 @@ include_directories("${PROJECT_BINARY_DIR}/conf")
 # ============EXAMPLE==================
 INCLUDE_DIRECTORIES(${wolf_INCLUDE_DIRS})
 INCLUDE_DIRECTORIES(BEFORE "include")
-message("MY INCLUDES ${wolf_INCLUDE_DIRS}")
-message("MY LIBS ${wolf_LIBRARIES}")
 
 #HEADERS
 
diff --git a/include/IMU/processor/processor_IMU.h b/include/IMU/processor/processor_IMU.h
index e90affda5cd952abe0412bf1c6bcbe4cac839018..867a535f887eda226d042e5d39ca98e71bf5e772 100644
--- a/include/IMU/processor/processor_IMU.h
+++ b/include/IMU/processor/processor_IMU.h
@@ -12,8 +12,18 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsIMU);
 struct ProcessorParamsIMU : public ProcessorParamsMotion
 {
   // ProcessorParamsIMU() = default;
-    using ProcessorParamsMotion::ProcessorParamsMotion;
-    Scalar unmeasured_perturbation_std_ = 0.00001;  // TODO: pass in processor motion?
+    // using ProcessorParamsMotion::ProcessorParamsMotion;
+
+    ProcessorParamsIMU() = default;
+    ProcessorParamsIMU(std::string _unique_name, const paramsServer& _server):
+        ProcessorParamsMotion(_unique_name, _server)
+    {
+        //
+    }
+    std::string print()
+    {
+        return "\n" + ProcessorParamsMotion::print();
+    }
 };
 
 WOLF_PTR_TYPEDEFS(ProcessorIMU);
diff --git a/include/IMU/sensor/sensor_IMU.h b/include/IMU/sensor/sensor_IMU.h
index aa4bb06bf172c26299730c60dc9e614fa3da1b72..94812fc1bbe9c4c4a87be05132d31c1a8bbeb70e 100644
--- a/include/IMU/sensor/sensor_IMU.h
+++ b/include/IMU/sensor/sensor_IMU.h
@@ -42,6 +42,16 @@ struct IntrinsicsIMU : public IntrinsicsBase
         ab_rate_stdev = _server.getParam<Scalar>(_unique_name + "/ab_rate_stdev", "0.00001");
         wb_rate_stdev = _server.getParam<Scalar>(_unique_name + "/wb_rate_stdev", "0.00001");
     }
+    std::string print()
+    {
+        return "\n" + IntrinsicsBase::print()
+            + "w_noise: " + std::to_string(w_noise) + "\n"
+            + "a_noise: " + std::to_string(a_noise) + "\n"
+            + "ab_initial_stdev: " + std::to_string(ab_initial_stdev) + "\n"
+            + "wb_initial_stdev: " + std::to_string(wb_initial_stdev) + "\n"
+            + "ab_rate_stdev: " + std::to_string(ab_rate_stdev) + "\n"
+            + "wb_rate_stdev: " + std::to_string(wb_rate_stdev) + "\n";
+    }
 };
 
 WOLF_PTR_TYPEDEFS(SensorIMU);
diff --git a/serialization/cereal/serialization_processor_odom2d_params.h b/serialization/cereal/serialization_processor_odom2d_params.h
index dc0416b94634ef8415919c26fa972c86edb99a00..91d9ca06173d9dfca2b9275dfc7f115651925dc4 100644
--- a/serialization/cereal/serialization_processor_odom2d_params.h
+++ b/serialization/cereal/serialization_processor_odom2d_params.h
@@ -18,7 +18,7 @@ void serialize(Archive& ar, wolf::ProcessorParamsOdom2D& o,
   ar( cereal::make_nvp("dist_traveled_th_",  o.dist_traveled_th_)  );
   ar( cereal::make_nvp("elapsed_time_th_",   o.elapsed_time_th_)   );
   ar( cereal::make_nvp("theta_traveled_th_", o.theta_traveled_th_) );
-  ar( cereal::make_nvp("unmeasured_perturbation_std_",
+  ar( cereal::make_nvp("unmeasured_perturbation_std",
                        o.unmeasured_perturbation_std)   );
 }
 
diff --git a/src/processor/processor_IMU.cpp b/src/processor/processor_IMU.cpp
index ac38037cd0750ec93b58821017ee579d34b559ac..f3a95512e45ca4bcf8d8544fc535150d21f6ecfa 100644
--- a/src/processor/processor_IMU.cpp
+++ b/src/processor/processor_IMU.cpp
@@ -13,7 +13,7 @@ ProcessorIMU::ProcessorIMU(ProcessorParamsIMUPtr _params_motion_IMU) :
     jacobian_delta_preint_.setIdentity(9,9);                                    // dDp'/dDp, dDv'/dDv, all zeros
     jacobian_delta_.setIdentity(9,9);                                           //
     jacobian_calib_.setZero(9,6);
-    unmeasured_perturbation_cov_ = pow(params_motion_IMU_->unmeasured_perturbation_std_, 2.0) * Eigen::Matrix<Scalar, 9, 9>::Identity();
+    unmeasured_perturbation_cov_ = pow(params_motion_IMU_->unmeasured_perturbation_std, 2.0) * Eigen::Matrix<Scalar, 9, 9>::Identity();
 }
 
 ProcessorIMU::~ProcessorIMU()
diff --git a/src/yaml/processor_IMU_yaml.cpp b/src/yaml/processor_IMU_yaml.cpp
index 424dcf77873eff3fcafcb87bd11bc11dd0cc7659..58c9d3b3b0a007d8c7e20e9db527c03d05c4f00e 100644
--- a/src/yaml/processor_IMU_yaml.cpp
+++ b/src/yaml/processor_IMU_yaml.cpp
@@ -30,7 +30,7 @@ static ProcessorParamsBasePtr createProcessorIMUParams(const std::string & _file
 
         ProcessorParamsIMUPtr params = std::make_shared<ProcessorParamsIMU>();
         params->time_tolerance = config["time tolerance"]           .as<Scalar>();
-        params->unmeasured_perturbation_std_ = config["unmeasured perturbation std"].as<Scalar>();
+        params->unmeasured_perturbation_std = config["unmeasured perturbation std"].as<Scalar>();
 
         params->unmeasured_perturbation_std = config["unmeasured perturbation std"].as<Scalar>();
         params->max_time_span       = kf_vote["max time span"]      .as<Scalar>();