diff --git a/console-client/app/src/main/java/io/vs/guessgame/client/GuessGameApp.java b/console-client/app/src/main/java/io/vs/guessgame/client/GuessGameApp.java
index 4a92774c497aba88070bc23e3a3a291cf2798d47..6977b5a0837177579fbc3c9fb5d86eb8f990bffe 100644
--- a/console-client/app/src/main/java/io/vs/guessgame/client/GuessGameApp.java
+++ b/console-client/app/src/main/java/io/vs/guessgame/client/GuessGameApp.java
@@ -61,6 +61,8 @@ public class GuessGameApp {
                         case GAME_OVER:
                             System.out.println("You lost! Too many wrong guesses!");
                             break GAME_LOOP;
+                        default:
+                            throw new IOException("Invalid Server Code");
                     }
                 } 
             } catch (IOException e) {
diff --git a/iterative-server/app/src/main/java/io/vs/guessgame/server/IterativeServer.java b/iterative-server/app/src/main/java/io/vs/guessgame/server/IterativeServer.java
index a7502f051ec3316733fb1c026c9252f796fdd43b..8934484e002f54f87609c08b8774052364ac4d2d 100644
--- a/iterative-server/app/src/main/java/io/vs/guessgame/server/IterativeServer.java
+++ b/iterative-server/app/src/main/java/io/vs/guessgame/server/IterativeServer.java
@@ -12,15 +12,16 @@ public class IterativeServer {
     private static final Random RANDOM = new Random();
     private static int MAX_ATTEMPTS = 3;
 
-    /* Just to improve readability of the code:
+    /*
+     * Just to improve readability of the code:
      *
-     * Client Status Codes: 
+     * Client Status Codes:
      * 0 = Start Game
      * 
-     * Server Status Codes: 
-     * 0 = Server Ready, Game initialized 
-     * 1 = Correct Guess, Client wins! 
-     * 2 = Incorrect Guess 
+     * Server Status Codes:
+     * 0 = Server Ready, Game initialized
+     * 1 = Correct Guess, Client wins!
+     * 2 = Incorrect Guess
      * 9 = Game Over
      */
     private static final int START_GAME = 0;
@@ -29,51 +30,56 @@ public class IterativeServer {
     private static final int INCORRECT_GUESS = 2;
     private static final int GAME_OVER = 9;
 
-    public static void main(String[] args) {        
-        try (ServerSocket gameSocket = new ServerSocket(SERVER_PORT)){                      
+    public static void main(String[] args) {
+        try (ServerSocket gameSocket = new ServerSocket(SERVER_PORT)) {
             System.out.println("Guess Game Server up and running ...");
             while (true) {
                 // Wait for client access
                 Socket gamerSocket = gameSocket.accept();
-                System.out.print("Server starts a new game ...");
+                try (gamerSocket) {
+                    System.out.println("Server starts a new game ...");
 
-                // Init communication streams and wait for message to start a game
-                InputStream fromClient = gamerSocket.getInputStream();
-                OutputStream toClient = gamerSocket.getOutputStream();
-                int clientCode = fromClient.read();
-                if (clientCode == START_GAME) {
-                    System.out.print("Server starts a new game ...");
-                    // Init game and send server ready (0)!
-                    int pick = RANDOM.nextInt(10); //pick random number (0-9)
-                    int attempts = 0;  //init number of attempts
-                    toClient.write(SERVER_READY);
+                    // Init communication streams and wait for message to start a game
+                    InputStream fromClient = gamerSocket.getInputStream();
+                    OutputStream toClient = gamerSocket.getOutputStream();
+                    int clientCode = fromClient.read();
+                    if (clientCode == START_GAME) {                        
+                        // Init game and send server ready (0)!
+                        int pick = RANDOM.nextInt(10); // pick random number (0-9)                        
+                        int attempts = 0; // init number of attempts
+                        System.out.println("Server picked random number "+pick);
+                        toClient.write(SERVER_READY);
 
-                    while (true) {//enter game loop
-                        // Wait for first attempt of client to guess number
-                        int guess = fromClient.read();
-                        // Check guess
-                        if (guess == pick) {
-                            toClient.write(CORRECT_GUESS); // great!
-                            break;
-                        } else {
-                            attempts++;
-                            if (attempts < MAX_ATTEMPTS)
-                                toClient.write(INCORRECT_GUESS); // wrong guess!
-                            else {
-                                toClient.write(GAME_OVER); // game over!
+                        while (true) {// enter game loop
+                            // Wait for first attempt of client to guess number
+                            int guess = fromClient.read();
+                            // Check guess
+                            if (guess == pick) {
+                                toClient.write(CORRECT_GUESS); // great!
                                 break;
+                            } else {
+                                attempts++;
+                                if (attempts < MAX_ATTEMPTS)
+                                    toClient.write(INCORRECT_GUESS); // wrong guess!
+                                else {
+                                    toClient.write(GAME_OVER); // game over!
+                                    break;
+                                }
                             }
                         }
-                    }
-                    System.out.println("Server: Game terminated!");
-                    attempts = 0;
-                } else {
-                    System.err.println("Server: Received unexpected client code! Closing connection!");
+                        System.out.println("Server: Game terminated!");
+                        attempts = 0;
+                    } else {
+                        System.err.println("Server: Received unexpected client code! Closing connection!");
+                        gamerSocket.close();                        
+                    }                    
+                } catch (IOException e) {
+                    System.err.println("Server: encountered connection problems. Cannot wait for connection requests!");
+                    e.printStackTrace();
                 }
-                gamerSocket.close();// close connection                
             }
         } catch (IOException e) {
-            System.err.println("Server: encountered connection problems. Cannot wait for connection requests!");
+            System.err.println("Server: Can't create a ServerSocket!");            
             e.printStackTrace();
         }
     }