Simplified ChoiceAuth-related code and reduced reliance on side-effects.
- Some method names changed for clarity.