support arbitrary http.Clients