final void deleteUser(Message message) {
        String user = message.message;
        UserToken t = message.token;

        // check for ADMIN status:
        if(t.getGroups().contains("ADMIN")) {
            if(userData.containsKey(user)) {
                UserRecord u = userData.remove(user); // extract the record
                
                // do not delete if user is also an ADMIN
                if(u.groups.contains("ADMIN")) {
                    message.message = "user is an ADMIN.";
                    message.success = false;
                    userData.put(user, u);
                    return;
                }
                Set<String> groups = u.groups;

                // loop over group data, remove user
                Set<String> members;
                for(String group : groups) {
                    GroupRecord gr = groupData.get(group);
                    gr.members.remove(user);

                    // if the user owns the group,
                    // then remove all members, and remove this group
                    if(gr.owner.equals(user)) {
                        members = gr.members;
                        for(String member : members) {
                            userData.get(member).groups.remove(group);
                        }
                        
                        // remove the group:
                        groupData.remove(group);
                    }
                }
                 message.success = true;
                 message.message = "user removed.";

            } else {
                message.message = "user does not exist.";
                message.success = false;
            }
        } else {
            message.message = "user deletion requites ADMIN status.";
            message.success = false;
        }
    }