added user password reset feature and tests