Refactor User object to handle multiple user group changes