finishes implementing and testing reset password function