Changes to allow HttpClient to be any implementation of HttpClient not just AbstractHttpClient