improved ChangePasswd