diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c9bef83d956785fec3a199e3aeaf85cc7fd85acc..78f9140fb9150b48bf0fed7e27e7ddc1d817a092 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,9 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-<<<<<<< HEAD
-    <list default="true" id="688d774d-cfc7-4b0d-b00c-5ca931aba600" name="Default Changelist" comment="" />
-=======
     <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" />
@@ -32,7 +29,6 @@
       <change beforePath="$PROJECT_DIR$/src/GUI/StartScreen.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/StartScreen.form" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/GUI/StartScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/StartScreen.java" afterDir="false" />
     </list>
->>>>>>> 4c8f776159855fde9cb2d4d4fddb9e800fee9122
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -43,12 +39,19 @@
     <option name="testRunner" value="GRADLE" />
     <option name="delegatedBuild" value="true" />
   </component>
-  <component name="FileTemplateManagerImpl">
-    <option name="RECENT_TEMPLATES">
-      <list>
-        <option value="Class" />
-      </list>
-    </option>
+  <component name="FindInProjectRecents">
+    <findStrings>
+      <find>RMI</find>
+      <find>Black</find>
+      <find>colorOptions</find>
+      <find>Send</find>
+      <find>message</find>
+      <find>userSelectComboBox</find>
+      <find>updateUserList</find>
+      <find>send</find>
+      <find>broadcastMessage</find>
+      <find>sent</find>
+    </findStrings>
   </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -68,13 +71,10 @@
   <component name="ProjectId" id="1SVgnDiSFxSanFbLYY5D9RJaXPS" />
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
-    <property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.SHOW" value="true" />
-    <property name="UI_DESIGNER_EDITOR_MODE.PaletteManager.STATE" value="right" />
-    <property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.STATE" value="left" />
-    <property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="280" />
+    <property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="387" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/../MaxCode/comp90015-dsass2-infinitymonkeys-remaster-mpriymak" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../Git Projects" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="project.structure.last.edited" value="Project" />
@@ -93,7 +93,7 @@
       </list>
     </option>
   </component>
-  <component name="RunManager" selected="Application.Client1">
+  <component name="RunManager" selected="Application.Client2">
     <configuration name="Client 3" type="Application" factoryName="Application">
       <option name="MAIN_CLASS_NAME" value="client.Client" />
       <module name="infinitymonkeys" />
@@ -144,15 +144,8 @@
       <option name="presentableId" value="Default" />
       <updated>1571631720382</updated>
       <workItem from="1571631723795" duration="17601000" />
-<<<<<<< HEAD
-      <workItem from="1571654347656" duration="27259000" />
-      <workItem from="1571783604151" duration="19947000" />
-      <workItem from="1571812296671" duration="25759000" />
-      <workItem from="1571879738075" duration="12363000" />
-=======
       <workItem from="1571654347656" duration="25114000" />
       <workItem from="1571786278739" duration="3319000" />
->>>>>>> 4c8f776159855fde9cb2d4d4fddb9e800fee9122
     </task>
     <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface">
       <created>1571646862883</created>
@@ -194,28 +187,6 @@
     <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" />
   </component>
-<<<<<<< HEAD
-  <component name="XDebuggerManager">
-    <breakpoint-manager>
-      <breakpoints>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/client/Client.java</url>
-          <line>47</line>
-          <option name="timeStamp" value="10" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/client/Client.java</url>
-          <line>57</line>
-          <option name="timeStamp" value="11" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/GUI/StartScreen.java</url>
-          <line>59</line>
-          <option name="timeStamp" value="13" />
-        </line-breakpoint>
-      </breakpoints>
-    </breakpoint-manager>
-=======
   <component name="simpleUML.UMLToolWindowPlugin">
     <General>
       <option name="birdViewUpdateDelay" value="2000" />
@@ -265,6 +236,5 @@
       <option name="useAntialiasedConnectors" value="true" />
       <option name="packageNameCompressionLevel" value="2" />
     </Packagediagram>
->>>>>>> 4c8f776159855fde9cb2d4d4fddb9e800fee9122
   </component>
 </project>
\ No newline at end of file
diff --git a/out/production/infinitymonkeys/GUI/ApplicationMain$1.class b/out/production/infinitymonkeys/GUI/ApplicationMain$1.class
index b1b7ffb50fadd02566fe4a67e2f639737ee986eb..b1187184a7d1df0393b5425a90f5fec5ae5752c4 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 b7c68a450c8b41db7a5ea3ee16997af0e61b8b6a..8d3bcf45652a542e4c792856d549a3c58e7915e7 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/ChatScreen$1.class b/out/production/infinitymonkeys/GUI/ChatScreen$1.class
index 0456aba65aada608f38c772da2de7fdc1e55a711..0ccd94a6c9cf6ed21c140b999fcac6194e1b59c8 100644
Binary files a/out/production/infinitymonkeys/GUI/ChatScreen$1.class and b/out/production/infinitymonkeys/GUI/ChatScreen$1.class differ
diff --git a/out/production/infinitymonkeys/GUI/ChatScreen.class b/out/production/infinitymonkeys/GUI/ChatScreen.class
index 4f121810b391378cc17c4013d59f1b1157fa63a4..46d8367ae972f7677755c399620f7213700f8aaf 100644
Binary files a/out/production/infinitymonkeys/GUI/ChatScreen.class and b/out/production/infinitymonkeys/GUI/ChatScreen.class differ
diff --git a/out/production/infinitymonkeys/GUI/ColorPallete.class b/out/production/infinitymonkeys/GUI/ColorPallete.class
deleted file mode 100644
index 0795201c54134b35416d2e9bc194cb3e30720c7b..0000000000000000000000000000000000000000
Binary files a/out/production/infinitymonkeys/GUI/ColorPallete.class and /dev/null differ
diff --git a/out/production/infinitymonkeys/GUI/DrawingArea$1.class b/out/production/infinitymonkeys/GUI/DrawingArea$1.class
index 8d0767f47053ee7e77165cda1ad6b206255bccea..a5d5ee5210fdb61d23059b9ae70b3b0033f522b0 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 dea5162edd17755dbf52607a9512faa02522e26a..b546fd5ff1fb00556284f00b4d6f7b350a9c2238 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/MenuBar.class b/out/production/infinitymonkeys/GUI/MenuBar.class
deleted file mode 100644
index a24c9fc484961be8f3ca5d24268b42ed44163d5e..0000000000000000000000000000000000000000
Binary files a/out/production/infinitymonkeys/GUI/MenuBar.class and /dev/null differ
diff --git a/out/production/infinitymonkeys/GUI/PaintGUI$1.class b/out/production/infinitymonkeys/GUI/PaintGUI$1.class
index 96e215a04f61c099d09838995f7e359e972fec38..ad0e622616ba9552b7342607ba1d2793619b4b5f 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 b15be0a1dc4236eed6d5c763ee06e2db4ab89928..418874d1164bf1dc93713e943e44acc449887ca0 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 88ded32f579c6224edff986c1983774aca5d876f..2f6725da139d32563c716118e1249fad9798d7cc 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$1.class b/out/production/infinitymonkeys/GUI/StartScreen$1.class
index 0e33ae80ec6d5ad317fe34d7a81de97737a9c7ec..3e4336e2780d89088da9bfcd22e775729e478fc0 100644
Binary files a/out/production/infinitymonkeys/GUI/StartScreen$1.class and b/out/production/infinitymonkeys/GUI/StartScreen$1.class differ
diff --git a/out/production/infinitymonkeys/GUI/StartScreen$2.class b/out/production/infinitymonkeys/GUI/StartScreen$2.class
index 99249c7c0c083b5b04dcfe1b9535dc0a2207753e..d63c24176f2741b53b0d72388fafc5890ae9cdba 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.class b/out/production/infinitymonkeys/GUI/StartScreen.class
index 6226aebe17cfba88b63cd0d2961a3cb076cc4561..8d5fb0f0d4f8e88d6b689cd43333c99d91cde9aa 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/GUI/ToolBar.class b/out/production/infinitymonkeys/GUI/ToolBar.class
deleted file mode 100644
index a261bb8a4822e43418c1708eeb8e113b94739e4a..0000000000000000000000000000000000000000
Binary files a/out/production/infinitymonkeys/GUI/ToolBar.class and /dev/null differ
diff --git a/out/production/infinitymonkeys/GUI/Tools.class b/out/production/infinitymonkeys/GUI/Tools.class
deleted file mode 100644
index b27fffe3334a1604da267722f9a0490a7cd01d2a..0000000000000000000000000000000000000000
Binary files a/out/production/infinitymonkeys/GUI/Tools.class and /dev/null differ
diff --git a/out/production/infinitymonkeys/client/Client.class b/out/production/infinitymonkeys/client/Client.class
index 3af763b9e570a46a5dd0509c235b098a294c9582..01942ac35f8d2e1bc20af17f188c1e8561b4718c 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/ClientUpdate$1.class b/out/production/infinitymonkeys/client/ClientUpdate$1.class
index e1872428e89b4af9c22e38f5a2aaf1a8f3fb5bd3..9f508e3770770bb0b90f6d8bc7cdc965e9ad66a5 100644
Binary files a/out/production/infinitymonkeys/client/ClientUpdate$1.class and b/out/production/infinitymonkeys/client/ClientUpdate$1.class differ
diff --git a/out/production/infinitymonkeys/client/ClientUpdate.class b/out/production/infinitymonkeys/client/ClientUpdate.class
index 2901f95ac1e068187f468f14edf6ba575cb7dd31..c82484b525905baada51fc5778f3b5c6b9e7ccc4 100644
Binary files a/out/production/infinitymonkeys/client/ClientUpdate.class and b/out/production/infinitymonkeys/client/ClientUpdate.class differ
diff --git a/out/production/infinitymonkeys/client/DrawingUpdate.class b/out/production/infinitymonkeys/client/DrawingUpdate.class
index df881705ca5c05e240dfd409ec2c021575fafe37..7d148a4f7feeab606cc4c70654702b26eede7fbf 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
new file mode 100644
index 0000000000000000000000000000000000000000..dd644d10582b1e21c9d9c8f958704ce89e67eb0f
Binary files /dev/null and b/out/production/infinitymonkeys/client/EncryptionUpdate.class differ
diff --git a/out/production/infinitymonkeys/client/client.policy b/out/production/infinitymonkeys/client/client.policy
new file mode 100644
index 0000000000000000000000000000000000000000..a8f141af97047fdcc681f3d85b1eee1afa8372c4
--- /dev/null
+++ b/out/production/infinitymonkeys/client/client.policy
@@ -0,0 +1,3 @@
+grant {
+        permission java.net.SocketPermission "10.13.64.162", "accept,connect";
+};
diff --git a/out/production/infinitymonkeys/remote/IClientController.class b/out/production/infinitymonkeys/remote/IClientController.class
index c3a87022f98ebf44dd8f90e2565327e5e9452c87..f0570f208a2b61645357e61733a8760bb450a683 100644
Binary files a/out/production/infinitymonkeys/remote/IClientController.class and b/out/production/infinitymonkeys/remote/IClientController.class differ
diff --git a/out/production/infinitymonkeys/remote/IDrawingController.class b/out/production/infinitymonkeys/remote/IDrawingController.class
index 4ee26d4196eeb7419ffb011e43e6374bd5eec4c0..48922edf2f86e6b2219a129be5612f1d0cad0fd8 100644
Binary files a/out/production/infinitymonkeys/remote/IDrawingController.class and b/out/production/infinitymonkeys/remote/IDrawingController.class differ
diff --git a/out/production/infinitymonkeys/remote/IDrawingUpdate.class b/out/production/infinitymonkeys/remote/IDrawingUpdate.class
index f41f9a05a74d875caa31672fc6b33ccbc09bbf1a..c87eedd773afa0eb339b4384e3912c5d1b60c3bd 100644
Binary files a/out/production/infinitymonkeys/remote/IDrawingUpdate.class and b/out/production/infinitymonkeys/remote/IDrawingUpdate.class differ
diff --git a/out/production/infinitymonkeys/remote/IEncryptionUpdate.class b/out/production/infinitymonkeys/remote/IEncryptionUpdate.class
new file mode 100644
index 0000000000000000000000000000000000000000..4b96396bf97b41e9a276460afc7e300e72970fa7
Binary files /dev/null and b/out/production/infinitymonkeys/remote/IEncryptionUpdate.class differ
diff --git a/out/production/infinitymonkeys/server/ClientController$1.class b/out/production/infinitymonkeys/server/ClientController$1.class
index 1d2a2d641a54e21f04f273f959e20c26138470ac..cb6060440a9f351d1a83801bacf34cb7966f7940 100644
Binary files a/out/production/infinitymonkeys/server/ClientController$1.class and b/out/production/infinitymonkeys/server/ClientController$1.class differ
diff --git a/out/production/infinitymonkeys/server/ClientController.class b/out/production/infinitymonkeys/server/ClientController.class
index 2315795d340fb1296adc56bf6a7e5860ba62bebf..67913932995b7befd2ca552d73cee8caf7a6d463 100644
Binary files a/out/production/infinitymonkeys/server/ClientController.class and b/out/production/infinitymonkeys/server/ClientController.class differ
diff --git a/out/production/infinitymonkeys/server/DrawingController.class b/out/production/infinitymonkeys/server/DrawingController.class
index 00fe8a78bb29e4f2193e8164d2e79f8e19c0b051..8f789e772ac70549f593139fa6d26fae48b46f69 100644
Binary files a/out/production/infinitymonkeys/server/DrawingController.class and b/out/production/infinitymonkeys/server/DrawingController.class differ
diff --git a/out/production/infinitymonkeys/server/MySharedKey.class b/out/production/infinitymonkeys/server/MySharedKey.class
new file mode 100644
index 0000000000000000000000000000000000000000..9dc50ef5ce7fc7cf36d5e9aceffc3e3d725fdc77
Binary files /dev/null and b/out/production/infinitymonkeys/server/MySharedKey.class differ
diff --git a/out/production/infinitymonkeys/server/Server.class b/out/production/infinitymonkeys/server/Server.class
index 0c1967b8f8157aa219773025b224455fa21cf3ef..adabadce0f0b08ff96e1e31afdb03dd14a91cb01 100644
Binary files a/out/production/infinitymonkeys/server/Server.class and b/out/production/infinitymonkeys/server/Server.class differ
diff --git a/out/production/infinitymonkeys/server/server.policy b/out/production/infinitymonkeys/server/server.policy
new file mode 100644
index 0000000000000000000000000000000000000000..5c059491c631fa37d14fc62d9654cdb13ce184c0
--- /dev/null
+++ b/out/production/infinitymonkeys/server/server.policy
@@ -0,0 +1,3 @@
+grant codeBase "file:/Users/haiho/OneDrive - The University of Melbourne/Distributed Systems (COMP90015)/Assignment 2/InfinityMonkeys-remaster/comp90015-dsass2-infinitymonkeys-remaster/out/production/comp90015-dsass2-infinitymonkeys-remaster/" {
+    permission java.security.AllPermission;
+};
\ No newline at end of file
diff --git a/src/GUI/ChatScreen.java b/src/GUI/ChatScreen.java
index d0b744beb4aa6943ebe359462f9696306d8a53dc..6e86ccf552a8c42e06d51889dcf9916c71b51407 100644
--- a/src/GUI/ChatScreen.java
+++ b/src/GUI/ChatScreen.java
@@ -11,6 +11,7 @@ import java.rmi.RemoteException;
 public class ChatScreen {
 
     public JPanel panel2;
+    public JPanel othersPanel;
 
     private JButton sendButton;