User account management

This seems messy, but it's not terrible. Maybe just add a `TODO - Refactor` so it's marked as a solution in need of improvement?