diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Schnitzler/SchnitzlerUnicastNetworking.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Schnitzler/SchnitzlerUnicastNetworking.java
index 82b4a03da98a9caf93bd9bd52e5bd516d174a518..7bdf6b26638e408a8ddb55443d56a53d789cfbbc 100644
--- a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Schnitzler/SchnitzlerUnicastNetworking.java
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Schnitzler/SchnitzlerUnicastNetworking.java
@@ -8,7 +8,8 @@ import java.net.ServerSocket;
 import java.net.Socket;
 
 /**
- *
+ * Homework1: Open a socket and waiting for a client to connect to the socket.
+ * 
  * @author simonschnitzler
  */
 public class SchnitzlerUnicastNetworking {
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/README.md b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/README.md
index 38a981a6457b9a74e9733f3c93572b085e78108b..4fd44c62635b1871d50e4fae2243855fd276afa1 100644
--- a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/README.md
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/README.md
@@ -5,6 +5,6 @@
 ## Description
 Modification of TcpExample3 and adding some code to implement a chat room with multiple clients.
 
-The 'SchnitzlerServer' class sets up a server that listens for incoming client connections on port 2317. When a client connects, the server creates a new handler thread for managing communication with that client. Each client's messages are broadcast to all other connected clients.
+The 'SchnitzlerServer' class sets up a server that listens for incoming client connections on port 2317. When a client connects, the server creates a new handler thread for managing communication with that client. For a successful connection a password must be entered. After that each client's messages are broadcast to all other connected clients.
 
 The 'SchnitzlerClient' class connects to a server running on localhost at port 2317. It sends user input from the console to the server and displays messages received from the server.
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerClient.java b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerClient.java
index 82eb4915a5ce1c64fc81d152388f5d8d1dfb1daf..d1d3b1c85d67098d7be44e3cf1b99a95bcdd751e 100644
--- a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerClient.java
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerClient.java
@@ -8,7 +8,8 @@ import java.net.Socket;
 import java.util.Scanner;
 
 /**
- *
+ * Homework2: Client which connect to a server and prints all incoming messages of the server to the console.
+ * 
  * @author simonschnitzler
  */
 public class SchnitzlerClient {
@@ -21,25 +22,28 @@ public class SchnitzlerClient {
     public static void main(String[] args) throws Exception {
         Socket socket = new Socket(LOCALHOST, 2317);
 
-        new Thread(new Reader(socket)).start();
+        Thread connection = new Thread(new Reader(socket));
+        connection.start();
 
         PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
         Scanner scanner = new Scanner(System.in);
-        while (scanner.hasNextLine()) {
+        while (scanner.hasNextLine() && connection.isAlive()) {
             out.println(scanner.nextLine());
         }
     }
 
     private static class Reader implements Runnable {
         private BufferedReader in;
+        private final Socket socket;
 
         public Reader(Socket socket) throws IOException {
-            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+            this.socket = socket;
+            in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
         }
 
         @Override
         public void run() {
-            try {
+            try (socket){
                 String message;
                 while ((message = in.readLine()) != null) {
                     System.out.println(message);
diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerServer.java b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerServer.java
index 2f2323f5b3068b963cad413bf7ee3ecf1145723e..47cc363f2d1b7e8e2cea4178dc612913d39ddedb 100644
--- a/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerServer.java
+++ b/assignments/src/MV3500Cohort2024JulySeptember/homework2/Schnitzler/SchnitzlerServer.java
@@ -3,8 +3,6 @@ package MV3500Cohort2024JulySeptember.homework2.Schnitzler;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.net.InetAddress;
 import java.net.ServerSocket;
@@ -13,7 +11,8 @@ import java.util.HashSet;
 import java.util.Set;
 
 /**
- *
+ * Homework2: Chatserver, which is waiting for clients to connect. The clients need to enter a password for a successfull connection. After a successfull connection all messages will be sent to all clients.
+ * 
  * @author simonschnitzler
  */
 public class SchnitzlerServer {
@@ -27,20 +26,15 @@ public class SchnitzlerServer {
         System.out.println(SchnitzlerServer.class.getName() + " has started..."); // it helps debugging to put this on console first
         try (ServerSocket listener = new ServerSocket(2317)) {            
             while (true) {
-                Handler handler = new Handler(listener.accept()); // create a new thread writing and reading to and from the new socket
-                OutputStream os = handler.socket.getOutputStream();
-                PrintStream ps = new PrintStream(os);
-                
-                InetAddress remoteAddress = handler.socket.getInetAddress();
-                int remotePort = handler.socket.getPort();
-                String message = remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " has connected to the server.";
+                Socket socket = listener.accept();
+                int remotePort = socket.getPort();
+                InetAddress remoteAddress = socket.getInetAddress();
+                String message = remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " tries to connect to the server.";
                 System.out.println(message);
-                ps.println("Welcome " + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " to the group chat!");
-                for (PrintWriter writer : clientWriters) {
-                        writer.println(message);
-                    }
-                ps.flush();
-                handler.start();               
+                Handler handler = new Handler(socket);
+                handler.start();
+                
+                
             }
         }catch (IOException e) {
             System.err.println("Problem with " + SchnitzlerServer.class.getName() + " networking: " + e);
@@ -67,19 +61,49 @@ public class SchnitzlerServer {
             try {
                 in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                 out = new PrintWriter(socket.getOutputStream(), true);
-
-                synchronized (clientWriters) {
+                
+                InetAddress remoteAddress = socket.getInetAddress();
+                int remotePort = socket.getPort();    
+                out.println("Speak, friend, and enter!");
+                String answer = in.readLine();
+                if("Mellon".equals(answer)){
+                    String message = remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " has connected to the server.";
+                    System.out.println(message);
+                    out.println("Welcome " + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " to the group chat!");                    
+                    for (PrintWriter writer : clientWriters) {
+                        writer.println(message);
+                    }
+                    out.flush();
+                    synchronized (clientWriters) {
                     clientWriters.add(out);
-                }
+                    }
 
-                String message;
-                while ((message = in.readLine()) != null) {
-                    String outputMessage = socket.getInetAddress().getHostName() + "=" + socket.getInetAddress().getHostAddress() + ", " + socket.getPort()+ ": " + message;
+                    while ((message = in.readLine()) != null) {
+                        String outputMessage = socket.getInetAddress().getHostName() + "=" + socket.getInetAddress().getHostAddress() + ", " + socket.getPort()+ ": " + message;
+                        System.out.println(outputMessage);
+                        for (PrintWriter writer : clientWriters) {
+                            writer.println(outputMessage);
+                        }
+                    }
+                    String outputMessage = socket.getInetAddress().getHostName() + "=" + socket.getInetAddress().getHostAddress() + ", " + socket.getPort()+ " has disconnected!";
                     System.out.println(outputMessage);
                     for (PrintWriter writer : clientWriters) {
                         writer.println(outputMessage);
                     }
+       
                 }
+                else{
+                    try (socket) {
+                        String message = remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + ": Connection denied!";
+                        System.out.println(message);
+                        out.println(message);
+                        socket.close();
+                    }catch (IOException e) {
+                    System.out.println("Couldn't close a socket, what's going on?");
+                    }
+                }
+
+                
             } catch (IOException e) {
                 System.out.println("Error handling client: " + e);
             } finally {