diff --git a/include/core/capture/capture_base.h b/include/core/capture/capture_base.h
index 393eddb8a87c05347433e93de11cb17d05a57a06..f8de56fd5f2eb7c9281f21aca46c61fcbc66d9ed 100644
--- a/include/core/capture/capture_base.h
+++ b/include/core/capture/capture_base.h
@@ -102,17 +102,19 @@ class CaptureBase : public NodeBase, public HasStateBlocks, public std::enable_s
         template<typename classType, typename... T>
         static std::shared_ptr<classType> emplace(FrameBasePtr _frm_ptr, T&&... all);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
     protected:
         virtual SizeEigen computeCalibSize() const;
diff --git a/include/core/capture/capture_motion.h b/include/core/capture/capture_motion.h
index e023de9fe9a8f4c4901514f920203d841fa92205..868ebb0373328df593537b26663169ec87e23698 100644
--- a/include/core/capture/capture_motion.h
+++ b/include/core/capture/capture_motion.h
@@ -101,11 +101,12 @@ class CaptureMotion : public CaptureBase
         CaptureBasePtr getOriginCapture() const;
         void setOriginCapture(CaptureBasePtr _capture_origin_ptr);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const override;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const override;
 
         // member data:
     private:
diff --git a/include/core/factor/factor_base.h b/include/core/factor/factor_base.h
index 67134b3f1251e31fe17d889ead538aef4e33515d..ddfb449dc31624ceed35ec6941ff734c1c8b6b68 100644
--- a/include/core/factor/factor_base.h
+++ b/include/core/factor/factor_base.h
@@ -206,17 +206,19 @@ class FactorBase : public NodeBase, public std::enable_shared_from_this<FactorBa
         template<typename classType, typename... T>
         static std::shared_ptr<classType> emplace(FeatureBasePtr _oth_ptr, T&&... all);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
     private:
 
diff --git a/include/core/feature/feature_base.h b/include/core/feature/feature_base.h
index b5d01e25605edb16e7fcf775a6321f8d58bc4624..f009a577ef375ec8fe7e8be15b87da3834cf9136 100644
--- a/include/core/feature/feature_base.h
+++ b/include/core/feature/feature_base.h
@@ -106,16 +106,18 @@ class FeatureBase : public NodeBase, public std::enable_shared_from_this<Feature
         template<typename classType, typename... T>
         static std::shared_ptr<classType> emplace(CaptureBasePtr _cpt_ptr, T&&... all);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
     private:
         void setCapture(CaptureBasePtr _cap_ptr){capture_ptr_ = _cap_ptr;}
diff --git a/include/core/frame/frame_base.h b/include/core/frame/frame_base.h
index 9fc19c6ab21161dbd01897e60de1f591af3de87c..21fef45a17463e01d71a59a9c3c95c6abc213200 100644
--- a/include/core/frame/frame_base.h
+++ b/include/core/frame/frame_base.h
@@ -131,17 +131,19 @@ class FrameBase : public NodeBase, public HasStateBlocks, public std::enable_sha
         template<typename classType, typename... T>
         static std::shared_ptr<classType> emplace(TrajectoryBasePtr _ptr, T&&... all);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
     private:
 
         CaptureBasePtr addCapture(CaptureBasePtr _capt_ptr);
diff --git a/include/core/hardware/hardware_base.h b/include/core/hardware/hardware_base.h
index 240cf1fd1e9f89a6b13e0d4122a41cdc4d9628e0..b9123d334a23b1470c5650569024defc8c346935 100644
--- a/include/core/hardware/hardware_base.h
+++ b/include/core/hardware/hardware_base.h
@@ -27,16 +27,18 @@ class HardwareBase : public NodeBase, public std::enable_shared_from_this<Hardwa
 
         const SensorBasePtrList& getSensorList() const;
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
     private:
         virtual SensorBasePtr addSensor(SensorBasePtr _sensor_ptr);
diff --git a/include/core/landmark/landmark_base.h b/include/core/landmark/landmark_base.h
index 317c5c12759cfa77162cd18aa4ea3299c517f9a6..49027c2a011e4bff34654e4ac52c4b3c55aa5f7c 100644
--- a/include/core/landmark/landmark_base.h
+++ b/include/core/landmark/landmark_base.h
@@ -85,17 +85,19 @@ class LandmarkBase : public NodeBase, public HasStateBlocks, public std::enable_
          */
         static LandmarkBasePtr create(const YAML::Node& _node);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
     private:
 
diff --git a/include/core/map/map_base.h b/include/core/map/map_base.h
index 6ed65e3de0e253a341a058d84d184744c4620971..81113892fdc00835b5c6d966d7f53dcfd21f0780 100644
--- a/include/core/map/map_base.h
+++ b/include/core/map/map_base.h
@@ -38,16 +38,18 @@ class MapBase : public NodeBase, public std::enable_shared_from_this<MapBase>
         void load(const std::string& _map_file_yaml);
         void save(const std::string& _map_file_yaml, const std::string& _map_name = "Map automatically saved by Wolf");
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
     private:
         std::string dateTimeNow();
 };
diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h
index 41484d4ffde3f9d5ebda29e4bb8118788634a00d..2edffe8933ebdad75bce4f5603cd6dee771f8369 100644
--- a/include/core/processor/processor_base.h
+++ b/include/core/processor/processor_base.h
@@ -362,17 +362,19 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce
         static std::shared_ptr<classType> emplace(SensorBasePtr _sen_ptr, T&&... all);
         void setVotingAuxActive(bool _voting_active = true);
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 };
 
 inline bool ProcessorBase::isVotingActive() const
diff --git a/include/core/processor/processor_motion.h b/include/core/processor/processor_motion.h
index c0ce83b758e7020f29b46c0db433cad07f8403f1..03c810e6de6740b04acfaaec32bd4a9d177f9dee 100644
--- a/include/core/processor/processor_motion.h
+++ b/include/core/processor/processor_motion.h
@@ -457,11 +457,12 @@ class ProcessorMotion : public ProcessorBase, public IsMotion
         void setDistTraveled(const double& _dist_traveled);
         void setAngleTurned(const double& _angle_turned);
 
-        void printHeader(std::string _tabs, int depth, //
-                   std::ostream& stream ,
-                   bool constr_by, //
-                   bool metric, //
-                   bool state_blocks) const override;
+        void printHeader(int depth, //
+                         std::ostream& stream ,
+                         bool constr_by, //
+                         bool metric, //
+                         bool state_blocks,
+                         std::string _tabs = "") const override;
 
     protected:
         // Attributes
diff --git a/include/core/processor/processor_tracker.h b/include/core/processor/processor_tracker.h
index cc9aa3e4363468c8c451da9a59e9e51773a8d25a..116dbec0f4dd0db23d790ccbd64cb4a9ff195f8e 100644
--- a/include/core/processor/processor_tracker.h
+++ b/include/core/processor/processor_tracker.h
@@ -246,11 +246,12 @@ class ProcessorTracker : public ProcessorBase
             return this->params_tracker_->print();
         }
 
-        void printHeader(std::string _tabs, int depth, //
-                   std::ostream& stream ,
-                   bool constr_by, //
-                   bool metric, //
-                   bool state_blocks) const override;
+        void printHeader(int depth, //
+                         std::ostream& stream ,
+                         bool constr_by, //
+                         bool metric, //
+                         bool state_blocks,
+                         std::string _tabs = "") const override;
 
     protected:
 
diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h
index 461ac56c60927a9570ec99e369de0129f9124a80..78dea51330c6114997cf9a7875720a7e7781adce 100644
--- a/include/core/sensor/sensor_base.h
+++ b/include/core/sensor/sensor_base.h
@@ -242,16 +242,18 @@ class SensorBase : public NodeBase, public HasStateBlocks, public std::enable_sh
         Eigen::VectorXd getNoiseStd() const;
         Eigen::MatrixXd getNoiseCov() const;
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
 
 
         void link(HardwareBasePtr);
diff --git a/include/core/trajectory/trajectory_base.h b/include/core/trajectory/trajectory_base.h
index 66122cf2f45246a6142507d5138a25bedfd81b00..a1974820339614701b177403a332864b999d6d20 100644
--- a/include/core/trajectory/trajectory_base.h
+++ b/include/core/trajectory/trajectory_base.h
@@ -47,16 +47,18 @@ class TrajectoryBase : public NodeBase, public std::enable_shared_from_this<Traj
         void sortFrame(FrameBasePtr _frm_ptr);
         void updateLastFrames();
 
-        virtual void printHeader(std::string _tabs, int depth, //
-                           std::ostream& stream ,
-                           bool constr_by, //
-                           bool metric, //
-                           bool state_blocks) const;
-        void print(std::string _tabs, int depth, //
-                            std::ostream& stream ,
-                            bool constr_by, //
-                            bool metric, //
-                            bool state_blocks) const;
+        virtual void printHeader(int depth, //
+                                 std::ostream& stream ,
+                                 bool constr_by, //
+                                 bool metric, //
+                                 bool state_blocks,
+                                 std::string _tabs = "") const;
+        void print(int depth, //
+                   std::ostream& stream,
+                   bool constr_by, //
+                   bool metric, //
+                   bool state_blocks,
+                   std::string _tabs = "") const;
     private:
         FrameBasePtr addFrame(FrameBasePtr _frame_ptr);
         void removeFrame(FrameBasePtr _frame_ptr);
diff --git a/src/capture/capture_base.cpp b/src/capture/capture_base.cpp
index 456c9451236b649d871782fea2d8f8716b6c71f2..b3c88e1595cd7ff38439e227c2c8c3faa70f6955 100644
--- a/src/capture/capture_base.cpp
+++ b/src/capture/capture_base.cpp
@@ -277,7 +277,7 @@ void CaptureBase::setProblem(ProblemPtr _problem)
         ft->setProblem(_problem);
 }
 
-void CaptureBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void CaptureBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Cap" << id() << " " << getType();
 
@@ -338,11 +338,11 @@ void CaptureBase::printHeader(std::string _tabs, int _depth, std::ostream& _stre
 //            }
 //        }
 }
-void CaptureBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void CaptureBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 3)
         for (auto f : getFeatureList())
-            f->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            f->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/capture/capture_motion.cpp b/src/capture/capture_motion.cpp
index 43b32071e18b6f31868fcdeb02f444c5371fd01c..2952a97a81ad1fdcdc32594204c5ed32f818627f 100644
--- a/src/capture/capture_motion.cpp
+++ b/src/capture/capture_motion.cpp
@@ -71,7 +71,7 @@ Eigen::VectorXd CaptureMotion::getDeltaCorrected(const VectorXd& _calib_current,
     return   delta_corrected;
 }
 
-void CaptureMotion::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void CaptureMotion::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "CapM" << id() << " " << getType();
 
diff --git a/src/factor/factor_base.cpp b/src/factor/factor_base.cpp
index 67c9d44f8d918df7a4af94297851a78ba880da2b..03a2898fb7e4a1277a772c281dd40429879d9f8a 100644
--- a/src/factor/factor_base.cpp
+++ b/src/factor/factor_base.cpp
@@ -299,7 +299,7 @@ void FactorBase::setProblem(ProblemPtr _problem)
         this->getProblem()->notifyFactor(shared_from_this(),ADD);
 }
 
-void FactorBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FactorBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Fac" << id() << " " << getType() << " -->";
     if (       getFrameOtherList()   .empty()
@@ -323,8 +323,8 @@ void FactorBase::printHeader(std::string _tabs, int _depth, std::ostream& _strea
     _stream << std::endl;
 }
 
-void FactorBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FactorBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
 }
 } // namespace wolf
diff --git a/src/feature/feature_base.cpp b/src/feature/feature_base.cpp
index d48101d9ef2db50ebca1ab217f2f4d6889816742..bde4b4944e74446647922c09b98f9fb47a85d032 100644
--- a/src/feature/feature_base.cpp
+++ b/src/feature/feature_base.cpp
@@ -165,7 +165,7 @@ void FeatureBase::link(CaptureBasePtr _cpt_ptr)
         WOLF_WARN("Linking with nullptr");
     }
 }
-void FeatureBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FeatureBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Ftr" << id() << " trk" << trackId() << " " << getType() << ((_depth < 4) ? " -- " + std::to_string(getFactorList().size()) + "c  " : "");
     if (_constr_by)
@@ -181,11 +181,11 @@ void FeatureBase::printHeader(std::string _tabs, int _depth, std::ostream& _stre
 
 }
 
-void FeatureBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FeatureBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 4)
         for (auto c : getFactorList())
-            c->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            c->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp
index f34fa3a2b9726ceb50dbea158797307a6eef1d38..f093b55bad2e6c8718d8fc20bcda54f2f974b000 100644
--- a/src/frame/frame_base.cpp
+++ b/src/frame/frame_base.cpp
@@ -359,7 +359,7 @@ void FrameBase::setProblem(ProblemPtr _problem)
         cap->setProblem(_problem);
 }
 
-void FrameBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FrameBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << (isKeyOrAux() ? (isKey() ? "KFrm" : "AFrm") : "Frm") << id() << ((_depth < 2) ? " -- " + std::to_string(getCaptureList().size()) + "C  " : "");
     if (_constr_by)
@@ -396,11 +396,11 @@ void FrameBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream
     }
 }
 
-void FrameBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void FrameBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 2)
         for (auto C : getCaptureList())
-            C->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            C->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/hardware/hardware_base.cpp b/src/hardware/hardware_base.cpp
index 740aabe26da52ce5a6588b5ff53cc804f381ba15..7d3e3c2a4274eaa88d3a949f6b293993e221ec8a 100644
--- a/src/hardware/hardware_base.cpp
+++ b/src/hardware/hardware_base.cpp
@@ -20,16 +20,16 @@ SensorBasePtr HardwareBase::addSensor(SensorBasePtr _sensor_ptr)
     return _sensor_ptr;
 }
 
-void HardwareBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void HardwareBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Hardware" << ((_depth < 1) ? ("   -- " + std::to_string(getSensorList().size()) + "S") : "")  << std::endl;
 
 }
-void HardwareBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void HardwareBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 1)
         for (auto S : getSensorList())
-            S->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            S->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/landmark/landmark_base.cpp b/src/landmark/landmark_base.cpp
index 0941ece13d5ffceb48fce987d04da6b3d93ab89b..9c93ba591ed43350984360ac9e01ee128aea1132 100644
--- a/src/landmark/landmark_base.cpp
+++ b/src/landmark/landmark_base.cpp
@@ -153,7 +153,7 @@ bool LandmarkBase::isConstrainedBy(const FactorBasePtr &_factor) const
         return false;
 }
 
-void LandmarkBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void LandmarkBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Lmk" << id() << " " << getType();
     if (_constr_by)
@@ -189,9 +189,9 @@ void LandmarkBase::printHeader(std::string _tabs, int _depth, std::ostream& _str
     }
 }
 
-void LandmarkBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void LandmarkBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
 }
 LandmarkBasePtr LandmarkBase::create(const YAML::Node& _node)
 {
diff --git a/src/map/map_base.cpp b/src/map/map_base.cpp
index 791438acf0aca6686d85ebe08272bc916256e099..6dc86a98e169def22a598a433cd04cf991f2a223 100644
--- a/src/map/map_base.cpp
+++ b/src/map/map_base.cpp
@@ -90,15 +90,15 @@ std::string MapBase::dateTimeNow()
     return date_time;
 }
 
-void MapBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void MapBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Map" << ((_depth < 1) ? ("        -- " + std::to_string(getLandmarkList().size()) + "L") : "") << std::endl;
 }
-void MapBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void MapBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 1)
         for (auto L : getLandmarkList())
-            L->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            L->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 3e9abf1ea460f7ccc4aeea29dc65de3425c20dba..edd4a25e28ef980d639983a41fbc05c7bed83242 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -958,11 +958,11 @@ void Problem::print(int _depth, std::ostream& _stream, bool _constr_by, bool _me
     _stream << std::endl;
     _stream << "P: wolf tree status ---------------------" << std::endl;
 
-    getHardware()->print("", _depth, _stream, _constr_by, _metric, _state_blocks);
+    getHardware()->print(_depth, _stream, _constr_by, _metric, _state_blocks);
 
-    getTrajectory()->print("", _depth, _stream, _constr_by, _metric, _state_blocks);
+    getTrajectory()->print(_depth, _stream, _constr_by, _metric, _state_blocks);
 
-    getMap()->print("", _depth, _stream, _constr_by, _metric, _state_blocks);
+    getMap()->print(_depth, _stream, _constr_by, _metric, _state_blocks);
 
     _stream << "-----------------------------------------" << std::endl;
     _stream << std::endl;
diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp
index 4d3aa3a38c249b44babb7a4f1ddb32b0a1126710..bfcf89fa194aca54ddcaacf916c5387ea1929cbf 100644
--- a/src/processor/processor_base.cpp
+++ b/src/processor/processor_base.cpp
@@ -196,14 +196,14 @@ void BufferPackKeyFrame::print(void) const
     std::cout << "]" << std::endl;
 }
 
-void ProcessorBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void ProcessorBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Prc" << id() << " " << getType() << " \"" << getName() << "\"" << std::endl;
 
 }
 
-void ProcessorBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void ProcessorBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
 }
 } // namespace wolf
diff --git a/src/processor/processor_motion.cpp b/src/processor/processor_motion.cpp
index 9ebeebe91b9556416a02c7f033c2dadf93dd85d7..9c512a923bb698fb67b440bfacaf9f7a0ba9661f 100644
--- a/src/processor/processor_motion.cpp
+++ b/src/processor/processor_motion.cpp
@@ -660,7 +660,7 @@ bool ProcessorMotion::storeCapture(CaptureBasePtr _cap_ptr)
   return false;
 }
 
-void ProcessorMotion::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void ProcessorMotion::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "PrcM" << id() << " " << getType() << " \"" << getName() << "\"" << std::endl;
     if (getOrigin())
diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 5de9a091d79012f82e24cf192f30a0b5d74c168b..2a1703b3d058c56ef8ffd0e299e4cef554e0e9fd 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -322,7 +322,7 @@ bool ProcessorTracker::storeCapture(CaptureBasePtr _cap_ptr)
   return false;
 }
 
-void ProcessorTracker::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void ProcessorTracker::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "PrcT" << id() << " " << getType() << " \"" << getName() << "\"" << std::endl;
     if (getOrigin())
diff --git a/src/sensor/sensor_base.cpp b/src/sensor/sensor_base.cpp
index f3d2499065606900264040868643df255266ec43..4089d3c951c691472a76adefcadd1b9ce4123b07 100644
--- a/src/sensor/sensor_base.cpp
+++ b/src/sensor/sensor_base.cpp
@@ -467,7 +467,7 @@ void SensorBase::link(HardwareBasePtr _hw_ptr)
     }
 }
 
-void SensorBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void SensorBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Sen" << id() << " " << getType() << " \"" << getName() << "\"";
     if (_depth < 2)
@@ -509,12 +509,12 @@ void SensorBase::printHeader(std::string _tabs, int _depth, std::ostream& _strea
     }
 }
 
-void SensorBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void SensorBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
 
     if (_depth >= 2)
         for (auto p : getProcessorList())
-            p->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            p->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 }
 } // namespace wolf
diff --git a/src/trajectory/trajectory_base.cpp b/src/trajectory/trajectory_base.cpp
index 3fb3ff0a89aa45c7e8da6d0e2e4a55f09606d174..087b79af934d2afac3c160a620d255d89bf5d14b 100644
--- a/src/trajectory/trajectory_base.cpp
+++ b/src/trajectory/trajectory_base.cpp
@@ -136,16 +136,16 @@ FrameBasePtr TrajectoryBase::closestKeyOrAuxFrameToTimeStamp(const TimeStamp& _t
     return closest_kf;
 }
 
-void TrajectoryBase::printHeader(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void TrajectoryBase::printHeader(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
     _stream << _tabs << "Trajectory" << ((_depth < 1) ? (" -- " + std::to_string(getFrameList().size()) + "F") : "")  << std::endl;
 }
-void TrajectoryBase::print(std::string _tabs, int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks) const
+void TrajectoryBase::print(int _depth, std::ostream& _stream, bool _constr_by, bool _metric, bool _state_blocks, std::string _tabs) const
 {
-    printHeader(_tabs, _depth, _stream, _constr_by, _metric, _state_blocks);
+    printHeader(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs);
     if (_depth >= 1)
         for (auto F : getFrameList())
-            F->print(_tabs + "  ", _depth, _stream, _constr_by, _metric, _state_blocks);
+            F->print(_depth, _stream, _constr_by, _metric, _state_blocks, _tabs + "  ");
 
 }
 } // namespace wolf