Refactor: give the User, Admin and authentication methods a seperated
controller.