diff --git a/client/client/lib/espnow/src/espnow.cpp b/client/client/lib/espnow/src/espnow.cpp
index 36d8b8b93e587e2e03687dbe293e0a4633465771..11c111818ef16377b8f1d3b8b060acb80e7fa853 100644
--- a/client/client/lib/espnow/src/espnow.cpp
+++ b/client/client/lib/espnow/src/espnow.cpp
@@ -81,13 +81,11 @@ esp_err_t Message::send(){
     for(int i=0; i<data->amountData; i++){
         Serial.println(data->values[i]);
     }
-    // TODO: cache data before resetting
     Serial.println((String) "time sent: " + data->timestamp);
     Serial.println((String) "Send status: " + success);
     Serial.println();
     Serial.flush();
 
-    free((void*) data);
     return success;
 }
 
@@ -120,4 +118,8 @@ Message :: Message(data_struct old_data){
         Serial.println("backup mac used");
     }
     preferences.end();
+}
+
+Message :: ~Message(){
+    free((void*) data);
 }
\ No newline at end of file
diff --git a/client/client/lib/espnow/src/espnow.hpp b/client/client/lib/espnow/src/espnow.hpp
index 50f65ab05c96a16d8a5a83f247be11dc8cc80c0f..05ab847c7564cdced5955563428cb3ffe7173efa 100644
--- a/client/client/lib/espnow/src/espnow.hpp
+++ b/client/client/lib/espnow/src/espnow.hpp
@@ -23,6 +23,7 @@ class Message{
     public:
         Message();
         Message(data_struct old_data);
+        ~Message();
         void add_data(float value, int identifier);
         esp_err_t send();