forgot password, plus some improvement