diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h
index cd4f7acdc3715d318b5048532ccf090bff9aa567..e0840a59eabd6e086cd6e78ae7226368d003db75 100644
--- a/include/core/sensor/sensor_base.h
+++ b/include/core/sensor/sensor_base.h
@@ -87,17 +87,16 @@ static SensorBasePtr create(SizeEigen _dim,
                             const std::string& _yaml_filepath,                   \
                             const std::vector<std::string>& folders_schema)      \
 {                                                                                \
-    auto schema = yaml-schema-cpp::YamlServer(folders_schema, _yaml_filepath);   \
+    auto server = yaml-schema-cpp::YamlServer(folders_schema, _yaml_filepath);   \
                                                                                  \
-    std::stringstream log;                                                       \
-    if (not schema.validate(SensorClass, log))                                   \
+    if (not server.validate(SensorClass))                                        \
     {                                                                            \
-        WOLF_ERROR(log.str());                                                   \
+        WOLF_ERROR(server.getLog().str());                                       \
         return nullptr;                                                          \
     }                                                                            \
-    auto params = std::make_shared<ParamsSensorClass>(schema.getNode());         \
+    auto params = std::make_shared<ParamsSensorClass>(server.getNode());         \
                                                                                  \
-    auto priors = Priors(schema.getNode()["states"]);                            \
+    auto priors = Priors(server.getNode()["states"]);                            \
                                                                                  \
     return std::make_shared<SensorClass>(_dim, params, priors);                  \
 }                                                                                \
diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index ba54241a29820880703c00f2a799caa7178d0f66..bef2e0d8f1320f90882f3002ae4d6b7e8651e1f6 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -84,7 +84,7 @@ ProblemPtr Problem::create(const std::string& _frame_structure, SizeEigen _dim,
     return p->shared_from_this();
 }
 
-ProblemPtr Problem::autoSetup(ParamsServer &_server)
+ProblemPtr Problem::autoSetup(const std::string& _input_yaml_file, std::vector<std::string> _schema_folders)
 {
 #if __APPLE__
     std::string lib_extension = ".dylib";
@@ -92,6 +92,19 @@ ProblemPtr Problem::autoSetup(ParamsServer &_server)
     std::string lib_extension = ".so";
 #endif
 
+    // Create yaml server
+    auto server = yaml-schema-cpp::YamlServer({}, _input_yaml_file);
+
+    // 
+  
+    std::stringstream log;
+    if (not server.validate(SensorClass, log))
+    { 
+        WOLF_ERROR(log.str());
+        return nullptr;
+    } 
+    auto params = std::make_shared<ParamsSensorClass>(server.getNode())
+
     // Problem structure and dimension
     std::string frame_structure = _server.getParam<std::string> ("problem/frame_structure");
     int         dim             = _server.getParam<int>         ("problem/dimension");