diff --git a/config/obsw_definitions.py b/config/obsw_definitions.py
index bfa7674b22288d7558282e64901b93f9908cbb19..738119abdf4f43de91c60393b82652efb511962b 100644
--- a/config/obsw_definitions.py
+++ b/config/obsw_definitions.py
@@ -6,13 +6,14 @@ ethernetAddressT = Tuple[str, int]
 
 # Mode options, set by args parser
 class ModeList(enum.Enum):
-    GUIMode = 0
+    Idle = 0
     ListenerMode = 1
     SingleCommandMode = 2
     ServiceTestMode = 3
     SoftwareTestMode = 4
     BinaryUploadMode = 5
     UnitTest = 6
+    GUIMode = 7
     PromptMode = 32
 
 
diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py
index bac67ce2f73e50344bc34db8b641c147010aeafc..49240685d10cded979d0bdbca31e89a4715f9a8a 100755
--- a/obsw_tmtc_client.py
+++ b/obsw_tmtc_client.py
@@ -144,8 +144,11 @@ class TmTcHandler:
                 if self.command_received:
                     self.command_received = False
                     self.handle_action()
-                LOGGER.info("TMTC Client in idle mode")
-                time.sleep(5)
+                if self.mode == g.ModeList.Idle:
+                    LOGGER.info("TMTC Client in idle mode")
+                    time.sleep(5)
+                if self.mode == g.ModeList.ListenerMode:
+                    time.sleep(1)
             except KeyboardInterrupt:
                 LOGGER.info("Closing TMTC client.")
                 sys.exit()
diff --git a/tm/obsw_pus_tm_factory_hook.py b/tm/obsw_pus_tm_factory_hook.py
index 7a295807d3bb73ad0a524b3aacf91948bd6e0ee8..94899de4acb68c275049ca88e28cd29c6be22a96 100644
--- a/tm/obsw_pus_tm_factory_hook.py
+++ b/tm/obsw_pus_tm_factory_hook.py
@@ -1,9 +1,12 @@
 from tmtc_core.tm.obsw_pus_tm_base import PusTelemetry
+from tmtc_core.utility.obsw_logger import get_logger
 from tm.obsw_tm_service_1 import Service1TM
 from tm.obsw_tm_service_3 import Service3TM
 from tm.obsw_tm_service_5 import Service5TM
 import struct
 
+LOGGER = get_logger()
+
 
 def tm_factory_hook(raw_tm_packet: bytearray) -> PusTelemetry:
     service_type = raw_tm_packet[7]
@@ -23,7 +26,7 @@ def tm_factory_hook(raw_tm_packet: bytearray) -> PusTelemetry:
         return Service20TM(raw_tm_packet)
     if service_type == 200:
         return Service200TM(raw_tm_packet)
-    print("The service " + str(service_type) + " is not implemented in Telemetry Factory")
+    LOGGER.info("The service " + str(service_type) + " is not implemented in Telemetry Factory")
     return PusTelemetry(raw_tm_packet)
 
 
diff --git a/tm/obsw_tm_service_3.py b/tm/obsw_tm_service_3.py
index 8e5fb596c2884d482e1276c03340cec85110fe4d..a88e79972f43f662aeb86ee9deaba2c620250b9b 100644
--- a/tm/obsw_tm_service_3.py
+++ b/tm/obsw_tm_service_3.py
@@ -8,11 +8,14 @@ Author: R. Mueller
 
 from tmtc_core.tm.obsw_pus_tm_base import PusTelemetry
 from typing import Type
+from tmtc_core.utility.obsw_logger import get_logger
 import struct
 
+LOGGER = get_logger()
+
 
 class Service3TM(PusTelemetry):
-    def __init__(self, byte_array: bytes):
+    def __init__(self, byte_array: bytearray):
         super().__init__(byte_array)
         # print("Length of TM data: " + str(len(self._tm_data)))
         self.sid = struct.unpack('>I', self._tm_data[0:4])[0]
@@ -65,6 +68,8 @@ class Service3TM(PusTelemetry):
             self.handle_gps_hk_data()
         elif self.sid == 0x4300 or self.sid == 0x4400:
             self.handle_test_hk_data()
+        else:
+            LOGGER.info("Service 3 TM: Parsing for this SID has not been implemented.")
 
     def handle_gps_hk_data(self):
         # TODO: size check. sth not right with gps 0 test