diff --git a/include/base/factor/factor_autodiff.h b/include/base/factor/factor_autodiff.h
index e6cbb596fab09fc224ce43338f8f5facab3913ce..be35c772aacb9c7fce4e780d413fa0df675c1655 100644
--- a/include/base/factor/factor_autodiff.h
+++ b/include/base/factor/factor_autodiff.h
@@ -15,7 +15,7 @@
 namespace wolf {
 
 //template class FactorAutodiff
-template <class CtrT, unsigned int RES, unsigned int B0, unsigned int B1 = 0, unsigned int B2 = 0, unsigned int B3 = 0, unsigned int B4 = 0, unsigned int B5 = 0, unsigned int B6 = 0, unsigned int B7 = 0, unsigned int B8 = 0, unsigned int B9 = 0>
+template <class FacT, unsigned int RES, unsigned int B0, unsigned int B1 = 0, unsigned int B2 = 0, unsigned int B3 = 0, unsigned int B4 = 0, unsigned int B5 = 0, unsigned int B6 = 0, unsigned int B7 = 0, unsigned int B8 = 0, unsigned int B9 = 0>
 class FactorAutodiff : public FactorBase
 {
     public:
@@ -144,7 +144,7 @@ class FactorAutodiff : public FactorBase
             // only residuals
             if (jacobians == nullptr)
             {
-                (*static_cast<CtrT const*>(this))(parameters[0],
+                (*static_cast<FacT const*>(this))(parameters[0],
                                                   parameters[1],
                                                   parameters[2],
                                                   parameters[3],
@@ -165,7 +165,7 @@ class FactorAutodiff : public FactorBase
                 updateJetsRealPart(param_vec);
 
                 // call functor
-                (*static_cast<CtrT const*>(this))(jets_0_->data(),
+                (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                   jets_1_->data(),
                                                   jets_2_->data(),
                                                   jets_3_->data(),
@@ -241,7 +241,7 @@ class FactorAutodiff : public FactorBase
             updateJetsRealPart(_states_ptr);
 
             // call functor
-            (*static_cast<CtrT const*>(this))(jets_0_->data(),
+            (*static_cast<FacT const*>(this))(jets_0_->data(),
                                               jets_1_->data(),
                                               jets_2_->data(),
                                               jets_3_->data(),
@@ -301,8 +301,8 @@ class FactorAutodiff : public FactorBase
 
 ////////////////// SPECIALIZATION 9 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
 {
    public:
 
@@ -420,7 +420,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         parameters[3],
@@ -440,7 +440,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         jets_3_->data(),
@@ -507,7 +507,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -553,8 +553,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 8 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
 {
    public:
 
@@ -666,7 +666,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         parameters[3],
@@ -685,7 +685,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         jets_3_->data(),
@@ -749,7 +749,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -794,8 +794,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 7 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
 {
    public:
 
@@ -901,7 +901,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         parameters[3],
@@ -919,7 +919,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         jets_3_->data(),
@@ -980,7 +980,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -1024,8 +1024,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 6 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -1125,7 +1125,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         parameters[3],
@@ -1142,7 +1142,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         jets_3_->data(),
@@ -1200,7 +1200,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -1239,8 +1239,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 5 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -1333,7 +1333,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         parameters[3],
@@ -1349,7 +1349,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         jets_3_->data(),
@@ -1404,7 +1404,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -1442,8 +1442,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 4 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
+class FactorAutodiff<FacT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -1530,7 +1530,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                  parameters[1],
                                                  parameters[2],
                                                  parameters[3],
@@ -1545,7 +1545,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                  jets_1_->data(),
                                                  jets_2_->data(),
                                                  jets_3_->data(),
@@ -1597,7 +1597,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              jets_3_->data(),
@@ -1638,8 +1638,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 3 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
-class FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
+class FactorAutodiff<FacT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -1720,7 +1720,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                         parameters[1],
                                                         parameters[2],
                                                         residuals);
@@ -1734,7 +1734,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                         jets_1_->data(),
                                                         jets_2_->data(),
                                                         residuals_jets_->data());
@@ -1783,7 +1783,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              jets_2_->data(),
                                              residuals_jets_->data());
@@ -1823,8 +1823,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 2 BLOCKS ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1>
-class FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1>
+class FactorAutodiff<FacT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -1899,7 +1899,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                  parameters[1],
                                                  residuals);
            }
@@ -1912,7 +1912,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                  jets_1_->data(),
                                                  residuals_jets_->data());
 
@@ -1958,7 +1958,7 @@ class FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              jets_1_->data(),
                                              residuals_jets_->data());
 
@@ -1997,8 +1997,8 @@ class FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0> : public FactorBase
 
 ////////////////// SPECIALIZATION 1 BLOCK ////////////////////////////////////////////////////////////////////////
 
-template <class CtrT,unsigned int RES,unsigned int B0>
-class FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
+template <class FacT,unsigned int RES,unsigned int B0>
+class FactorAutodiff<FacT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
 {
    public:
 
@@ -2067,7 +2067,7 @@ class FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
            // only residuals
            if (jacobians == nullptr)
            {
-               (*static_cast<CtrT const*>(this))(parameters[0],
+               (*static_cast<FacT const*>(this))(parameters[0],
                                                  residuals);
            }
            // also compute jacobians
@@ -2079,7 +2079,7 @@ class FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
                updateJetsRealPart(param_vec);
 
                // call functor
-               (*static_cast<CtrT const*>(this))(jets_0_->data(),
+               (*static_cast<FacT const*>(this))(jets_0_->data(),
                                                  residuals_jets_->data());
 
                // fill the residual array
@@ -2122,7 +2122,7 @@ class FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
            updateJetsRealPart(_states_ptr);
 
            // call functor
-           (*static_cast<CtrT const*>(this))(jets_0_->data(),
+           (*static_cast<FacT const*>(this))(jets_0_->data(),
                                              residuals_jets_->data());
 
            // fill the residual vector
@@ -2163,40 +2163,40 @@ class FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0> : public FactorBase
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // state_block_sizes_
 // 10 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8,unsigned int B9>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7,B8,B9};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8,unsigned int B9>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7,B8,B9};
 // 9 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7,B8};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7,B8};
 // 8 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6,B7};
 // 7 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5,B6};
 // 6 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4,B5};
 // 5 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3,B4};
 // 4 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2,B3};
 // 3 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,0,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1,B2};
 // 2 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1};
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,0,0,0,0,0,0,0,0>::state_block_sizes_ = {B0,B1};
 // 1 BLOCK
-template <class CtrT,unsigned int RES,unsigned int B0>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0>::state_block_sizes_ = {B0};
+template <class FacT,unsigned int RES,unsigned int B0>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,0,0,0,0,0,0,0,0,0>::state_block_sizes_ = {B0};
 
 // jacobian_locations_
 // 10 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8,unsigned int B9>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8,unsigned int B9>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9>::jacobian_locations_ = {0,
                                                                                                                B0,
                                                                                                                B0+B1,
                                                                                                                B0+B1+B2,
@@ -2207,8 +2207,8 @@ const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,
                                                                                                                B0+B1+B2+B3+B4+B5+B6+B7,
                                                                                                                B0+B1+B2+B3+B4+B5+B6+B7+B8};
 // 9 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7,unsigned int B8>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,B8,0>::jacobian_locations_ = {0,
                                                                                                               B0,
                                                                                                               B0+B1,
                                                                                                               B0+B1+B2,
@@ -2218,8 +2218,8 @@ const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,
                                                                                                               B0+B1+B2+B3+B4+B5+B6,
                                                                                                               B0+B1+B2+B3+B4+B5+B6+B7};
 // 8 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6,unsigned int B7>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,B7,0,0>::jacobian_locations_ = {0,
                                                                                                              B0,
                                                                                                              B0+B1,
                                                                                                              B0+B1+B2,
@@ -2228,8 +2228,8 @@ const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,B7,
                                                                                                              B0+B1+B2+B3+B4+B5,
                                                                                                              B0+B1+B2+B3+B4+B5+B6};
 // 7 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5,unsigned int B6>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,B6,0,0,0>::jacobian_locations_ = {0,
                                                                                                             B0,
                                                                                                             B0+B1,
                                                                                                             B0+B1+B2,
@@ -2237,38 +2237,38 @@ const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,B6,0,0
                                                                                                             B0+B1+B2+B3+B4,
                                                                                                             B0+B1+B2+B3+B4+B5};
 // 6 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4,unsigned int B5>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,B5,0,0,0,0>::jacobian_locations_ = {0,
                                                                                                            B0,
                                                                                                            B0+B1,
                                                                                                            B0+B1+B2,
                                                                                                            B0+B1+B2+B3,
                                                                                                            B0+B1+B2+B3+B4};
 // 5 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,B4,0,0,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3,unsigned int B4>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,B4,0,0,0,0,0>::jacobian_locations_ = {0,
                                                                                                           B0,
                                                                                                           B0+B1,
                                                                                                           B0+B1+B2,
                                                                                                           B0+B1+B2+B3};
 // 4 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,B3,0,0,0,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2,unsigned int B3>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,B3,0,0,0,0,0,0>::jacobian_locations_ = {0,
                                                                                                          B0,
                                                                                                          B0+B1,
                                                                                                          B0+B1+B2};
 // 3 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,B2,0,0,0,0,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1,unsigned int B2>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,B2,0,0,0,0,0,0,0>::jacobian_locations_ = {0,
                                                                                                         B0,
                                                                                                         B0+B1};
 // 2 BLOCKS
-template <class CtrT,unsigned int RES,unsigned int B0,unsigned int B1>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,B1,0,0,0,0,0,0,0,0>::jacobian_locations_ = {0,
+template <class FacT,unsigned int RES,unsigned int B0,unsigned int B1>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,B1,0,0,0,0,0,0,0,0>::jacobian_locations_ = {0,
                                                                                                        B0};
 // 1 BLOCK
-template <class CtrT,unsigned int RES,unsigned int B0>
-const std::vector<unsigned int> FactorAutodiff<CtrT,RES,B0,0,0,0,0,0,0,0,0,0>::jacobian_locations_ = {0};
+template <class FacT,unsigned int RES,unsigned int B0>
+const std::vector<unsigned int> FactorAutodiff<FacT,RES,B0,0,0,0,0,0,0,0,0,0>::jacobian_locations_ = {0};
 
 } // namespace wolf
 
diff --git a/include/base/node_base.h b/include/base/node_base.h
index 2426f53a53357005f9e0fcab1ed0af72b7494b7a..ebbc640825d3d6775da395b2fe1d02c03abf8073 100644
--- a/include/base/node_base.h
+++ b/include/base/node_base.h
@@ -22,7 +22,7 @@ namespace wolf {
  *    - "FRAME"
  *    - "CAPTURE"
  *    - "FEATURE"
- *    - "CONSTRAINT"
+ *    - "FACTOR"
  *    - "MAP"
  *    - "LANDMARK"
  *
diff --git a/include/base/solver_suitesparse/qr_solver.h b/include/base/solver_suitesparse/qr_solver.h
index 4486660569244386e17e0a3eb07a67dbc7753bfd..154b78639d03c71368b65bbaf65ee778421ba313 100644
--- a/include/base/solver_suitesparse/qr_solver.h
+++ b/include/base/solver_suitesparse/qr_solver.h
@@ -99,7 +99,7 @@ class SolverQR
                 }
                 problem_ptr_->getStateBlockNotificationList().pop_front();
             }
-            // UPDATE CONSTRAINTS
+            // UPDATE FACTORS
             while (!problem_ptr_->getFactorNotificationList().empty())
             {
                 switch (problem_ptr_->getFactorNotificationList().front().notification_)
@@ -528,16 +528,16 @@ class SolverQR
             return nodes_.size();
         }
 
-        CostFunctionBasePtr createCostFunction(FactorBasePtr _corrPtr)
+        CostFunctionBasePtr createCostFunction(FactorBasePtr _fac_ptr)
         {
-            //std::cout << "adding ctr " << _corrPtr->id() << std::endl;
-            //_corrPtr->print();
+            //std::cout << "adding fac " << _fac_ptr->id() << std::endl;
+            //_fac_ptr->print();
 
-            switch (_corrPtr->getTypeId())
+            switch (_fac_ptr->getTypeId())
             {
                 case FAC_GPS_FIX_2D:
                 {
-                    FactorGPS2D* specific_ptr = (FactorGPS2D*)(_corrPtr);
+                    FactorGPS2D* specific_ptr = (FactorGPS2D*)(_fac_ptr);
                     return (CostFunctionBasePtr)(new CostFunctionSparse<FactorGPS2D, specific_ptr->residualSize,
                             specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size,
                             specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size,
@@ -547,7 +547,7 @@ class SolverQR
                 }
                 case FAC_ODOM_2D:
                 {
-                    FactorOdom2D* specific_ptr = (FactorOdom2D*)(_corrPtr);
+                    FactorOdom2D* specific_ptr = (FactorOdom2D*)(_fac_ptr);
                     return (CostFunctionBasePtr)new CostFunctionSparse<FactorOdom2D, specific_ptr->residualSize,
                             specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size,
                             specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size,
@@ -557,7 +557,7 @@ class SolverQR
                 }
                 case FAC_CORNER_2D:
                 {
-                    FactorCorner2D* specific_ptr = (FactorCorner2D*)(_corrPtr);
+                    FactorCorner2D* specific_ptr = (FactorCorner2D*)(_fac_ptr);
                     return (CostFunctionBasePtr)new CostFunctionSparse<FactorCorner2D, specific_ptr->residualSize,
                             specific_ptr->block0Size, specific_ptr->block1Size, specific_ptr->block2Size,
                             specific_ptr->block3Size, specific_ptr->block4Size, specific_ptr->block5Size,
diff --git a/include/base/solver_suitesparse/solver_manager.h b/include/base/solver_suitesparse/solver_manager.h
index ad7a0cc5e84f97b1c42067febbb8d41368089b51..09c0abe7f8a83cde800e76968da2a5a990e0007c 100644
--- a/include/base/solver_suitesparse/solver_manager.h
+++ b/include/base/solver_suitesparse/solver_manager.h
@@ -32,9 +32,9 @@ class SolverManager
 
 		void update(const WolfProblemPtr _problem_ptr);
 
-		void addFactor(FactorBasePtr _corr_ptr);
+		void addFactor(FactorBasePtr _fac_ptr);
 
-		void removeFactor(const unsigned int& _corr_idx);
+		void removeFactor(const unsigned int& _fac_idx);
 
 		void addStateUnit(StateBlockPtr _st_ptr);
 
@@ -42,7 +42,7 @@ class SolverManager
 
 		void updateStateUnitStatus(StateBlockPtr _st_ptr);
 
-		ceres::CostFunction* createCostFunction(FactorBasePtr _corrPtr);
+		ceres::CostFunction* createCostFunction(FactorBasePtr _fac_ptr);
 };
 
 #endif