start on HTTP client rework; still horrifically incomplete