diff --git a/include/gnss/factor/factor_gnss_fix_2d.h b/include/gnss/factor/factor_gnss_fix_2d.h
index 4965cb14bf5fd4ffd933204821bcdc6c0d678a9c..5098fe3cbabc5e51e4b0455975daa34e2ac671d6 100644
--- a/include/gnss/factor/factor_gnss_fix_2d.h
+++ b/include/gnss/factor/factor_gnss_fix_2d.h
@@ -21,20 +21,21 @@ class FactorGnssFix2d : public FactorAutodiff<FactorGnssFix2d, 3, 2, 1, 3, 3, 1,
 
         FactorGnssFix2d(FeatureBasePtr& _ftr_ptr, const SensorGnssPtr& _sensor_gnss_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssFix2d, 3, 2, 1, 3, 3, 1, 1, 1>("FactorGnssFix2d",
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     _processor_ptr,
-                                                                     _apply_loss_function,
-                                                                     _status,
-                                                                     _ftr_ptr->getFrame()->getP(),
-                                                                     _ftr_ptr->getFrame()->getO(),
-                                                                     _sensor_gnss_ptr->getP(),
-                                                                     _sensor_gnss_ptr->getEnuMapTranslation(),
-                                                                     _sensor_gnss_ptr->getEnuMapRoll(),
-                                                                     _sensor_gnss_ptr->getEnuMapPitch(),
-                                                                     _sensor_gnss_ptr->getEnuMapYaw()),
+                                                                    _ftr_ptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    _processor_ptr,
+                                                                    _apply_loss_function,
+                                                                    _status,
+                                                                    _ftr_ptr->getFrame()->getP(),
+                                                                    _ftr_ptr->getFrame()->getO(),
+                                                                    _sensor_gnss_ptr->getP(),
+                                                                    _sensor_gnss_ptr->getEnuMapTranslation(),
+                                                                    _sensor_gnss_ptr->getEnuMapRoll(),
+                                                                    _sensor_gnss_ptr->getEnuMapPitch(),
+                                                                    _sensor_gnss_ptr->getEnuMapYaw()),
             sensor_gnss_ptr_(_sensor_gnss_ptr)
         {
             WOLF_WARN_COND(!sensor_gnss_ptr_->isEnuDefined() && _status == FAC_ACTIVE, "Creating an active GNSS Fix 2d factor without initializing ENU");
diff --git a/include/gnss/factor/factor_gnss_fix_3d.h b/include/gnss/factor/factor_gnss_fix_3d.h
index beaf7808ba5410f6bedb54e2f9c0d782f0b03d39..fb65f5d325276e4b0187b367e2e146c067ddfeca 100644
--- a/include/gnss/factor/factor_gnss_fix_3d.h
+++ b/include/gnss/factor/factor_gnss_fix_3d.h
@@ -20,20 +20,21 @@ class FactorGnssFix3d : public FactorAutodiff<FactorGnssFix3d, 3, 3, 4, 3, 3, 1,
 
         FactorGnssFix3d(FeatureBasePtr& _ftr_ptr, const SensorGnssPtr& _sensor_gnss_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssFix3d, 3, 3, 4, 3, 3, 1, 1, 1>("FactorGnssFix3d",
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     nullptr,
-                                                                     _processor_ptr,
-                                                                     _apply_loss_function,
-                                                                     _status,
-                                                                     _ftr_ptr->getFrame()->getP(),
-                                                                     _ftr_ptr->getFrame()->getO(),
-                                                                     _sensor_gnss_ptr->getP(),
-                                                                     _sensor_gnss_ptr->getEnuMapTranslation(),
-                                                                     _sensor_gnss_ptr->getEnuMapRoll(),
-                                                                     _sensor_gnss_ptr->getEnuMapPitch(),
-                                                                     _sensor_gnss_ptr->getEnuMapYaw()),
+                                                                    _ftr_ptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    nullptr,
+                                                                    _processor_ptr,
+                                                                    _apply_loss_function,
+                                                                    _status,
+                                                                    _ftr_ptr->getFrame()->getP(),
+                                                                    _ftr_ptr->getFrame()->getO(),
+                                                                    _sensor_gnss_ptr->getP(),
+                                                                    _sensor_gnss_ptr->getEnuMapTranslation(),
+                                                                    _sensor_gnss_ptr->getEnuMapRoll(),
+                                                                    _sensor_gnss_ptr->getEnuMapPitch(),
+                                                                    _sensor_gnss_ptr->getEnuMapYaw()),
             sensor_gnss_ptr_(_sensor_gnss_ptr)
         {
             WOLF_WARN_COND(!sensor_gnss_ptr_->isEnuDefined() && _status == FAC_ACTIVE, "Creating an ACTIVE GNSS Fix 3d factor without initializing ENU");
diff --git a/include/gnss/factor/factor_gnss_pseudo_range.h b/include/gnss/factor/factor_gnss_pseudo_range.h
index c2287849c6bf461d8357678066c8356fd03abf57..85e64ee5378166ce81c4e0cfe7b0b80da0abdbd1 100644
--- a/include/gnss/factor/factor_gnss_pseudo_range.h
+++ b/include/gnss/factor/factor_gnss_pseudo_range.h
@@ -30,26 +30,27 @@ class FactorGnssPseudoRange : public FactorAutodiff<FactorGnssPseudoRange, 1, 3,
                               bool _apply_loss_function,
                               FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssPseudoRange, 1, 3, 4, 1, 1, 3, 3, 1, 1, 1>("FactorGnssPseudoRange",
-                                                                             nullptr,
-                                                                             nullptr,
-                                                                             nullptr,
-                                                                             nullptr,
-                                                                             _processor_ptr,
-                                                                             _apply_loss_function,
-                                                                             _status,
-                                                                             _ftr_ptr->getFrame()->getP(),
-                                                                             _ftr_ptr->getFrame()->getO(),
-                                                                             _ftr_ptr->getCapture()->getStateBlock("T"),
-                                                                             (_ftr_ptr->getSatellite().sys == SYS_GLO ?
+                                                                                _ftr_ptr,
+                                                                                nullptr,
+                                                                                nullptr,
+                                                                                nullptr,
+                                                                                nullptr,
+                                                                                _processor_ptr,
+                                                                                _apply_loss_function,
+                                                                                _status,
+                                                                                _ftr_ptr->getFrame()->getP(),
+                                                                                _ftr_ptr->getFrame()->getO(),
+                                                                                _ftr_ptr->getCapture()->getStateBlock("T"),
+                                                                                (_ftr_ptr->getSatellite().sys == SYS_GLO ?
                                                                                      _ftr_ptr->getCapture()->getStateBlock("TG") :
                                                                                      (_ftr_ptr->getSatellite().sys == SYS_GAL ?
                                                                                              _ftr_ptr->getCapture()->getStateBlock("TE") :
                                                                                              _ftr_ptr->getCapture()->getStateBlock("TC"))),//in case GPS, TC is set but anyway not used
-                                                                             _sensor_gnss_ptr->getP(),
-                                                                             _sensor_gnss_ptr->getEnuMapTranslation(),
-                                                                             _sensor_gnss_ptr->getEnuMapRoll(),
-                                                                             _sensor_gnss_ptr->getEnuMapPitch(),
-                                                                             _sensor_gnss_ptr->getEnuMapYaw()),
+                                                                                _sensor_gnss_ptr->getP(),
+                                                                                _sensor_gnss_ptr->getEnuMapTranslation(),
+                                                                                _sensor_gnss_ptr->getEnuMapRoll(),
+                                                                                _sensor_gnss_ptr->getEnuMapPitch(),
+                                                                                _sensor_gnss_ptr->getEnuMapYaw()),
             sensor_gnss_ptr_(_sensor_gnss_ptr),
             satellite_ENU_(sensor_gnss_ptr_->getREnuEcef() * _ftr_ptr->getSatellite().pos + sensor_gnss_ptr_->gettEnuEcef()),
             satellite_ECEF_(_ftr_ptr->getSatellite().pos),
diff --git a/include/gnss/factor/factor_gnss_single_diff_2d.h b/include/gnss/factor/factor_gnss_single_diff_2d.h
index 44a6dbdff015ad7b9049d0d115c48899ddf35cf2..07feddd0f63f63dd9d1666f66aa7bb23fce6c6f1 100644
--- a/include/gnss/factor/factor_gnss_single_diff_2d.h
+++ b/include/gnss/factor/factor_gnss_single_diff_2d.h
@@ -21,6 +21,7 @@ class FactorGnssSingleDiff2d : public FactorAutodiff<FactorGnssSingleDiff2d, 3,
 
         FactorGnssSingleDiff2d(FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_other_ptr, const SensorGnssPtr& _sensor_gnss_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function, FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssSingleDiff2d, 3, 2, 1, 2, 1, 3, 1, 1, 1>("GNSS SINGLE DIFFERENCES 2d",
+                                                                              _ftr_ptr,
                                                                               _frame_other_ptr,
                                                                               nullptr,
                                                                               nullptr,
diff --git a/include/gnss/factor/factor_gnss_tdcp.h b/include/gnss/factor/factor_gnss_tdcp.h
index 9a44da6af578df7104e6082982090e5fd09e8742..3f9625d976e3d422006231a4a591540f9d4e34e3 100644
--- a/include/gnss/factor/factor_gnss_tdcp.h
+++ b/include/gnss/factor/factor_gnss_tdcp.h
@@ -31,6 +31,7 @@ class FactorGnssTdcp : public FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1
                        bool _apply_loss_function,
                        FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1, 3, 3, 1, 1, 1>("FactorGnssTdcp",
+                                                                               _ftr_k,
                                                                                nullptr,
                                                                                _ftr_r->getCapture(),
                                                                                _ftr_r,
diff --git a/include/gnss/factor/factor_gnss_tdcp_2d.h b/include/gnss/factor/factor_gnss_tdcp_2d.h
index 4bd939d1e5f465cc82b56f517439674ddb4647c4..1662ad0ede01c12f1f275b708bd7cb9de5ffe829 100644
--- a/include/gnss/factor/factor_gnss_tdcp_2d.h
+++ b/include/gnss/factor/factor_gnss_tdcp_2d.h
@@ -21,21 +21,22 @@ class FactorGnssTdcp2d : public FactorAutodiff<FactorGnssTdcp2d, 3, 2, 1, 2, 1,
 
         FactorGnssTdcp2d(FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_other_ptr, const SensorGnssPtr& _sensor_gnss_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function = false, FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssTdcp2d, 3, 2, 1, 2, 1, 3, 1, 1, 1>("FactorGnssTdcp2d",
-                                                                              _frame_other_ptr,
-                                                                              nullptr,
-                                                                              nullptr,
-                                                                              nullptr,
-                                                                              _processor_ptr,
-                                                                              _apply_loss_function,
-                                                                              _status,
-                                                                              _frame_other_ptr->getP(),
-                                                                              _frame_other_ptr->getO(),
-                                                                              _ftr_ptr->getFrame()->getP(),
-                                                                              _ftr_ptr->getFrame()->getO(),
-                                                                              _sensor_gnss_ptr->getP(),
-                                                                              _sensor_gnss_ptr->getEnuMapRoll(),
-                                                                              _sensor_gnss_ptr->getEnuMapPitch(),
-                                                                              _sensor_gnss_ptr->getEnuMapYaw()),
+                                                                        _ftr_ptr,
+                                                                        _frame_other_ptr,
+                                                                        nullptr,
+                                                                        nullptr,
+                                                                        nullptr,
+                                                                        _processor_ptr,
+                                                                        _apply_loss_function,
+                                                                        _status,
+                                                                        _frame_other_ptr->getP(),
+                                                                        _frame_other_ptr->getO(),
+                                                                        _ftr_ptr->getFrame()->getP(),
+                                                                        _ftr_ptr->getFrame()->getO(),
+                                                                        _sensor_gnss_ptr->getP(),
+                                                                        _sensor_gnss_ptr->getEnuMapRoll(),
+                                                                        _sensor_gnss_ptr->getEnuMapPitch(),
+                                                                        _sensor_gnss_ptr->getEnuMapYaw()),
             sensor_gnss_ptr_(_sensor_gnss_ptr)
         {
             WOLF_WARN_COND(!sensor_gnss_ptr_->isEnuDefined(), "Creating a GNSS SingleDiff 2D factor without initializing ENU");
diff --git a/include/gnss/factor/factor_gnss_tdcp_3d.h b/include/gnss/factor/factor_gnss_tdcp_3d.h
index e9a0a5914097fcd510a3f7801d6ac50099299782..d034b22ba3057a7aa24b6a6340f02ae9e1c84f83 100644
--- a/include/gnss/factor/factor_gnss_tdcp_3d.h
+++ b/include/gnss/factor/factor_gnss_tdcp_3d.h
@@ -21,6 +21,7 @@ class FactorGnssTdcp3d : public FactorAutodiff<FactorGnssTdcp3d, 3, 3, 4, 3, 4,
 
         FactorGnssTdcp3d(FeatureBasePtr& _ftr_ptr, const FrameBasePtr& _frame_other_ptr, const SensorGnssPtr& _sensor_gnss_ptr, const ProcessorBasePtr& _processor_ptr, bool _apply_loss_function = false, FactorStatus _status = FAC_ACTIVE) :
             FactorAutodiff<FactorGnssTdcp3d, 3, 3, 4, 3, 4, 3, 1, 1, 1>("FactorGnssTdcp3d",
+                                                                        _ftr_ptr,
                                                                         _frame_other_ptr,
                                                                         nullptr,
                                                                         nullptr,