private void send(Message input) 
    {
    	HashMap<String, UserInformation> temp = currentUser.getUsers();
    	synchronized (temp) {
    	if (input.getCommand().equals("\\w")) {
    		try {
    			if (temp.containsKey(input.getReceiver())) {
    				synchronized (temp.get(input.getReceiver()).getOutToClient()) {
    					temp.get(input.getReceiver()).getOutToClient().writeObject(input);
					}
    			} else {
    				msg.setType("Fail");
					msg.setMessage("Username does not exist.");//Use error codes?
					outToClient.writeObject(msg);
    			}
    			
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	} else if (input.getCommand().equals("send_all")) {
    		try {
    			Set<String> temp2 = temp.keySet();
    			for (String y : temp2) {
    				if (!y.equals(currentUser.getUsername())) {
    					synchronized (temp.get(y).getOutToClient()) {
    						System.out.println(currentUser.getUsername() + " sent this message : " + input.getMessage());
    						temp.get(y).getOutToClient().writeObject(input);
    					}	
    				}
    			}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
    	} else if (input.getCommand().equals("\\l")) {
    		try {
    			Set<String> temp2 = temp.keySet();
    			String names = temp2.toString();
    			names = names.substring(1, names.length()-1);
    			synchronized (currentUser.getOutToClient()) {
					System.out.println(currentUser.getUsername() + " requests this message : " + names);
					input.setSender("Server");
					input.setCommand("\\l");
					input.setMessage(names);
					currentUser.getOutToClient().writeObject(input);
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	}
    	}
    }