diff --git a/include/factory_publisher.h b/include/factory_publisher.h
index 1911c43b42d8a01516c615223b8f42a237178a0e..b64e40f72c2f1260b1724f8ce2d7ac20ef90196f 100644
--- a/include/factory_publisher.h
+++ b/include/factory_publisher.h
@@ -25,6 +25,8 @@
 // wolf
 #include <core/common/factory.h>
 #include <core/utils/params_server.h>
+
+// ros
 #include <ros/ros.h>
 
 namespace wolf
diff --git a/include/factory_subscriber.h b/include/factory_subscriber.h
index dc23500bc1842bcb79acec461f72603dbba1ded8..6d2eaf9f3cbbaf38514b880dd6efceb41835b96a 100644
--- a/include/factory_subscriber.h
+++ b/include/factory_subscriber.h
@@ -25,10 +25,9 @@
 // wolf
 #include <core/common/factory.h>
 #include <core/utils/params_server.h>
-#include <ros/ros.h>
 
-// #include "wolf_ros_subscriber.h"
-// std
+// ros
+#include <ros/ros.h>
 
 
 namespace wolf
diff --git a/include/node.h b/include/node.h
index d7236b254ecdedd7eb5b1ad618532242ad1e8380..d4c2dde1ee2d044bc501f74bf1c09d4f21d81c7f 100644
--- a/include/node.h
+++ b/include/node.h
@@ -23,29 +23,29 @@
 #ifndef NODE_H
 #define NODE_H
 
+/**************************
+ *   WOLF ROS includes    *
+ **************************/
+#include "subscriber.h"
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include <core/common/node_base.h>
 #include <core/common/wolf.h>
-#include <core/capture/capture_odom_2d.h>
-#include <core/ceres_wrapper/solver_ceres.h>
-#include <core/sensor/sensor_odom_2d.h>
-#include <core/processor/processor_odom_2d.h>
+#include <core/solver/solver_manager.h>
 #include <core/problem/problem.h>
 #include <core/utils/loader.h>
-#include <core/yaml/parser_yaml.h>
-#include <core/solver/factory_solver.h>
 
 
 /**************************
- *     CERES includes     *
+ *     ROS includes     *
  **************************/
 #include <ros/ros.h>
 #include <ros/package.h>
 #include <nav_msgs/Odometry.h>
-#include "tf/LinearMath/Transform.h"
-#include "tf/transform_datatypes.h"
+#include <tf/LinearMath/Transform.h>
+#include <tf/transform_datatypes.h>
 #include <tf/transform_broadcaster.h>
 #include <tf/transform_listener.h>
 #include <visualization_msgs/Marker.h>
@@ -61,8 +61,6 @@
 #include <fstream>
 #include <string>
 
-#include "subscriber.h"
-#include "publisher.h"
 
 using namespace wolf;
 
diff --git a/include/publisher.h b/include/publisher.h
index e86ad782577d46932d9ff9f61d21ab6c78f7be4a..e595811d746744319dbe7e42576c47a77c7efa29 100644
--- a/include/publisher.h
+++ b/include/publisher.h
@@ -21,6 +21,9 @@
 //--------LICENSE_END--------
 #ifndef WOLF_PUBLISHER_H
 #define WOLF_PUBLISHER_H
+
+#include "factory_publisher.h"
+
 /**************************
  *      ROS includes      *
  **************************/
@@ -29,9 +32,8 @@
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/common/wolf.h"
-#include "core/problem/problem.h"
-#include "factory_publisher.h"
+#include <core/common/wolf.h>
+#include <core/problem/problem.h>
 
 namespace wolf
 {
diff --git a/include/publisher_graph.h b/include/publisher_graph.h
index 22bdd40aa09890400c3dcf71640b1f4ae573ce42..4cdf019cef9e1708f8b0216b58bdd1cb09c0443e 100644
--- a/include/publisher_graph.h
+++ b/include/publisher_graph.h
@@ -22,11 +22,12 @@
 #ifndef PUBLISHER_GRAPH_H
 #define PUBLISHER_GRAPH_H
 
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/problem/problem.h"
-#include "publisher.h"
+#include <core/problem/problem.h>
 
 /**************************
  *      ROS includes      *
diff --git a/include/publisher_pose.h b/include/publisher_pose.h
index 1e7428f959bc7fe78654e9266345e631dc658299..59a0ef334366dd0cb1fa6883550f0a9f2f50f904 100644
--- a/include/publisher_pose.h
+++ b/include/publisher_pose.h
@@ -22,12 +22,14 @@
 #ifndef PUBLISHER_POSE_H
 #define PUBLISHER_POSE_H
 
+
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/problem/problem.h"
+#include <core/problem/problem.h>
 
-#include "publisher.h"
 
 /**************************
  *      ROS includes      *
diff --git a/include/publisher_state_block.h b/include/publisher_state_block.h
index 78bd104683cecc9a68bbbdc08bb8871d97d83a15..c0d229cf8539f1bf52e452848501e4f0dafe1999 100644
--- a/include/publisher_state_block.h
+++ b/include/publisher_state_block.h
@@ -22,12 +22,12 @@
 #ifndef PUBLISHER_STATE_BLOCK_H
 #define PUBLISHER_STATE_BLOCK_H
 
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/problem/problem.h"
-
-#include "publisher.h"
+#include <core/problem/problem.h>
 
 /**************************
  *      ROS includes      *
diff --git a/include/publisher_tf.h b/include/publisher_tf.h
index 333676b43bf7c1a0da7317722431685d4e49fed8..fe545e53b558df0293150e1ed1671d37373f2115 100644
--- a/include/publisher_tf.h
+++ b/include/publisher_tf.h
@@ -22,12 +22,12 @@
 #ifndef PUBLISHER_TF_H
 #define PUBLISHER_TF_H
 
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/problem/problem.h"
-
-#include "publisher.h"
+#include <core/problem/problem.h>
 
 /**************************
  *      ROS includes      *
diff --git a/include/publisher_trajectory.h b/include/publisher_trajectory.h
index bd26b6cc366d3dfd139049f6ddf4cd9ac612f246..7ce9eaafa0ac0128f7aee3a441a5cc1362efce5f 100644
--- a/include/publisher_trajectory.h
+++ b/include/publisher_trajectory.h
@@ -28,12 +28,13 @@
 #ifndef PUBLISHER_TRAJECTORY_H
 #define PUBLISHER_TRAJECTORY_H
 
+#include "publisher.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/problem/problem.h"
+#include <core/problem/problem.h>
 
-#include "publisher.h"
 
 /**************************
  *      ROS includes      *
diff --git a/include/subscriber.h b/include/subscriber.h
index 0db5b5cad5158ef5aaa4e8371e03e2be0cb21d5a..5de7b2bb8ab20a022b4cbe921673ca3723a8b462 100644
--- a/include/subscriber.h
+++ b/include/subscriber.h
@@ -22,13 +22,14 @@
 #ifndef WOLF_SUBSCRIBER_H_
 #define WOLF_SUBSCRIBER_H_
 
+#include "factory_subscriber.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "core/common/wolf.h"
+#include <core/common/wolf.h>
 #include <core/utils/params_server.h>
 #include <core/sensor/sensor_base.h>
-#include "factory_subscriber.h"
 
 /**************************
  *      ROS includes      *
diff --git a/include/subscriber_diffdrive.h b/include/subscriber_diffdrive.h
index ba2d015cd1d76af6f0db54a1163dfd1a24c8c910..d733ebaf7b4cc089ab8163da3ab5ec9b4b360170 100644
--- a/include/subscriber_diffdrive.h
+++ b/include/subscriber_diffdrive.h
@@ -24,18 +24,18 @@
 #define WOLF_SUBSCRIBER_DIFFDRIVE_H_
 
 
+#include "subscriber.h"
 /**************************
  *      WOLF includes     *
  **************************/
 #include <core/common/wolf.h>
-#include "subscriber.h"
 
 /**************************
  *      ROS includes      *
  **************************/
 #include <ros/ros.h>
 #include <nav_msgs/Odometry.h>
-#include "sensor_msgs/JointState.h"
+#include <sensor_msgs/JointState.h>
 
 namespace wolf
 {
diff --git a/include/subscriber_odom2d.h b/include/subscriber_odom2d.h
index a2097b2a8ee178f76678841533cbd2e7ba91806e..16ea0f0bc779e1d63bc384096b806fdbacc280f4 100644
--- a/include/subscriber_odom2d.h
+++ b/include/subscriber_odom2d.h
@@ -24,11 +24,14 @@
 #define WOLF_SUBSCRIBER_ODOM2D_H_
 
 
+#include "subscriber.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
 #include <core/common/wolf.h>
 #include <core/utils/params_server.h>
+#include <core/sensor/sensor_odom_2d.h>
 
 /**************************
  *      ROS includes      *
@@ -36,7 +39,6 @@
 #include <ros/ros.h>
 #include <nav_msgs/Odometry.h>
 
-#include "subscriber.h"
 
 namespace wolf
 {
diff --git a/include/subscriber_pose.h b/include/subscriber_pose.h
index e9a5038a511e2c2a0bfb646ea9bd689f0393eff8..27be7e4e349e2ce59fedd1a074c1a01dd34341b3 100644
--- a/include/subscriber_pose.h
+++ b/include/subscriber_pose.h
@@ -22,10 +22,11 @@
 #ifndef WOLF_SUBSCRIBER_POSE_H_
 #define WOLF_SUBSCRIBER_POSE_H_
 
+#include "subscriber.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "subscriber.h"
 #include <core/common/wolf.h>
 #include <core/utils/params_server.h>
 #include <core/capture/capture_pose.h>
diff --git a/src/node.cpp b/src/node.cpp
index 5f2257ce5d5046a0700c542856288cb689ce2b33..42edbae98b0162a42bb12f1d7d17a416c032f63a 100644
--- a/src/node.cpp
+++ b/src/node.cpp
@@ -19,14 +19,23 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
-#include <chrono>
-#include "node.h"
-#include "ros/time.h"
-#include "core/solver/factory_solver.h"
-#include "tf/transform_datatypes.h"
+
+// wolf ros
 #include "factory_subscriber.h"
 #include "factory_publisher.h"
 
+// wolf
+#include <core/solver/factory_solver.h>
+#include <core/yaml/parser_yaml.h>
+
+// ros
+#include <node.h>
+#include <ros/time.h>
+#include <tf/transform_datatypes.h>
+
+// std
+#include <chrono>
+
 WolfRosNode::WolfRosNode()
     : nh_(ros::this_node::getName())
     , last_print_(ros::Time(0))
diff --git a/src/publisher_graph.cpp b/src/publisher_graph.cpp
index 6a97029962cc775d5499be989536abb859444b41..2d573aec38f55639538495b97d3feadf9e621770 100644
--- a/src/publisher_graph.cpp
+++ b/src/publisher_graph.cpp
@@ -20,8 +20,13 @@
 //
 //--------LICENSE_END--------
 #include "publisher_graph.h"
+
+// wolf
+#include <core/processor/processor_motion.h>
+
+// ros
 #include <tf/transform_datatypes.h>
-#include "core/processor/processor_motion.h"
+
 
 namespace wolf
 {
diff --git a/src/publisher_pose.cpp b/src/publisher_pose.cpp
index abcecb335300a170dfc443f26511f4b30f6dfbd1..65222db813e14cb72d63cd723209d094ea996497 100644
--- a/src/publisher_pose.cpp
+++ b/src/publisher_pose.cpp
@@ -19,14 +19,16 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
 #include "publisher_pose.h"
 
 /**************************
  *      ROS includes      *
  **************************/
 #include <ros/ros.h>
-#include "tf/transform_datatypes.h"
-#include "tf_conversions/tf_eigen.h"
+#include <tf/transform_datatypes.h>
+#include <tf_conversions/tf_eigen.h>
+
 
 namespace wolf
 {
diff --git a/src/publisher_state_block.cpp b/src/publisher_state_block.cpp
index 8300340954bef448333c990eb8ab2462ad4016bc..f2a698d122f63aebe3722904343487791e33490b 100644
--- a/src/publisher_state_block.cpp
+++ b/src/publisher_state_block.cpp
@@ -19,6 +19,7 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
 #include "publisher_state_block.h"
 
 namespace wolf
diff --git a/src/publisher_tf.cpp b/src/publisher_tf.cpp
index 2591644b7278b9a0c1dbf2e174c2834afd03a061..448d9bb6fc7a159e1c5c895f2825cc4370fc8a6a 100644
--- a/src/publisher_tf.cpp
+++ b/src/publisher_tf.cpp
@@ -19,14 +19,15 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
 #include "publisher_tf.h"
 
 /**************************
  *      ROS includes      *
  **************************/
 #include <ros/ros.h>
-#include "tf/transform_datatypes.h"
-#include "tf_conversions/tf_eigen.h"
+#include <tf/transform_datatypes.h>
+#include <tf_conversions/tf_eigen.h>
 
 namespace wolf
 {
diff --git a/src/subscriber_diffdrive.cpp b/src/subscriber_diffdrive.cpp
index da7a29504cadb1209c504a26892f1d443681d462..1ecb9d9794965a454c3aa85e6387198e7d05f865 100644
--- a/src/subscriber_diffdrive.cpp
+++ b/src/subscriber_diffdrive.cpp
@@ -19,14 +19,16 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
+#include "subscriber_diffdrive.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
 #include <core/capture/capture_diff_drive.h>
 #include <core/sensor/sensor_diff_drive.h>
+#include <core/math/rotations.h>
 
-#include "core/math/rotations.h"
-#include "subscriber_diffdrive.h"
 
 namespace wolf
 {
diff --git a/src/subscriber_odom2d.cpp b/src/subscriber_odom2d.cpp
index f46d0a5e2eb8623bd16845d86f3dca1fb90f051f..699f10d361a3b90923fe8cbcc52f9293978ec74a 100644
--- a/src/subscriber_odom2d.cpp
+++ b/src/subscriber_odom2d.cpp
@@ -19,6 +19,10 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
+#include "subscriber.h"
+#include "subscriber_odom2d.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
@@ -39,9 +43,6 @@
 #include <iomanip>
 #include <queue>
 
-#include "subscriber.h"
-#include "subscriber_odom2d.h"
-
 namespace wolf
 {
 SubscriberOdom2d::SubscriberOdom2d(const std::string& _unique_name,
diff --git a/src/subscriber_pose.cpp b/src/subscriber_pose.cpp
index 2f1a474489c9963bacfb8e3410abc189e1385afe..70fddeac734105fecf453db7884dad49717e55e8 100644
--- a/src/subscriber_pose.cpp
+++ b/src/subscriber_pose.cpp
@@ -19,10 +19,12 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 //--------LICENSE_END--------
+
+#include "subscriber_pose.h"
+
 /**************************
  *      WOLF includes     *
  **************************/
-#include "subscriber_pose.h"
 
 /**************************
  *      ROS includes      *