refine the user flow