diff --git a/demos/hello_wolf/yaml/processor_odom_2d.yaml b/demos/hello_wolf/yaml/processor_odom_2d.yaml
index 625676edf735ba2bad5ba307e300bbb866e78ab3..ded2d752badc3ee26d0a774121607952ebfc1c7f 100644
--- a/demos/hello_wolf/yaml/processor_odom_2d.yaml
+++ b/demos/hello_wolf/yaml/processor_odom_2d.yaml
@@ -12,4 +12,4 @@ keyframe_vote:
 apply_loss_function: true
 
 state_provider: true
-state_priority: 1
+state_provider_order: 1
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index f37dc90125c15da89c96d339347b9ae5f9732b37..18e2d5273737bf1d9b46715b439699bda74f29c6 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -106,35 +106,35 @@ wolf_add_gtest(gtest_SE3 gtest_SE3.cpp)
 # SE2 test
 wolf_add_gtest(gtest_SE2 gtest_SE2.cpp)
 
-# # SensorBase test
-# wolf_add_gtest(gtest_sensor_base gtest_sensor_base.cpp)
+# SensorBase test
+wolf_add_gtest(gtest_sensor_base gtest_sensor_base.cpp)
 
-# # shared_from_this test
-# wolf_add_gtest(gtest_shared_from_this gtest_shared_from_this.cpp)
+# shared_from_this test
+wolf_add_gtest(gtest_shared_from_this gtest_shared_from_this.cpp)
 
-# # SolverManager test
-# wolf_add_gtest(gtest_solver_manager gtest_solver_manager.cpp)
+# SolverManager test
+wolf_add_gtest(gtest_solver_manager gtest_solver_manager.cpp)
 
-# # SolverManagerMultithread test
-# wolf_add_gtest(gtest_solver_manager_multithread gtest_solver_manager_multithread.cpp)
+# SolverManagerMultithread test
+wolf_add_gtest(gtest_solver_manager_multithread gtest_solver_manager_multithread.cpp)
 
-# # StateBlock class test
-# wolf_add_gtest(gtest_state_block gtest_state_block.cpp)
+# StateBlock class test
+wolf_add_gtest(gtest_state_block gtest_state_block.cpp)
 
-# # StateBlock class test
-# wolf_add_gtest(gtest_state_composite gtest_state_composite.cpp)
+# StateBlock class test
+wolf_add_gtest(gtest_state_composite gtest_state_composite.cpp)
 
-# # TimeStamp class test
-# wolf_add_gtest(gtest_time_stamp gtest_time_stamp.cpp)
+# TimeStamp class test
+wolf_add_gtest(gtest_time_stamp gtest_time_stamp.cpp)
 
-# # TrackMatrix class test
-# wolf_add_gtest(gtest_track_matrix gtest_track_matrix.cpp)
+# TrackMatrix class test
+wolf_add_gtest(gtest_track_matrix gtest_track_matrix.cpp)
 
-# # TrajectoryBase class test
-# wolf_add_gtest(gtest_trajectory gtest_trajectory.cpp)
+# TrajectoryBase class test
+wolf_add_gtest(gtest_trajectory gtest_trajectory.cpp)
 
-# # TreeManager class test
-# wolf_add_gtest(gtest_tree_manager gtest_tree_manager.cpp)
+# TreeManager class test
+wolf_add_gtest(gtest_tree_manager gtest_tree_manager.cpp)
 
 # ------- Now Derived classes ----------
 
diff --git a/test/gtest_sensor_base.cpp b/test/gtest_sensor_base.cpp
index 634a8b795c476185f9031a0fcf1e1bd72bb4cf33..d8d5fcc40c1947bdc27a2bf565f29ad2ca68bf30 100644
--- a/test/gtest_sensor_base.cpp
+++ b/test/gtest_sensor_base.cpp
@@ -104,8 +104,8 @@ TEST(SensorBase, makeshared_priors_POfix2D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy2d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_2D)}, //default "fix", not dynamic
-                                                   {'O',SpecStateSensor("O", o_state_2D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint2d", p_state_2D)}, //default "fix", not dynamic
+                                                                {'O',SpecStateSensor("StateAngle", o_state_2D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -124,8 +124,8 @@ TEST(SensorBase, makeshared_priors_POfix3D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D)}, //default "fix", not dynamic
-                                                   {'O',SpecStateSensor("O", o_state_3D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D)}, //default "fix", not dynamic
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -147,8 +147,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess2D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy2d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_2D, "initial_guess")},
-                                                   {'O',SpecStateSensor("O", o_state_2D, "initial_guess")}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint2d", p_state_2D, "initial_guess")},
+                                                                {'O',SpecStateSensor("StateAngle", o_state_2D, "initial_guess")}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -170,8 +170,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess3D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D, "initial_guess")},
-                                                   {'O',SpecStateSensor("O", o_state_3D, "initial_guess")}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D, "initial_guess")},
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D, "initial_guess")}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -193,8 +193,8 @@ TEST(SensorBase, makeshared_priors_POfactor2D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy2d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_2D, "factor", p_std_2D)},
-                                                   {'O',SpecStateSensor("O", o_state_2D, "factor", o_std_2D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint2d", p_state_2D, "factor", p_std_2D)},
+                                                                {'O',SpecStateSensor("StateAngle", o_state_2D, "factor", o_std_2D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -216,8 +216,8 @@ TEST(SensorBase, makeshared_priors_POfactor3D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D, "factor", p_std_3D)},
-                                                   {'O',SpecStateSensor("O", o_state_3D, "factor", o_std_3D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D, "factor", p_std_3D)},
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D, "factor", o_std_3D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -239,8 +239,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess_dynamic2D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy2d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_2D, "initial_guess", vector0, true)},
-                                                   {'O',SpecStateSensor("O", o_state_2D, "initial_guess", vector0, true)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint2d", p_state_2D, "initial_guess", vector0, true)},
+                                                                {'O',SpecStateSensor("StateAngle", o_state_2D, "initial_guess", vector0, true)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -262,8 +262,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess_dynamic3D)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D, "initial_guess", vector0, true)},
-                                                   {'O',SpecStateSensor("O", o_state_3D, "initial_guess", vector0, true)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D, "initial_guess", vector0, true)},
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D, "initial_guess", vector0, true)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -285,8 +285,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess_dynamic2D_drift)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy2d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_2D, "initial_guess", vector0, true, p_std_2D)},
-                                                   {'O',SpecStateSensor("O", o_state_2D, "initial_guess", vector0, true, o_std_2D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint2d", p_state_2D, "initial_guess", vector0, true, p_std_2D)},
+                                                                {'O',SpecStateSensor("StateAngle", o_state_2D, "initial_guess", vector0, true, o_std_2D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -308,8 +308,8 @@ TEST(SensorBase, makeshared_priors_POinitial_guess_dynamic3D_drift)
   params->noise_o_std = noise_o_std;
   
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D, "initial_guess", vector0, true, p_std_3D)},
-                                                   {'O',SpecStateSensor("O", o_state_3D, "initial_guess", vector0, true, o_std_3D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D, "initial_guess", vector0, true, p_std_3D)},
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D, "initial_guess", vector0, true, o_std_3D)}}));
 
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
@@ -333,10 +333,10 @@ TEST(SensorBase, makeshared_priors_POIA_mixed)
   VectorXd i_state_3D = VectorXd::Random(5);
 
   auto S = std::make_shared<SensorDummy3d>(params, 
-                                           SpecSensorComposite({{'P',SpecStateSensor("P", p_state_3D, "fix", vector0, true)},
-                                                   {'O',SpecStateSensor("O", o_state_3D, "factor", o_std_3D, true, o_std_3D)},
-                                                   {'I',SpecStateSensor("StateParams5", i_state_3D, "initial_guess")},
-                                                   {'A',SpecStateSensor("StateQuaternion", o_state_3D, "factor", o_std_3D)}}));
+                                           SpecSensorComposite({{'P',SpecStateSensor("StatePoint3d", p_state_3D, "fix", vector0, true)},
+                                                                {'O',SpecStateSensor("StateQuaternion", o_state_3D, "factor", o_std_3D, true, o_std_3D)},
+                                                                {'I',SpecStateSensor("StateParams5", i_state_3D, "initial_guess")},
+                                                                {'A',SpecStateSensor("StateQuaternion", o_state_3D, "factor", o_std_3D)}}));
      
   // noise
   ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), noise_cov_dummy, Constants::EPS);
diff --git a/test/gtest_state_block.cpp b/test/gtest_state_block.cpp
index 5a6272fe4d84582f11035ee121a3693307afe09c..fd6bb365514d484d823c0f26d14a9b4798c3e5c8 100644
--- a/test/gtest_state_block.cpp
+++ b/test/gtest_state_block.cpp
@@ -103,7 +103,7 @@ TEST(StatePoint3d, transform_identity)
 
     Vector7d xtrf;
     xtrf << 0, 0, 0, 0, 0, 0, 1;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     sb.transform(trf);
     ASSERT_MATRIX_APPROX(sb.getState(), x0, 1e-15);
@@ -116,7 +116,7 @@ TEST(StatePoint3d, transform_translation_4x5y6z)
 
     Vector7d xtrf;
     xtrf << 4, 5, 6, 0, 0, 0, 1;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector3d x(5, 7, 9);  // x0 translated (4,5,6)
 
@@ -131,7 +131,7 @@ TEST(StatePoint3d, transform_rotation_90x)
 
     Vector7d xtrf;
     xtrf << 0, 0, 0, sqrt(2) / 2, 0, 0, sqrt(2) / 2;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector3d x(1, -3, 2);  // x0 rotated (90,0,0)
 
@@ -146,7 +146,7 @@ TEST(StatePoint3d, transform_translation_1y_rotation_90x)
 
     Vector7d xtrf;
     xtrf << 0, 1, 0, sqrt(2) / 2, 0, 0, sqrt(2) / 2;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector3d x(1, -2, 2);  // x0 translated (0,1,0) and rotated (90,0,0)
 
@@ -161,7 +161,7 @@ TEST(StatePoint3d, non_transformable_translation_rotation)
 
     Vector7d xtrf;
     xtrf << 0, 1, 0, sqrt(2) / 2, 0, 0, sqrt(2) / 2;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector3d x(1, 2, 3);  // x0 NOT translated (0,1,0) and NOT rotated (90,0,0)
 
@@ -176,7 +176,7 @@ TEST(StateVector3d, transform_translation_1y_rotation_90x)
 
     Vector7d xtrf;
     xtrf << 0, 1, 0, sqrt(2) / 2, 0, 0, sqrt(2) / 2;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector3d x(1, -3, 2);  // x0 NOT translated (0,1,0) and rotated (90,0,0)
 
@@ -191,7 +191,7 @@ TEST(StatePoint2d, transform_translation_1y_rotation_90)
 
     Vector3d xtrf;
     xtrf << 0, 1, M_PI / 2;
-    VectorComposite trf(xtrf, "PO", {2, 1});
+    VectorComposite trf("PO", xtrf, {2, 1});
 
     Vector2d x(-2, 2);  // x0 translated (0,1) and rotated 90 deg
 
@@ -206,7 +206,7 @@ TEST(StateVector2d, transform_translation_1y_rotation_90)
 
     Vector3d xtrf;
     xtrf << 0, 1, M_PI / 2;
-    VectorComposite trf(xtrf, "PO", {2, 1});
+    VectorComposite trf("PO", xtrf, {2, 1});
 
     Vector2d x(-2, 1);  // x0 NON translated (0,1) and rotated 90 deg
 
@@ -221,7 +221,7 @@ TEST(StateParams4, transform_translation_1y_rotation_90x)
 
     Vector7d xtrf;
     xtrf << 0, 1, 0, sqrt(2) / 2, 0, 0, sqrt(2) / 2;
-    VectorComposite trf(xtrf, "PO", {3, 4});
+    VectorComposite trf("PO", xtrf, {3, 4});
 
     Vector4d x(1, 2, 3, 4);  // x0 NOT translated (0,1,0) and NOT rotated (90,0,0)
 
diff --git a/test/gtest_state_composite.cpp b/test/gtest_state_composite.cpp
index f077c1608f908694327d6aa2b595892ca4e2ba84..407fdea48dd1907bcfe1b0a42a84f7a7a6b52f45 100644
--- a/test/gtest_state_composite.cpp
+++ b/test/gtest_state_composite.cpp
@@ -280,7 +280,7 @@ TEST(VectorComposite, constructor_copy)
 
 TEST(VectorComposite, constructor_from_list)
 {
-    VectorComposite v(Vector4d(1,2,3,4), "ab", {3,1});
+    VectorComposite v("ab", Vector4d(1,2,3,4), {3,1});
 
     ASSERT_MATRIX_APPROX(v.at('a'), Vector3d(1,2,3), 1e-20);
     ASSERT_MATRIX_APPROX(v.at('b'), Vector1d(4), 1e-20);
diff --git a/test/gtest_trajectory.cpp b/test/gtest_trajectory.cpp
index a679c61169dda05d9a53ff096a41f9ad0e009bc1..46d0f06b46a33502acedd3a883e263e130697ee2 100644
--- a/test/gtest_trajectory.cpp
+++ b/test/gtest_trajectory.cpp
@@ -53,34 +53,34 @@ TEST(TrajectoryBase, ClosestKeyFrame)
     //   1     2     3     4       time stamps
     // --+-----+-----+-----+--->   time
 
-    FrameBasePtr F1 = P->emplaceFrame(          1, Eigen::Vector3d::Zero() );
-    FrameBasePtr F2 = P->emplaceFrame(          2, Eigen::Vector3d::Zero() );
-    FrameBasePtr F3 = std::make_shared<FrameBase>(3, P->getFrameKeys(),
-                                                  //                                                              P->getDim(),
-                                                  std::list<VectorXd>({Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}) );
-    FrameBasePtr F4 = std::make_shared<FrameBase>(4, P->getFrameKeys(),
-                                                  //                                                              P->getDim(),
-                                                  std::list<VectorXd>({Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}) );
+    FrameBasePtr F1 = P->emplaceFrame(1, "PO", Eigen::Vector3d::Zero() );
+    FrameBasePtr F2 = P->emplaceFrame(2, "PO", Eigen::Vector3d::Zero() );
+    FrameBasePtr F3 = std::make_shared<FrameBase>(3, 
+                                                  P->getFrameTypes(),
+                                                  VectorComposite("PO", {Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}) );
+    FrameBasePtr F4 = std::make_shared<FrameBase>(4, 
+                                                  P->getFrameTypes(),
+                                                  VectorComposite("PO", {Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}) );
 
     FrameBasePtr KF; // closest key-frame queried
 
-    KF = T->closestFrameToTimeStamp(-0.8);                // before all keyframes    --> return F1
-    ASSERT_EQ(KF->id(), F1->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(-0.8);    // before all keyframes    --> return F1
+    ASSERT_EQ(KF->id(), F1->id());            // same id!
 
-    KF = T->closestFrameToTimeStamp(1.1);                 // between keyframes       --> return F1
-    ASSERT_EQ(KF->id(), F1->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(1.1);     // between keyframes       --> return F1
+    ASSERT_EQ(KF->id(), F1->id());            // same id!
 
-    KF = T->closestFrameToTimeStamp(1.9);                 // between keyframes       --> return F2
-    ASSERT_EQ(KF->id(), F2->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(1.9);     // between keyframes       --> return F2
+    ASSERT_EQ(KF->id(), F2->id());            // same id!
 
-    KF = T->closestFrameToTimeStamp(2.6);                 // between keyframe and auxiliary frame, but closer to auxiliary frame --> return F2
-    ASSERT_EQ(KF->id(), F2->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(2.6);     // between keyframe and auxiliary frame, but closer to auxiliary frame --> return F2
+    ASSERT_EQ(KF->id(), F2->id());            // same id!
 
-    KF = T->closestFrameToTimeStamp(3.2);                 // after the auxiliary frame, between closer to frame --> return F2
-    ASSERT_EQ(KF->id(), F2->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(3.2);     // after the auxiliary frame, between closer to frame --> return F2
+    ASSERT_EQ(KF->id(), F2->id());            // same id!
 
-    KF = T->closestFrameToTimeStamp(4.2);                 // after the last frame --> return F2
-    ASSERT_EQ(KF->id(), F2->id());                           // same id!
+    KF = T->closestFrameToTimeStamp(4.2);     // after the last frame --> return F2
+    ASSERT_EQ(KF->id(), F2->id());            // same id!
 }
 
 TEST(TrajectoryBase, Add_Remove_Frame)
@@ -100,25 +100,25 @@ TEST(TrajectoryBase, Add_Remove_Frame)
     std::cout << __LINE__ << std::endl;
 
     // add F1
-    FrameBasePtr F1 = P->emplaceFrame(1, Eigen::Vector3d::Zero()); // 2 non-fixed
+    FrameBasePtr F1 = P->emplaceFrame(1, "PO", Eigen::Vector3d::Zero()); // 2 non-fixed
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 1);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 1);
     ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 2);
     std::cout << __LINE__ << std::endl;
 
     // add F2
-    FrameBasePtr F2 = P->emplaceFrame(2, Eigen::Vector3d::Zero()); // 1 fixed, 1 not
+    FrameBasePtr F2 = P->emplaceFrame(2, "PO", Eigen::Vector3d::Zero()); // 1 fixed, 1 not
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 2);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 2);
     ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 4);
     std::cout << __LINE__ << std::endl;
 
     // add F3
-    FrameBasePtr F3 = std::make_shared<FrameBase>(3, P->getFrameKeys(),
-                                                  //                                                              P->getDim(),
-                                                  std::list<VectorXd>({Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}));
+    FrameBasePtr F3 = std::make_shared<FrameBase>(3, 
+                                                  P->getFrameTypes(),
+                                                  VectorComposite("PO", {Eigen::Vector2d::Zero(),Eigen::Vector1d::Zero()}));
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 2);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 2);
     ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 4);
     std::cout << __LINE__ << std::endl;
 
@@ -132,7 +132,7 @@ TEST(TrajectoryBase, Add_Remove_Frame)
     // remove frames and keyframes
     F2->remove(); // KF
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 1);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 1);
     ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 2);
     std::cout << __LINE__ << std::endl;
 
@@ -141,14 +141,14 @@ TEST(TrajectoryBase, Add_Remove_Frame)
 
     F3->remove(); // F
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 1);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 1);
     std::cout << __LINE__ << std::endl;
 
     ASSERT_EQ(T->getLastFrame()->id(), F1->id());
 
     F1->remove(); // KF
     if (debug) P->print(2,0,0,0);
-    ASSERT_EQ(T->getFrameMap().             size(), (SizeStd) 0);
+    ASSERT_EQ(T->getFrameMap().              size(), (SizeStd) 0);
     std::cout << __LINE__ << std::endl;
 
     N.update();
diff --git a/test/gtest_tree_manager.cpp b/test/gtest_tree_manager.cpp
index ea5ab494606c188a5130a15b01eeb610b01cd9e4..f5d99215c98bcf4d1e6dc39a059cb6a1aa60cec4 100644
--- a/test/gtest_tree_manager.cpp
+++ b/test/gtest_tree_manager.cpp
@@ -142,7 +142,7 @@ TEST(TreeManager, keyFrameCallback)
     ASSERT_EQ(GM->n_KF_, 0);
 
     Vector7d x; x << 1,2,3,0,0,0,1;
-    auto F0 = P->emplaceFrame(0, "PO", 3, x );
+    auto F0 = P->emplaceFrame(0, "PO", x );
     P->keyFrameCallback(F0, nullptr);
 
     ASSERT_EQ(GM->n_KF_, 1);
diff --git a/test/yaml/params_problem_odom_3d.yaml b/test/yaml/params_problem_odom_3d.yaml
index e49632f45e08386f993aed3ec454b56ccad18e86..af63f2380dc3cde187c8482295d278c99664320a 100644
--- a/test/yaml/params_problem_odom_3d.yaml
+++ b/test/yaml/params_problem_odom_3d.yaml
@@ -42,4 +42,4 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
diff --git a/test/yaml/params_tree_manager1.yaml b/test/yaml/params_tree_manager1.yaml
index 3e59567cb367b45df3146b97e216df14eef84772..d4f544651060362891879719f14af13925c9fda5 100644
--- a/test/yaml/params_tree_manager1.yaml
+++ b/test/yaml/params_tree_manager1.yaml
@@ -54,5 +54,5 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
     
diff --git a/test/yaml/params_tree_manager2.yaml b/test/yaml/params_tree_manager2.yaml
index fb7b93ef57e41f82ba257142873d0334bb1c8430..65f41db62d3d616c83b5f714370d853be42ebf9f 100644
--- a/test/yaml/params_tree_manager2.yaml
+++ b/test/yaml/params_tree_manager2.yaml
@@ -54,5 +54,5 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
     
diff --git a/test/yaml/params_tree_manager_sliding_window1.yaml b/test/yaml/params_tree_manager_sliding_window1.yaml
index 67d349e02ad526a9c71f015337d5685950006882..f5bfb80431edf9a9adb7862288b916ae147ba372 100644
--- a/test/yaml/params_tree_manager_sliding_window1.yaml
+++ b/test/yaml/params_tree_manager_sliding_window1.yaml
@@ -49,5 +49,5 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
     
diff --git a/test/yaml/params_tree_manager_sliding_window2.yaml b/test/yaml/params_tree_manager_sliding_window2.yaml
index 01a6731f1577f8a46019313b54b4c62cf07ea96a..ad9f63af228032c76177a3ce43c6aa3816bf06e7 100644
--- a/test/yaml/params_tree_manager_sliding_window2.yaml
+++ b/test/yaml/params_tree_manager_sliding_window2.yaml
@@ -49,5 +49,5 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
     
diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml
index 5ff6eff5eee764e306f3077014fb7e6902e5d221..95043fc52e652b7ebef4609a5d361a0eb9068e06 100644
--- a/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml
+++ b/test/yaml/params_tree_manager_sliding_window_dual_rate3.yaml
@@ -57,5 +57,5 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1
     
diff --git a/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml b/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml
index 288f3a9c23cb93f34b3103023a46323adc3c9f7e..d3dbb0d4631cf8d0dad287670ac12192a7e25999 100644
--- a/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml
+++ b/test/yaml/params_tree_manager_sliding_window_dual_rate_baseline.yaml
@@ -51,4 +51,4 @@ processors:
     unmeasured_perturbation_std: 0.00111
     
     state_provider: true
-    state_priority: 1
+    state_provider_order: 1