diff --git a/demos/demo_factor_imu.cpp b/demos/demo_factor_imu.cpp
index 117e5459568041f9e77a4e1ccab6b822d3d13fd5..581d7429331d13a0bf67f847f7d9924c0814358e 100644
--- a/demos/demo_factor_imu.cpp
+++ b/demos/demo_factor_imu.cpp
@@ -31,11 +31,10 @@ int main(int argc, char** argv)
     wolf_problem_ptr_->installProcessor("IMU", "IMU pre-integrator", "Main IMU", "");
 
     // Ceres wrappers
-    ceres::Solver::Options ceres_options;
-    ceres_options.minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
-    ceres_options.max_line_search_step_contraction = 1e-3;
-    ceres_options.max_num_iterations = 1e4;
-    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_, ceres_options, true);
+    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_);
+    ceres_manager_wolf_diff->getSolverOptions().minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
+    ceres_manager_wolf_diff->getSolverOptions().max_line_search_step_contraction = 1e-3;
+    ceres_manager_wolf_diff->getSolverOptions().max_num_iterations = 1e4;
 
     // Time and data variables
     TimeStamp t;
diff --git a/demos/demo_imuPlateform_Offline.cpp b/demos/demo_imuPlateform_Offline.cpp
index 9006e6aa7619117c895fd5bc9cffbbf612f7c7ae..628c4b65ed2e8b88a3cdfbedc8f07ef80f906001 100644
--- a/demos/demo_imuPlateform_Offline.cpp
+++ b/demos/demo_imuPlateform_Offline.cpp
@@ -74,11 +74,10 @@ int main(int argc, char** argv)
     TimeStamp t(0);
 
     // CERES WRAPPER
-    ceres::Solver::Options ceres_options;
-    ceres_options.minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
-    ceres_options.max_line_search_step_contraction = 1e-3;
-    ceres_options.max_num_iterations = 1e4;
-    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_, ceres_options);
+    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_);
+    ceres_manager_wolf_diff->getSolverOptions().minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
+    ceres_manager_wolf_diff->getSolverOptions().max_line_search_step_contraction = 1e-3;
+    ceres_manager_wolf_diff->getSolverOptions().max_num_iterations = 1e4;
 
     // SENSOR + PROCESSOR IMU
     SensorBasePtr sen0_ptr = wolf_problem_ptr_->installSensor("IMU", "Main IMU", (Vector7d()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_imu.yaml");
diff --git a/demos/demo_imu_constrained0.cpp b/demos/demo_imu_constrained0.cpp
index 0512a8ac41b9af5bb1fd83a1147ba2539f336462..66db5c1c71e81035aa6ea70e000a8a92d29b4af6 100644
--- a/demos/demo_imu_constrained0.cpp
+++ b/demos/demo_imu_constrained0.cpp
@@ -95,11 +95,10 @@ int main(int argc, char** argv)
     imu_data_input >> origin_bias[0] >> origin_bias[1] >> origin_bias[2] >> origin_bias[3] >> origin_bias[4] >> origin_bias[5];
 
     // CERES WRAPPER
-    ceres::Solver::Options ceres_options;
-    ceres_options.minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
-    ceres_options.max_line_search_step_contraction = 1e-3;
-    ceres_options.max_num_iterations = 1e4;
-    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_, ceres_options);
+    SolverCeres* ceres_manager_wolf_diff = new SolverCeres(wolf_problem_ptr_);
+    ceres_manager_wolf_diff->getSolverOptions().minimizer_type = ceres::TRUST_REGION; //ceres::TRUST_REGION;ceres::LINE_SEARCH
+    ceres_manager_wolf_diff->getSolverOptions().max_line_search_step_contraction = 1e-3;
+    ceres_manager_wolf_diff->getSolverOptions().max_num_iterations = 1e4;
 
     // SENSOR + PROCESSOR IMU
     SensorBasePtr sen0_ptr = wolf_problem_ptr_->installSensor("IMU", "Main IMU", (Vector7d()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_imu.yaml");