added AuthService interface and implementation