Refactor Auth into a service