refactored user signup workflow