User signup flow (rebased to single commit)