diff --git a/comIF/obsw_ethernet_com_if.py b/comIF/obsw_ethernet_com_if.py
index 343c912868d5b30abbd92dbecdf7e7d2947aa9de..35e14d0d715598ff4f8f215923b12af8820e47f0 100644
--- a/comIF/obsw_ethernet_com_if.py
+++ b/comIF/obsw_ethernet_com_if.py
@@ -75,21 +75,21 @@ class EthernetComIF(CommunicationInterface):
             tm_info_queue.append(packet_info)
         return tm_info_queue
 
-    def receive_telemetry_and_store_tm(self, tmQueue: PusTmQueueT) -> Union[None, PusTmQueueT]:
+    def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]:
         packets = self.receive_telemetry()
         for packet in packets:
-            tmQueue.append(packet)
-        return tmQueue
+            tm_queue.append(packet)
+        return tm_queue
 
-    def receive_telemetry_and_store_tuple(self, tmTupleQueue):
+    def receive_telemetry_and_store_tuple(self, tm_tuple_queue):
         packet_list = self.receive_telemetry()
         for packet in packet_list:
             packet_info = packet.pack_tm_information()
             tm_tuple = (packet_info, packet)
             if g.G_PRINT_TM:
                 self.tmtc_printer.print_telemetry(packet)
-            tmTupleQueue.append(tm_tuple)
-        return tmTupleQueue
+            tm_tuple_queue.append(tm_tuple)
+        return tm_tuple_queue
 
     def set_up_socket(self):
         """
diff --git a/comIF/obsw_serial_com_if.py b/comIF/obsw_serial_com_if.py
index 0bfafb7959c98fec36bd0c577239bb0242c1aff4..9b59cb1167f2e05dff5679599dd03c7e1a5397f1 100644
--- a/comIF/obsw_serial_com_if.py
+++ b/comIF/obsw_serial_com_if.py
@@ -118,27 +118,27 @@ class SerialComIF(CommunicationInterface):
         self.number_of_packets = self.number_of_packets + 1
         return end_index
 
-    def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]:
-        (packet_received, pus_packets) = self.poll_interface()
-        if packet_received:
-            for packet in pus_packets:
-                tm_queue.append(packet)
-        return tm_queue
-
-    def receive_telemetry_and_store_info(self, tm_info_queue: PusTmInfoQueueT) -> \
-            Union[None, PusTmInfoQueueT]:
-        (packet_received, pus_packets) = self.poll_interface()
-        if packet_received:
-            for packet in pus_packets:
-                tm_info = packet.pack_tm_information()
-                tm_info_queue.append(tm_info)
-        return tm_info_queue
-
-    def receive_telemetry_and_store_tuple(self, tm_tuple_queue: PusTmTupleQueueT) -> \
-            Union[None, PusTmTupleQueueT]:
-        (packet_received, pus_packets) = self.poll_interface()
-        if packet_received:
-            for packet in pus_packets:
-                tm_info = packet.pack_tm_information()
-                tm_tuple_queue.append((tm_info, packet))
-        return tm_tuple_queue
+    # def receive_telemetry_and_store_tm(self, tm_queue: PusTmQueueT) -> Union[None, PusTmQueueT]:
+    #     (packet_received, pus_packets) = self.poll_interface()
+    #     if packet_received:
+    #         for packet in pus_packets:
+    #             tm_queue.append(packet)
+    #     return tm_queue
+    #
+    # def receive_telemetry_and_store_info(self, tm_info_queue: PusTmInfoQueueT) -> \
+    #         Union[None, PusTmInfoQueueT]:
+    #     (packet_received, pus_packets) = self.poll_interface()
+    #     if packet_received:
+    #         for packet in pus_packets:
+    #             tm_info = packet.pack_tm_information()
+    #             tm_info_queue.append(tm_info)
+    #     return tm_info_queue
+    #
+    # def receive_telemetry_and_store_tuple(self, tm_tuple_queue: PusTmTupleQueueT) -> \
+    #         Union[None, PusTmTupleQueueT]:
+    #     (packet_received, pus_packets) = self.poll_interface()
+    #     if packet_received:
+    #         for packet in pus_packets:
+    #             tm_info = packet.pack_tm_information()
+    #             tm_tuple_queue.append((tm_info, packet))
+    #     return tm_tuple_queue
diff --git a/sendreceive/obsw_command_sender_receiver.py b/sendreceive/obsw_command_sender_receiver.py
index f6ddc2d8411aaad5c1acb5796b139b97aba83f5e..70448a02c890e3d9f0d2b20742cea3a706db93f3 100644
--- a/sendreceive/obsw_command_sender_receiver.py
+++ b/sendreceive/obsw_command_sender_receiver.py
@@ -19,6 +19,7 @@ from comIF.obsw_com_interface import CommunicationInterface
 from utility.obsw_tmtc_printer import TmTcPrinter
 from sendreceive.obsw_tm_listener import TmListener
 from tc.obsw_pus_tc_base import TcQueueEntryT
+from tm.obsw_pus_tm_factory import PusTmQueueT
 
 
 # pylint: disable=too-many-instance-attributes
@@ -134,3 +135,7 @@ class CommandSenderReceiver:
             self._timeout_counter = self._timeout_counter + 1
             self._start_time = time.time()
         time.sleep(0.5)
+
+    def print_tm_queue(self, tm_queue: PusTmQueueT):
+        for tm_packet in tm_queue:
+            self._tmtc_printer.print_telemetry(tm_packet)
diff --git a/sendreceive/obsw_multiple_commands_sender_receiver.py b/sendreceive/obsw_multiple_commands_sender_receiver.py
index 8765d8ec25a82835d8d056c77ae68c7047c9f699..aee4dab16051df50fa82b82714e87801e3d87f9f 100644
--- a/sendreceive/obsw_multiple_commands_sender_receiver.py
+++ b/sendreceive/obsw_multiple_commands_sender_receiver.py
@@ -95,13 +95,13 @@ class MultipleCommandSenderReceiver(SequentialCommandSenderReceiver):
 
     def __retrieve_listener_tm_tuple(self):
         if self._tm_listener.replyEvent.is_set():
-            return self._tm_listener.tm_info_queue
+            return self._tm_listener.__tm_info_queue
         else:
             print("Multiple Command SenderReceiver: Configuration error,"
                   " reply event not set in TM listener")
 
     def __clear_listener_tm_info_queue(self):
-        self._tm_listener.tm_info_queue.clear()
+        self._tm_listener.__tm_info_queue.clear()
 
     @staticmethod
     def wait_for_last_replies_listening(wait_time: float):
diff --git a/sendreceive/obsw_single_command_sender_receiver.py b/sendreceive/obsw_single_command_sender_receiver.py
index 8c3fc165365fdc4ee42f10835a6adcb463b66234..d3e7fc297ee5f61a7718aaa5d90897d52d738b90 100644
--- a/sendreceive/obsw_single_command_sender_receiver.py
+++ b/sendreceive/obsw_single_command_sender_receiver.py
@@ -51,6 +51,7 @@ class SingleCommandSenderReceiver(CommandSenderReceiver):
                 # wait until reply is received
                 super()._check_for_first_reply()
             if self._reply_received:
-                print("Single Command SenderReceiver: Reply received")
                 self._tm_listener.mode_op_finished.set()
+                self.print_tm_queue(self._tm_listener.retrieve_tm_packet_queue())
+                print("Single Command SenderReceiver: Reply received")
                 print("Listening for packages ...")
diff --git a/sendreceive/obsw_tm_listener.py b/sendreceive/obsw_tm_listener.py
index 3131fa26dcb5956f51f7ec49c8c215f4b7bbedec..8501f4e8604e23ebe0f8ee9d209f8c2e88bb42d7 100644
--- a/sendreceive/obsw_tm_listener.py
+++ b/sendreceive/obsw_tm_listener.py
@@ -55,8 +55,8 @@ class TmListener:
         # if a reply has been received
         self.replyEvent = threading.Event()
         # Will be filled for the Unit Test
-        self.tm_info_queue = deque()
-        self.tm_packet_queue = deque()
+        self.__tm_info_queue = deque()
+        self.__tm_packet_queue = deque()
 
     def start(self):
         self.listener_thread.start()
@@ -104,7 +104,7 @@ class TmListener:
                 print("TM Listener: Reply sequence received!")
                 self.replyEvent.set()
         elif self.mode_id == g.ModeList.UnitTest:
-            self.tm_info_queue = self.com_interface.receive_telemetry_and_store_info(self.tm_info_queue)
+            self.__tm_info_queue = self.com_interface.receive_telemetry_and_store_info(self.__tm_info_queue)
             self.replyEvent.set()
 
     def check_for_one_telemetry_sequence(self) -> bool:
@@ -117,13 +117,13 @@ class TmListener:
         if tm_ready is False:
             return False
         else:
-            self.tm_packet_queue.append(self.com_interface.receive_telemetry())
+            self.__tm_packet_queue.append(self.com_interface.receive_telemetry())
             start_time = time.time()
             elapsed_time = 0
             while elapsed_time < self.tm_timeout:
                 tm_ready = self.com_interface.data_available(1.0)
                 if tm_ready:
-                    self.tm_packet_queue.append(self.com_interface.receive_telemetry())
+                    self.__tm_packet_queue.append(self.com_interface.receive_telemetry())
                 elapsed_time = time.time() - start_time
             # the timeout value can be set by special TC queue entries if wiretapping_packet handling
             # takes longer, but it is reset here to the global value
@@ -132,14 +132,15 @@ class TmListener:
             return True
 
     def retrieve_tm_packet_queue(self):
-        return self.tm_packet_queue.copy()
+        return self.__tm_packet_queue.copy()
 
     @staticmethod
-    def retrieve_tm_info_queue(tm_info_queue_to_fill: PusTmInfoQueueT, tm_queue: PusTmQueueT):
-        while tm_queue.__len__() != 0:
-            tm_packet = tm_queue.pop()
-            tm_info_queue_to_fill.append(tm_packet.pack_tm_information())
+    def retrieve_info_queue_from_packet_queue(tm_queue: PusTmQueueT, pus_info_queue_to_fill: PusTmInfoQueueT):
+        tm_queue_copy = tm_queue.copy()
+        while tm_queue_copy.__len__() != 0:
+            pus_packet = tm_queue_copy.pop()
+            pus_info_queue_to_fill.append(pus_packet.pack_tm_information())
 
     def clear_tm_packet_queue(self):
-        self.tm_packet_queue.clear()
+        self.__tm_packet_queue.clear()
 
diff --git a/tm/obsw_pus_tm_base.py b/tm/obsw_pus_tm_base.py
index 5a1f2ba4d56e7325827b89437dd99c84bbf826d3..fc5ea03bf2a632ce6badd9ce776a05a3401c56b2 100644
--- a/tm/obsw_pus_tm_base.py
+++ b/tm/obsw_pus_tm_base.py
@@ -216,12 +216,12 @@ class PusPacketHeader:
 
 
 class ObswPusPacketDataFieldHeader:
-    def __init__(self, bytesArray):
-        self.pus_version_and_ack_byte = (bytesArray[0] & 0x70) >> 4
-        self.service_type = bytesArray[1]
-        self.service_subtype = bytesArray[2]
-        self.subcounter = bytesArray[3]
-        self.time = ObswTimestamp(bytesArray[4:13])
+    def __init__(self, bytes_array):
+        self.pus_version_and_ack_byte = (bytes_array[0] & 0x70) >> 4
+        self.service_type = bytes_array[1]
+        self.service_subtype = bytes_array[2]
+        self.subcounter = bytes_array[3]
+        self.time = ObswTimestamp(bytes_array[4:13])
 
     def append_data_field_header(self, content_list: list):
         """
@@ -250,13 +250,13 @@ class ObswTimestamp:
     """
     Unpacks the time datafield of the TM wiretapping_packet.
     """
-    def __init__(self, byteArray):
+    def __init__(self, byte_array):
         # pField = byte_array[0]
-        byteArray = byteArray[1:]
-        self.days = ((byteArray[0] << 8) | (byteArray[1])) - 4383
+        byte_array = byte_array[1:]
+        self.days = ((byte_array[0] << 8) | (byte_array[1])) - 4383
         self.seconds = self.days * (24 * 60 * 60)
-        s_day = ((byteArray[2] << 24) | (byteArray[3] << 16) |
-                 (byteArray[4]) << 8 | byteArray[5]) / 1000
+        s_day = ((byte_array[2] << 24) | (byte_array[3] << 16) |
+                 (byte_array[4]) << 8 | byte_array[5]) / 1000
         self.seconds += s_day
         self.time = self.seconds
         self.datetime = str(datetime.datetime.