diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9263dd69be2d1c0d45ca81f9c23aeeed8929ec41..69d86b10e195bf0742736481d5a80fadc4457e5b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ### Removed -->
 
+## [Unreleased]
+
+### Added
+- Status variable to indicate when a messege with new data is received.
+
+### Changed
+- Threading to terminate when the main python file is terminated.
+
+<!-- ### Removed -->
+
 ## [Release v1.0.0](https://gitlab.epfl.ch/create-lab/lab-systems/arduino_python_communication/-/releases/release_v1.0.0) - 22-1-2022
 
 ### Added
diff --git a/comms_wrapper.py b/comms_wrapper.py
index bb500ed2ed4bde4a53b2c0a5242f0b16be665e1b..dd5088d0fa47188ad138a266dc23d13fe1b347ce 100644
--- a/comms_wrapper.py
+++ b/comms_wrapper.py
@@ -3,6 +3,7 @@ import serial.tools.list_ports
 from threading import Thread
 import time
 from pynput import keyboard
+import copy
 
 ########
 ### Arduino communication
@@ -23,7 +24,10 @@ class Arduino:
         self.handshakeStatus = False
         self.connectionStatus = False
         self._echo_python_msg = None
+        self.newMsgRecieved = False
 
+        # Threading
+        self.__thread = None
 
     # Private methods
     def _serial_readline(self):
@@ -36,8 +40,9 @@ class Arduino:
 
 
     def _startReadingThread(self):
-        thread = Thread(target=self._serial_readline)
-        thread.start()
+        self.__thread = Thread(target=self._serial_readline)
+        self.__thread.daemon = True
+        self.__thread.start()
 
 
     def _serial_write(self, msg):
@@ -72,8 +77,7 @@ class Arduino:
         
 
     def _disect_and_save_message(self, msg):
-
-        receivedMessageTemp = self.receivedMessages
+        receivedMessageTemp = copy.deepcopy(self.receivedMessages)
 
         if msg[-2] != ":":
             return False
@@ -96,7 +100,12 @@ class Arduino:
 
             else:
                 return False
-
+        
+        if receivedMessageTemp == self.receivedMessages: 
+            self.newMsgRecieved = False
+        else: 
+            self.newMsgRecieved = True
+        
         self.receivedMessages = receivedMessageTemp
         return True