refactored to add outcome handlers and auth service to reduce code repitition --- sick