diff --git a/examples/sPSN_Chat/sPSN_Chat.ino b/examples/sPSN_Chat/sPSN_Chat.ino
index 21584293e7585e4852932dba4d618303eecbe4ed..60fa1d3e9b1d31b655766a9429169d26661fd97b 100644
--- a/examples/sPSN_Chat/sPSN_Chat.ino
+++ b/examples/sPSN_Chat/sPSN_Chat.ino
@@ -1,84 +1,67 @@
 /**
- *file:  sPSN_Chat.ino
- *author:  letsgoING -> info@letsgoing.de
+ * file:  sPSN_Chat.ino
+ * author:  letsgoING -> info@letsgoing.de
+ * 
+ * description:
+ *   Dieses Programm ist ein Teil eines Beispiels für ein einfaches Pub-Sub-Chat-Netzwerk.
  *
- *description:
- * Dieses Programm ist ein Teil eines Beispiels für ein einfaches Pub-Sub-Chat-Netzwerk.
-
- * Für dieses Chat-Netzwerk werden mindestens 3 Arduinos benötigt:
+ *   Für dieses Chat-Netzwerk werden mindestens 3 Arduinos benötigt:
  *
- * Arduino1:   sPSN_Broker.ino
- *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ *   Arduino1:   sPSN_Broker.ino
+ *              - IR-Sender an Pin 11 IR-Empfänger an Pin10
  *
- * Arduino2-n: sPSN_Chat.ino (dieses Programm)
- *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
+ *   Arduino2-n: sPSN_Chat.ino (dieses Programm)
+ *              - IR-Sender an Pin 11 IR-Empfänger an Pin10
  * Funktion:
- * Am Arduino2-n kann ein eigner Name (Sende-Topic) angeben werden.
- * Danach kann angeben werden wem zugehört werden soll (Empfangs-Topics).
- * Arduino1 (Server) übernimmt das Verteilen der Nachrichten.
+ *   Am Arduino2-n kann ein eigner Name (Sende-Topic) angeben werden.
+ *   Danach kann angeben werden wem zugehört werden soll (Empfangs-Topics).
+ *   Arduino1 (Server) übernimmt das Verteilen der Nachrichten.
  *
- *date:  14.12.2020
- *version: 1.0
- */
-
+ * parameter:
+ *   MAX_LEN_PAYLOAD = 20 Zeichen (didacticNet.h)
+ *   MAX_LEN_TOPICS = 10 Zeichen (didacticNet.h)
+ *   max Laenge der Eingegebenen Daten: 100 Zeichen (5*MAX_LEN_PAYLOAD)
+ *
+ * date:  13.07.2021
+*/
+#include <Arduino.h>
 #include "SoftwareSerial.h"
 #include "didacticNet.h"
 
-//lege Geschwindigkeit für serielle Schnittstellen fest
-#define SERIAL_BAUD 2400
-
-
-unsigned long lastTime = 0L;
+#define SERIAL_BAUD 2400                         //lege Geschwindigkeit für serielle Schnittstellen fest
 
-bool dataReadDone = false;
+char readData[MAX_LEN_PAYLOAD * 5]      = {'\0'};  //Array für eingelesene Daten (mit Puffer für zu lange Eingaben)
 
-//Maximale Nachrichten- und Topic-Länge:
-//MAX_LEN_PAYLOAD = 20 Zeichen
-//MAX_LEN_TOPICS = 10 Zeichen
-//kann erhöht werden (z. B. #define MAX_LEN_TOPICS 20) , dann aber Arduino-Mega als Server sinnvoll
+char topicSub[MAX_LEN_TOPICS] = {""};           //Array für neues Empfangs-Topic
+char topicPub[MAX_LEN_TOPICS] = {""};           //Array für eigenes Sende-Topic
 
-char readData[MAX_LEN_PAYLOAD * 5] = {'\0'};
-char arrayBuffer[MAX_LEN_PAYLOAD + 1] = {'\0'};
-int counter = 0;
-
-//Arrays für Empfangs- und Sende Topic
-char topicSub[MAX_LEN_TOPICS] = {""};
-char topicPub[MAX_LEN_TOPICS] = {""};
-
-void myCallback(char* mTopic, int mToLength, char* mData, int mDaLength) {
+//Callback-Funktion wird bei neuen Daten automatisch aufgerufen
+void clientCallback(char* mTopic, int mToLength, char* mData, int mDaLength) {
   Serial.print(mTopic);
   Serial.print(":\t");
   Serial.println(mData);
 }
 
-//lege Pins für SoftwareSerielle Schnittstelle fest
-// Rx = 10 -> Empfänger | Tx = 11 -> Sender
-SoftwareSerial sSerial(10, 11);
+SoftwareSerial sSerial(10, 11); // SoftwareSerial an Rx = Pin10 -> Empfänger | Tx = Pin11 -> Sender
 
-//Erzeuge Client-Instanz
-didacticPSNetClient psnClient;
+didacticPSNetClient psnClient; //Erzeuge PubSub-Client-Instanz
 
 
 void setup() {
-  //Starte Serielle Schnittstelle (zum PC)
-  Serial.begin(SERIAL_BAUD);
-
-  //Starte SoftwareSerielle Schnittstelle (zu IR-Link-Modulen)
-  sSerial.begin(SERIAL_BAUD);
 
-  //Lege fest welche Serielle Schnittstelle für sPSN verwendet werden soll
-  //psnClient.setStream(sSerial);
+  Serial.begin(SERIAL_BAUD);  //Starte Serielle Schnittstelle (zum PC)
 
-  //Lege Callback-Funktion fest (wird ausgeführt wenn neue Daten ankommen)
-  //psnClient.setCallback(myCallback);
+  sSerial.begin(SERIAL_BAUD); //Starte SoftwareSerielle Schnittstelle (zu IR-Link-Modulen)
 
-  psnClient.begin(sSerial, myCallback);
+  psnClient.begin(sSerial, clientCallback); //Starte PubSubClient mit SoftwareSerial und Callbackfunktion "clientCallback"
 
+  //AUSGABE INFOTEXT
   Serial.print("Bitte den eigenen Namen mit einem # eingeben\nund mit Enter bestaetigen. -> ");
   Serial.println("#DeinName");
   Serial.print("Gebe dann die Namen deiner Chatpartner mit einem @ ein. -> ");
   Serial.println("@ChatPartner");
-  Serial.println("Anschließend kannst du mit ihnen schreiben");
+  Serial.println("Anschließend kannst du mit ihnen schreiben.");
+  Serial.println("Pro Nachricht duerfen maximal 20 Zeichen eingegeben werden!");
   Serial.println();
   Serial.println("HINWEIS:");
   Serial.println("Stelle das Zeilenende im SerialMonitor auf \"Zeilenumbruch (CR)\"");
@@ -86,60 +69,37 @@ void setup() {
 }
 
 void loop() {
-  //Verarbeiten der Daten, prüfen ob Netzwerk frei und versenden der Daten
-  psnClient.handleNetwork();
-
-  //Lese Daten ein bis zum Zeichen Zeilenumbruch "CR"
-  if (Serial.available()) {
-    char buffer = Serial.read();
-    readData[counter] = buffer;
-    //Wenn Zeilenumbruch "CR", dann merke, dass Einlesen fertig
-    //und setze String Abschluss "\0" ans Ende
-    if (buffer == 13) {
-      readData[counter] = '\0';
-      counter = 0;
-      dataReadDone = true;
-    } else {
-      counter++;
-    }
-  }
 
-  //Wenn Daten fertig eingelesen wurden
-  if (dataReadDone && strlen(readData) <= MAX_LEN_PAYLOAD * 5 ) {
-    //Wenn "@" vorne steht, dann neuer Chatpartner anlegen (neues Topic dem zugehört wird)
-    if (readData[0] == '@') {
-      //kopiere das neue Topic (den Namen des Chatpartners) in das passende Array
-      strcpy(readData, readData + 1);
-      //Lege fest zu welchem Topic Daten empfangen werden sollen (den Namen des Chatpartners)
-      psnClient.subscribe(readData);
-      Serial.print("Kontakt zu ");
+  psnClient.handleNetwork();  //Verarbeiten der Daten, prüfen ob Netzwerk frei und versenden der Daten
+
+  int nrOfAscii = readSerialData(Serial, readData, 13); //Einlesen der Nutzereingabe am SerialMonitor (Rueckgabewert = Anzahl der gelesenen Zeichen)
+
+  if (nrOfAscii > 0) { //Wenn Daten fertig eingelesen wurden
+
+    if (readData[0] == '@') {         //Wenn '@' vorne steht, dann neuer Chatpartner anlegen (neues Topic abonnieren)
+      strcpy(readData, readData + 1); //verschiebe um ein Zeichen (entferne '@')
+      psnClient.subscribe(readData);  //Lege fest zu welchem Topic Daten empfangen werden sollen (den Namen des Chatpartners)
+
+      Serial.print("Nachrichten von "); //Ausgabe welches Topic abonniert wurde
       Serial.print(readData);
-      Serial.println(" hergestellt");
+      Serial.println(" abonniert");
     }
-    //Wenn "#" vorne steht, dann neuer eigener Name (neues Topic unter dem gesendet wird)
-    else if (readData[0] == '#') {
-      //kopiere das neue Topic (deinen neuen Namen) in das passende Array
-      strcpy(topicPub, readData + 1);
-      Serial.print("Dein Name:\t");
+
+    else if (readData[0] == '#') {    //Wenn '#' vorne steht, dann neuer eigener Name (neues Topic unter dem gesendet wird)
+      strcpy(topicPub, readData + 1); //kopiere das neue Topic (deinen neuen Namen) in das passende Array (+ 1 = entferne '#')
+
+      Serial.print("Dein Name:\t");   //Ausgabe unter welchem Topic veröffentlicht wird
       Serial.println(topicPub);
     }
-    //Wenn normale Nachrichten eingegeben wurden, dann Daten unter eigenem Topic versenden
-    else {
-      for (int i = 0; i * MAX_LEN_PAYLOAD < strlen(readData); i++) {
-        memset(arrayBuffer, '\0', MAX_LEN_PAYLOAD + 1);
-        strncpy(arrayBuffer, &readData[MAX_LEN_PAYLOAD * i], dataReadDone);
-        //Serial.print("ReadData: ");Serial.print(readData);Serial.print("\t");Serial.print(arrayBuffer);
-        psnClient.publish(topicPub, arrayBuffer);
-        //Solange Daten zu versenden sind (wenn Text länger als max Länge einer Nachricht)
-        while (psnClient.isDataToSend()) {
-          //Verarbeiten der Daten, prüfen ob Netzwerk frei und versenden der Daten
-          psnClient.handleNetwork();
-        }
-        Serial.print("Ich:\t");
-        Serial.println(arrayBuffer);
-      }
+
+    else { //Wenn "normale" Nachrichten eingegeben wurden, dann Daten unter eigenem Topic versenden
+      readData[MAX_LEN_PAYLOAD] = '\0';       //Schreibe String-Ende an letzte Stelle im Array
+      psnClient.publish(topicPub, readData);  //Bereite eingegebene Daten zum Senden vor
+
+      Serial.print("Ich:\t");   //Ausgabe was unter deinem Topic veröffentlicht wird
+      Serial.println(readData);
+
     }
-    dataReadDone = false;
   }
 
-}
+}
\ No newline at end of file
diff --git a/examples/sPSN_Client1/sPSN_Client1.ino b/examples/sPSN_Client1/sPSN_Client1.ino
index b432b0275fc527230f1adca641968ff0b6009617..667ace59869f62e24656d8ada409aab3597389ee 100644
--- a/examples/sPSN_Client1/sPSN_Client1.ino
+++ b/examples/sPSN_Client1/sPSN_Client1.ino
@@ -14,9 +14,12 @@
  * Arduino3: sPSN_Client2.ino -> Sendet Zustand des Tasters | Empfängt Wert des Potis
  * (Taster an Pin2 | LED an Pin5)
  *
+ * parameter:
+ *  MAX_LEN_PAYLOAD = 20 Zeichen (didacticNet.h)
+ *  MAX_LEN_TOPICS = 10 Zeichen (didacticNet.h)
+ * 
  *date:  06.07.2021
  */
-
 #include <Arduino.h>
 #include "SoftwareSerial.h"
 #include "didacticNet.h"
diff --git a/examples/sPSN_Server/sPSN_Server.ino b/examples/sPSN_Server/sPSN_Server.ino
deleted file mode 100644
index 083672cf9b92b78727923667e629a4a59af34aa2..0000000000000000000000000000000000000000
--- a/examples/sPSN_Server/sPSN_Server.ino
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *file:  sPSN_Server.ino
- *author:  letsgoING -> info@letsgoing.de
- *
- *description:
- * Dieses Programm ist ein Teil eines Beispiels für ein einfaches Pub-Sub-Netzwerk.
- *
- * Für ein Sensor-Netwerk werden 3 Arduinos mit IR-Link-Modulen benötigt:
- * Arduino1: sPSN_Broker.ino (dieses Programm)
- *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
- * Arduino2: sPSN_Client1.ino
- *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
- *           - Taster an Pin2
- *           - LED an Pin9
- * Arduino3: sPSN_Client2.ino
- *           - IR-Sender an Pin 11 IR-Empfänger an Pin10
- *           - Poti an PinA0
- *           - LED an Pin9
- *
- * Für ein Chat-Netzwerk werden mindestens 3 Arduinos benötigt:
- * Arduino1:   sPSN_Server.ino (dieses Programm)
- *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
- * Arduino2-n: sPSN_Chat.ino
- *            - IR-Sender an Pin 11 IR-Empfänger an Pin10
- *
- *date:  14.12.2020
- *version: 1.0
- */
-
-#include "SoftwareSerial.h"
-#include "didacticNet.h"
-
-//lege Geschwindigkeit für serielle Schnittstellen fest
-#define SERIAL_BAUD 2400
-
-//lege Pins für SoftwareSerielle Schnittstelle fest
-// Rx = 10 -> Empfänger | Tx = 11 -> Sender
-SoftwareSerial sSerial(10, 11);
-
-//Erzeuge Broker-Instanz
-didacticPSNetBroker psnBroker;
-
-void setup() {
-  //Starte Serielle Schnittstelle (zum PC)
-  Serial.begin(SERIAL_BAUD);
-
-  //Starte SoftwareSerielle Schnittstelle (zu IR-Link-Modulen)
-  sSerial.begin(SERIAL_BAUD);
-
-  //Lege fest welche Serielle Schnittstelle für sPSN verwendet werden soll
-  //psnBroker.setStream(sSerial);
-  psnBroker.begin(sSerial);
-}
-
-void loop() {
-  //hier verarbeitet der Server alle Daten
-  psnBroker.handleNetwork();
-}