diff --git a/.gitignore b/.gitignore
index c1dc607f5161a8fd3db83ab770304f1ea2479306..4467cd99895b3ff8d5c5b70b3ecabc44dd420660 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,7 +30,7 @@ src/examples/map_polyline_example_write.yaml
 src/CMakeCache.txt
 
 src/CMakeFiles/cmake.check_cache
-vision.found
 
 \.vscode/
 doc/html
+.clang-format
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a0c286e18e367c58f3e60cedee4f81ebfb2cd7e4..076cfdf7fa6c73c16a2dcf83f1062bbaf83f94b7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -92,7 +92,7 @@ stages:
   - cd build
   - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_TESTS=ON -DBUILD_DEMOS=OFF ..
   - make -j$(nproc)
-  - ctest -j$(nproc)
+  - ctest -j$(nproc) --output-on-failure
   - make install
 
 ############ LICENSE HEADERS ############
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f89a00ef29372e9c39409616f1287a360f9198bb..27b8fc49322f322af861f32c2b0d595f6cc16147 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,7 +13,7 @@ MESSAGE("Starting ${PROJECT_NAME} CMakeLists ...")
 # Paths
 SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
 SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
-set(INCLUDE_INSTALL_DIR include/iri-algorithms/wolf)
+set(INCLUDE_INSTALL_DIR include/wolf)
 set(LIB_INSTALL_DIR lib/)
 
 IF (NOT CMAKE_BUILD_TYPE)
@@ -30,7 +30,7 @@ include(CheckCXXCompilerFlag)
 CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
 if(COMPILER_SUPPORTS_CXX14)
 		message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++14 support.")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+    set(CMAKE_CXX_STANDARD 14)
 else()
   message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support. Please use a different C++ compiler.")
 endif()
@@ -111,31 +111,31 @@ INCLUDE_DIRECTORIES(BEFORE "include")
 
 # ============ HEADERS ============ 
 SET(HDRS_CAPTURE
-include/vision/capture/capture_image.h
+include/${PROJECT_NAME}/capture/capture_image.h
   )
 SET(HDRS_FACTOR
-# include/vision/factor/factor_trifocal.h
-# include/vision/factor/factor_ahp.h
-include/vision/factor/factor_pixel_hp.h
-# include/vision/factor/factor_epipolar.h
+# include/${PROJECT_NAME}/factor/factor_trifocal.h
+# include/${PROJECT_NAME}/factor/factor_ahp.h
+include/${PROJECT_NAME}/factor/factor_pixel_hp.h
+# include/${PROJECT_NAME}/factor/factor_epipolar.h
   )
 SET(HDRS_FEATURE
-include/vision/feature/feature_point_image.h
+include/${PROJECT_NAME}/feature/feature_point_image.h
   )
 SET(HDRS_LANDMARK
-  # include/vision/landmark/landmark_ahp.h
-  include/vision/landmark/landmark_hp.h
-  include/vision/landmark/landmark_point_3d.h
+  # include/${PROJECT_NAME}/landmark/landmark_ahp.h
+  include/${PROJECT_NAME}/landmark/landmark_hp.h
+  include/${PROJECT_NAME}/landmark/landmark_point_3d.h
   )
 SET(HDRS_MATH
-include/vision/math/pinhole_tools.h
+include/${PROJECT_NAME}/math/pinhole_tools.h
   )
 SET(HDRS_PROCESSOR
-include/vision/processor/processor_visual_odometry.h
-include/vision/processor/active_search.h
+include/${PROJECT_NAME}/processor/processor_visual_odometry.h
+include/${PROJECT_NAME}/processor/active_search.h
   )
 SET(HDRS_SENSOR
-include/vision/sensor/sensor_camera.h
+include/${PROJECT_NAME}/sensor/sensor_camera.h
   )
 
 # ============ SOURCES ============ 
@@ -265,8 +265,6 @@ INSTALL(FILES ${HDRS_SENSOR}
 INSTALL(FILES "${WOLF_CONFIG_DIR}/config.h"
   DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}/internal)
 
-INSTALL(DIRECTORY ${SPDLOG_INCLUDE_DIRS} DESTINATION "include/iri-algorithms/")
-
 export(PACKAGE ${PLUGIN_NAME})
 
 FIND_PACKAGE(Doxygen MODULE)
diff --git a/include/vision/capture/capture_image.h b/include/vision/capture/capture_image.h
index c31f03fb61799b4e3fdf98d0fa787f1c59e2dda2..65a371016726d6265ae7cbcebbf3bd5172f73a8b 100644
--- a/include/vision/capture/capture_image.h
+++ b/include/vision/capture/capture_image.h
@@ -29,13 +29,14 @@
 #ifndef CAPTURE_IMAGE_H
 #define CAPTURE_IMAGE_H
 
-// OpenCV includes
-#include <opencv2/core.hpp>
-
+// vision includes
+#include "vision/sensor/sensor_camera.h"
 
-//Wolf includes
+// Wolf includes
 #include <core/capture/capture_base.h>
-#include "vision/sensor/sensor_camera.h"
+
+// OpenCV includes
+#include <opencv2/core.hpp>
 
 
 namespace wolf {
diff --git a/src/landmark/landmark_point_3d.cpp b/src/landmark/landmark_point_3d.cpp
index 326dee0f0530f37c6973b7de3c1c5abc7c6c027d..2ad4ed4b7d97b1174680b79b85ba7561d8a1730e 100644
--- a/src/landmark/landmark_point_3d.cpp
+++ b/src/landmark/landmark_point_3d.cpp
@@ -20,15 +20,15 @@
 //
 //--------LICENSE_END--------
 #include "vision/landmark/landmark_point_3d.h"
+#include <core/state_block/state_block_derived.h>
 
 namespace wolf {
 
 LandmarkPoint3d::LandmarkPoint3d(Eigen::Vector3d _position, cv::Mat _2d_descriptor) :
-    LandmarkBase("LandmarkPoint3d", std::make_shared<StateBlock>(_position, false)),
+    LandmarkBase("LandmarkPoint3d", std::make_shared<StatePoint3d>(_position, false)),
     descriptor_(_2d_descriptor)
 {
-    //LandmarkPoint3d* landmark_ptr = (LandmarkPoint3d*)_p_ptr;
-//    position_ =
+    getStateBlock('P')->setTransformable();
 //    descriptor_ = _2d_descriptor;
 }
 
diff --git a/src/sensor/sensor_camera.cpp b/src/sensor/sensor_camera.cpp
index 311e2212bfb260646092b8ae9a48fb6f6d716c50..b3dd3ac583b035269df5367272b51e47dbd358c1 100644
--- a/src/sensor/sensor_camera.cpp
+++ b/src/sensor/sensor_camera.cpp
@@ -23,7 +23,7 @@
 #include "vision/sensor/sensor_camera.h"
 #include "vision/math/pinhole_tools.h"
 
-#include "core/state_block/state_block.h"
+#include "core/state_block/state_block_derived.h"
 #include "core/state_block/state_quaternion.h"
 
 namespace wolf
@@ -31,9 +31,9 @@ namespace wolf
 
 SensorCamera::SensorCamera(const Eigen::VectorXd& _extrinsics, const ParamsSensorCamera& _intrinsics) :
                 SensorBase("SensorCamera", 
-                           std::make_shared<StateBlock>(_extrinsics.head(3), true), 
+                           std::make_shared<StatePoint3d>(_extrinsics.head(3), true), 
                            std::make_shared<StateQuaternion>(_extrinsics.tail(4), true), 
-                           std::make_shared<StateBlock>(_intrinsics.pinhole_model_raw, true), 
+                           std::make_shared<StateParams4>(_intrinsics.pinhole_model_raw, true), 
                            1),
                 img_width_(_intrinsics.width), //
                 img_height_(_intrinsics.height), //