diff --git a/include/gnss/factor/factor_gnss_pseudo_range.h b/include/gnss/factor/factor_gnss_pseudo_range.h
index 9dbf1419409e3d6a3b71bb69ac6798420d16883d..17aa7734cca56467daa075d31e748a0d014c31c8 100644
--- a/include/gnss/factor/factor_gnss_pseudo_range.h
+++ b/include/gnss/factor/factor_gnss_pseudo_range.h
@@ -40,12 +40,12 @@ class FactorGnssPseudoRange : public FactorAutodiff<FactorGnssPseudoRange, 1, 3,
                                                                                 _status,
                                                                                 _ftr_ptr->getFrame()->getP(),
                                                                                 _ftr_ptr->getFrame()->getO(),
-                                                                                _ftr_ptr->getCapture()->getStateBlock("T"),
+                                                                                _ftr_ptr->getCapture()->getStateBlock('T'),
                                                                                 (_ftr_ptr->getSatellite().sys == SYS_GLO ?
-                                                                                     _ftr_ptr->getCapture()->getStateBlock("G") :
+                                                                                     _ftr_ptr->getCapture()->getStateBlock('G') :
                                                                                      (_ftr_ptr->getSatellite().sys == SYS_GAL ?
-                                                                                             _ftr_ptr->getCapture()->getStateBlock("E") :
-                                                                                             _ftr_ptr->getCapture()->getStateBlock("M"))),//in case GPS, M is set but anyway not used
+                                                                                             _ftr_ptr->getCapture()->getStateBlock('E') :
+                                                                                             _ftr_ptr->getCapture()->getStateBlock('M'))),//in case GPS, M is set but anyway not used
                                                                                 _sensor_gnss_ptr->getP(),
                                                                                 _sensor_gnss_ptr->getEnuMapTranslation(),
                                                                                 _sensor_gnss_ptr->getEnuMapRoll(),
diff --git a/include/gnss/factor/factor_gnss_tdcp.h b/include/gnss/factor/factor_gnss_tdcp.h
index edc56b4ba211950e0417be1eac7753797b9d2149..0cf18f03d05bfcbf219e17ccc7ee59990cd3f827 100644
--- a/include/gnss/factor/factor_gnss_tdcp.h
+++ b/include/gnss/factor/factor_gnss_tdcp.h
@@ -41,10 +41,10 @@ class FactorGnssTdcp : public FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1
                                                                                _status,
                                                                                _ftr_r->getFrame()->getP(),
                                                                                _ftr_r->getFrame()->getO(),
-                                                                               _ftr_r->getCapture()->getStateBlock("T"),
+                                                                               _ftr_r->getCapture()->getStateBlock('T'),
                                                                                _ftr_k->getFrame()->getP(),
                                                                                _ftr_k->getFrame()->getO(),
-                                                                               _ftr_k->getCapture()->getStateBlock("T"),
+                                                                               _ftr_k->getCapture()->getStateBlock('T'),
                                                                                _sensor_gnss_ptr->getP(),
                                                                                _sensor_gnss_ptr->getEnuMapTranslation(),
                                                                                _sensor_gnss_ptr->getEnuMapRoll(),
@@ -56,8 +56,8 @@ class FactorGnssTdcp : public FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1
             satellite_ENU_r_(sensor_gnss_ptr_->getREnuEcef() * _ftr_r->getSatellite().pos + sensor_gnss_ptr_->gettEnuEcef())
         {
             assert(_ftr_r != _ftr_k);
-            assert(_ftr_r->getCapture()->getStateBlock("T") != nullptr);
-            assert(_ftr_k->getCapture()->getStateBlock("T") != nullptr);
+            assert(_ftr_r->getCapture()->getStateBlock('T') != nullptr);
+            assert(_ftr_k->getCapture()->getStateBlock('T') != nullptr);
 
             WOLF_WARN_COND(!sensor_gnss_ptr_->isEnuDefined() && _status == FAC_ACTIVE, "Creating an FactorGnssTdcp without initializing ENU");
 
diff --git a/include/gnss/sensor/sensor_gnss.h b/include/gnss/sensor/sensor_gnss.h
index 96d9dc986bc71da54ca6ba44a7ccdf3480e20cb1..d3406455faa28be57193382dbc5f1b3d54e8850e 100644
--- a/include/gnss/sensor/sensor_gnss.h
+++ b/include/gnss/sensor/sensor_gnss.h
@@ -8,10 +8,10 @@
 
 namespace wolf {
 
-static std::string CLOCK_BIAS_KEY = "T";
-static std::string CLOCK_BIAS_GPS_GLO_KEY = "G";
-static std::string CLOCK_BIAS_GPS_GAL_KEY = "E";
-static std::string CLOCK_BIAS_GPS_CMP_KEY = "M";
+static char CLOCK_BIAS_KEY = 'T';
+static char CLOCK_BIAS_GPS_GLO_KEY = 'G';
+static char CLOCK_BIAS_GPS_GAL_KEY = 'E';
+static char CLOCK_BIAS_GPS_CMP_KEY = 'M';
 
 WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorGnss);
 WOLF_PTR_TYPEDEFS(SensorGnss);
@@ -156,22 +156,22 @@ inline bool SensorGnss::isEnuModeAuto() const
 
 inline StateBlockPtr SensorGnss::getEnuMapTranslation() const
 {
-    return getStateBlock("t");
+    return getStateBlock('t');
 }
 
 inline StateBlockPtr SensorGnss::getEnuMapRoll() const
 {
-    return getStateBlock("r");
+    return getStateBlock('r');
 }
 
 inline StateBlockPtr SensorGnss::getEnuMapPitch() const
 {
-    return getStateBlock("p");
+    return getStateBlock('p');
 }
 
 inline StateBlockPtr SensorGnss::getEnuMapYaw() const
 {
-    return getStateBlock("y");
+    return getStateBlock('y');
 }
 
 inline const Eigen::Matrix3d& SensorGnss::getREnuEcef() const
diff --git a/src/capture/capture_gnss.cpp b/src/capture/capture_gnss.cpp
index 9294f3c606699432fadce29b0bf075e25a50538f..dba80b6658399b6dc39d82ada38afc5624a446e1 100644
--- a/src/capture/capture_gnss.cpp
+++ b/src/capture/capture_gnss.cpp
@@ -8,19 +8,19 @@ CaptureGnss::CaptureGnss(const TimeStamp& _ts, SensorBasePtr _sensor_ptr, GnssUt
 	snapshot_(_snapshot)
 {
     // Clock bias
-    assert(_sensor_ptr->getStateBlock("T") != nullptr and _sensor_ptr->isStateBlockDynamic("T"));
-    addStateBlock("T", std::make_shared<StateBlock>(1,true), nullptr);
+    assert(_sensor_ptr->getStateBlock('T') != nullptr and _sensor_ptr->isStateBlockDynamic('T'));
+    addStateBlock('T', std::make_shared<StateBlock>(1,true), nullptr);
 
     // interconstellation clock bias
-    assert(_sensor_ptr->getStateBlock("G") != nullptr);
-    if(_sensor_ptr->isStateBlockDynamic("G"))
-        addStateBlock("G", std::make_shared<StateBlock>(1,true), nullptr);
-    assert(_sensor_ptr->getStateBlock("E") != nullptr);
-    if(_sensor_ptr->isStateBlockDynamic("E"))
-        addStateBlock("E", std::make_shared<StateBlock>(1,true), nullptr);
-    assert(_sensor_ptr->getStateBlock("M") != nullptr);
-    if(_sensor_ptr->isStateBlockDynamic("M"))
-        addStateBlock("M", std::make_shared<StateBlock>(1,true), nullptr);
+    assert(_sensor_ptr->getStateBlock('G') != nullptr);
+    if(_sensor_ptr->isStateBlockDynamic('G'))
+        addStateBlock('G', std::make_shared<StateBlock>(1,true), nullptr);
+    assert(_sensor_ptr->getStateBlock('E') != nullptr);
+    if(_sensor_ptr->isStateBlockDynamic('E'))
+        addStateBlock('E', std::make_shared<StateBlock>(1,true), nullptr);
+    assert(_sensor_ptr->getStateBlock('M') != nullptr);
+    if(_sensor_ptr->isStateBlockDynamic('M'))
+        addStateBlock('M', std::make_shared<StateBlock>(1,true), nullptr);
 
 }
 
diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp
index 969c7b89e8d3886343c7dfae3d084e3bed69386c..72046d47ef6bf027b5031674bce17539aa7d7a29 100644
--- a/src/processor/processor_tracker_gnss.cpp
+++ b/src/processor/processor_tracker_gnss.cpp
@@ -44,13 +44,13 @@ void ProcessorTrackerGnss::preProcess()
     // Initialize clock bias stateblocks in capture
     if (fix_incoming_.success)
     {
-        incoming_ptr_->getStateBlock("T") ->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(0)));
-        if (sensor_gnss_->isStateBlockDynamic("G"))
-            incoming_ptr_->getStateBlock("G")->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(1)));
-        if (sensor_gnss_->isStateBlockDynamic("E"))
-            incoming_ptr_->getStateBlock("E")->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(2)));
-        if (sensor_gnss_->isStateBlockDynamic("M"))
-            incoming_ptr_->getStateBlock("M")->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(3)));
+        incoming_ptr_->getStateBlock('T') ->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(0)));
+        if (sensor_gnss_->isStateBlockDynamic('G'))
+            incoming_ptr_->getStateBlock('G')->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(1)));
+        if (sensor_gnss_->isStateBlockDynamic('E'))
+            incoming_ptr_->getStateBlock('E')->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(2)));
+        if (sensor_gnss_->isStateBlockDynamic('M'))
+            incoming_ptr_->getStateBlock('M')->setState(Eigen::Vector1d(CLIGHT*fix_incoming_.rcv_bias(3)));
     }
 
     // Set ECEF-ENU
@@ -202,14 +202,14 @@ void ProcessorTrackerGnss::establishFactors()
         }
 
         // unfix clock bias
-        last_ptr_->getStateBlock("T")->unfix();
+        last_ptr_->getStateBlock('T')->unfix();
         // unfix clock bias inter-constellation (if observed)
         if (ftr_sat->getSatellite().sys == SYS_GLO)
-            last_ptr_->getStateBlock("G")->unfix();
+            last_ptr_->getStateBlock('G')->unfix();
         if (ftr_sat->getSatellite().sys == SYS_GAL)
-            last_ptr_->getStateBlock("E")->unfix();
+            last_ptr_->getStateBlock('E')->unfix();
         if (ftr_sat->getSatellite().sys == SYS_CMP)
-            last_ptr_->getStateBlock("M")->unfix();
+            last_ptr_->getStateBlock('M')->unfix();
 
         // Emplace a pseudo range factor
         auto new_fac = FactorBase::emplace<FactorGnssPseudoRange>(ftr_sat,
@@ -239,7 +239,7 @@ void ProcessorTrackerGnss::establishFactors()
             WOLF_DEBUG("FeatureGnssSatellite sat: ", ftr_k->satNumber(), " id: ", ftr_k->id());
 
             // unfix clock bias
-            last_ptr_->getStateBlock("T")->unfix();
+            last_ptr_->getStateBlock('T')->unfix();
 
             // emplace a tdcp factor from last to each KF
             auto ts_ftr_r_map = track_matrix_.trackAtKeyframes(ftr_k_pair.first);
@@ -358,20 +358,20 @@ void ProcessorTrackerGnss::removeOutliers(FactorBasePtrList fac_list, CaptureBas
         //std::cout << "x_antena_pr:    " << x_antena_pr.transpose() << std::endl;
         //std::cout << "frame p:        " << cap->getFrame()->getP()->getState().transpose() << std::endl;
         //std::cout << "frame o:        " << cap->getFrame()->getO()->getState().transpose() << std::endl;
-        //std::cout << "sb clock:       " << cap->getStateBlock("T")->getState() << std::endl;
-        //std::cout << "sb clock glo:   " << cap->getStateBlock("G")->getState() << std::endl;
-        //std::cout << "sb clock gal:   " << cap->getStateBlock("E")->getState() << std::endl;
-        //std::cout << "sb clock cmp:   " << cap->getStateBlock("M")->getState() << std::endl;
+        //std::cout << "sb clock:       " << cap->getStateBlock('T')->getState() << std::endl;
+        //std::cout << "sb clock glo:   " << cap->getStateBlock('G')->getState() << std::endl;
+        //std::cout << "sb clock gal:   " << cap->getStateBlock('E')->getState() << std::endl;
+        //std::cout << "sb clock cmp:   " << cap->getStateBlock('M')->getState() << std::endl;
         //std::cout << "sb antena:      " << sensor_gnss_->getP()->getState().transpose() << std::endl;
     }
     else
     {
         x = cap->getFrame()->getP()->getState();
         o = cap->getFrame()->getO()->getState();
-        clock_bias = cap->getStateBlock("T")->getState();
-        clock_bias_glo = cap->getStateBlock("G")->getState();
-        clock_bias_gal = cap->getStateBlock("E")->getState();
-        clock_bias_cmp = cap->getStateBlock("M")->getState();
+        clock_bias = cap->getStateBlock('T')->getState();
+        clock_bias_glo = cap->getStateBlock('G')->getState();
+        clock_bias_gal = cap->getStateBlock('E')->getState();
+        clock_bias_cmp = cap->getStateBlock('M')->getState();
         x_antena_pr = sensor_gnss_->getP()->getState();
     }
 
@@ -380,8 +380,8 @@ void ProcessorTrackerGnss::removeOutliers(FactorBasePtrList fac_list, CaptureBas
     Eigen::Vector4d o_k(cap->getFrame()->getO()->getState());
     Eigen::Vector3d x_r(cap->getFrame()->getP()->getState());
     Eigen::Vector4d o_r(cap->getFrame()->getO()->getState());
-    Eigen::Vector1d clock_bias_k(cap->getStateBlock("T")->getState());
-    Eigen::Vector1d clock_bias_r(cap->getStateBlock("T")->getState());
+    Eigen::Vector1d clock_bias_k(cap->getStateBlock('T')->getState());
+    Eigen::Vector1d clock_bias_r(cap->getStateBlock('T')->getState());
     Eigen::Vector3d x_antena(sensor_gnss_->getP()->getState());
 
     // Common states
@@ -494,7 +494,7 @@ void ProcessorTrackerGnss::removeOutliers(FactorBasePtrList fac_list, CaptureBas
             // update ref frame
             x_r = fac_tdcp->getCaptureOther()->getFrame()->getP()->getState();
             o_r = fac_tdcp->getCaptureOther()->getFrame()->getO()->getState();
-            clock_bias_r = fac_tdcp->getCaptureOther()->getStateBlock("T")->getState();
+            clock_bias_r = fac_tdcp->getCaptureOther()->getStateBlock('T')->getState();
             parameters_tdcp[0] = x_r.data();
             parameters_tdcp[1] = o_r.data();
             parameters_tdcp[2] = clock_bias_r.data();
diff --git a/src/sensor/sensor_gnss.cpp b/src/sensor/sensor_gnss.cpp
index 36adee111cd3daed2bc7658a025cc7794ee7d11b..9a6d6aae2ce0c05942ef2f7a2edda5bf2cf9f51f 100644
--- a/src/sensor/sensor_gnss.cpp
+++ b/src/sensor/sensor_gnss.cpp
@@ -24,10 +24,10 @@ SensorGnss::SensorGnss(const Eigen::VectorXd& _extrinsics,
     assert(_extrinsics.size() == 3 && "Bad extrinsics size");
 
     // ENU
-    addStateBlock("t", std::make_shared<StateBlock>(3, params_->translation_fixed), false);
-    addStateBlock("r", std::make_shared<StateAngle>(0.0, params_->roll_fixed), false);
-    addStateBlock("p", std::make_shared<StateAngle>(0.0, params_->pitch_fixed), false);
-    addStateBlock("y", std::make_shared<StateAngle>(0.0, params_->yaw_fixed), false);
+    addStateBlock('t', std::make_shared<StateBlock>(3, params_->translation_fixed), false);
+    addStateBlock('r', std::make_shared<StateAngle>(0.0, params_->roll_fixed), false);
+    addStateBlock('p', std::make_shared<StateAngle>(0.0, params_->pitch_fixed), false);
+    addStateBlock('y', std::make_shared<StateAngle>(0.0, params_->yaw_fixed), false);
 
     // clock bias
     addStateBlock(CLOCK_BIAS_KEY, std::make_shared<StateBlock>(1,false), true); // receiver clock bias
diff --git a/test/gtest_factor_gnss_fix_2d.cpp b/test/gtest_factor_gnss_fix_2d.cpp
index f283eb6dc5f9270e03c4a5bbc8dc210f20124d8d..60c94cbe85f33e44f202687008479731b79a22f1 100644
--- a/test/gtest_factor_gnss_fix_2d.cpp
+++ b/test/gtest_factor_gnss_fix_2d.cpp
@@ -167,7 +167,7 @@ TEST(FactorGnssFix2dTest, gnss_1_map_base_position)
     ASSERT_EQ(solver_ceres->getSummary().num_residuals_reduced, 3);
 
     // --------------------------- check solver solution
-    ASSERT_MATRIX_APPROX(frame_ptr->getState().at("P"), t_map_base.head(2), 1e-6);
+    ASSERT_MATRIX_APPROX(frame_ptr->getState().at('P'), t_map_base.head(2), 1e-6);
 }
 
 /*
diff --git a/test/gtest_factor_gnss_pseudo_range.cpp b/test/gtest_factor_gnss_pseudo_range.cpp
index 402608ab90c694826ed3fb55612d34f53b04ded8..9c7f1e36bbe839e321214d0fbdd37e7aadb14cca 100644
--- a/test/gtest_factor_gnss_pseudo_range.cpp
+++ b/test/gtest_factor_gnss_pseudo_range.cpp
@@ -108,8 +108,8 @@ void setUpProblem()
 
     // capture
     cap = CaptureBase::emplace<CaptureGnss>(frm, TimeStamp(0), gnss_sensor, nullptr);
-    cap->getStateBlock("T")->unfix();
-    cap->getStateBlock("T")->setState(clock_drift);
+    cap->getStateBlock('T')->unfix();
+    cap->getStateBlock('T')->setState(clock_drift);
 
     // features
     ftr1 = FeatureBase::emplace<FeatureGnssSatellite>(cap, obsd_t(), sat1, range1); // obsd_t data is not used in pseudo range factors
@@ -135,7 +135,7 @@ void setUpProblem()
     ASSERT_MATRIX_APPROX(frm->getP()->getState(), t_map_base, 1e-3);
     ASSERT_MATRIX_APPROX(frm->getO()->getState(), q_map_base.coeffs(), 1e-3);
         // clock drift
-    ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock("T")->getState(), 1e-3);
+    ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock('T')->getState(), 1e-3);
 }
 
 void fixAllStates()
@@ -164,10 +164,10 @@ TEST(FactorGnssPreusoRangeTest, observe_clock_drift)
 
         // fix/unfix
         fixAllStates();
-        cap->getStateBlock("T")->unfix();
+        cap->getStateBlock('T')->unfix();
 
         // perturb
-        cap->getStateBlock("T")->perturb(1e2);
+        cap->getStateBlock('T')->perturb(1e2);
 
         // Only 1 factor
         fac2->setStatus(FAC_INACTIVE);
@@ -178,7 +178,7 @@ TEST(FactorGnssPreusoRangeTest, observe_clock_drift)
         std::string report = solver->solve(SolverManager::ReportVerbosity::FULL);
         //std::cout << report << std::endl;
 
-        ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock('T')->getState(), 1e-3);
     }
 }
 
@@ -219,11 +219,11 @@ TEST(FactorGnssPreusoRangeTest, observe_frame_p_clock)
         // fix/unfix
         fixAllStates();
         frm->getP()->unfix();
-        cap->getStateBlock("T")->unfix();
+        cap->getStateBlock('T')->unfix();
 
         // perturb
         frm->getP()->perturb(1);
-        cap->getStateBlock("T")->perturb(1e2);
+        cap->getStateBlock('T')->perturb(1e2);
 
         // all 4 factors
 
@@ -232,7 +232,7 @@ TEST(FactorGnssPreusoRangeTest, observe_frame_p_clock)
         //std::cout << report << std::endl;
 
         ASSERT_MATRIX_APPROX(frm->getP()->getState(), t_map_base, 1e-3);
-        ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift, cap->getStateBlock('T')->getState(), 1e-3);
     }
 }
 
diff --git a/test/gtest_factor_gnss_tdcp.cpp b/test/gtest_factor_gnss_tdcp.cpp
index 98e8b75f43b192c9ed9ebdce037c989a401631ae..90c5ab964207fccb52a3ed507f2dedf1487abe81 100644
--- a/test/gtest_factor_gnss_tdcp.cpp
+++ b/test/gtest_factor_gnss_tdcp.cpp
@@ -129,13 +129,13 @@ void setUpProblem()
 
     // capture r
     cap_r = CaptureBase::emplace<CaptureGnss>(frm_r, TimeStamp(0), gnss_sensor, nullptr);
-    cap_r->getStateBlock("T")->unfix();
-    cap_r->getStateBlock("T")->setState(clock_drift_r);
+    cap_r->getStateBlock('T')->unfix();
+    cap_r->getStateBlock('T')->setState(clock_drift_r);
 
     // capture k
     cap_k = CaptureBase::emplace<CaptureGnss>(frm_k, TimeStamp(1), gnss_sensor, nullptr);
-    cap_k->getStateBlock("T")->unfix();
-    cap_k->getStateBlock("T")->setState(clock_drift_k);
+    cap_k->getStateBlock('T')->unfix();
+    cap_k->getStateBlock('T')->setState(clock_drift_k);
 
     // features r
     ftr1_r = FeatureBase::emplace<FeatureGnssSatellite>(cap_r, obsd_t(), sat1_r, range1_r);
@@ -170,8 +170,8 @@ void setUpProblem()
     ASSERT_MATRIX_APPROX(frm_k->getP()->getState(), t_map_base_k, 1e-3);
     ASSERT_MATRIX_APPROX(frm_k->getO()->getState(), q_map_base_k.coeffs(), 1e-3);
     // clock drift
-    ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock("T")->getState(), 1e-3);
-    ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock("T")->getState(), 1e-3);
+    ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock('T')->getState(), 1e-3);
+    ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock('T')->getState(), 1e-3);
 }
 
 void fixAllStates()
@@ -202,10 +202,10 @@ TEST(FactorGnssTdcpTest, observe_clock_drift_r)
 
         // fix/unfix
         fixAllStates();
-        cap_r->getStateBlock("T")->unfix();
+        cap_r->getStateBlock('T')->unfix();
 
         // perturb
-        cap_r->getStateBlock("T")->perturb(1e2);
+        cap_r->getStateBlock('T')->perturb(1e2);
 
         // Only 1 factor
         fac2->setStatus(FAC_INACTIVE);
@@ -216,7 +216,7 @@ TEST(FactorGnssTdcpTest, observe_clock_drift_r)
         std::string report = solver->solve(SolverManager::ReportVerbosity::FULL);
         //std::cout << report << std::endl;
 
-        ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock('T')->getState(), 1e-3);
     }
 }
 
@@ -230,10 +230,10 @@ TEST(FactorGnssTdcpTest, observe_clock_drift_k)
 
         // fix/unfix
         fixAllStates();
-        cap_k->getStateBlock("T")->unfix();
+        cap_k->getStateBlock('T')->unfix();
 
         // perturb
-        cap_k->getStateBlock("T")->perturb(1e2);
+        cap_k->getStateBlock('T')->perturb(1e2);
 
         // Only 1 factor
         fac2->setStatus(FAC_INACTIVE);
@@ -244,7 +244,7 @@ TEST(FactorGnssTdcpTest, observe_clock_drift_k)
         std::string report = solver->solve(SolverManager::ReportVerbosity::FULL);
         //std::cout << report << std::endl;
 
-        ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock('T')->getState(), 1e-3);
     }
 }
 
@@ -311,11 +311,11 @@ TEST(FactorGnssTdcpTest, observe_frame_p_clock_k)
         // fix/unfix
         fixAllStates();
         frm_k->getP()->unfix();
-        cap_k->getStateBlock("T")->unfix();
+        cap_k->getStateBlock('T')->unfix();
 
         // perturb
         frm_k->getP()->perturb(1);
-        cap_k->getStateBlock("T")->perturb(1e2);
+        cap_k->getStateBlock('T')->perturb(1e2);
 
         // all 4 factors
 
@@ -324,7 +324,7 @@ TEST(FactorGnssTdcpTest, observe_frame_p_clock_k)
         //std::cout << report << std::endl;
 
         ASSERT_MATRIX_APPROX(frm_k->getP()->getState(), t_map_base_k, 1e-3);
-        ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift_k, cap_k->getStateBlock('T')->getState(), 1e-3);
     }
 }
 
@@ -339,11 +339,11 @@ TEST(FactorGnssTdcpTest, observe_frame_p_clock_r)
         // fix/unfix
         fixAllStates();
         frm_r->getP()->unfix();
-        cap_r->getStateBlock("T")->unfix();
+        cap_r->getStateBlock('T')->unfix();
 
         // perturb
         frm_r->getP()->perturb(1);
-        cap_r->getStateBlock("T")->perturb(1e2);
+        cap_r->getStateBlock('T')->perturb(1e2);
 
         // all 4 factors
 
@@ -352,7 +352,7 @@ TEST(FactorGnssTdcpTest, observe_frame_p_clock_r)
         //std::cout << report << std::endl;
 
         ASSERT_MATRIX_APPROX(frm_r->getP()->getState(), t_map_base_r, 1e-3);
-        ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock("T")->getState(), 1e-3);
+        ASSERT_MATRIX_APPROX(clock_drift_r, cap_r->getStateBlock('T')->getState(), 1e-3);
     }
 }