diff --git a/src/CSVReader/CSVReader.cpp b/src/CSVReader/CSVReader.cpp
index 8a7cf402011a9c6725887209edd8d2a6e761031d..71352024fdd1768b59f5b7a81ce2b0074ff647e1 100644
--- a/src/CSVReader/CSVReader.cpp
+++ b/src/CSVReader/CSVReader.cpp
@@ -8,6 +8,7 @@
 #include <filesystem>
 #include <regex>
 #include <algorithm>
+#include <memory>
 #include <boost/lexical_cast.hpp>
 #include <boost/algorithm/string/erase.hpp>
 
@@ -25,7 +26,7 @@ namespace lib4neuro {
         this->delimiter = delimiter;
         this->ignore_first_line = ignore_first_line;
         this->header_included = ignore_first_line;
-        this->data = new std::vector<std::vector<std::string>>;
+        this->data = std::make_unique<std::vector<std::vector<std::string>>>();
     }
 
     void CSVReader::read() {
@@ -61,8 +62,8 @@ namespace lib4neuro {
         ifs.close();
     }
 
-    std::vector<std::vector<std::string>>* CSVReader::get_data() {
-        return this->data;
+    std::unique_ptr<std::vector<std::vector<std::string>>>* CSVReader::get_data() {
+        return &this->data;
     }
 
     void CSVReader::print_data() {
diff --git a/src/CSVReader/CSVReader.h b/src/CSVReader/CSVReader.h
index 713470ade1ca5ca6239e34eed2d4469d02f04382..9ef3691ab9634f57a0b1e0e5440c53eb8922bdcd 100644
--- a/src/CSVReader/CSVReader.h
+++ b/src/CSVReader/CSVReader.h
@@ -43,7 +43,7 @@ namespace lib4neuro {
         /**
          *
          */
-        std::vector<std::vector<std::string>>* data;
+        std::unique_ptr<std::vector<std::vector<std::string>>> data;
 
     public:
 
@@ -64,7 +64,7 @@ namespace lib4neuro {
          *
          * @return
          */
-         LIB4NEURO_API std::vector<std::vector<std::string>>* get_data();
+         LIB4NEURO_API std::unique_ptr<std::vector<std::vector<std::string>>>* get_data();
 
         /**
          *