diff --git a/README.md b/README.md
index 0c0ec34d7c3969a442abbceaff67a769d5fc6e3a..b89aa7cb4f8ee8f2f648eaf482112449432156a2 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,16 @@
 TMTC Client
 ====
 
+This client was developed by KSat for the SOURCE project to test the on-board software but
+has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand) 
+handling and testing via different communication interfaces. Currently, only the PUS standard is 
+implemented as a packet standard.
+
+This client currently supports the following communication interfaces:
+1. Ethernet, UDP packets
+2. Serial Communication 
+3. QEMU
+
 ## Cloning the repository
 It is recommended to fork this repository for new missions.
 The `tmtc_core` folder contains most generic software 
@@ -26,19 +36,19 @@ pip install -r requirements.txt
 
 Now the script can be tested by running
 ```sh
-python obsw_tmtc_client.py -h
+python tmtc_client_cli.py -h
 ```
 
 It is recommended to use and setup PyCharm to also use the preconfigured
 run configurations.
 
-
 ## Prerequisites
-Runs with Python 3.8.
+Tested with Python 3.8.
 Don't use Python 2.x!
 Manual installation of crcmod and pyserial might be needed.
 It is recommended to install use PyCharm to run this client.
 Students of the Uni Stuttgart usually have access to PyCharm Professional.
+
 1. Install pip for used Python distribution if it is not installed yet
 2. Install crcmod and all other required packages if using system python
 compiler. If using the local venv as the compiler, these packages
@@ -60,62 +70,75 @@ sudo apt-get install python-tk
 On Windows, the package should be included.
 
 ## How To Use
+
+It is recommended to use PyCharm and load the run configurations
+to have a starting point.
+
+### Command line mode
 The script can be used by specifying command line parameters.
-Please run this script with the -h flag
-or without any command line parameters to display options. 
-The client can be used to send via Ethernet or serial port.
-
-GUI is work-in-progress.
-It might be necessary to set board or PC IP address if using ethernet communication.
-Default values should work normally though.
-
-## Examples
-Example command to test service 17,
-assuming no set client IP (set manually to PC IP Address if necessary). IP Address or port numbers have to be
-set manually in the global configuration file (IP address can be passed as a command line  argument):
-```sh
-obsw_tmtc_client.py -m 3 -s 17
-```
-Example to run Unit Test:
+Please run this script with the -h flag or without any command line parameters to 
+display options. 
+
+### Import run configurations in PyCharm
+The PyCharm IDE can be used to comfortably manage a set of run configuations 
+(for example tests for different services). These configurations were shared 
+through the version control system git and should be imported automatically. 
+If these configurations dont show up, try to open the tmtc folder as
+a new PyCharm project in a new window. 
+ 
+To add new configurations, go to Edit Configurations... 
+at the top right corner in the drop-down menu.
+Specify the new run configurations and set a tick at Share through VCS. 
+
+### Examples
+Example command to send a ping command. Specify the communication interface by 
+adding `-c <number>` to the command.
 ```sh
-obsw_tmtc_client.py -m 5
+tmtc_client_cli.py -m 3 -s 17
 ```
-Example to test service 3 with serial communication, printing all housekeeping packets,
-COM port needs to be typed in manually (or set with --COM \<COM PORT>):
+
+Example to run listener mode
 ```sh
-obsw_tmtc_client.py -m 3 -s 3 --hk -c 
+tmtc_client_cli.py -m 1
 ```
 
-## Modes
-There are different modes. Run the client with the `-h` flag
-to display the modes.
+## Architectural notes
+
+Some additional information about the structure of this Python program 
+are provided here.
 
-## Ethernet Communication
+### Modes and the TMTC queue
+There are different communication modes. Run the client with the `-h` flag
+to display the modes. The TMTC commander is able to send multiple telecommands
+sequentially by using a provided queue. The queue is filled by the
+developer. Some examples can be found in the `tc` folder. The queue
+can also be filled with special commands, for example a wait command or 
+a print command.
 
-Port needs to be specified manually for now, IP adresses can be set in
-command line. 
+This application is also able to listen to telemetry packets in a separate thread.
+The specific TM handling is also implemented by the developer. Some
+examples can be found in the `tm` folder.
 
-### Issues
-If there are problems receiving packets, use the tool Wireshark to track 
-ethernet communication for UDP echo packets (requests and response).
-If the packets appear, there might be a problematic firewall setting.
-Please ensure that python.exe UDP packets are not blocked in advanced firewall 
-settings and create a rule to allow packets from port 2008.
+### Communication Interfaces
 
-## Serial Communication
-Serial communication was implemented and is tested for Windwos 10 and Ubuntu 20.04.
+The communication interfaces decouple the used interface from the communication
+logic. This enables to write the telecommand and telemetry specifications
+without worrying about the used communication interface.
+
+#### Serial Communication
+Serial communication was implemented and is tested for Windows 10 and Ubuntu 20.04.
 It requires the PySerial package installed.
 It should be noted that there are several modes for the serial communication.
 There is a fixed frame mode and a mode based on a simple DLE transport layer.
 When using the DLE transport layer, sent packets are encoded with DLE while 
 received packets need to be DLE encoded.
 
-## Module Test
-Includes a moduel tester which sends TCs in a queue and automatically
-analyzes the replies. This is the best way to test the functionality of the 
-software right now as a software internal TC injector has not been implemented
-yet for the FSFW.
-Some more information will follow on how to write Unit Tests.
+## Issues
+
+### Ethernet Communication
+If there are issued with the Ethernet communcation, 
+there might be a problematic firewall setting.
+It might be necessary to allow UDP packets on certain ports
 
 ## Developers Information
 Code Style: [PEP8](https://www.python.org/dev/peps/pep-0008/).
@@ -126,14 +149,3 @@ Install it with pip and then install and set-up the Pylint plugin in PyCharm.
 There are a lot of features which would be nice, for example a GUI.
 The architecture of the program should allow extension like that without
 too many issues, as the sending and telemetry listening are decoupled.
-
-## Import run configurations in PyCharm
-The PyCharm IDE can be used to comfortably manage a set of run configuations 
-(for example tests for different services). These configurations were shared 
-through the version control system git and should be imported automatically. 
-If these configurations dont show up, try to open the tmtc folder as
-a new PyCharm project in a new window. 
- 
-To add new configurations, go to Edit Configurations... 
-at the top right corner in the drop-down menu.
-Specify the new run configurations and set a tick at Share through VCS. 
diff --git a/tmtc_client_cli.py b/tmtc_client_cli.py
index d71242ba9731f4e7154312ed5d3da9a3085b9d92..1f761c98c72158a9d9aae8e63c9c2762eeddc4f2 100644
--- a/tmtc_client_cli.py
+++ b/tmtc_client_cli.py
@@ -3,9 +3,9 @@
 @brief      TMTC Commander entry point for command line mode.
 @details
 This client was developed by KSat for the SOURCE project to test the on-board software but
-has become a more generic tool to perform TMTC (Telemetry and Telecommand) handling via
-different communication interfacec. Currently, only the PUS standard is implemented as a packet
-standard.
+has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand)
+handling and testing via different communication interfaces. Currently, only the PUS standard is
+implemented as a packet standard.
 
 Run this file with the -h flag to display options.
 
diff --git a/tmtc_client_gui.py b/tmtc_client_gui.py
index 5d2b26ea7d115dc09292f94407c0b848906e71f4..4caf5c22bdfa1b83dbd5f2e4da45a13908101343 100644
--- a/tmtc_client_gui.py
+++ b/tmtc_client_gui.py
@@ -3,9 +3,9 @@
 @brief      TMTC Commander entry point for GUI mode.
 @details
 This client was developed by KSat for the SOURCE project to test the on-board software but
-has become a more generic tool to perform TMTC (Telemetry and Telecommand) handling via
-different communication interfacec. Currently, only the PUS standard is implemented as a packet
-standard.
+has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand)
+handling and testing via different communication interfaces. Currently, only the PUS standard is
+implemented as a packet standard.
 
 Run this file with the -h flag to display options.