Huge commit. Major refactor of user model and all methods invoked.