diff --git a/src/examples/x2_fitting.cpp b/src/examples/x2_fitting.cpp
index 30642211cb13d993a0e916a5ed16694a8982b5fc..2d9bb56d157108e83ff0988c579fb2fac4f8c527 100644
--- a/src/examples/x2_fitting.cpp
+++ b/src/examples/x2_fitting.cpp
@@ -13,20 +13,20 @@ int main() {
 
     std::vector<unsigned int> input_ind = {0};
     std::vector<unsigned int> output_ind = {1};
-    l4n::DataSet ds = reader.get_data_set(&input_ind, &output_ind);
+    std::shared_ptr<l4n::DataSet> ds = reader.get_data_set(&input_ind, &output_ind);
 
     std::vector<unsigned int> neuron_numbers_in_layers = {1, 15, 1};
     std::vector<l4n::NEURON_TYPE> hidden_type_v = {l4n::NEURON_TYPE::LOGISTIC};
     l4n::FullyConnectedFFN net(&neuron_numbers_in_layers, &hidden_type_v);
 
-    l4n::MSE mse(&net, &ds);
+    l4n::MSE mse(&net, ds.get());
 
     l4n::GradientDescent gs(1e-5, 20, 200000);
 
     net.randomize_parameters();
     gs.optimize(mse);
 
-    mse.eval_on_data_set(&ds);
+    mse.eval_on_data_set(ds.get());
 
     return 0;
 }
\ No newline at end of file