UserAuth refactored