improved change password flow