public void logUserOff(String username) {
        // removes the user to the hashset of logged in users
        synchronized (users) {
            if (users.contains(username)) {
                users.remove(username);
            }
        }

        synchronized (connections) {
            if (connections.containsKey(username)) {
                connections.remove(username);
            }
        }

        synchronized (convos) {
            for (String convo : convos.keySet()) {
                if (convos.get(convo).contains(username)) {
                    convos.get(convo).remove(username);
                }
            }
        }
    }