separate all user model functionality in separate concerns