Implements the User model