refactor repassword; fix 3