signup: better validation and user flow