splitting Auth and user functionalities