diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 22226cadec31fa66f12daee30ddcd8ff75908208..60d39b2777db74f39b85921873c88ba2bbc9c679 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,36 +2,24 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="688d774d-cfc7-4b0d-b00c-5ca931aba600" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain$1.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ApplicationMain.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen$1.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/ChatScreen.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea$1.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/DrawingArea.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$1.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI$2.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/PaintGUI.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$2.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen$3.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/GUI/StartScreen.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/Client.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate$1.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/ClientUpdate.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/DrawingUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/DrawingUpdate.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/EncryptionUpdate.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/EncryptionUpdate.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/client/removeClientTimer.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/client/removeClientTimer.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/EncryptDecrypt.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/remote/EncryptDecrypt.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ChatController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ChatController.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController$1.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/ClientController.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/DrawingController.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/DrawingController.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/MySharedKey.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/MySharedKey.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/out/production/infinitymonkeys/server/Server.class" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/infinitymonkeys/server/Server.class" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ApplicationMain.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/GUI/ChatScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ChatScreen.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/GUI/DrawingArea.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/DrawingArea.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/GUI/PaintGUI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/PaintGUI.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/server/Server.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/server/Server.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/GUI/StartScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/StartScreen.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/client/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/client/Client.java" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -40,16 +28,15 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="DefaultGradleProjectSettings">
-    <option name="testRunner" value="GRADLE" />
-    <option name="delegatedBuild" value="true" />
+    <option name="isMigrated" value="true" />
   </component>
   <component name="FileEditorManager">
     <leaf>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
+        <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="101">
-              <caret line="427" column="15" selection-start-line="427" selection-start-column="10" selection-end-line="427" selection-end-column="15" />
+              <caret line="217" column="25" selection-start-line="217" selection-start-column="20" selection-end-line="217" selection-end-column="25" />
             </state>
           </provider>
         </entry>
@@ -64,73 +51,69 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/StartScreen.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="68">
-              <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
-            </state>
-          </provider>
+        <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.form">
+          <provider selected="true" editor-type-id="ui-designer" />
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/GUI/StartScreen.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="204">
-              <caret line="106" column="51" lean-forward="true" selection-start-line="106" selection-start-column="51" selection-end-line="106" selection-end-column="51" />
+            <state relative-caret-position="459">
+              <caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+        <entry file="file://$PROJECT_DIR$/src/client/Client.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="101">
-              <caret line="85" column="15" selection-start-line="85" selection-start-column="10" selection-end-line="85" selection-end-column="15" />
+            <state relative-caret-position="493">
+              <caret line="185" lean-forward="true" selection-start-line="185" selection-end-line="185" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+        <entry file="file://$PROJECT_DIR$/src/server/ClientController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="101">
-              <caret line="95" column="42" selection-start-line="95" selection-start-column="27" selection-end-line="95" selection-end-column="42" />
+            <state relative-caret-position="-544">
+              <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java">
+        <entry file="file://$PROJECT_DIR$/src/server/ChatController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="101">
-              <caret line="7" column="31" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="31" />
+            <state relative-caret-position="-1156">
+              <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/DrawingUpdate.java">
+        <entry file="file://$PROJECT_DIR$/src/server/Server.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="101">
-              <caret line="12" column="31" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="31" />
+            <state relative-caret-position="1292">
+              <caret line="110" column="32" lean-forward="true" selection-start-line="110" selection-start-column="32" selection-end-line="110" selection-end-column="32" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/client/EncryptionUpdate.java">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="101">
-              <caret line="8" column="31" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="31" />
+            <state relative-caret-position="220">
+              <caret line="67" lean-forward="true" selection-start-line="67" selection-end-line="67" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+        <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="101">
-              <caret line="93" column="15" selection-start-line="93" selection-start-column="10" selection-end-line="93" selection-end-column="15" />
+              <caret line="429" column="15" selection-start-line="429" selection-start-column="10" selection-end-line="429" selection-end-column="15" />
             </state>
           </provider>
         </entry>
@@ -147,6 +130,8 @@
   <component name="FindInProjectRecents">
     <findStrings>
       <find>RemoteException</find>
+      <find>StartScreen.showErrorMessage(&quot;Error in receiving image&quot;);</find>
+      <find>excep</find>
       <find>catch</find>
     </findStrings>
   </component>
@@ -161,11 +146,15 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/src/GUI/PaintGUI.java" />
-        <option value="$PROJECT_DIR$/src/GUI/ApplicationMain.java" />
-        <option value="$PROJECT_DIR$/src/GUI/DrawingArea.java" />
         <option value="$PROJECT_DIR$/src/GUI/ChatScreen.java" />
         <option value="$PROJECT_DIR$/src/server/Server.java" />
+        <option value="$PROJECT_DIR$/src/client/DrawingUpdate.java" />
+        <option value="$PROJECT_DIR$/src/client/EncryptionUpdate.java" />
+        <option value="$PROJECT_DIR$/src/GUI/DrawingArea.java" />
+        <option value="$PROJECT_DIR$/src/GUI/PaintGUI.java" />
+        <option value="$PROJECT_DIR$/src/GUI/StartScreen.java" />
+        <option value="$PROJECT_DIR$/src/client/Client.java" />
+        <option value="$PROJECT_DIR$/src/GUI/ApplicationMain.java" />
       </list>
     </option>
   </component>
@@ -192,6 +181,45 @@
               <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
               <item name="src" type="462c0819:PsiDirectoryNode" />
             </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="client" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="client" type="462c0819:PsiDirectoryNode" />
+              <item name="DrawingUpdate.java" type="529ef68f:ClassesTreeStructureProvider$PsiClassOwnerTreeNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="GUI" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="GUI" type="462c0819:PsiDirectoryNode" />
+              <item name="ChatScreen" type="e9f4de52:FormNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="GUI" type="462c0819:PsiDirectoryNode" />
+              <item name="StartScreen" type="e9f4de52:FormNode" />
+            </path>
+            <path>
+              <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
+              <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="remote" type="462c0819:PsiDirectoryNode" />
+            </path>
             <path>
               <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" />
               <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" />
@@ -283,7 +311,7 @@
       <workItem from="1571786278739" duration="3319000" />
       <workItem from="1571915914956" duration="3985000" />
       <workItem from="1571955297053" duration="15040000" />
-      <workItem from="1571987111635" duration="1790000" />
+      <workItem from="1571987111635" duration="4196000" />
     </task>
     <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface">
       <created>1571646862883</created>
@@ -299,11 +327,25 @@
       <option name="project" value="LOCAL" />
       <updated>1571974791259</updated>
     </task>
-    <option name="localTasksCounter" value="3" />
+    <task id="LOCAL-00003" summary="Added exception handling for the case where the server is shutdown while there are clients connected. The clients will be kicked out after being notified via an error dialogue.">
+      <created>1571988995687</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1571988995687</updated>
+    </task>
+    <task id="LOCAL-00004" summary="Cleaned out the printstacktraces from the client and GUI classes.">
+      <created>1571990458473</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1571990458473</updated>
+    </task>
+    <option name="localTasksCounter" value="5" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="1790000" />
+    <option name="totallyTimeSpent" value="4196000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-7" y="-7" width="1295" height="704" extended-state="6" />
@@ -341,6 +383,39 @@
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
     </layout>
+    <layout-to-restore>
+      <window_info id="Designer" order="0" />
+      <window_info id="Image Layers" order="1" />
+      <window_info id="Capture Tool" order="2" />
+      <window_info id="UI Designer" order="3" />
+      <window_info id="Favorites" order="4" side_tool="true" />
+      <window_info id="JavaEE:App" order="5" side_tool="true" />
+      <window_info active="true" content_ui="combo" id="Project" order="6" visible="true" weight="0.24939272" />
+      <window_info id="Structure" order="7" side_tool="true" weight="0.25" />
+      <window_info anchor="bottom" id="Terminal" order="0" />
+      <window_info anchor="bottom" id="Docker" order="1" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Sequence" order="2" />
+      <window_info anchor="bottom" id="Event Log" order="3" side_tool="true" />
+      <window_info anchor="bottom" id="Messages" order="4" />
+      <window_info anchor="bottom" id="Database Changes" order="5" />
+      <window_info anchor="bottom" id="Version Control" order="6" />
+      <window_info anchor="bottom" id="Message" order="7" />
+      <window_info anchor="bottom" id="Find" order="8" />
+      <window_info anchor="bottom" id="Run" order="9" visible="true" weight="0.32867134" />
+      <window_info anchor="bottom" id="Debug" order="10" weight="0.4" />
+      <window_info anchor="bottom" id="Cvs" order="11" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="12" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="13" />
+      <window_info anchor="right" id="Maven" order="0" />
+      <window_info anchor="right" id="Palette" order="1" />
+      <window_info anchor="right" id="Capture Analysis" order="2" />
+      <window_info anchor="right" id="Database" order="3" />
+      <window_info anchor="right" id="Palette&#9;" order="4" />
+      <window_info anchor="right" id="Theme Preview" order="5" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="6" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="7" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="8" weight="0.25" />
+    </layout-to-restore>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
@@ -390,83 +465,111 @@
   </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="Changed the join method to send over a reference of the ClientUpdate Interface" />
-    <option name="LAST_COMMIT_MESSAGE" value="Changed the join method to send over a reference of the ClientUpdate Interface" />
+    <MESSAGE value="Added exception handling for the case where the server is shutdown while there are clients connected. The clients will be kicked out after being notified via an error dialogue." />
+    <MESSAGE value="Cleaned out the printstacktraces from the client and GUI classes." />
+    <option name="LAST_COMMIT_MESSAGE" value="Cleaned out the printstacktraces from the client and GUI classes." />
   </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/src/client/ChatUpdate.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="101">
-          <caret line="49" column="77" selection-start-line="49" selection-start-column="62" selection-end-line="49" selection-end-column="77" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/client/Client.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="101">
-          <caret line="95" column="42" selection-start-line="95" selection-start-column="27" selection-end-line="95" selection-end-column="42" />
+          <caret line="35" column="26" selection-start-line="35" selection-start-column="26" selection-end-line="35" selection-end-column="26" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="101">
-          <caret line="7" column="31" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="31" />
+        <state relative-caret-position="-851">
+          <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/client/DrawingUpdate.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="101">
-          <caret line="12" column="31" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="31" />
+          <caret line="190" column="15" selection-start-line="190" selection-start-column="10" selection-end-line="190" selection-end-column="15" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/client/EncryptionUpdate.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="101">
-          <caret line="8" column="31" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="31" />
+        <state relative-caret-position="169">
+          <caret line="70" column="5" selection-start-line="70" selection-start-column="5" selection-end-line="70" selection-end-column="5" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/GUI/DrawingArea.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="101">
-          <caret line="427" column="15" selection-start-line="427" selection-start-column="10" selection-end-line="427" selection-end-column="15" />
+          <caret line="429" column="15" selection-start-line="429" selection-start-column="10" selection-end-line="429" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="101">
-          <caret line="93" column="15" selection-start-line="93" selection-start-column="10" selection-end-line="93" selection-end-column="15" />
+          <caret line="217" column="25" selection-start-line="217" selection-start-column="20" selection-end-line="217" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/GUI/PaintGUI.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="101">
-          <caret line="85" column="15" selection-start-line="85" selection-start-column="10" selection-end-line="85" selection-end-column="15" />
+          <caret line="195" column="21" selection-start-line="195" selection-start-column="16" selection-end-line="195" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java">
+    <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.form">
+      <provider selected="true" editor-type-id="ui-designer" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/ChatController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="101">
-          <caret line="195" column="21" selection-start-line="195" selection-start-column="16" selection-end-line="195" selection-end-column="21" />
+        <state relative-caret-position="-1156">
+          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1292">
+          <caret line="110" column="32" lean-forward="true" selection-start-line="110" selection-start-column="32" selection-end-line="110" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/server/ClientController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-544">
+          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/GUI/StartScreen.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="68">
-          <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
+        <state relative-caret-position="459">
+          <caret line="91" column="21" lean-forward="true" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/server/Server.java">
+    <entry file="file://$PROJECT_DIR$/src/client/Client.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="493">
+          <caret line="185" lean-forward="true" selection-start-line="185" selection-end-line="185" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/GUI/ApplicationMain.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="106" column="51" lean-forward="true" selection-start-line="106" selection-start-column="51" selection-end-line="106" selection-end-column="51" />
+        <state relative-caret-position="220">
+          <caret line="67" lean-forward="true" selection-start-line="67" selection-end-line="67" />
         </state>
       </provider>
     </entry>
diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class
index de13bd8e2a857c838d2680ee7577252337b9ee96..96c5b7e3923e47834a04e568070b62bc2d4b74d4 100644
Binary files a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class and b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class differ
diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain.class b/out/production/infinitymonkeys/GUI/ApplicationMain.class
index 3c98d749bbac24b3af1fc1b9dc36ba3ab4d53333..be01b80c58d15ad713cc3a973966cfa7e9089e8a 100644
Binary files a/out/production/infinitymonkeys/GUI/ApplicationMain.class and b/out/production/infinitymonkeys/GUI/ApplicationMain.class differ
diff --git a/out/production/infinitymonkeys/GUI/DrawingArea$1.class b/out/production/infinitymonkeys/GUI/DrawingArea$1.class
index 020f7f7b7205da256ae0fe46f5fc81c752fdde41..e3674745d41bee0f87f0e21d742a75df896333b4 100644
Binary files a/out/production/infinitymonkeys/GUI/DrawingArea$1.class and b/out/production/infinitymonkeys/GUI/DrawingArea$1.class differ
diff --git a/out/production/infinitymonkeys/GUI/DrawingArea.class b/out/production/infinitymonkeys/GUI/DrawingArea.class
index 37586ef27dda89404ffd782e350363fa3afe4125..0afda5eee40fd40d832158fac5cccf3fad854c34 100644
Binary files a/out/production/infinitymonkeys/GUI/DrawingArea.class and b/out/production/infinitymonkeys/GUI/DrawingArea.class differ
diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$1.class b/out/production/infinitymonkeys/GUI/PaintGUI$1.class
index b00acbc0bf6a60c3ce7a3c32af05f1a7490ab9ce..c623b26d8cb304894080d316bc92a77fb435a5a4 100644
Binary files a/out/production/infinitymonkeys/GUI/PaintGUI$1.class and b/out/production/infinitymonkeys/GUI/PaintGUI$1.class differ
diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$2.class b/out/production/infinitymonkeys/GUI/PaintGUI$2.class
index 13359c43ce691b91e08a770194a26357ab4ae9de..985a3219b2e55047b969dd1a8d6a203f99861b36 100644
Binary files a/out/production/infinitymonkeys/GUI/PaintGUI$2.class and b/out/production/infinitymonkeys/GUI/PaintGUI$2.class differ
diff --git a/out/production/infinitymonkeys/GUI/PaintGUI.class b/out/production/infinitymonkeys/GUI/PaintGUI.class
index daee65b2e541591bc7d7cc42b71c181213f8f428..ba2a714e57a1ecaf684e05860d93a386d49a47d5 100644
Binary files a/out/production/infinitymonkeys/GUI/PaintGUI.class and b/out/production/infinitymonkeys/GUI/PaintGUI.class differ
diff --git a/out/production/infinitymonkeys/GUI/StartScreen$2.class b/out/production/infinitymonkeys/GUI/StartScreen$2.class
index 3c75e4eff4740232a34d340af4bd4e09ff3c502d..c1327f3330e29ad72b9937c6d3d3df039d9009d8 100644
Binary files a/out/production/infinitymonkeys/GUI/StartScreen$2.class and b/out/production/infinitymonkeys/GUI/StartScreen$2.class differ
diff --git a/out/production/infinitymonkeys/GUI/StartScreen$3.class b/out/production/infinitymonkeys/GUI/StartScreen$3.class
index a5999df56a7d71049d4215205bbd8f6e50786073..1b65befab3757559268c0a2b7fc201b02a1767e3 100644
Binary files a/out/production/infinitymonkeys/GUI/StartScreen$3.class and b/out/production/infinitymonkeys/GUI/StartScreen$3.class differ
diff --git a/out/production/infinitymonkeys/GUI/StartScreen.class b/out/production/infinitymonkeys/GUI/StartScreen.class
index 78e1e40a923ee22a4dd65003b8f834aca4d9b26f..3177e1abc339090104d61238fad4af68511fd352 100644
Binary files a/out/production/infinitymonkeys/GUI/StartScreen.class and b/out/production/infinitymonkeys/GUI/StartScreen.class differ
diff --git a/out/production/infinitymonkeys/client/Client.class b/out/production/infinitymonkeys/client/Client.class
index c6a8c875f45b154550352c748e2833fea6df2de3..57726fe3110737f9d58bf967b562830ac923d66d 100644
Binary files a/out/production/infinitymonkeys/client/Client.class and b/out/production/infinitymonkeys/client/Client.class differ
diff --git a/out/production/infinitymonkeys/client/DrawingUpdate.class b/out/production/infinitymonkeys/client/DrawingUpdate.class
index 170458854e5ccc65fa78b796928745b5b9c87396..75f3bc99333d593308c036244ae2c888eeb6e548 100644
Binary files a/out/production/infinitymonkeys/client/DrawingUpdate.class and b/out/production/infinitymonkeys/client/DrawingUpdate.class differ
diff --git a/out/production/infinitymonkeys/client/EncryptionUpdate.class b/out/production/infinitymonkeys/client/EncryptionUpdate.class
index 5a19936163cb4a6039971f14fe91ce5c8f54707c..58a59589e01d0ae92b379c0d5304846489a3fec0 100644
Binary files a/out/production/infinitymonkeys/client/EncryptionUpdate.class and b/out/production/infinitymonkeys/client/EncryptionUpdate.class differ
diff --git a/out/production/infinitymonkeys/client/removeClientTimer.class b/out/production/infinitymonkeys/client/removeClientTimer.class
index bc84299015c6ee1d659b792def75320715019a83..c73b0e7d011b0129ea8f3bdd9efac2a1e4fd4d85 100644
Binary files a/out/production/infinitymonkeys/client/removeClientTimer.class and b/out/production/infinitymonkeys/client/removeClientTimer.class differ
diff --git a/src/GUI/ApplicationMain.java b/src/GUI/ApplicationMain.java
index 240f330e4578b4a818614ec32099a1aa27384d58..60dc6aab08c0ef6186c2bc03b89b158531e2c2b3 100644
--- a/src/GUI/ApplicationMain.java
+++ b/src/GUI/ApplicationMain.java
@@ -59,7 +59,6 @@ public class ApplicationMain extends JPanel {
 
     public void createAndShowGUI() {
         frame = new JFrame("Application Main");
-        JFrame.setDefaultLookAndFeelDecorated(true);
         Container content = frame.getContentPane();
         content.setLayout(new BorderLayout());
         content.add(paintGUI.getGlobal(), BorderLayout.WEST);
diff --git a/src/GUI/StartScreen.java b/src/GUI/StartScreen.java
index 6c1bb8712f919f6d5ea423f2af59943a0b2f2387..acd121f5828f6ff5a7f545f5d0fa9f5254fd1a10 100644
--- a/src/GUI/StartScreen.java
+++ b/src/GUI/StartScreen.java
@@ -70,21 +70,13 @@ public class StartScreen {
                     {
                         frame.setVisible(false);
                         frame.dispose();
-                        if (client.getApplicationMain().getFrame() == null) {
-                            client.startApplication();
-                        }
-                        else {
-                            client.clearChat();
-                            client.clearDrawingArea();
-                            client.setVisibleApplication();
-                        }
-
+                        client.startApplication();
                     }
-                    else if( connectionStatus == 1 || connectionStatus == 6)
+                    else if( connectionStatus == 1)
                     {
                         showErrorMessage("The manager rejected your join request");
                     }
-                    else if( connectionStatus == 2 || connectionStatus == 7 )
+                    else if( connectionStatus == 2)
                     {
                         showErrorMessage("Duplicate username: Please enter a different username");
                     }
@@ -96,11 +88,6 @@ public class StartScreen {
                     {
                         showErrorMessage("Incorrect Password");
                     }
-                    else if( connectionStatus == 5 ) {
-                        frame.setVisible(false);
-                        frame.dispose();
-                        client.setVisibleApplication();
-                    }
                     else
                     {
                         showErrorMessage("Unknown Connection Status");
diff --git a/src/client/Client.java b/src/client/Client.java
index 353f7ac0d6eacb09021e2f31e1659c48511314f1..c10899b5f98a1b6f3a954221e5beaf1ae074157f 100644
--- a/src/client/Client.java
+++ b/src/client/Client.java
@@ -154,64 +154,36 @@ public class Client
             if (serverAddress.trim().isEmpty()) {
                 serverAddress = DEFAULT_SERVER_ADDRESS;
             }
-            // If the client wants to reconnect to the same server using the same username
-            if (registryServer != null && getUserName().equals(userName)
-                    && getServerAddress().equals(serverAddress)
-                    && getApplicationMain().getFrame() != null) {
-
-                System.out.println("Server address:" + getServerAddress());
-                System.out.println("User name:" + getUserName());
-                System.out.println("Password: " + password);
-
-                if (clientController.setSharedKey(this.encryptionUpdate)) {
-                    SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
-
-                    if (clientController.checkPassword(sealedPassword)) {
-                        int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
-                        return joinStatus + 5;
-                    }
-                    else
-                    {
-                        return 4;
-                    }
-                }
-                else
-                {
-                    return 4;
-                }
-            }
             // New connection
-            else {
-                setUserName(userName);
-                setServerAddress(serverAddress);
-                System.out.println("Server address:" + serverAddress);
-
-                registryServer = LocateRegistry.getRegistry(serverAddress);
-                chatController = (IChatController) registryServer.lookup("ChatController");
-                clientController = (IClientController) registryServer.lookup("ClientController");
-                drawingController = (IDrawingController) registryServer.lookup("DrawingController");
-
-                System.out.println("User name:" + getUserName());
-                System.out.println("Password: " + password);
-
-                if (clientController.setSharedKey(this.encryptionUpdate)) {
-                    SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
-
-                    if (clientController.checkPassword(sealedPassword)) {
-                        int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
-                        return joinStatus;
-                    }
-                    else
-                    {
-                        return 4;
-                    }
+            setUserName(userName);
+            setServerAddress(serverAddress);
+            System.out.println("Server address:" + serverAddress);
+
+            registryServer = LocateRegistry.getRegistry(serverAddress);
+            chatController = (IChatController) registryServer.lookup("ChatController");
+            clientController = (IClientController) registryServer.lookup("ClientController");
+            drawingController = (IDrawingController) registryServer.lookup("DrawingController");
+
+            System.out.println("User name:" + getUserName());
+            System.out.println("Password: " + password);
+
+            if (clientController.setSharedKey(this.encryptionUpdate)) {
+                SealedObject sealedPassword = EncryptDecrypt.encryptString(password, this.encryptionUpdate.getSharedSecretKey());
+
+                if (clientController.checkPassword(sealedPassword)) {
+                    int joinStatus = clientController.join(getUserName(), this.chatUpdate, this.clientUpdate, this.drawingUpdate);
+                    return joinStatus;
                 }
                 else
                 {
                     return 4;
                 }
-
             }
+            else
+            {
+                return 4;
+            }
+
         }
         catch (Exception e)
         {