diff --git a/BUILD b/BUILD
index c0738e209129aee570961a93498e8296f2b7493d..6a9936054052c72d0029290409636bab494625a7 100644
--- a/BUILD
+++ b/BUILD
@@ -166,6 +166,20 @@ cc_library(
     "src/core/ext/census/grpc_plugin.h",
     "src/core/ext/census/mlog.h",
     "src/core/ext/census/rpc_metric_id.h",
+    "src/core/ext/client_config/client_channel.h",
+    "src/core/ext/client_config/client_config.h",
+    "src/core/ext/client_config/connector.h",
+    "src/core/ext/client_config/initial_connect_string.h",
+    "src/core/ext/client_config/lb_policy.h",
+    "src/core/ext/client_config/lb_policy_factory.h",
+    "src/core/ext/client_config/lb_policy_registry.h",
+    "src/core/ext/client_config/resolver.h",
+    "src/core/ext/client_config/resolver_factory.h",
+    "src/core/ext/client_config/resolver_registry.h",
+    "src/core/ext/client_config/subchannel.h",
+    "src/core/ext/client_config/subchannel_factory.h",
+    "src/core/ext/client_config/subchannel_index.h",
+    "src/core/ext/client_config/uri_parser.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
     "src/core/ext/transport/chttp2/transport/alpn.h",
@@ -192,26 +206,12 @@ cc_library(
     "src/core/lib/channel/channel_args.h",
     "src/core/lib/channel/channel_stack.h",
     "src/core/lib/channel/channel_stack_builder.h",
-    "src/core/lib/channel/client_channel.h",
     "src/core/lib/channel/compress_filter.h",
     "src/core/lib/channel/connected_channel.h",
     "src/core/lib/channel/context.h",
     "src/core/lib/channel/http_client_filter.h",
     "src/core/lib/channel/http_server_filter.h",
     "src/core/lib/channel/subchannel_call_holder.h",
-    "src/core/lib/client_config/client_config.h",
-    "src/core/lib/client_config/connector.h",
-    "src/core/lib/client_config/initial_connect_string.h",
-    "src/core/lib/client_config/lb_policy.h",
-    "src/core/lib/client_config/lb_policy_factory.h",
-    "src/core/lib/client_config/lb_policy_registry.h",
-    "src/core/lib/client_config/resolver.h",
-    "src/core/lib/client_config/resolver_factory.h",
-    "src/core/lib/client_config/resolver_registry.h",
-    "src/core/lib/client_config/subchannel.h",
-    "src/core/lib/client_config/subchannel_factory.h",
-    "src/core/lib/client_config/subchannel_index.h",
-    "src/core/lib/client_config/uri_parser.h",
     "src/core/lib/compression/algorithm_metadata.h",
     "src/core/lib/compression/message_compress.h",
     "src/core/lib/debug/trace.h",
@@ -301,6 +301,22 @@ cc_library(
     "src/core/ext/census/operation.c",
     "src/core/ext/census/placeholders.c",
     "src/core/ext/census/tracing.c",
+    "src/core/ext/client_config/channel_connectivity.c",
+    "src/core/ext/client_config/client_channel.c",
+    "src/core/ext/client_config/client_config.c",
+    "src/core/ext/client_config/connector.c",
+    "src/core/ext/client_config/default_initial_connect_string.c",
+    "src/core/ext/client_config/initial_connect_string.c",
+    "src/core/ext/client_config/lb_policy.c",
+    "src/core/ext/client_config/lb_policy_factory.c",
+    "src/core/ext/client_config/lb_policy_registry.c",
+    "src/core/ext/client_config/resolver.c",
+    "src/core/ext/client_config/resolver_factory.c",
+    "src/core/ext/client_config/resolver_registry.c",
+    "src/core/ext/client_config/subchannel.c",
+    "src/core/ext/client_config/subchannel_factory.c",
+    "src/core/ext/client_config/subchannel_index.c",
+    "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -335,26 +351,11 @@ cc_library(
     "src/core/lib/channel/channel_args.c",
     "src/core/lib/channel/channel_stack.c",
     "src/core/lib/channel/channel_stack_builder.c",
-    "src/core/lib/channel/client_channel.c",
     "src/core/lib/channel/compress_filter.c",
     "src/core/lib/channel/connected_channel.c",
     "src/core/lib/channel/http_client_filter.c",
     "src/core/lib/channel/http_server_filter.c",
     "src/core/lib/channel/subchannel_call_holder.c",
-    "src/core/lib/client_config/client_config.c",
-    "src/core/lib/client_config/connector.c",
-    "src/core/lib/client_config/default_initial_connect_string.c",
-    "src/core/lib/client_config/initial_connect_string.c",
-    "src/core/lib/client_config/lb_policy.c",
-    "src/core/lib/client_config/lb_policy_factory.c",
-    "src/core/lib/client_config/lb_policy_registry.c",
-    "src/core/lib/client_config/resolver.c",
-    "src/core/lib/client_config/resolver_factory.c",
-    "src/core/lib/client_config/resolver_registry.c",
-    "src/core/lib/client_config/subchannel.c",
-    "src/core/lib/client_config/subchannel_factory.c",
-    "src/core/lib/client_config/subchannel_index.c",
-    "src/core/lib/client_config/uri_parser.c",
     "src/core/lib/compression/compression_algorithm.c",
     "src/core/lib/compression/message_compress.c",
     "src/core/lib/debug/trace.c",
@@ -430,7 +431,6 @@ cc_library(
     "src/core/lib/surface/call_details.c",
     "src/core/lib/surface/call_log_batch.c",
     "src/core/lib/surface/channel.c",
-    "src/core/lib/surface/channel_connectivity.c",
     "src/core/lib/surface/channel_init.c",
     "src/core/lib/surface/channel_ping.c",
     "src/core/lib/surface/channel_stack_type.c",
@@ -534,6 +534,20 @@ cc_library(
     "src/core/ext/census/grpc_plugin.h",
     "src/core/ext/census/mlog.h",
     "src/core/ext/census/rpc_metric_id.h",
+    "src/core/ext/client_config/client_channel.h",
+    "src/core/ext/client_config/client_config.h",
+    "src/core/ext/client_config/connector.h",
+    "src/core/ext/client_config/initial_connect_string.h",
+    "src/core/ext/client_config/lb_policy.h",
+    "src/core/ext/client_config/lb_policy_factory.h",
+    "src/core/ext/client_config/lb_policy_registry.h",
+    "src/core/ext/client_config/resolver.h",
+    "src/core/ext/client_config/resolver_factory.h",
+    "src/core/ext/client_config/resolver_registry.h",
+    "src/core/ext/client_config/subchannel.h",
+    "src/core/ext/client_config/subchannel_factory.h",
+    "src/core/ext/client_config/subchannel_index.h",
+    "src/core/ext/client_config/uri_parser.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
     "src/core/ext/transport/chttp2/transport/alpn.h",
@@ -560,26 +574,12 @@ cc_library(
     "src/core/lib/channel/channel_args.h",
     "src/core/lib/channel/channel_stack.h",
     "src/core/lib/channel/channel_stack_builder.h",
-    "src/core/lib/channel/client_channel.h",
     "src/core/lib/channel/compress_filter.h",
     "src/core/lib/channel/connected_channel.h",
     "src/core/lib/channel/context.h",
     "src/core/lib/channel/http_client_filter.h",
     "src/core/lib/channel/http_server_filter.h",
     "src/core/lib/channel/subchannel_call_holder.h",
-    "src/core/lib/client_config/client_config.h",
-    "src/core/lib/client_config/connector.h",
-    "src/core/lib/client_config/initial_connect_string.h",
-    "src/core/lib/client_config/lb_policy.h",
-    "src/core/lib/client_config/lb_policy_factory.h",
-    "src/core/lib/client_config/lb_policy_registry.h",
-    "src/core/lib/client_config/resolver.h",
-    "src/core/lib/client_config/resolver_factory.h",
-    "src/core/lib/client_config/resolver_registry.h",
-    "src/core/lib/client_config/subchannel.h",
-    "src/core/lib/client_config/subchannel_factory.h",
-    "src/core/lib/client_config/subchannel_index.h",
-    "src/core/lib/client_config/uri_parser.h",
     "src/core/lib/compression/algorithm_metadata.h",
     "src/core/lib/compression/message_compress.h",
     "src/core/lib/debug/trace.h",
@@ -655,6 +655,22 @@ cc_library(
     "src/core/ext/census/operation.c",
     "src/core/ext/census/placeholders.c",
     "src/core/ext/census/tracing.c",
+    "src/core/ext/client_config/channel_connectivity.c",
+    "src/core/ext/client_config/client_channel.c",
+    "src/core/ext/client_config/client_config.c",
+    "src/core/ext/client_config/connector.c",
+    "src/core/ext/client_config/default_initial_connect_string.c",
+    "src/core/ext/client_config/initial_connect_string.c",
+    "src/core/ext/client_config/lb_policy.c",
+    "src/core/ext/client_config/lb_policy_factory.c",
+    "src/core/ext/client_config/lb_policy_registry.c",
+    "src/core/ext/client_config/resolver.c",
+    "src/core/ext/client_config/resolver_factory.c",
+    "src/core/ext/client_config/resolver_registry.c",
+    "src/core/ext/client_config/subchannel.c",
+    "src/core/ext/client_config/subchannel_factory.c",
+    "src/core/ext/client_config/subchannel_index.c",
+    "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -687,26 +703,11 @@ cc_library(
     "src/core/lib/channel/channel_args.c",
     "src/core/lib/channel/channel_stack.c",
     "src/core/lib/channel/channel_stack_builder.c",
-    "src/core/lib/channel/client_channel.c",
     "src/core/lib/channel/compress_filter.c",
     "src/core/lib/channel/connected_channel.c",
     "src/core/lib/channel/http_client_filter.c",
     "src/core/lib/channel/http_server_filter.c",
     "src/core/lib/channel/subchannel_call_holder.c",
-    "src/core/lib/client_config/client_config.c",
-    "src/core/lib/client_config/connector.c",
-    "src/core/lib/client_config/default_initial_connect_string.c",
-    "src/core/lib/client_config/initial_connect_string.c",
-    "src/core/lib/client_config/lb_policy.c",
-    "src/core/lib/client_config/lb_policy_factory.c",
-    "src/core/lib/client_config/lb_policy_registry.c",
-    "src/core/lib/client_config/resolver.c",
-    "src/core/lib/client_config/resolver_factory.c",
-    "src/core/lib/client_config/resolver_registry.c",
-    "src/core/lib/client_config/subchannel.c",
-    "src/core/lib/client_config/subchannel_factory.c",
-    "src/core/lib/client_config/subchannel_index.c",
-    "src/core/lib/client_config/uri_parser.c",
     "src/core/lib/compression/compression_algorithm.c",
     "src/core/lib/compression/message_compress.c",
     "src/core/lib/debug/trace.c",
@@ -767,7 +768,6 @@ cc_library(
     "src/core/lib/surface/call_details.c",
     "src/core/lib/surface/call_log_batch.c",
     "src/core/lib/surface/channel.c",
-    "src/core/lib/surface/channel_connectivity.c",
     "src/core/lib/surface/channel_init.c",
     "src/core/lib/surface/channel_ping.c",
     "src/core/lib/surface/channel_stack_type.c",
@@ -821,8 +821,8 @@ cc_library(
 cc_library(
   name = "grpc_zookeeper",
   srcs = [
-    "src/core/lib/client_config/resolvers/zookeeper_resolver.h",
-    "src/core/lib/client_config/resolvers/zookeeper_resolver.c",
+    "src/core/ext/client_config/resolvers/zookeeper_resolver.h",
+    "src/core/ext/client_config/resolvers/zookeeper_resolver.c",
   ],
   hdrs = [
     "include/grpc/grpc_zookeeper.h",
@@ -1364,6 +1364,22 @@ objc_library(
     "src/core/ext/census/operation.c",
     "src/core/ext/census/placeholders.c",
     "src/core/ext/census/tracing.c",
+    "src/core/ext/client_config/channel_connectivity.c",
+    "src/core/ext/client_config/client_channel.c",
+    "src/core/ext/client_config/client_config.c",
+    "src/core/ext/client_config/connector.c",
+    "src/core/ext/client_config/default_initial_connect_string.c",
+    "src/core/ext/client_config/initial_connect_string.c",
+    "src/core/ext/client_config/lb_policy.c",
+    "src/core/ext/client_config/lb_policy_factory.c",
+    "src/core/ext/client_config/lb_policy_registry.c",
+    "src/core/ext/client_config/resolver.c",
+    "src/core/ext/client_config/resolver_factory.c",
+    "src/core/ext/client_config/resolver_registry.c",
+    "src/core/ext/client_config/subchannel.c",
+    "src/core/ext/client_config/subchannel_factory.c",
+    "src/core/ext/client_config/subchannel_index.c",
+    "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -1398,26 +1414,11 @@ objc_library(
     "src/core/lib/channel/channel_args.c",
     "src/core/lib/channel/channel_stack.c",
     "src/core/lib/channel/channel_stack_builder.c",
-    "src/core/lib/channel/client_channel.c",
     "src/core/lib/channel/compress_filter.c",
     "src/core/lib/channel/connected_channel.c",
     "src/core/lib/channel/http_client_filter.c",
     "src/core/lib/channel/http_server_filter.c",
     "src/core/lib/channel/subchannel_call_holder.c",
-    "src/core/lib/client_config/client_config.c",
-    "src/core/lib/client_config/connector.c",
-    "src/core/lib/client_config/default_initial_connect_string.c",
-    "src/core/lib/client_config/initial_connect_string.c",
-    "src/core/lib/client_config/lb_policy.c",
-    "src/core/lib/client_config/lb_policy_factory.c",
-    "src/core/lib/client_config/lb_policy_registry.c",
-    "src/core/lib/client_config/resolver.c",
-    "src/core/lib/client_config/resolver_factory.c",
-    "src/core/lib/client_config/resolver_registry.c",
-    "src/core/lib/client_config/subchannel.c",
-    "src/core/lib/client_config/subchannel_factory.c",
-    "src/core/lib/client_config/subchannel_index.c",
-    "src/core/lib/client_config/uri_parser.c",
     "src/core/lib/compression/compression_algorithm.c",
     "src/core/lib/compression/message_compress.c",
     "src/core/lib/debug/trace.c",
@@ -1493,7 +1494,6 @@ objc_library(
     "src/core/lib/surface/call_details.c",
     "src/core/lib/surface/call_log_batch.c",
     "src/core/lib/surface/channel.c",
-    "src/core/lib/surface/channel_connectivity.c",
     "src/core/lib/surface/channel_init.c",
     "src/core/lib/surface/channel_ping.c",
     "src/core/lib/surface/channel_stack_type.c",
@@ -1539,6 +1539,20 @@ objc_library(
     "src/core/ext/census/grpc_plugin.h",
     "src/core/ext/census/mlog.h",
     "src/core/ext/census/rpc_metric_id.h",
+    "src/core/ext/client_config/client_channel.h",
+    "src/core/ext/client_config/client_config.h",
+    "src/core/ext/client_config/connector.h",
+    "src/core/ext/client_config/initial_connect_string.h",
+    "src/core/ext/client_config/lb_policy.h",
+    "src/core/ext/client_config/lb_policy_factory.h",
+    "src/core/ext/client_config/lb_policy_registry.h",
+    "src/core/ext/client_config/resolver.h",
+    "src/core/ext/client_config/resolver_factory.h",
+    "src/core/ext/client_config/resolver_registry.h",
+    "src/core/ext/client_config/subchannel.h",
+    "src/core/ext/client_config/subchannel_factory.h",
+    "src/core/ext/client_config/subchannel_index.h",
+    "src/core/ext/client_config/uri_parser.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
     "src/core/ext/transport/chttp2/transport/alpn.h",
@@ -1565,26 +1579,12 @@ objc_library(
     "src/core/lib/channel/channel_args.h",
     "src/core/lib/channel/channel_stack.h",
     "src/core/lib/channel/channel_stack_builder.h",
-    "src/core/lib/channel/client_channel.h",
     "src/core/lib/channel/compress_filter.h",
     "src/core/lib/channel/connected_channel.h",
     "src/core/lib/channel/context.h",
     "src/core/lib/channel/http_client_filter.h",
     "src/core/lib/channel/http_server_filter.h",
     "src/core/lib/channel/subchannel_call_holder.h",
-    "src/core/lib/client_config/client_config.h",
-    "src/core/lib/client_config/connector.h",
-    "src/core/lib/client_config/initial_connect_string.h",
-    "src/core/lib/client_config/lb_policy.h",
-    "src/core/lib/client_config/lb_policy_factory.h",
-    "src/core/lib/client_config/lb_policy_registry.h",
-    "src/core/lib/client_config/resolver.h",
-    "src/core/lib/client_config/resolver_factory.h",
-    "src/core/lib/client_config/resolver_registry.h",
-    "src/core/lib/client_config/subchannel.h",
-    "src/core/lib/client_config/subchannel_factory.h",
-    "src/core/lib/client_config/subchannel_index.h",
-    "src/core/lib/client_config/uri_parser.h",
     "src/core/lib/compression/algorithm_metadata.h",
     "src/core/lib/compression/message_compress.h",
     "src/core/lib/debug/trace.h",
diff --git a/Makefile b/Makefile
index 204a34008b1b34fadffe8b67bb5cc7b417f22044..d546bc07a61d3e704f05c1bb005274e2280d7828 100644
--- a/Makefile
+++ b/Makefile
@@ -2449,6 +2449,22 @@ LIBGRPC_SRC = \
     src/core/ext/census/operation.c \
     src/core/ext/census/placeholders.c \
     src/core/ext/census/tracing.c \
+    src/core/ext/client_config/channel_connectivity.c \
+    src/core/ext/client_config/client_channel.c \
+    src/core/ext/client_config/client_config.c \
+    src/core/ext/client_config/connector.c \
+    src/core/ext/client_config/default_initial_connect_string.c \
+    src/core/ext/client_config/initial_connect_string.c \
+    src/core/ext/client_config/lb_policy.c \
+    src/core/ext/client_config/lb_policy_factory.c \
+    src/core/ext/client_config/lb_policy_registry.c \
+    src/core/ext/client_config/resolver.c \
+    src/core/ext/client_config/resolver_factory.c \
+    src/core/ext/client_config/resolver_registry.c \
+    src/core/ext/client_config/subchannel.c \
+    src/core/ext/client_config/subchannel_factory.c \
+    src/core/ext/client_config/subchannel_index.c \
+    src/core/ext/client_config/uri_parser.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
     src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
     src/core/ext/lb_policy/pick_first/pick_first.c \
@@ -2483,26 +2499,11 @@ LIBGRPC_SRC = \
     src/core/lib/channel/channel_args.c \
     src/core/lib/channel/channel_stack.c \
     src/core/lib/channel/channel_stack_builder.c \
-    src/core/lib/channel/client_channel.c \
     src/core/lib/channel/compress_filter.c \
     src/core/lib/channel/connected_channel.c \
     src/core/lib/channel/http_client_filter.c \
     src/core/lib/channel/http_server_filter.c \
     src/core/lib/channel/subchannel_call_holder.c \
-    src/core/lib/client_config/client_config.c \
-    src/core/lib/client_config/connector.c \
-    src/core/lib/client_config/default_initial_connect_string.c \
-    src/core/lib/client_config/initial_connect_string.c \
-    src/core/lib/client_config/lb_policy.c \
-    src/core/lib/client_config/lb_policy_factory.c \
-    src/core/lib/client_config/lb_policy_registry.c \
-    src/core/lib/client_config/resolver.c \
-    src/core/lib/client_config/resolver_factory.c \
-    src/core/lib/client_config/resolver_registry.c \
-    src/core/lib/client_config/subchannel.c \
-    src/core/lib/client_config/subchannel_factory.c \
-    src/core/lib/client_config/subchannel_index.c \
-    src/core/lib/client_config/uri_parser.c \
     src/core/lib/compression/compression_algorithm.c \
     src/core/lib/compression/message_compress.c \
     src/core/lib/debug/trace.c \
@@ -2578,7 +2579,6 @@ LIBGRPC_SRC = \
     src/core/lib/surface/call_details.c \
     src/core/lib/surface/call_log_batch.c \
     src/core/lib/surface/channel.c \
-    src/core/lib/surface/channel_connectivity.c \
     src/core/lib/surface/channel_init.c \
     src/core/lib/surface/channel_ping.c \
     src/core/lib/surface/channel_stack_type.c \
@@ -2811,6 +2811,22 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/ext/census/operation.c \
     src/core/ext/census/placeholders.c \
     src/core/ext/census/tracing.c \
+    src/core/ext/client_config/channel_connectivity.c \
+    src/core/ext/client_config/client_channel.c \
+    src/core/ext/client_config/client_config.c \
+    src/core/ext/client_config/connector.c \
+    src/core/ext/client_config/default_initial_connect_string.c \
+    src/core/ext/client_config/initial_connect_string.c \
+    src/core/ext/client_config/lb_policy.c \
+    src/core/ext/client_config/lb_policy_factory.c \
+    src/core/ext/client_config/lb_policy_registry.c \
+    src/core/ext/client_config/resolver.c \
+    src/core/ext/client_config/resolver_factory.c \
+    src/core/ext/client_config/resolver_registry.c \
+    src/core/ext/client_config/subchannel.c \
+    src/core/ext/client_config/subchannel_factory.c \
+    src/core/ext/client_config/subchannel_index.c \
+    src/core/ext/client_config/uri_parser.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
     src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
     src/core/ext/lb_policy/pick_first/pick_first.c \
@@ -2843,26 +2859,11 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/lib/channel/channel_args.c \
     src/core/lib/channel/channel_stack.c \
     src/core/lib/channel/channel_stack_builder.c \
-    src/core/lib/channel/client_channel.c \
     src/core/lib/channel/compress_filter.c \
     src/core/lib/channel/connected_channel.c \
     src/core/lib/channel/http_client_filter.c \
     src/core/lib/channel/http_server_filter.c \
     src/core/lib/channel/subchannel_call_holder.c \
-    src/core/lib/client_config/client_config.c \
-    src/core/lib/client_config/connector.c \
-    src/core/lib/client_config/default_initial_connect_string.c \
-    src/core/lib/client_config/initial_connect_string.c \
-    src/core/lib/client_config/lb_policy.c \
-    src/core/lib/client_config/lb_policy_factory.c \
-    src/core/lib/client_config/lb_policy_registry.c \
-    src/core/lib/client_config/resolver.c \
-    src/core/lib/client_config/resolver_factory.c \
-    src/core/lib/client_config/resolver_registry.c \
-    src/core/lib/client_config/subchannel.c \
-    src/core/lib/client_config/subchannel_factory.c \
-    src/core/lib/client_config/subchannel_index.c \
-    src/core/lib/client_config/uri_parser.c \
     src/core/lib/compression/compression_algorithm.c \
     src/core/lib/compression/message_compress.c \
     src/core/lib/debug/trace.c \
@@ -2923,7 +2924,6 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/lib/surface/call_details.c \
     src/core/lib/surface/call_log_batch.c \
     src/core/lib/surface/channel.c \
-    src/core/lib/surface/channel_connectivity.c \
     src/core/lib/surface/channel_init.c \
     src/core/lib/surface/channel_ping.c \
     src/core/lib/surface/channel_stack_type.c \
@@ -3000,7 +3000,7 @@ endif
 
 
 LIBGRPC_ZOOKEEPER_SRC = \
-    src/core/lib/client_config/resolvers/zookeeper_resolver.c \
+    src/core/ext/client_config/resolvers/zookeeper_resolver.c \
 
 PUBLIC_HEADERS_C += \
     include/grpc/grpc_zookeeper.h \
diff --git a/binding.gyp b/binding.gyp
index 0a39512ece881c8432c98a5c6e44152c6b3ee0b1..6ce54f7524e59e044eb086b449ad33b5ba2879a3 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -567,6 +567,22 @@
         'src/core/ext/census/operation.c',
         'src/core/ext/census/placeholders.c',
         'src/core/ext/census/tracing.c',
+        'src/core/ext/client_config/channel_connectivity.c',
+        'src/core/ext/client_config/client_channel.c',
+        'src/core/ext/client_config/client_config.c',
+        'src/core/ext/client_config/connector.c',
+        'src/core/ext/client_config/default_initial_connect_string.c',
+        'src/core/ext/client_config/initial_connect_string.c',
+        'src/core/ext/client_config/lb_policy.c',
+        'src/core/ext/client_config/lb_policy_factory.c',
+        'src/core/ext/client_config/lb_policy_registry.c',
+        'src/core/ext/client_config/resolver.c',
+        'src/core/ext/client_config/resolver_factory.c',
+        'src/core/ext/client_config/resolver_registry.c',
+        'src/core/ext/client_config/subchannel.c',
+        'src/core/ext/client_config/subchannel_factory.c',
+        'src/core/ext/client_config/subchannel_index.c',
+        'src/core/ext/client_config/uri_parser.c',
         'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
         'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
         'src/core/ext/lb_policy/pick_first/pick_first.c',
@@ -601,26 +617,11 @@
         'src/core/lib/channel/channel_args.c',
         'src/core/lib/channel/channel_stack.c',
         'src/core/lib/channel/channel_stack_builder.c',
-        'src/core/lib/channel/client_channel.c',
         'src/core/lib/channel/compress_filter.c',
         'src/core/lib/channel/connected_channel.c',
         'src/core/lib/channel/http_client_filter.c',
         'src/core/lib/channel/http_server_filter.c',
         'src/core/lib/channel/subchannel_call_holder.c',
-        'src/core/lib/client_config/client_config.c',
-        'src/core/lib/client_config/connector.c',
-        'src/core/lib/client_config/default_initial_connect_string.c',
-        'src/core/lib/client_config/initial_connect_string.c',
-        'src/core/lib/client_config/lb_policy.c',
-        'src/core/lib/client_config/lb_policy_factory.c',
-        'src/core/lib/client_config/lb_policy_registry.c',
-        'src/core/lib/client_config/resolver.c',
-        'src/core/lib/client_config/resolver_factory.c',
-        'src/core/lib/client_config/resolver_registry.c',
-        'src/core/lib/client_config/subchannel.c',
-        'src/core/lib/client_config/subchannel_factory.c',
-        'src/core/lib/client_config/subchannel_index.c',
-        'src/core/lib/client_config/uri_parser.c',
         'src/core/lib/compression/compression_algorithm.c',
         'src/core/lib/compression/message_compress.c',
         'src/core/lib/debug/trace.c',
@@ -696,7 +697,6 @@
         'src/core/lib/surface/call_details.c',
         'src/core/lib/surface/call_log_batch.c',
         'src/core/lib/surface/channel.c',
-        'src/core/lib/surface/channel_connectivity.c',
         'src/core/lib/surface/channel_init.c',
         'src/core/lib/surface/channel_ping.c',
         'src/core/lib/surface/channel_stack_type.c',
diff --git a/build.yaml b/build.yaml
index f644be7380b24b4ce12edabaed74b5499fc7834a..48b38f6848e9ede4d553b6c2db68299f0193356a 100644
--- a/build.yaml
+++ b/build.yaml
@@ -255,29 +255,29 @@ filegroups:
   - include/grpc/grpc.h
   - include/grpc/status.h
   headers:
+  - src/core/ext/client_config/client_channel.h
+  - src/core/ext/client_config/client_config.h
+  - src/core/ext/client_config/connector.h
+  - src/core/ext/client_config/initial_connect_string.h
+  - src/core/ext/client_config/lb_policy.h
+  - src/core/ext/client_config/lb_policy_factory.h
+  - src/core/ext/client_config/lb_policy_registry.h
+  - src/core/ext/client_config/resolver.h
+  - src/core/ext/client_config/resolver_factory.h
+  - src/core/ext/client_config/resolver_registry.h
+  - src/core/ext/client_config/subchannel.h
+  - src/core/ext/client_config/subchannel_factory.h
+  - src/core/ext/client_config/subchannel_index.h
+  - src/core/ext/client_config/uri_parser.h
   - src/core/lib/channel/channel_args.h
   - src/core/lib/channel/channel_stack.h
   - src/core/lib/channel/channel_stack_builder.h
-  - src/core/lib/channel/client_channel.h
   - src/core/lib/channel/compress_filter.h
   - src/core/lib/channel/connected_channel.h
   - src/core/lib/channel/context.h
   - src/core/lib/channel/http_client_filter.h
   - src/core/lib/channel/http_server_filter.h
   - src/core/lib/channel/subchannel_call_holder.h
-  - src/core/lib/client_config/client_config.h
-  - src/core/lib/client_config/connector.h
-  - src/core/lib/client_config/initial_connect_string.h
-  - src/core/lib/client_config/lb_policy.h
-  - src/core/lib/client_config/lb_policy_factory.h
-  - src/core/lib/client_config/lb_policy_registry.h
-  - src/core/lib/client_config/resolver.h
-  - src/core/lib/client_config/resolver_factory.h
-  - src/core/lib/client_config/resolver_registry.h
-  - src/core/lib/client_config/subchannel.h
-  - src/core/lib/client_config/subchannel_factory.h
-  - src/core/lib/client_config/subchannel_index.h
-  - src/core/lib/client_config/uri_parser.h
   - src/core/lib/compression/algorithm_metadata.h
   - src/core/lib/compression/message_compress.h
   - src/core/lib/debug/trace.h
@@ -345,29 +345,30 @@ filegroups:
   - src/core/lib/transport/transport.h
   - src/core/lib/transport/transport_impl.h
   src:
+  - src/core/ext/client_config/channel_connectivity.c
+  - src/core/ext/client_config/client_channel.c
+  - src/core/ext/client_config/client_config.c
+  - src/core/ext/client_config/connector.c
+  - src/core/ext/client_config/default_initial_connect_string.c
+  - src/core/ext/client_config/initial_connect_string.c
+  - src/core/ext/client_config/lb_policy.c
+  - src/core/ext/client_config/lb_policy_factory.c
+  - src/core/ext/client_config/lb_policy_registry.c
+  - src/core/ext/client_config/resolver.c
+  - src/core/ext/client_config/resolver_factory.c
+  - src/core/ext/client_config/resolver_registry.c
+  - src/core/ext/client_config/subchannel.c
+  - src/core/ext/client_config/subchannel_factory.c
+  - src/core/ext/client_config/subchannel_index.c
+  - src/core/ext/client_config/uri_parser.c
   - src/core/lib/channel/channel_args.c
   - src/core/lib/channel/channel_stack.c
   - src/core/lib/channel/channel_stack_builder.c
-  - src/core/lib/channel/client_channel.c
   - src/core/lib/channel/compress_filter.c
   - src/core/lib/channel/connected_channel.c
   - src/core/lib/channel/http_client_filter.c
   - src/core/lib/channel/http_server_filter.c
   - src/core/lib/channel/subchannel_call_holder.c
-  - src/core/lib/client_config/client_config.c
-  - src/core/lib/client_config/connector.c
-  - src/core/lib/client_config/default_initial_connect_string.c
-  - src/core/lib/client_config/initial_connect_string.c
-  - src/core/lib/client_config/lb_policy.c
-  - src/core/lib/client_config/lb_policy_factory.c
-  - src/core/lib/client_config/lb_policy_registry.c
-  - src/core/lib/client_config/resolver.c
-  - src/core/lib/client_config/resolver_factory.c
-  - src/core/lib/client_config/resolver_registry.c
-  - src/core/lib/client_config/subchannel.c
-  - src/core/lib/client_config/subchannel_factory.c
-  - src/core/lib/client_config/subchannel_index.c
-  - src/core/lib/client_config/uri_parser.c
   - src/core/lib/compression/compression_algorithm.c
   - src/core/lib/compression/message_compress.c
   - src/core/lib/debug/trace.c
@@ -428,7 +429,6 @@ filegroups:
   - src/core/lib/surface/call_details.c
   - src/core/lib/surface/call_log_batch.c
   - src/core/lib/surface/channel.c
-  - src/core/lib/surface/channel_connectivity.c
   - src/core/lib/surface/channel_init.c
   - src/core/lib/surface/channel_ping.c
   - src/core/lib/surface/channel_stack_type.c
@@ -767,9 +767,9 @@ libs:
   public_headers:
   - include/grpc/grpc_zookeeper.h
   headers:
-  - src/core/lib/client_config/resolvers/zookeeper_resolver.h
+  - src/core/ext/client_config/resolvers/zookeeper_resolver.h
   src:
-  - src/core/lib/client_config/resolvers/zookeeper_resolver.c
+  - src/core/ext/client_config/resolvers/zookeeper_resolver.c
   deps:
   - gpr
   - grpc
diff --git a/config.m4 b/config.m4
index b9a8c35926fd24d43131110c7b34b17304e2c139..3d3e281ba386db34c75de1f84a2070b5ef3dde62 100644
--- a/config.m4
+++ b/config.m4
@@ -89,6 +89,22 @@ if test "$PHP_GRPC" != "no"; then
     src/core/ext/census/operation.c \
     src/core/ext/census/placeholders.c \
     src/core/ext/census/tracing.c \
+    src/core/ext/client_config/channel_connectivity.c \
+    src/core/ext/client_config/client_channel.c \
+    src/core/ext/client_config/client_config.c \
+    src/core/ext/client_config/connector.c \
+    src/core/ext/client_config/default_initial_connect_string.c \
+    src/core/ext/client_config/initial_connect_string.c \
+    src/core/ext/client_config/lb_policy.c \
+    src/core/ext/client_config/lb_policy_factory.c \
+    src/core/ext/client_config/lb_policy_registry.c \
+    src/core/ext/client_config/resolver.c \
+    src/core/ext/client_config/resolver_factory.c \
+    src/core/ext/client_config/resolver_registry.c \
+    src/core/ext/client_config/subchannel.c \
+    src/core/ext/client_config/subchannel_factory.c \
+    src/core/ext/client_config/subchannel_index.c \
+    src/core/ext/client_config/uri_parser.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
     src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
     src/core/ext/lb_policy/pick_first/pick_first.c \
@@ -123,26 +139,11 @@ if test "$PHP_GRPC" != "no"; then
     src/core/lib/channel/channel_args.c \
     src/core/lib/channel/channel_stack.c \
     src/core/lib/channel/channel_stack_builder.c \
-    src/core/lib/channel/client_channel.c \
     src/core/lib/channel/compress_filter.c \
     src/core/lib/channel/connected_channel.c \
     src/core/lib/channel/http_client_filter.c \
     src/core/lib/channel/http_server_filter.c \
     src/core/lib/channel/subchannel_call_holder.c \
-    src/core/lib/client_config/client_config.c \
-    src/core/lib/client_config/connector.c \
-    src/core/lib/client_config/default_initial_connect_string.c \
-    src/core/lib/client_config/initial_connect_string.c \
-    src/core/lib/client_config/lb_policy.c \
-    src/core/lib/client_config/lb_policy_factory.c \
-    src/core/lib/client_config/lb_policy_registry.c \
-    src/core/lib/client_config/resolver.c \
-    src/core/lib/client_config/resolver_factory.c \
-    src/core/lib/client_config/resolver_registry.c \
-    src/core/lib/client_config/subchannel.c \
-    src/core/lib/client_config/subchannel_factory.c \
-    src/core/lib/client_config/subchannel_index.c \
-    src/core/lib/client_config/uri_parser.c \
     src/core/lib/compression/compression_algorithm.c \
     src/core/lib/compression/message_compress.c \
     src/core/lib/debug/trace.c \
@@ -218,7 +219,6 @@ if test "$PHP_GRPC" != "no"; then
     src/core/lib/surface/call_details.c \
     src/core/lib/surface/call_log_batch.c \
     src/core/lib/surface/channel.c \
-    src/core/lib/surface/channel_connectivity.c \
     src/core/lib/surface/channel_init.c \
     src/core/lib/surface/channel_ping.c \
     src/core/lib/surface/channel_stack_type.c \
@@ -548,6 +548,7 @@ if test "$PHP_GRPC" != "no"; then
 
   PHP_ADD_BUILD_DIR($ext_builddir/src/boringssl)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/census)
+  PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/client_config)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/pick_first)
@@ -560,7 +561,6 @@ if test "$PHP_GRPC" != "no"; then
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
-  PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/debug)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/http)
diff --git a/gRPC.podspec b/gRPC.podspec
index 0ef10b28a239ef857e11cefc7e493117fcd913f4..dd60878043dcd2645c70e35444d7f6cbcbc4d047 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -168,6 +168,20 @@ Pod::Spec.new do |s|
                       'src/core/ext/census/grpc_plugin.h',
                       'src/core/ext/census/mlog.h',
                       'src/core/ext/census/rpc_metric_id.h',
+                      'src/core/ext/client_config/client_channel.h',
+                      'src/core/ext/client_config/client_config.h',
+                      'src/core/ext/client_config/connector.h',
+                      'src/core/ext/client_config/initial_connect_string.h',
+                      'src/core/ext/client_config/lb_policy.h',
+                      'src/core/ext/client_config/lb_policy_factory.h',
+                      'src/core/ext/client_config/lb_policy_registry.h',
+                      'src/core/ext/client_config/resolver.h',
+                      'src/core/ext/client_config/resolver_factory.h',
+                      'src/core/ext/client_config/resolver_registry.h',
+                      'src/core/ext/client_config/subchannel.h',
+                      'src/core/ext/client_config/subchannel_factory.h',
+                      'src/core/ext/client_config/subchannel_index.h',
+                      'src/core/ext/client_config/uri_parser.h',
                       'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
                       'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
                       'src/core/ext/transport/chttp2/transport/alpn.h',
@@ -194,26 +208,12 @@ Pod::Spec.new do |s|
                       'src/core/lib/channel/channel_args.h',
                       'src/core/lib/channel/channel_stack.h',
                       'src/core/lib/channel/channel_stack_builder.h',
-                      'src/core/lib/channel/client_channel.h',
                       'src/core/lib/channel/compress_filter.h',
                       'src/core/lib/channel/connected_channel.h',
                       'src/core/lib/channel/context.h',
                       'src/core/lib/channel/http_client_filter.h',
                       'src/core/lib/channel/http_server_filter.h',
                       'src/core/lib/channel/subchannel_call_holder.h',
-                      'src/core/lib/client_config/client_config.h',
-                      'src/core/lib/client_config/connector.h',
-                      'src/core/lib/client_config/initial_connect_string.h',
-                      'src/core/lib/client_config/lb_policy.h',
-                      'src/core/lib/client_config/lb_policy_factory.h',
-                      'src/core/lib/client_config/lb_policy_registry.h',
-                      'src/core/lib/client_config/resolver.h',
-                      'src/core/lib/client_config/resolver_factory.h',
-                      'src/core/lib/client_config/resolver_registry.h',
-                      'src/core/lib/client_config/subchannel.h',
-                      'src/core/lib/client_config/subchannel_factory.h',
-                      'src/core/lib/client_config/subchannel_index.h',
-                      'src/core/lib/client_config/uri_parser.h',
                       'src/core/lib/compression/algorithm_metadata.h',
                       'src/core/lib/compression/message_compress.h',
                       'src/core/lib/debug/trace.h',
@@ -320,6 +320,22 @@ Pod::Spec.new do |s|
                       'src/core/ext/census/operation.c',
                       'src/core/ext/census/placeholders.c',
                       'src/core/ext/census/tracing.c',
+                      'src/core/ext/client_config/channel_connectivity.c',
+                      'src/core/ext/client_config/client_channel.c',
+                      'src/core/ext/client_config/client_config.c',
+                      'src/core/ext/client_config/connector.c',
+                      'src/core/ext/client_config/default_initial_connect_string.c',
+                      'src/core/ext/client_config/initial_connect_string.c',
+                      'src/core/ext/client_config/lb_policy.c',
+                      'src/core/ext/client_config/lb_policy_factory.c',
+                      'src/core/ext/client_config/lb_policy_registry.c',
+                      'src/core/ext/client_config/resolver.c',
+                      'src/core/ext/client_config/resolver_factory.c',
+                      'src/core/ext/client_config/resolver_registry.c',
+                      'src/core/ext/client_config/subchannel.c',
+                      'src/core/ext/client_config/subchannel_factory.c',
+                      'src/core/ext/client_config/subchannel_index.c',
+                      'src/core/ext/client_config/uri_parser.c',
                       'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
                       'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
                       'src/core/ext/lb_policy/pick_first/pick_first.c',
@@ -354,26 +370,11 @@ Pod::Spec.new do |s|
                       'src/core/lib/channel/channel_args.c',
                       'src/core/lib/channel/channel_stack.c',
                       'src/core/lib/channel/channel_stack_builder.c',
-                      'src/core/lib/channel/client_channel.c',
                       'src/core/lib/channel/compress_filter.c',
                       'src/core/lib/channel/connected_channel.c',
                       'src/core/lib/channel/http_client_filter.c',
                       'src/core/lib/channel/http_server_filter.c',
                       'src/core/lib/channel/subchannel_call_holder.c',
-                      'src/core/lib/client_config/client_config.c',
-                      'src/core/lib/client_config/connector.c',
-                      'src/core/lib/client_config/default_initial_connect_string.c',
-                      'src/core/lib/client_config/initial_connect_string.c',
-                      'src/core/lib/client_config/lb_policy.c',
-                      'src/core/lib/client_config/lb_policy_factory.c',
-                      'src/core/lib/client_config/lb_policy_registry.c',
-                      'src/core/lib/client_config/resolver.c',
-                      'src/core/lib/client_config/resolver_factory.c',
-                      'src/core/lib/client_config/resolver_registry.c',
-                      'src/core/lib/client_config/subchannel.c',
-                      'src/core/lib/client_config/subchannel_factory.c',
-                      'src/core/lib/client_config/subchannel_index.c',
-                      'src/core/lib/client_config/uri_parser.c',
                       'src/core/lib/compression/compression_algorithm.c',
                       'src/core/lib/compression/message_compress.c',
                       'src/core/lib/debug/trace.c',
@@ -449,7 +450,6 @@ Pod::Spec.new do |s|
                       'src/core/lib/surface/call_details.c',
                       'src/core/lib/surface/call_log_batch.c',
                       'src/core/lib/surface/channel.c',
-                      'src/core/lib/surface/channel_connectivity.c',
                       'src/core/lib/surface/channel_init.c',
                       'src/core/lib/surface/channel_ping.c',
                       'src/core/lib/surface/channel_stack_type.c',
@@ -496,6 +496,20 @@ Pod::Spec.new do |s|
                               'src/core/ext/census/grpc_plugin.h',
                               'src/core/ext/census/mlog.h',
                               'src/core/ext/census/rpc_metric_id.h',
+                              'src/core/ext/client_config/client_channel.h',
+                              'src/core/ext/client_config/client_config.h',
+                              'src/core/ext/client_config/connector.h',
+                              'src/core/ext/client_config/initial_connect_string.h',
+                              'src/core/ext/client_config/lb_policy.h',
+                              'src/core/ext/client_config/lb_policy_factory.h',
+                              'src/core/ext/client_config/lb_policy_registry.h',
+                              'src/core/ext/client_config/resolver.h',
+                              'src/core/ext/client_config/resolver_factory.h',
+                              'src/core/ext/client_config/resolver_registry.h',
+                              'src/core/ext/client_config/subchannel.h',
+                              'src/core/ext/client_config/subchannel_factory.h',
+                              'src/core/ext/client_config/subchannel_index.h',
+                              'src/core/ext/client_config/uri_parser.h',
                               'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
                               'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
                               'src/core/ext/transport/chttp2/transport/alpn.h',
@@ -522,26 +536,12 @@ Pod::Spec.new do |s|
                               'src/core/lib/channel/channel_args.h',
                               'src/core/lib/channel/channel_stack.h',
                               'src/core/lib/channel/channel_stack_builder.h',
-                              'src/core/lib/channel/client_channel.h',
                               'src/core/lib/channel/compress_filter.h',
                               'src/core/lib/channel/connected_channel.h',
                               'src/core/lib/channel/context.h',
                               'src/core/lib/channel/http_client_filter.h',
                               'src/core/lib/channel/http_server_filter.h',
                               'src/core/lib/channel/subchannel_call_holder.h',
-                              'src/core/lib/client_config/client_config.h',
-                              'src/core/lib/client_config/connector.h',
-                              'src/core/lib/client_config/initial_connect_string.h',
-                              'src/core/lib/client_config/lb_policy.h',
-                              'src/core/lib/client_config/lb_policy_factory.h',
-                              'src/core/lib/client_config/lb_policy_registry.h',
-                              'src/core/lib/client_config/resolver.h',
-                              'src/core/lib/client_config/resolver_factory.h',
-                              'src/core/lib/client_config/resolver_registry.h',
-                              'src/core/lib/client_config/subchannel.h',
-                              'src/core/lib/client_config/subchannel_factory.h',
-                              'src/core/lib/client_config/subchannel_index.h',
-                              'src/core/lib/client_config/uri_parser.h',
                               'src/core/lib/compression/algorithm_metadata.h',
                               'src/core/lib/compression/message_compress.h',
                               'src/core/lib/debug/trace.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index e97d7b68560be4541c17413cfc5f4d101cebb36a..8bcc78cac5934171f724490068c0ef78be6197fb 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -164,6 +164,20 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/ext/census/grpc_plugin.h )
   s.files += %w( src/core/ext/census/mlog.h )
   s.files += %w( src/core/ext/census/rpc_metric_id.h )
+  s.files += %w( src/core/ext/client_config/client_channel.h )
+  s.files += %w( src/core/ext/client_config/client_config.h )
+  s.files += %w( src/core/ext/client_config/connector.h )
+  s.files += %w( src/core/ext/client_config/initial_connect_string.h )
+  s.files += %w( src/core/ext/client_config/lb_policy.h )
+  s.files += %w( src/core/ext/client_config/lb_policy_factory.h )
+  s.files += %w( src/core/ext/client_config/lb_policy_registry.h )
+  s.files += %w( src/core/ext/client_config/resolver.h )
+  s.files += %w( src/core/ext/client_config/resolver_factory.h )
+  s.files += %w( src/core/ext/client_config/resolver_registry.h )
+  s.files += %w( src/core/ext/client_config/subchannel.h )
+  s.files += %w( src/core/ext/client_config/subchannel_factory.h )
+  s.files += %w( src/core/ext/client_config/subchannel_index.h )
+  s.files += %w( src/core/ext/client_config/uri_parser.h )
   s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.h )
   s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h )
   s.files += %w( src/core/ext/transport/chttp2/transport/alpn.h )
@@ -190,26 +204,12 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/lib/channel/channel_args.h )
   s.files += %w( src/core/lib/channel/channel_stack.h )
   s.files += %w( src/core/lib/channel/channel_stack_builder.h )
-  s.files += %w( src/core/lib/channel/client_channel.h )
   s.files += %w( src/core/lib/channel/compress_filter.h )
   s.files += %w( src/core/lib/channel/connected_channel.h )
   s.files += %w( src/core/lib/channel/context.h )
   s.files += %w( src/core/lib/channel/http_client_filter.h )
   s.files += %w( src/core/lib/channel/http_server_filter.h )
   s.files += %w( src/core/lib/channel/subchannel_call_holder.h )
-  s.files += %w( src/core/lib/client_config/client_config.h )
-  s.files += %w( src/core/lib/client_config/connector.h )
-  s.files += %w( src/core/lib/client_config/initial_connect_string.h )
-  s.files += %w( src/core/lib/client_config/lb_policy.h )
-  s.files += %w( src/core/lib/client_config/lb_policy_factory.h )
-  s.files += %w( src/core/lib/client_config/lb_policy_registry.h )
-  s.files += %w( src/core/lib/client_config/resolver.h )
-  s.files += %w( src/core/lib/client_config/resolver_factory.h )
-  s.files += %w( src/core/lib/client_config/resolver_registry.h )
-  s.files += %w( src/core/lib/client_config/subchannel.h )
-  s.files += %w( src/core/lib/client_config/subchannel_factory.h )
-  s.files += %w( src/core/lib/client_config/subchannel_index.h )
-  s.files += %w( src/core/lib/client_config/uri_parser.h )
   s.files += %w( src/core/lib/compression/algorithm_metadata.h )
   s.files += %w( src/core/lib/compression/message_compress.h )
   s.files += %w( src/core/lib/debug/trace.h )
@@ -303,6 +303,22 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/ext/census/operation.c )
   s.files += %w( src/core/ext/census/placeholders.c )
   s.files += %w( src/core/ext/census/tracing.c )
+  s.files += %w( src/core/ext/client_config/channel_connectivity.c )
+  s.files += %w( src/core/ext/client_config/client_channel.c )
+  s.files += %w( src/core/ext/client_config/client_config.c )
+  s.files += %w( src/core/ext/client_config/connector.c )
+  s.files += %w( src/core/ext/client_config/default_initial_connect_string.c )
+  s.files += %w( src/core/ext/client_config/initial_connect_string.c )
+  s.files += %w( src/core/ext/client_config/lb_policy.c )
+  s.files += %w( src/core/ext/client_config/lb_policy_factory.c )
+  s.files += %w( src/core/ext/client_config/lb_policy_registry.c )
+  s.files += %w( src/core/ext/client_config/resolver.c )
+  s.files += %w( src/core/ext/client_config/resolver_factory.c )
+  s.files += %w( src/core/ext/client_config/resolver_registry.c )
+  s.files += %w( src/core/ext/client_config/subchannel.c )
+  s.files += %w( src/core/ext/client_config/subchannel_factory.c )
+  s.files += %w( src/core/ext/client_config/subchannel_index.c )
+  s.files += %w( src/core/ext/client_config/uri_parser.c )
   s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.c )
   s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c )
   s.files += %w( src/core/ext/lb_policy/pick_first/pick_first.c )
@@ -337,26 +353,11 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/lib/channel/channel_args.c )
   s.files += %w( src/core/lib/channel/channel_stack.c )
   s.files += %w( src/core/lib/channel/channel_stack_builder.c )
-  s.files += %w( src/core/lib/channel/client_channel.c )
   s.files += %w( src/core/lib/channel/compress_filter.c )
   s.files += %w( src/core/lib/channel/connected_channel.c )
   s.files += %w( src/core/lib/channel/http_client_filter.c )
   s.files += %w( src/core/lib/channel/http_server_filter.c )
   s.files += %w( src/core/lib/channel/subchannel_call_holder.c )
-  s.files += %w( src/core/lib/client_config/client_config.c )
-  s.files += %w( src/core/lib/client_config/connector.c )
-  s.files += %w( src/core/lib/client_config/default_initial_connect_string.c )
-  s.files += %w( src/core/lib/client_config/initial_connect_string.c )
-  s.files += %w( src/core/lib/client_config/lb_policy.c )
-  s.files += %w( src/core/lib/client_config/lb_policy_factory.c )
-  s.files += %w( src/core/lib/client_config/lb_policy_registry.c )
-  s.files += %w( src/core/lib/client_config/resolver.c )
-  s.files += %w( src/core/lib/client_config/resolver_factory.c )
-  s.files += %w( src/core/lib/client_config/resolver_registry.c )
-  s.files += %w( src/core/lib/client_config/subchannel.c )
-  s.files += %w( src/core/lib/client_config/subchannel_factory.c )
-  s.files += %w( src/core/lib/client_config/subchannel_index.c )
-  s.files += %w( src/core/lib/client_config/uri_parser.c )
   s.files += %w( src/core/lib/compression/compression_algorithm.c )
   s.files += %w( src/core/lib/compression/message_compress.c )
   s.files += %w( src/core/lib/debug/trace.c )
@@ -432,7 +433,6 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/lib/surface/call_details.c )
   s.files += %w( src/core/lib/surface/call_log_batch.c )
   s.files += %w( src/core/lib/surface/channel.c )
-  s.files += %w( src/core/lib/surface/channel_connectivity.c )
   s.files += %w( src/core/lib/surface/channel_init.c )
   s.files += %w( src/core/lib/surface/channel_ping.c )
   s.files += %w( src/core/lib/surface/channel_stack_type.c )
diff --git a/package.json b/package.json
index 544d463e2a0167770107493572655a73c8b429a4..09d07a5aa50dde46c6df064b6b0d9ea707cf1dfb 100644
--- a/package.json
+++ b/package.json
@@ -107,6 +107,20 @@
     "src/core/ext/census/grpc_plugin.h",
     "src/core/ext/census/mlog.h",
     "src/core/ext/census/rpc_metric_id.h",
+    "src/core/ext/client_config/client_channel.h",
+    "src/core/ext/client_config/client_config.h",
+    "src/core/ext/client_config/connector.h",
+    "src/core/ext/client_config/initial_connect_string.h",
+    "src/core/ext/client_config/lb_policy.h",
+    "src/core/ext/client_config/lb_policy_factory.h",
+    "src/core/ext/client_config/lb_policy_registry.h",
+    "src/core/ext/client_config/resolver.h",
+    "src/core/ext/client_config/resolver_factory.h",
+    "src/core/ext/client_config/resolver_registry.h",
+    "src/core/ext/client_config/subchannel.h",
+    "src/core/ext/client_config/subchannel_factory.h",
+    "src/core/ext/client_config/subchannel_index.h",
+    "src/core/ext/client_config/uri_parser.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
     "src/core/ext/transport/chttp2/transport/alpn.h",
@@ -133,26 +147,12 @@
     "src/core/lib/channel/channel_args.h",
     "src/core/lib/channel/channel_stack.h",
     "src/core/lib/channel/channel_stack_builder.h",
-    "src/core/lib/channel/client_channel.h",
     "src/core/lib/channel/compress_filter.h",
     "src/core/lib/channel/connected_channel.h",
     "src/core/lib/channel/context.h",
     "src/core/lib/channel/http_client_filter.h",
     "src/core/lib/channel/http_server_filter.h",
     "src/core/lib/channel/subchannel_call_holder.h",
-    "src/core/lib/client_config/client_config.h",
-    "src/core/lib/client_config/connector.h",
-    "src/core/lib/client_config/initial_connect_string.h",
-    "src/core/lib/client_config/lb_policy.h",
-    "src/core/lib/client_config/lb_policy_factory.h",
-    "src/core/lib/client_config/lb_policy_registry.h",
-    "src/core/lib/client_config/resolver.h",
-    "src/core/lib/client_config/resolver_factory.h",
-    "src/core/lib/client_config/resolver_registry.h",
-    "src/core/lib/client_config/subchannel.h",
-    "src/core/lib/client_config/subchannel_factory.h",
-    "src/core/lib/client_config/subchannel_index.h",
-    "src/core/lib/client_config/uri_parser.h",
     "src/core/lib/compression/algorithm_metadata.h",
     "src/core/lib/compression/message_compress.h",
     "src/core/lib/debug/trace.h",
@@ -246,6 +246,22 @@
     "src/core/ext/census/operation.c",
     "src/core/ext/census/placeholders.c",
     "src/core/ext/census/tracing.c",
+    "src/core/ext/client_config/channel_connectivity.c",
+    "src/core/ext/client_config/client_channel.c",
+    "src/core/ext/client_config/client_config.c",
+    "src/core/ext/client_config/connector.c",
+    "src/core/ext/client_config/default_initial_connect_string.c",
+    "src/core/ext/client_config/initial_connect_string.c",
+    "src/core/ext/client_config/lb_policy.c",
+    "src/core/ext/client_config/lb_policy_factory.c",
+    "src/core/ext/client_config/lb_policy_registry.c",
+    "src/core/ext/client_config/resolver.c",
+    "src/core/ext/client_config/resolver_factory.c",
+    "src/core/ext/client_config/resolver_registry.c",
+    "src/core/ext/client_config/subchannel.c",
+    "src/core/ext/client_config/subchannel_factory.c",
+    "src/core/ext/client_config/subchannel_index.c",
+    "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
     "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -280,26 +296,11 @@
     "src/core/lib/channel/channel_args.c",
     "src/core/lib/channel/channel_stack.c",
     "src/core/lib/channel/channel_stack_builder.c",
-    "src/core/lib/channel/client_channel.c",
     "src/core/lib/channel/compress_filter.c",
     "src/core/lib/channel/connected_channel.c",
     "src/core/lib/channel/http_client_filter.c",
     "src/core/lib/channel/http_server_filter.c",
     "src/core/lib/channel/subchannel_call_holder.c",
-    "src/core/lib/client_config/client_config.c",
-    "src/core/lib/client_config/connector.c",
-    "src/core/lib/client_config/default_initial_connect_string.c",
-    "src/core/lib/client_config/initial_connect_string.c",
-    "src/core/lib/client_config/lb_policy.c",
-    "src/core/lib/client_config/lb_policy_factory.c",
-    "src/core/lib/client_config/lb_policy_registry.c",
-    "src/core/lib/client_config/resolver.c",
-    "src/core/lib/client_config/resolver_factory.c",
-    "src/core/lib/client_config/resolver_registry.c",
-    "src/core/lib/client_config/subchannel.c",
-    "src/core/lib/client_config/subchannel_factory.c",
-    "src/core/lib/client_config/subchannel_index.c",
-    "src/core/lib/client_config/uri_parser.c",
     "src/core/lib/compression/compression_algorithm.c",
     "src/core/lib/compression/message_compress.c",
     "src/core/lib/debug/trace.c",
@@ -375,7 +376,6 @@
     "src/core/lib/surface/call_details.c",
     "src/core/lib/surface/call_log_batch.c",
     "src/core/lib/surface/channel.c",
-    "src/core/lib/surface/channel_connectivity.c",
     "src/core/lib/surface/channel_init.c",
     "src/core/lib/surface/channel_ping.c",
     "src/core/lib/surface/channel_stack_type.c",
diff --git a/package.xml b/package.xml
index 06a6250937a256e29ea3c86ad5a143c315af240a..f29e5109d53a09c6550e7d473d48260a4fab3f48 100644
--- a/package.xml
+++ b/package.xml
@@ -168,6 +168,20 @@
     <file baseinstalldir="/" name="src/core/ext/census/grpc_plugin.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/census/mlog.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/census/rpc_metric_id.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/client_channel.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/client_config.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/connector.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/initial_connect_string.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy_factory.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy_registry.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver_factory.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver_registry.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_factory.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/alpn.h" role="src" />
@@ -194,26 +208,12 @@
     <file baseinstalldir="/" name="src/core/lib/channel/channel_args.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/channel_stack.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/channel/client_channel.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/compress_filter.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/connected_channel.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/context.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/http_client_filter.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/http_server_filter.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/subchannel_call_holder.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/client_config.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/connector.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/initial_connect_string.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_factory.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_registry.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.h" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/uri_parser.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/compression/algorithm_metadata.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/compression/message_compress.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/debug/trace.h" role="src" />
@@ -307,6 +307,22 @@
     <file baseinstalldir="/" name="src/core/ext/census/operation.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/census/placeholders.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/census/tracing.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/channel_connectivity.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/client_channel.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/client_config.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/connector.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/default_initial_connect_string.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/initial_connect_string.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy_factory.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/lb_policy_registry.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver_factory.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/resolver_registry.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_factory.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/pick_first/pick_first.c" role="src" />
@@ -341,26 +357,11 @@
     <file baseinstalldir="/" name="src/core/lib/channel/channel_args.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/channel_stack.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/channel/client_channel.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/compress_filter.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/connected_channel.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/http_client_filter.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/http_server_filter.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/channel/subchannel_call_holder.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/client_config.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/connector.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/default_initial_connect_string.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/initial_connect_string.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_factory.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_registry.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/client_config/uri_parser.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/compression/compression_algorithm.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/compression/message_compress.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/debug/trace.c" role="src" />
@@ -436,7 +437,6 @@
     <file baseinstalldir="/" name="src/core/lib/surface/call_details.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/surface/call_log_batch.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/surface/channel.c" role="src" />
-    <file baseinstalldir="/" name="src/core/lib/surface/channel_connectivity.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/surface/channel_init.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/surface/channel_ping.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/surface/channel_stack_type.c" role="src" />
diff --git a/src/core/lib/client_config/README.md b/src/core/ext/client_config/README.md
similarity index 100%
rename from src/core/lib/client_config/README.md
rename to src/core/ext/client_config/README.md
diff --git a/src/core/lib/surface/channel_connectivity.c b/src/core/ext/client_config/channel_connectivity.c
similarity index 99%
rename from src/core/lib/surface/channel_connectivity.c
rename to src/core/ext/client_config/channel_connectivity.c
index 9a9ee422c20c44bc4224ef8168678e9aafbf303a..3ebc3336081e83fbc553315e85dd4feef38eeb8f 100644
--- a/src/core/lib/surface/channel_connectivity.c
+++ b/src/core/ext/client_config/channel_connectivity.c
@@ -36,7 +36,7 @@
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/iomgr/timer.h"
 #include "src/core/lib/surface/api_trace.h"
 #include "src/core/lib/surface/completion_queue.h"
diff --git a/src/core/lib/channel/client_channel.c b/src/core/ext/client_config/client_channel.c
similarity index 99%
rename from src/core/lib/channel/client_channel.c
rename to src/core/ext/client_config/client_channel.c
index 3f7cf1cf970a0bf9de5f08b9ae945578cc667dd4..0ff67a7d8704d6bce6f9d9f8e5d326915abbe3cd 100644
--- a/src/core/lib/channel/client_channel.c
+++ b/src/core/ext/client_config/client_channel.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 
 #include <stdio.h>
 #include <string.h>
diff --git a/src/core/lib/channel/client_channel.h b/src/core/ext/client_config/client_channel.h
similarity index 98%
rename from src/core/lib/channel/client_channel.h
rename to src/core/ext/client_config/client_channel.h
index ac418c8c51426bc81ede2325d2ae2c9c6483dd10..0f5b676e45b5168083b3e4297dfb2fa61314e702 100644
--- a/src/core/lib/channel/client_channel.h
+++ b/src/core/ext/client_config/client_channel.h
@@ -35,7 +35,7 @@
 #define GRPC_CORE_LIB_CHANNEL_CLIENT_CHANNEL_H
 
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/ext/client_config/resolver.h"
 
 /* A client channel is a channel that begins disconnected, and can connect
    to some endpoint on demand. If that endpoint disconnects, it will be
diff --git a/src/core/lib/client_config/client_config.c b/src/core/ext/client_config/client_config.c
similarity index 97%
rename from src/core/lib/client_config/client_config.c
rename to src/core/ext/client_config/client_config.c
index 2521023364e42055a64418db273de36fd140187d..f9b8e686988f08722d00f571415a5fb6665f6ac7 100644
--- a/src/core/lib/client_config/client_config.c
+++ b/src/core/ext/client_config/client_config.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/client_config.h"
+#include "src/core/ext/client_config/client_config.h"
 
 #include <string.h>
 
diff --git a/src/core/lib/client_config/client_config.h b/src/core/ext/client_config/client_config.h
similarity index 97%
rename from src/core/lib/client_config/client_config.h
rename to src/core/ext/client_config/client_config.h
index 8dc2f6b299a5b0a9b9d601c3faf12b71e1b36fe8..2742ea289549b701ec34efd3975b8f410c475dc1 100644
--- a/src/core/lib/client_config/client_config.h
+++ b/src/core/ext/client_config/client_config.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_CLIENT_CONFIG_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_CLIENT_CONFIG_H
 
-#include "src/core/lib/client_config/lb_policy.h"
+#include "src/core/ext/client_config/lb_policy.h"
 
 /** Total configuration for a client. Provided, and updated, by
     grpc_resolver */
diff --git a/src/core/lib/client_config/connector.c b/src/core/ext/client_config/connector.c
similarity index 97%
rename from src/core/lib/client_config/connector.c
rename to src/core/ext/client_config/connector.c
index 4c7b823dac39f942c9c5eda57f3a6bab1154f44a..5b629ed5fb1c01cbc64f1a5927140b8f70c43ccd 100644
--- a/src/core/lib/client_config/connector.c
+++ b/src/core/ext/client_config/connector.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/connector.h"
+#include "src/core/ext/client_config/connector.h"
 
 grpc_connector* grpc_connector_ref(grpc_connector* connector) {
   connector->vtable->ref(connector);
diff --git a/src/core/lib/client_config/connector.h b/src/core/ext/client_config/connector.h
similarity index 100%
rename from src/core/lib/client_config/connector.h
rename to src/core/ext/client_config/connector.h
diff --git a/src/core/lib/client_config/default_initial_connect_string.c b/src/core/ext/client_config/default_initial_connect_string.c
similarity index 100%
rename from src/core/lib/client_config/default_initial_connect_string.c
rename to src/core/ext/client_config/default_initial_connect_string.c
diff --git a/src/core/lib/client_config/initial_connect_string.c b/src/core/ext/client_config/initial_connect_string.c
similarity index 97%
rename from src/core/lib/client_config/initial_connect_string.c
rename to src/core/ext/client_config/initial_connect_string.c
index 4034ea2e87d05e324ffeb8bd5c66f5338ec3f1f3..41580d2106ca16fa1868dfa70f126d43aebbb6d0 100644
--- a/src/core/lib/client_config/initial_connect_string.c
+++ b/src/core/ext/client_config/initial_connect_string.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/initial_connect_string.h"
+#include "src/core/ext/client_config/initial_connect_string.h"
 
 #include <stddef.h>
 
diff --git a/src/core/lib/client_config/initial_connect_string.h b/src/core/ext/client_config/initial_connect_string.h
similarity index 100%
rename from src/core/lib/client_config/initial_connect_string.h
rename to src/core/ext/client_config/initial_connect_string.h
diff --git a/src/core/lib/client_config/lb_policy.c b/src/core/ext/client_config/lb_policy.c
similarity index 99%
rename from src/core/lib/client_config/lb_policy.c
rename to src/core/ext/client_config/lb_policy.c
index 3d23669ec28a5e3ab6c221b09b085301592af12d..72c1cf250c5fe5cf278c512abe2d6aefa5ca38cf 100644
--- a/src/core/lib/client_config/lb_policy.c
+++ b/src/core/ext/client_config/lb_policy.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/lb_policy.h"
+#include "src/core/ext/client_config/lb_policy.h"
 
 #define WEAK_REF_BITS 16
 
diff --git a/src/core/lib/client_config/lb_policy.h b/src/core/ext/client_config/lb_policy.h
similarity index 99%
rename from src/core/lib/client_config/lb_policy.h
rename to src/core/ext/client_config/lb_policy.h
index a63e8e68dfd0bbd47d1f066024aa65b30acf2f53..8779cf06ac10a3df9d4001684f3dd0ed6e74eedb 100644
--- a/src/core/lib/client_config/lb_policy.h
+++ b/src/core/ext/client_config/lb_policy.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_H
 
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/subchannel.h"
 #include "src/core/lib/transport/connectivity_state.h"
 
 /** A load balancing policy: specified by a vtable and a struct (which
diff --git a/src/core/lib/client_config/lb_policy_factory.c b/src/core/ext/client_config/lb_policy_factory.c
similarity index 97%
rename from src/core/lib/client_config/lb_policy_factory.c
rename to src/core/ext/client_config/lb_policy_factory.c
index 92e1f5f08b9c780b537eb8f79d3a32d316280513..70e46ef3cfc60c727c75d2fac46d283041ff9f4f 100644
--- a/src/core/lib/client_config/lb_policy_factory.c
+++ b/src/core/ext/client_config/lb_policy_factory.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/lb_policy_factory.h"
+#include "src/core/ext/client_config/lb_policy_factory.h"
 
 void grpc_lb_policy_factory_ref(grpc_lb_policy_factory* factory) {
   factory->vtable->ref(factory);
diff --git a/src/core/lib/client_config/lb_policy_factory.h b/src/core/ext/client_config/lb_policy_factory.h
similarity index 96%
rename from src/core/lib/client_config/lb_policy_factory.h
rename to src/core/ext/client_config/lb_policy_factory.h
index 6f2191282118682314a079ec52f787a41d831a4d..7cda216502e26b32c773fdd3d6b93f683d59df97 100644
--- a/src/core/lib/client_config/lb_policy_factory.h
+++ b/src/core/ext/client_config/lb_policy_factory.h
@@ -34,8 +34,8 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H
 
-#include "src/core/lib/client_config/lb_policy.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/ext/client_config/lb_policy.h"
+#include "src/core/ext/client_config/subchannel_factory.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 
 #include "src/core/lib/iomgr/exec_ctx.h"
diff --git a/src/core/lib/client_config/lb_policy_registry.c b/src/core/ext/client_config/lb_policy_registry.c
similarity index 98%
rename from src/core/lib/client_config/lb_policy_registry.c
rename to src/core/ext/client_config/lb_policy_registry.c
index af396362a1602da870faf8fe4dc0d6fbde5cceab..a23643ecc65dfbb8c92170a6909dc645673255dc 100644
--- a/src/core/lib/client_config/lb_policy_registry.c
+++ b/src/core/ext/client_config/lb_policy_registry.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
 
 #include <string.h>
 
diff --git a/src/core/lib/client_config/lb_policy_registry.h b/src/core/ext/client_config/lb_policy_registry.h
similarity index 97%
rename from src/core/lib/client_config/lb_policy_registry.h
rename to src/core/ext/client_config/lb_policy_registry.h
index 4b8495d8a13bf4ce0503bb62e34c07752b5aceab..f68dea3d86c94ac09705537877a819653afdd56c 100644
--- a/src/core/lib/client_config/lb_policy_registry.h
+++ b/src/core/ext/client_config/lb_policy_registry.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_REGISTRY_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_REGISTRY_H
 
-#include "src/core/lib/client_config/lb_policy_factory.h"
+#include "src/core/ext/client_config/lb_policy_factory.h"
 #include "src/core/lib/iomgr/exec_ctx.h"
 
 /** Initialize the registry and set \a default_factory as the factory to be
diff --git a/src/core/lib/client_config/resolver.c b/src/core/ext/client_config/resolver.c
similarity index 98%
rename from src/core/lib/client_config/resolver.c
rename to src/core/ext/client_config/resolver.c
index b9eef5575fc47f868aa2e783ae861fd5b9b0b5ce..eb004455bd06dfd9b59de739e5978bc00935021d 100644
--- a/src/core/lib/client_config/resolver.c
+++ b/src/core/ext/client_config/resolver.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/ext/client_config/resolver.h"
 
 void grpc_resolver_init(grpc_resolver *resolver,
                         const grpc_resolver_vtable *vtable) {
diff --git a/src/core/lib/client_config/resolver.h b/src/core/ext/client_config/resolver.h
similarity index 97%
rename from src/core/lib/client_config/resolver.h
rename to src/core/ext/client_config/resolver.h
index cf0bb2bc7acef0ba10165f4621c7f70bb21cf16e..226beda85f871df15f40654569f89fc758c868dd 100644
--- a/src/core/lib/client_config/resolver.h
+++ b/src/core/ext/client_config/resolver.h
@@ -34,8 +34,8 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_H
 
-#include "src/core/lib/client_config/client_config.h"
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/client_config.h"
+#include "src/core/ext/client_config/subchannel.h"
 #include "src/core/lib/iomgr/iomgr.h"
 
 typedef struct grpc_resolver grpc_resolver;
diff --git a/src/core/lib/client_config/resolver_factory.c b/src/core/ext/client_config/resolver_factory.c
similarity index 97%
rename from src/core/lib/client_config/resolver_factory.c
rename to src/core/ext/client_config/resolver_factory.c
index 001fa28536ab995d1ecf0f0ecce08138a86a27ae..67832dcf59e8568ac170e553cf7e308690cde1b1 100644
--- a/src/core/lib/client_config/resolver_factory.c
+++ b/src/core/ext/client_config/resolver_factory.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/resolver_factory.h"
+#include "src/core/ext/client_config/resolver_factory.h"
 
 void grpc_resolver_factory_ref(grpc_resolver_factory* factory) {
   factory->vtable->ref(factory);
diff --git a/src/core/lib/client_config/resolver_factory.h b/src/core/ext/client_config/resolver_factory.h
similarity index 95%
rename from src/core/lib/client_config/resolver_factory.h
rename to src/core/ext/client_config/resolver_factory.h
index a5bca06475b2f303b8f684db72595a11e6a16e06..e5821662781ee65020c52bc4ad16496bb53a7d03 100644
--- a/src/core/lib/client_config/resolver_factory.h
+++ b/src/core/ext/client_config/resolver_factory.h
@@ -34,9 +34,9 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_FACTORY_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_FACTORY_H
 
-#include "src/core/lib/client_config/resolver.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
-#include "src/core/lib/client_config/uri_parser.h"
+#include "src/core/ext/client_config/resolver.h"
+#include "src/core/ext/client_config/subchannel_factory.h"
+#include "src/core/ext/client_config/uri_parser.h"
 
 typedef struct grpc_resolver_factory grpc_resolver_factory;
 typedef struct grpc_resolver_factory_vtable grpc_resolver_factory_vtable;
diff --git a/src/core/lib/client_config/resolver_registry.c b/src/core/ext/client_config/resolver_registry.c
similarity index 98%
rename from src/core/lib/client_config/resolver_registry.c
rename to src/core/ext/client_config/resolver_registry.c
index 5f3db273b530deddaaba0c8fcc95e2f01952f162..63609e823415c1c665775d348df4819fc2d1d51b 100644
--- a/src/core/lib/client_config/resolver_registry.c
+++ b/src/core/ext/client_config/resolver_registry.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 
 #include <string.h>
 
diff --git a/src/core/lib/client_config/resolver_registry.h b/src/core/ext/client_config/resolver_registry.h
similarity index 98%
rename from src/core/lib/client_config/resolver_registry.h
rename to src/core/ext/client_config/resolver_registry.h
index 36c4f2fe03a1c51fdd3dc5209811e9fde4410e60..2de34b32ace27d49ff33ceac84b7d3181b3c4612 100644
--- a/src/core/lib/client_config/resolver_registry.h
+++ b/src/core/ext/client_config/resolver_registry.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_REGISTRY_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVER_REGISTRY_H
 
-#include "src/core/lib/client_config/resolver_factory.h"
+#include "src/core/ext/client_config/resolver_factory.h"
 
 void grpc_resolver_registry_init(const char *default_prefix);
 void grpc_resolver_registry_shutdown(void);
diff --git a/src/core/lib/client_config/subchannel.c b/src/core/ext/client_config/subchannel.c
similarity index 99%
rename from src/core/lib/client_config/subchannel.c
rename to src/core/ext/client_config/subchannel.c
index 47c53a16ba75ad80ba93bb95f472a8ec38b59101..452513427a6a5cf2e3389dce0d8fe19996622886 100644
--- a/src/core/lib/client_config/subchannel.c
+++ b/src/core/ext/client_config/subchannel.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/subchannel.h"
 
 #include <string.h>
 
@@ -39,10 +39,10 @@
 #include <grpc/support/avl.h>
 
 #include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/client_config/initial_connect_string.h"
-#include "src/core/lib/client_config/subchannel_index.h"
+#include "src/core/ext/client_config/initial_connect_string.h"
+#include "src/core/ext/client_config/subchannel_index.h"
 #include "src/core/lib/iomgr/timer.h"
 #include "src/core/lib/profiling/timers.h"
 #include "src/core/lib/support/backoff.h"
diff --git a/src/core/lib/client_config/subchannel.h b/src/core/ext/client_config/subchannel.h
similarity index 99%
rename from src/core/lib/client_config/subchannel.h
rename to src/core/ext/client_config/subchannel.h
index 68aeff39a1da24b27aeed4ca05711327ada7e9f8..71690c23a554977bcfc113182909b37015dbe0f1 100644
--- a/src/core/lib/client_config/subchannel.h
+++ b/src/core/ext/client_config/subchannel.h
@@ -35,7 +35,7 @@
 #define GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_H
 
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/connector.h"
+#include "src/core/ext/client_config/connector.h"
 #include "src/core/lib/transport/connectivity_state.h"
 
 /** A (sub-)channel that knows how to connect to exactly one target
diff --git a/src/core/lib/client_config/subchannel_factory.c b/src/core/ext/client_config/subchannel_factory.c
similarity index 97%
rename from src/core/lib/client_config/subchannel_factory.c
rename to src/core/ext/client_config/subchannel_factory.c
index 541368ec96b968af23e3104463ac79760bb1247d..d1e4d75a023052c771ce4242f1b2a29b13c3dff6 100644
--- a/src/core/lib/client_config/subchannel_factory.c
+++ b/src/core/ext/client_config/subchannel_factory.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/ext/client_config/subchannel_factory.h"
 
 void grpc_subchannel_factory_ref(grpc_subchannel_factory* factory) {
   factory->vtable->ref(factory);
diff --git a/src/core/lib/client_config/subchannel_factory.h b/src/core/ext/client_config/subchannel_factory.h
similarity index 98%
rename from src/core/lib/client_config/subchannel_factory.h
rename to src/core/ext/client_config/subchannel_factory.h
index 96d68a20795e903e187b06532081a07339342e09..6614e935e51775e22fb65c93c01e7620cd021423 100644
--- a/src/core/lib/client_config/subchannel_factory.h
+++ b/src/core/ext/client_config/subchannel_factory.h
@@ -35,7 +35,7 @@
 #define GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_FACTORY_H
 
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/subchannel.h"
 
 typedef struct grpc_subchannel_factory grpc_subchannel_factory;
 typedef struct grpc_subchannel_factory_vtable grpc_subchannel_factory_vtable;
diff --git a/src/core/lib/client_config/subchannel_index.c b/src/core/ext/client_config/subchannel_index.c
similarity index 99%
rename from src/core/lib/client_config/subchannel_index.c
rename to src/core/ext/client_config/subchannel_index.c
index 2c545002a280165ff1591eb9455235e0db184455..ab8d9bd91d83ab23cc952512d91feaaac6e8715a 100644
--- a/src/core/lib/client_config/subchannel_index.c
+++ b/src/core/ext/client_config/subchannel_index.c
@@ -31,7 +31,7 @@
 //
 //
 
-#include "src/core/lib/client_config/subchannel_index.h"
+#include "src/core/ext/client_config/subchannel_index.h"
 
 #include <stdbool.h>
 #include <string.h>
diff --git a/src/core/lib/client_config/subchannel_index.h b/src/core/ext/client_config/subchannel_index.h
similarity index 97%
rename from src/core/lib/client_config/subchannel_index.h
rename to src/core/ext/client_config/subchannel_index.h
index bc5f03beb42407869e878c4f134df9f8323d1b29..77972f871983f73367d044395fed56c72460144d 100644
--- a/src/core/lib/client_config/subchannel_index.h
+++ b/src/core/ext/client_config/subchannel_index.h
@@ -34,8 +34,8 @@
 #ifndef GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_INDEX_H
 #define GRPC_CORE_LIB_CLIENT_CONFIG_SUBCHANNEL_INDEX_H
 
-#include "src/core/lib/client_config/connector.h"
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/connector.h"
+#include "src/core/ext/client_config/subchannel.h"
 
 /** \file Provides an index of active subchannels so that they can be
     shared amongst channels */
diff --git a/src/core/lib/client_config/uri_parser.c b/src/core/ext/client_config/uri_parser.c
similarity index 99%
rename from src/core/lib/client_config/uri_parser.c
rename to src/core/ext/client_config/uri_parser.c
index b4ee763735e6ed9a8a1211efa2c5f75eab07c9ea..5b485528d47f7c67699b41e6c2db6b752ff46bec 100644
--- a/src/core/lib/client_config/uri_parser.c
+++ b/src/core/ext/client_config/uri_parser.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/uri_parser.h"
+#include "src/core/ext/client_config/uri_parser.h"
 
 #include <string.h>
 
diff --git a/src/core/lib/client_config/uri_parser.h b/src/core/ext/client_config/uri_parser.h
similarity index 100%
rename from src/core/lib/client_config/uri_parser.h
rename to src/core/ext/client_config/uri_parser.h
diff --git a/src/core/ext/lb_policy/grpclb/load_balancer_api.h b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
index d329a2ffe825d1963782ff1a3bf1cef6da7f3e8f..7a550f6da81e4780b224885990b349d54b909787 100644
--- a/src/core/ext/lb_policy/grpclb/load_balancer_api.h
+++ b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
@@ -37,7 +37,7 @@
 #include <grpc/support/slice_buffer.h>
 
 #include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
-#include "src/core/lib/client_config/lb_policy_factory.h"
+#include "src/core/ext/client_config/lb_policy_factory.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/src/core/ext/lb_policy/pick_first/pick_first.c b/src/core/ext/lb_policy/pick_first/pick_first.c
index cb5c40501ee11e6cb9b59dfa0ded1ec047060c29..9afa219aaa9919cb868505ef9dd61d4d06e0b199 100644
--- a/src/core/ext/lb_policy/pick_first/pick_first.c
+++ b/src/core/ext/lb_policy/pick_first/pick_first.c
@@ -34,7 +34,7 @@
 #include <string.h>
 
 #include <grpc/support/alloc.h>
-#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
 #include "src/core/lib/transport/connectivity_state.h"
 
 typedef struct pending_pick {
diff --git a/src/core/ext/lb_policy/round_robin/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c
index d94c081494cc8d860de5e127c58a99d09eff8695..eb168a6215c04062e40e1913e774ba0c6d7ea09f 100644
--- a/src/core/ext/lb_policy/round_robin/round_robin.c
+++ b/src/core/ext/lb_policy/round_robin/round_robin.c
@@ -35,7 +35,7 @@
 
 #include <grpc/support/alloc.h>
 
-#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
 #include "src/core/lib/debug/trace.h"
 #include "src/core/lib/transport/connectivity_state.h"
 
diff --git a/src/core/ext/resolver/dns/native/dns_resolver.c b/src/core/ext/resolver/dns/native/dns_resolver.c
index 70d8a3fe2d3e1a1cd9c7c3156ee5d934f236213e..95126ab2032529b7c95f7ddb9685b3e353d50a23 100644
--- a/src/core/ext/resolver/dns/native/dns_resolver.c
+++ b/src/core/ext/resolver/dns/native/dns_resolver.c
@@ -37,8 +37,8 @@
 #include <grpc/support/host_port.h>
 #include <grpc/support/string_util.h>
 
-#include "src/core/lib/client_config/lb_policy_registry.h"
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 #include "src/core/lib/iomgr/timer.h"
 #include "src/core/lib/support/backoff.h"
diff --git a/src/core/ext/resolver/sockaddr/sockaddr_resolver.c b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
index 69595ca3db5f93f50924161e604f294bcf9be7b9..3c97e659bff7e83419c57c014e72a98078fb8d0e 100644
--- a/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
+++ b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -40,8 +40,8 @@
 #include <grpc/support/host_port.h>
 #include <grpc/support/string_util.h>
 
-#include "src/core/lib/client_config/lb_policy_registry.h"
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 #include "src/core/lib/iomgr/unix_sockets_posix.h"
 #include "src/core/lib/support/string.h"
diff --git a/src/core/ext/resolver/zookeeper/zookeeper_resolver.c b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
index a66c9925f052938b2f1144735b053f229093ac27..a8b1f66bc488d77237c2ab70e4f41efd4da0d441 100644
--- a/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
+++ b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+#include "src/core/ext/client_config/resolvers/zookeeper_resolver.h"
 
 #include <string.h>
 
@@ -41,8 +41,8 @@
 #include <grpc/grpc_zookeeper.h>
 #include <zookeeper/zookeeper.h>
 
-#include "src/core/lib/client_config/lb_policy_registry.h"
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 #include "src/core/lib/json/json.h"
 #include "src/core/lib/support/string.h"
diff --git a/src/core/ext/transport/chttp2/client/insecure/channel_create.c b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
index 35450c9e8d3346839b9673169362c96051efa905..baa81c99061e1d1ed0b44beb0aa92c130d959878 100644
--- a/src/core/ext/transport/chttp2/client/insecure/channel_create.c
+++ b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
@@ -43,10 +43,10 @@
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
 #include "src/core/ext/census/grpc_filter.h"
 #include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/compress_filter.h"
 #include "src/core/lib/channel/http_client_filter.h"
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/tcp_client.h"
 #include "src/core/lib/surface/api_trace.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
index 3465d2b6c4c7163732fb33644b26db770346f087..a1a70e8d909013ad59b41144a1d321eb5a0e4ac6 100644
--- a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
+++ b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
@@ -42,8 +42,8 @@
 
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
 #include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/client_channel.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/tcp_client.h"
 #include "src/core/lib/security/auth_filters.h"
 #include "src/core/lib/security/credentials.h"
diff --git a/src/core/lib/channel/subchannel_call_holder.h b/src/core/lib/channel/subchannel_call_holder.h
index 5cf291a266ceecf49828c2ea886e9d21a9ee2706..8e3a99e40b25a458f1ea704246ed7ac1abd64e40 100644
--- a/src/core/lib/channel/subchannel_call_holder.h
+++ b/src/core/lib/channel/subchannel_call_holder.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_CORE_LIB_CHANNEL_SUBCHANNEL_CALL_HOLDER_H
 #define GRPC_CORE_LIB_CHANNEL_SUBCHANNEL_CALL_HOLDER_H
 
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/ext/client_config/subchannel.h"
 
 /** Pick a subchannel for grpc_subchannel_call_holder;
     Return 1 if subchannel is available immediately (in which case on_ready
diff --git a/src/core/lib/iomgr/unix_sockets_posix.h b/src/core/lib/iomgr/unix_sockets_posix.h
index 752cab85a53be997f357d67a2ecf08d6f0f43180..22d6af50440a35e342d8c6843253f2f51d41c075 100644
--- a/src/core/lib/iomgr/unix_sockets_posix.h
+++ b/src/core/lib/iomgr/unix_sockets_posix.h
@@ -38,8 +38,8 @@
 
 #include <grpc/support/string_util.h>
 
-#include "src/core/lib/client_config/resolver_factory.h"
-#include "src/core/lib/client_config/uri_parser.h"
+#include "src/core/ext/client_config/resolver_factory.h"
+#include "src/core/ext/client_config/uri_parser.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 #include "src/core/lib/iomgr/sockaddr.h"
 
diff --git a/src/core/lib/surface/channel.c b/src/core/lib/surface/channel.c
index 06f991b0856cef312567fde32cc353b8011ab0c4..332f5045077e3e447ffeda2a9e76086b7ae7bf85 100644
--- a/src/core/lib/surface/channel.c
+++ b/src/core/lib/surface/channel.c
@@ -40,7 +40,7 @@
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
 
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/iomgr.h"
 #include "src/core/lib/support/string.h"
 #include "src/core/lib/surface/api_trace.h"
diff --git a/src/core/lib/surface/channel.h b/src/core/lib/surface/channel.h
index 640fd7e137957abe2e57ef5228f451ed8f763e88..fc7c805db014be3898bf10e92bb54306811c15a5 100644
--- a/src/core/lib/surface/channel.h
+++ b/src/core/lib/surface/channel.h
@@ -35,7 +35,7 @@
 #define GRPC_CORE_LIB_SURFACE_CHANNEL_H
 
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/ext/client_config/subchannel_factory.h"
 #include "src/core/lib/surface/channel_stack_type.h"
 
 grpc_channel *grpc_channel_create(grpc_exec_ctx *exec_ctx, const char *target,
diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c
index aca4ce9d076a571a5b0850ff41d654fd0c97c7de..f221d8db35b9e9fa13872081010b36d2a34402f0 100644
--- a/src/core/lib/surface/init.c
+++ b/src/core/lib/surface/init.c
@@ -39,17 +39,17 @@
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/time.h>
+#include "src/core/ext/client_config/client_channel.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/subchannel.h"
+#include "src/core/ext/client_config/subchannel_index.h"
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/client_channel.h"
 #include "src/core/lib/channel/compress_filter.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_client_filter.h"
 #include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/client_config/lb_policy_registry.h"
-#include "src/core/lib/client_config/resolver_registry.h"
-#include "src/core/lib/client_config/subchannel.h"
-#include "src/core/lib/client_config/subchannel_index.h"
 #include "src/core/lib/debug/trace.h"
 #include "src/core/lib/iomgr/executor.h"
 #include "src/core/lib/iomgr/iomgr.h"
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 65ab42c6189576acd8efd1ec2e1ed6cc0f3fe535..53ea8285fd73ffd2b195eba044bf6f03241f50f6 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -83,6 +83,22 @@ CORE_SOURCE_FILES = [
   'src/core/ext/census/operation.c',
   'src/core/ext/census/placeholders.c',
   'src/core/ext/census/tracing.c',
+  'src/core/ext/client_config/channel_connectivity.c',
+  'src/core/ext/client_config/client_channel.c',
+  'src/core/ext/client_config/client_config.c',
+  'src/core/ext/client_config/connector.c',
+  'src/core/ext/client_config/default_initial_connect_string.c',
+  'src/core/ext/client_config/initial_connect_string.c',
+  'src/core/ext/client_config/lb_policy.c',
+  'src/core/ext/client_config/lb_policy_factory.c',
+  'src/core/ext/client_config/lb_policy_registry.c',
+  'src/core/ext/client_config/resolver.c',
+  'src/core/ext/client_config/resolver_factory.c',
+  'src/core/ext/client_config/resolver_registry.c',
+  'src/core/ext/client_config/subchannel.c',
+  'src/core/ext/client_config/subchannel_factory.c',
+  'src/core/ext/client_config/subchannel_index.c',
+  'src/core/ext/client_config/uri_parser.c',
   'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
   'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
   'src/core/ext/lb_policy/pick_first/pick_first.c',
@@ -117,26 +133,11 @@ CORE_SOURCE_FILES = [
   'src/core/lib/channel/channel_args.c',
   'src/core/lib/channel/channel_stack.c',
   'src/core/lib/channel/channel_stack_builder.c',
-  'src/core/lib/channel/client_channel.c',
   'src/core/lib/channel/compress_filter.c',
   'src/core/lib/channel/connected_channel.c',
   'src/core/lib/channel/http_client_filter.c',
   'src/core/lib/channel/http_server_filter.c',
   'src/core/lib/channel/subchannel_call_holder.c',
-  'src/core/lib/client_config/client_config.c',
-  'src/core/lib/client_config/connector.c',
-  'src/core/lib/client_config/default_initial_connect_string.c',
-  'src/core/lib/client_config/initial_connect_string.c',
-  'src/core/lib/client_config/lb_policy.c',
-  'src/core/lib/client_config/lb_policy_factory.c',
-  'src/core/lib/client_config/lb_policy_registry.c',
-  'src/core/lib/client_config/resolver.c',
-  'src/core/lib/client_config/resolver_factory.c',
-  'src/core/lib/client_config/resolver_registry.c',
-  'src/core/lib/client_config/subchannel.c',
-  'src/core/lib/client_config/subchannel_factory.c',
-  'src/core/lib/client_config/subchannel_index.c',
-  'src/core/lib/client_config/uri_parser.c',
   'src/core/lib/compression/compression_algorithm.c',
   'src/core/lib/compression/message_compress.c',
   'src/core/lib/debug/trace.c',
@@ -212,7 +213,6 @@ CORE_SOURCE_FILES = [
   'src/core/lib/surface/call_details.c',
   'src/core/lib/surface/call_log_batch.c',
   'src/core/lib/surface/channel.c',
-  'src/core/lib/surface/channel_connectivity.c',
   'src/core/lib/surface/channel_init.c',
   'src/core/lib/surface/channel_ping.c',
   'src/core/lib/surface/channel_stack_type.c',
diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c
index b819f2bc6009dd661ee272072601398e073caa4b..e766672cf5d110a45b7d98160a41eb2edba6aa9f 100644
--- a/test/core/client_config/lb_policies_test.c
+++ b/test/core/client_config/lb_policies_test.c
@@ -41,9 +41,9 @@
 #include <grpc/support/string_util.h>
 #include <grpc/support/time.h>
 
+#include "src/core/ext/client_config/client_channel.h"
+#include "src/core/ext/client_config/lb_policy_registry.h"
 #include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/client_config/lb_policy_registry.h"
 #include "src/core/lib/support/string.h"
 #include "src/core/lib/surface/channel.h"
 #include "src/core/lib/surface/server.h"
diff --git a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
index b7c3b78fe19b4a0d22544a4cddef410b61265a36..091257fbb63c173f75123314d12061c7982edad2 100644
--- a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
@@ -36,7 +36,7 @@
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 #include "src/core/lib/iomgr/timer.h"
 #include "test/core/util/test_config.h"
diff --git a/test/core/client_config/resolvers/dns_resolver_test.c b/test/core/client_config/resolvers/dns_resolver_test.c
index 0e8a3b13dd3cb8d951e7cbdbeb6262070c25dfd6..ce95c656e6647ddd853fbfcfb1ac766e112b753d 100644
--- a/test/core/client_config/resolvers/dns_resolver_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_test.c
@@ -35,7 +35,7 @@
 
 #include <grpc/support/log.h>
 
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "test/core/util/test_config.h"
 
 static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
diff --git a/test/core/client_config/resolvers/sockaddr_resolver_test.c b/test/core/client_config/resolvers/sockaddr_resolver_test.c
index 3ce98cebf34430bf581f462bb68d83809a427db8..551bb6924e23495a1ec25b891956804cd617a073 100644
--- a/test/core/client_config/resolvers/sockaddr_resolver_test.c
+++ b/test/core/client_config/resolvers/sockaddr_resolver_test.c
@@ -35,7 +35,7 @@
 
 #include <grpc/support/log.h>
 
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "test/core/util/test_config.h"
 
 static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
diff --git a/test/core/client_config/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c
index 3ca037355c76d773bab6b8fac06fc88db70044dd..83058d9b2c33d31845bc4d974657934f0c088568 100644
--- a/test/core/client_config/set_initial_connect_string_test.c
+++ b/test/core/client_config/set_initial_connect_string_test.c
@@ -38,7 +38,7 @@
 #include <grpc/support/log.h>
 #include <grpc/support/slice.h>
 
-#include "src/core/lib/client_config/initial_connect_string.h"
+#include "src/core/ext/client_config/initial_connect_string.h"
 #include "src/core/lib/iomgr/sockaddr.h"
 #include "src/core/lib/security/credentials.h"
 #include "src/core/lib/support/string.h"
diff --git a/test/core/client_config/uri_fuzzer_test.c b/test/core/client_config/uri_fuzzer_test.c
index d50a05db206e5e404b196fff4fd7941790d9266d..eb976fc9f53a7c2d25e5c87c50301605d1f29389 100644
--- a/test/core/client_config/uri_fuzzer_test.c
+++ b/test/core/client_config/uri_fuzzer_test.c
@@ -36,7 +36,7 @@
 
 #include <grpc/support/alloc.h>
 
-#include "src/core/lib/client_config/uri_parser.h"
+#include "src/core/ext/client_config/uri_parser.h"
 
 int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   char *s = gpr_malloc(size + 1);
diff --git a/test/core/client_config/uri_parser_test.c b/test/core/client_config/uri_parser_test.c
index e5d0c378bade4751aae568929acd37549377cdab..731f16afdd37b000a46604df2f19f15c33877939 100644
--- a/test/core/client_config/uri_parser_test.c
+++ b/test/core/client_config/uri_parser_test.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/lib/client_config/uri_parser.h"
+#include "src/core/ext/client_config/uri_parser.h"
 
 #include <string.h>
 
diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.c
index 9d41ff2dbb47fc4535e73fd7229be9b69c8a04ae..ef1cf73a05a2cee88a99c069b1c068833c317683 100644
--- a/test/core/end2end/fixtures/h2_census.c
+++ b/test/core/end2end/fixtures/h2_census.c
@@ -43,7 +43,7 @@
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
 #include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/test/core/end2end/fixtures/h2_compress.c b/test/core/end2end/fixtures/h2_compress.c
index 55355b58ddabc929d9ffd733798646c57188da05..ddc33ff805bf56832bad1a75802bc92345be2c57 100644
--- a/test/core/end2end/fixtures/h2_compress.c
+++ b/test/core/end2end/fixtures/h2_compress.c
@@ -43,7 +43,7 @@
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
 #include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.c
index a3e2196bf6266d6f21f9ede5d954cfb7e23498cd..412bb0411c34a8975e8e3b15829a317509a99e08 100644
--- a/test/core/end2end/fixtures/h2_full+pipe.c
+++ b/test/core/end2end/fixtures/h2_full+pipe.c
@@ -42,7 +42,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/iomgr/wakeup_fd_posix.h"
diff --git a/test/core/end2end/fixtures/h2_full+poll+pipe.c b/test/core/end2end/fixtures/h2_full+poll+pipe.c
index 7d57adf665254b092086a0d3da5de0f32cccd48d..a98b92e324576d9e712309e40ce4cb746c1cb37c 100644
--- a/test/core/end2end/fixtures/h2_full+poll+pipe.c
+++ b/test/core/end2end/fixtures/h2_full+poll+pipe.c
@@ -43,7 +43,7 @@
 #include <grpc/support/useful.h>
 
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/iomgr/pollset_posix.h"
diff --git a/test/core/end2end/fixtures/h2_full+poll.c b/test/core/end2end/fixtures/h2_full+poll.c
index 71a406ebbc0b386a58265b06d1e506223c6cb867..443b6d49ab7a941045256c3845684ace02637d4c 100644
--- a/test/core/end2end/fixtures/h2_full+poll.c
+++ b/test/core/end2end/fixtures/h2_full+poll.c
@@ -43,7 +43,7 @@
 #include <grpc/support/useful.h>
 
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/iomgr/pollset_posix.h"
diff --git a/test/core/end2end/fixtures/h2_full+trace.c b/test/core/end2end/fixtures/h2_full+trace.c
index 986a06bd010dfe8817819699d5108596a9d54a5a..8db44de960975a4106199e2feed7bdffb19e0766 100644
--- a/test/core/end2end/fixtures/h2_full+trace.c
+++ b/test/core/end2end/fixtures/h2_full+trace.c
@@ -42,7 +42,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/support/env.h"
diff --git a/test/core/end2end/fixtures/h2_full.c b/test/core/end2end/fixtures/h2_full.c
index d0797e0a6446ca946b3aa721e29f432714f81895..786ae1a814cac39e09ec7200932726ed452af277 100644
--- a/test/core/end2end/fixtures/h2_full.c
+++ b/test/core/end2end/fixtures/h2_full.c
@@ -42,7 +42,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.c
index 4650da98e37796bebb7fdee24323dbad8b47a02b..699d4bcff2aaa956d3a3f78ab5c78c92cee527ab 100644
--- a/test/core/end2end/fixtures/h2_proxy.c
+++ b/test/core/end2end/fixtures/h2_proxy.c
@@ -42,7 +42,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.c
index 9fdceabbaf70fe642ba1ec3350b81ea89a7e69c1..1b581373be99eff78b1e516f31fac573cffa52ce 100644
--- a/test/core/end2end/fixtures/h2_sockpair+trace.c
+++ b/test/core/end2end/fixtures/h2_sockpair+trace.c
@@ -41,7 +41,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/compress_filter.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_client_filter.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair.c b/test/core/end2end/fixtures/h2_sockpair.c
index 84777158b6d178fe82da5379add3c6f80033ef31..0b4df4db14f817819cceb8a8688ddae1faf2ea5f 100644
--- a/test/core/end2end/fixtures/h2_sockpair.c
+++ b/test/core/end2end/fixtures/h2_sockpair.c
@@ -41,7 +41,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/compress_filter.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_client_filter.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.c b/test/core/end2end/fixtures/h2_sockpair_1byte.c
index 6b6ca19885f38c65c55e60386f8f768e09bbd13b..a84a0d2e40a0175393d3dd97a9d50c4ae3aff3bf 100644
--- a/test/core/end2end/fixtures/h2_sockpair_1byte.c
+++ b/test/core/end2end/fixtures/h2_sockpair_1byte.c
@@ -41,7 +41,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/compress_filter.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_client_filter.h"
diff --git a/test/core/end2end/fixtures/h2_uds+poll.c b/test/core/end2end/fixtures/h2_uds+poll.c
index 793ffba1259ee854800ec74509130adf3371789d..d91b6df1155fc0cbfbb66a16e326277c67be06be 100644
--- a/test/core/end2end/fixtures/h2_uds+poll.c
+++ b/test/core/end2end/fixtures/h2_uds+poll.c
@@ -46,7 +46,7 @@
 #include <grpc/support/useful.h>
 
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/iomgr/pollset_posix.h"
diff --git a/test/core/end2end/fixtures/h2_uds.c b/test/core/end2end/fixtures/h2_uds.c
index 9216860a646014cdebd70ea521de5217847f2cf6..d87eb8d79d10340934713039dac7a410c7d6b5d3 100644
--- a/test/core/end2end/fixtures/h2_uds.c
+++ b/test/core/end2end/fixtures/h2_uds.c
@@ -45,7 +45,7 @@
 #include <grpc/support/thd.h>
 #include <grpc/support/useful.h>
 #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
-#include "src/core/lib/channel/client_channel.h"
+#include "src/core/ext/client_config/client_channel.h"
 #include "src/core/lib/channel/connected_channel.h"
 #include "src/core/lib/channel/http_server_filter.h"
 #include "src/core/lib/support/string.h"
diff --git a/test/core/surface/channel_create_test.c b/test/core/surface/channel_create_test.c
index 95b4eaf093d470ca240a0198e71fb35543aba178..5ff66bd7a52af6ea446ab2f6cf8b8d9b078a90e7 100644
--- a/test/core/surface/channel_create_test.c
+++ b/test/core/surface/channel_create_test.c
@@ -33,7 +33,7 @@
 
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "test/core/util/test_config.h"
 
 void test_unknown_scheme_target(void) {
diff --git a/test/core/surface/secure_channel_create_test.c b/test/core/surface/secure_channel_create_test.c
index eb710cba38d7943cf03dee3dd9a86df79adf5d00..80419efce4bf46abe0d620c8cd35d95dcb7769ea 100644
--- a/test/core/surface/secure_channel_create_test.c
+++ b/test/core/surface/secure_channel_create_test.c
@@ -36,7 +36,7 @@
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
 #include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver_registry.h"
+#include "src/core/ext/client_config/resolver_registry.h"
 #include "src/core/lib/security/credentials.h"
 #include "src/core/lib/security/security_connector.h"
 #include "src/core/lib/surface/channel.h"
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index fffbc5e30060e780deac452212d498e856a33366..481392d198a2c72d02e34a119c368c601f884db7 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -780,6 +780,20 @@ src/core/ext/census/grpc_filter.h \
 src/core/ext/census/grpc_plugin.h \
 src/core/ext/census/mlog.h \
 src/core/ext/census/rpc_metric_id.h \
+src/core/ext/client_config/client_channel.h \
+src/core/ext/client_config/client_config.h \
+src/core/ext/client_config/connector.h \
+src/core/ext/client_config/initial_connect_string.h \
+src/core/ext/client_config/lb_policy.h \
+src/core/ext/client_config/lb_policy_factory.h \
+src/core/ext/client_config/lb_policy_registry.h \
+src/core/ext/client_config/resolver.h \
+src/core/ext/client_config/resolver_factory.h \
+src/core/ext/client_config/resolver_registry.h \
+src/core/ext/client_config/subchannel.h \
+src/core/ext/client_config/subchannel_factory.h \
+src/core/ext/client_config/subchannel_index.h \
+src/core/ext/client_config/uri_parser.h \
 src/core/ext/lb_policy/grpclb/load_balancer_api.h \
 src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h \
 src/core/ext/transport/chttp2/transport/alpn.h \
@@ -806,26 +820,12 @@ src/core/ext/transport/chttp2/transport/varint.h \
 src/core/lib/channel/channel_args.h \
 src/core/lib/channel/channel_stack.h \
 src/core/lib/channel/channel_stack_builder.h \
-src/core/lib/channel/client_channel.h \
 src/core/lib/channel/compress_filter.h \
 src/core/lib/channel/connected_channel.h \
 src/core/lib/channel/context.h \
 src/core/lib/channel/http_client_filter.h \
 src/core/lib/channel/http_server_filter.h \
 src/core/lib/channel/subchannel_call_holder.h \
-src/core/lib/client_config/client_config.h \
-src/core/lib/client_config/connector.h \
-src/core/lib/client_config/initial_connect_string.h \
-src/core/lib/client_config/lb_policy.h \
-src/core/lib/client_config/lb_policy_factory.h \
-src/core/lib/client_config/lb_policy_registry.h \
-src/core/lib/client_config/resolver.h \
-src/core/lib/client_config/resolver_factory.h \
-src/core/lib/client_config/resolver_registry.h \
-src/core/lib/client_config/subchannel.h \
-src/core/lib/client_config/subchannel_factory.h \
-src/core/lib/client_config/subchannel_index.h \
-src/core/lib/client_config/uri_parser.h \
 src/core/lib/compression/algorithm_metadata.h \
 src/core/lib/compression/message_compress.h \
 src/core/lib/debug/trace.h \
@@ -919,6 +919,22 @@ src/core/ext/census/mlog.c \
 src/core/ext/census/operation.c \
 src/core/ext/census/placeholders.c \
 src/core/ext/census/tracing.c \
+src/core/ext/client_config/channel_connectivity.c \
+src/core/ext/client_config/client_channel.c \
+src/core/ext/client_config/client_config.c \
+src/core/ext/client_config/connector.c \
+src/core/ext/client_config/default_initial_connect_string.c \
+src/core/ext/client_config/initial_connect_string.c \
+src/core/ext/client_config/lb_policy.c \
+src/core/ext/client_config/lb_policy_factory.c \
+src/core/ext/client_config/lb_policy_registry.c \
+src/core/ext/client_config/resolver.c \
+src/core/ext/client_config/resolver_factory.c \
+src/core/ext/client_config/resolver_registry.c \
+src/core/ext/client_config/subchannel.c \
+src/core/ext/client_config/subchannel_factory.c \
+src/core/ext/client_config/subchannel_index.c \
+src/core/ext/client_config/uri_parser.c \
 src/core/ext/lb_policy/grpclb/load_balancer_api.c \
 src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
 src/core/ext/lb_policy/pick_first/pick_first.c \
@@ -953,26 +969,11 @@ src/core/ext/transport/chttp2/transport/writing.c \
 src/core/lib/channel/channel_args.c \
 src/core/lib/channel/channel_stack.c \
 src/core/lib/channel/channel_stack_builder.c \
-src/core/lib/channel/client_channel.c \
 src/core/lib/channel/compress_filter.c \
 src/core/lib/channel/connected_channel.c \
 src/core/lib/channel/http_client_filter.c \
 src/core/lib/channel/http_server_filter.c \
 src/core/lib/channel/subchannel_call_holder.c \
-src/core/lib/client_config/client_config.c \
-src/core/lib/client_config/connector.c \
-src/core/lib/client_config/default_initial_connect_string.c \
-src/core/lib/client_config/initial_connect_string.c \
-src/core/lib/client_config/lb_policy.c \
-src/core/lib/client_config/lb_policy_factory.c \
-src/core/lib/client_config/lb_policy_registry.c \
-src/core/lib/client_config/resolver.c \
-src/core/lib/client_config/resolver_factory.c \
-src/core/lib/client_config/resolver_registry.c \
-src/core/lib/client_config/subchannel.c \
-src/core/lib/client_config/subchannel_factory.c \
-src/core/lib/client_config/subchannel_index.c \
-src/core/lib/client_config/uri_parser.c \
 src/core/lib/compression/compression_algorithm.c \
 src/core/lib/compression/message_compress.c \
 src/core/lib/debug/trace.c \
@@ -1048,7 +1049,6 @@ src/core/lib/surface/call.c \
 src/core/lib/surface/call_details.c \
 src/core/lib/surface/call_log_batch.c \
 src/core/lib/surface/channel.c \
-src/core/lib/surface/channel_connectivity.c \
 src/core/lib/surface/channel_init.c \
 src/core/lib/surface/channel_ping.c \
 src/core/lib/surface/channel_stack_type.c \
diff --git a/tools/gource/gource.sh b/tools/gource/gource.sh
index 167a256b848683542d0c69935f744e7f205a4b68..bf6bf0ec890e8729de7db07fe7294c1a9ddde26a 100755
--- a/tools/gource/gource.sh
+++ b/tools/gource/gource.sh
@@ -28,4 +28,4 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-gource -c 4 -s 0.1 --max-file-lag 0.05 --max-files 0 -e 0.01 --hide filenames,dirnames --file-filter 'doc/ref|vsprojects/vcxproj' $*
+gource -c 4 -s 0.1 --max-file-lag 0.05 --max-files 0 -e 0.01 --file-idle-time 1000000 --hide filenames,dirnames $*
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 9690ae042198e4323317af8c42e4e382109b2e07..38110d780e7d359cf1671f2c813e16cc7fdb4999 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -4043,6 +4043,20 @@
       "src/core/ext/census/grpc_plugin.h", 
       "src/core/ext/census/mlog.h", 
       "src/core/ext/census/rpc_metric_id.h", 
+      "src/core/ext/client_config/client_channel.h", 
+      "src/core/ext/client_config/client_config.h", 
+      "src/core/ext/client_config/connector.h", 
+      "src/core/ext/client_config/initial_connect_string.h", 
+      "src/core/ext/client_config/lb_policy.h", 
+      "src/core/ext/client_config/lb_policy_factory.h", 
+      "src/core/ext/client_config/lb_policy_registry.h", 
+      "src/core/ext/client_config/resolver.h", 
+      "src/core/ext/client_config/resolver_factory.h", 
+      "src/core/ext/client_config/resolver_registry.h", 
+      "src/core/ext/client_config/subchannel.h", 
+      "src/core/ext/client_config/subchannel_factory.h", 
+      "src/core/ext/client_config/subchannel_index.h", 
+      "src/core/ext/client_config/uri_parser.h", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
       "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h", 
       "src/core/ext/transport/chttp2/transport/alpn.h", 
@@ -4069,26 +4083,12 @@
       "src/core/lib/channel/channel_args.h", 
       "src/core/lib/channel/channel_stack.h", 
       "src/core/lib/channel/channel_stack_builder.h", 
-      "src/core/lib/channel/client_channel.h", 
       "src/core/lib/channel/compress_filter.h", 
       "src/core/lib/channel/connected_channel.h", 
       "src/core/lib/channel/context.h", 
       "src/core/lib/channel/http_client_filter.h", 
       "src/core/lib/channel/http_server_filter.h", 
       "src/core/lib/channel/subchannel_call_holder.h", 
-      "src/core/lib/client_config/client_config.h", 
-      "src/core/lib/client_config/connector.h", 
-      "src/core/lib/client_config/initial_connect_string.h", 
-      "src/core/lib/client_config/lb_policy.h", 
-      "src/core/lib/client_config/lb_policy_factory.h", 
-      "src/core/lib/client_config/lb_policy_registry.h", 
-      "src/core/lib/client_config/resolver.h", 
-      "src/core/lib/client_config/resolver_factory.h", 
-      "src/core/lib/client_config/resolver_registry.h", 
-      "src/core/lib/client_config/subchannel.h", 
-      "src/core/lib/client_config/subchannel_factory.h", 
-      "src/core/lib/client_config/subchannel_index.h", 
-      "src/core/lib/client_config/uri_parser.h", 
       "src/core/lib/compression/algorithm_metadata.h", 
       "src/core/lib/compression/message_compress.h", 
       "src/core/lib/debug/trace.h", 
@@ -4206,6 +4206,36 @@
       "src/core/ext/census/placeholders.c", 
       "src/core/ext/census/rpc_metric_id.h", 
       "src/core/ext/census/tracing.c", 
+      "src/core/ext/client_config/channel_connectivity.c", 
+      "src/core/ext/client_config/client_channel.c", 
+      "src/core/ext/client_config/client_channel.h", 
+      "src/core/ext/client_config/client_config.c", 
+      "src/core/ext/client_config/client_config.h", 
+      "src/core/ext/client_config/connector.c", 
+      "src/core/ext/client_config/connector.h", 
+      "src/core/ext/client_config/default_initial_connect_string.c", 
+      "src/core/ext/client_config/initial_connect_string.c", 
+      "src/core/ext/client_config/initial_connect_string.h", 
+      "src/core/ext/client_config/lb_policy.c", 
+      "src/core/ext/client_config/lb_policy.h", 
+      "src/core/ext/client_config/lb_policy_factory.c", 
+      "src/core/ext/client_config/lb_policy_factory.h", 
+      "src/core/ext/client_config/lb_policy_registry.c", 
+      "src/core/ext/client_config/lb_policy_registry.h", 
+      "src/core/ext/client_config/resolver.c", 
+      "src/core/ext/client_config/resolver.h", 
+      "src/core/ext/client_config/resolver_factory.c", 
+      "src/core/ext/client_config/resolver_factory.h", 
+      "src/core/ext/client_config/resolver_registry.c", 
+      "src/core/ext/client_config/resolver_registry.h", 
+      "src/core/ext/client_config/subchannel.c", 
+      "src/core/ext/client_config/subchannel.h", 
+      "src/core/ext/client_config/subchannel_factory.c", 
+      "src/core/ext/client_config/subchannel_factory.h", 
+      "src/core/ext/client_config/subchannel_index.c", 
+      "src/core/ext/client_config/subchannel_index.h", 
+      "src/core/ext/client_config/uri_parser.c", 
+      "src/core/ext/client_config/uri_parser.h", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.c", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
       "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c", 
@@ -4266,8 +4296,6 @@
       "src/core/lib/channel/channel_stack.h", 
       "src/core/lib/channel/channel_stack_builder.c", 
       "src/core/lib/channel/channel_stack_builder.h", 
-      "src/core/lib/channel/client_channel.c", 
-      "src/core/lib/channel/client_channel.h", 
       "src/core/lib/channel/compress_filter.c", 
       "src/core/lib/channel/compress_filter.h", 
       "src/core/lib/channel/connected_channel.c", 
@@ -4279,33 +4307,6 @@
       "src/core/lib/channel/http_server_filter.h", 
       "src/core/lib/channel/subchannel_call_holder.c", 
       "src/core/lib/channel/subchannel_call_holder.h", 
-      "src/core/lib/client_config/client_config.c", 
-      "src/core/lib/client_config/client_config.h", 
-      "src/core/lib/client_config/connector.c", 
-      "src/core/lib/client_config/connector.h", 
-      "src/core/lib/client_config/default_initial_connect_string.c", 
-      "src/core/lib/client_config/initial_connect_string.c", 
-      "src/core/lib/client_config/initial_connect_string.h", 
-      "src/core/lib/client_config/lb_policy.c", 
-      "src/core/lib/client_config/lb_policy.h", 
-      "src/core/lib/client_config/lb_policy_factory.c", 
-      "src/core/lib/client_config/lb_policy_factory.h", 
-      "src/core/lib/client_config/lb_policy_registry.c", 
-      "src/core/lib/client_config/lb_policy_registry.h", 
-      "src/core/lib/client_config/resolver.c", 
-      "src/core/lib/client_config/resolver.h", 
-      "src/core/lib/client_config/resolver_factory.c", 
-      "src/core/lib/client_config/resolver_factory.h", 
-      "src/core/lib/client_config/resolver_registry.c", 
-      "src/core/lib/client_config/resolver_registry.h", 
-      "src/core/lib/client_config/subchannel.c", 
-      "src/core/lib/client_config/subchannel.h", 
-      "src/core/lib/client_config/subchannel_factory.c", 
-      "src/core/lib/client_config/subchannel_factory.h", 
-      "src/core/lib/client_config/subchannel_index.c", 
-      "src/core/lib/client_config/subchannel_index.h", 
-      "src/core/lib/client_config/uri_parser.c", 
-      "src/core/lib/client_config/uri_parser.h", 
       "src/core/lib/compression/algorithm_metadata.h", 
       "src/core/lib/compression/compression_algorithm.c", 
       "src/core/lib/compression/message_compress.c", 
@@ -4441,7 +4442,6 @@
       "src/core/lib/surface/call_test_only.h", 
       "src/core/lib/surface/channel.c", 
       "src/core/lib/surface/channel.h", 
-      "src/core/lib/surface/channel_connectivity.c", 
       "src/core/lib/surface/channel_init.c", 
       "src/core/lib/surface/channel_init.h", 
       "src/core/lib/surface/channel_ping.c", 
@@ -4664,6 +4664,20 @@
       "src/core/ext/census/grpc_plugin.h", 
       "src/core/ext/census/mlog.h", 
       "src/core/ext/census/rpc_metric_id.h", 
+      "src/core/ext/client_config/client_channel.h", 
+      "src/core/ext/client_config/client_config.h", 
+      "src/core/ext/client_config/connector.h", 
+      "src/core/ext/client_config/initial_connect_string.h", 
+      "src/core/ext/client_config/lb_policy.h", 
+      "src/core/ext/client_config/lb_policy_factory.h", 
+      "src/core/ext/client_config/lb_policy_registry.h", 
+      "src/core/ext/client_config/resolver.h", 
+      "src/core/ext/client_config/resolver_factory.h", 
+      "src/core/ext/client_config/resolver_registry.h", 
+      "src/core/ext/client_config/subchannel.h", 
+      "src/core/ext/client_config/subchannel_factory.h", 
+      "src/core/ext/client_config/subchannel_index.h", 
+      "src/core/ext/client_config/uri_parser.h", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
       "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h", 
       "src/core/ext/transport/chttp2/transport/alpn.h", 
@@ -4690,26 +4704,12 @@
       "src/core/lib/channel/channel_args.h", 
       "src/core/lib/channel/channel_stack.h", 
       "src/core/lib/channel/channel_stack_builder.h", 
-      "src/core/lib/channel/client_channel.h", 
       "src/core/lib/channel/compress_filter.h", 
       "src/core/lib/channel/connected_channel.h", 
       "src/core/lib/channel/context.h", 
       "src/core/lib/channel/http_client_filter.h", 
       "src/core/lib/channel/http_server_filter.h", 
       "src/core/lib/channel/subchannel_call_holder.h", 
-      "src/core/lib/client_config/client_config.h", 
-      "src/core/lib/client_config/connector.h", 
-      "src/core/lib/client_config/initial_connect_string.h", 
-      "src/core/lib/client_config/lb_policy.h", 
-      "src/core/lib/client_config/lb_policy_factory.h", 
-      "src/core/lib/client_config/lb_policy_registry.h", 
-      "src/core/lib/client_config/resolver.h", 
-      "src/core/lib/client_config/resolver_factory.h", 
-      "src/core/lib/client_config/resolver_registry.h", 
-      "src/core/lib/client_config/subchannel.h", 
-      "src/core/lib/client_config/subchannel_factory.h", 
-      "src/core/lib/client_config/subchannel_index.h", 
-      "src/core/lib/client_config/uri_parser.h", 
       "src/core/lib/compression/algorithm_metadata.h", 
       "src/core/lib/compression/message_compress.h", 
       "src/core/lib/debug/trace.h", 
@@ -4812,6 +4812,36 @@
       "src/core/ext/census/placeholders.c", 
       "src/core/ext/census/rpc_metric_id.h", 
       "src/core/ext/census/tracing.c", 
+      "src/core/ext/client_config/channel_connectivity.c", 
+      "src/core/ext/client_config/client_channel.c", 
+      "src/core/ext/client_config/client_channel.h", 
+      "src/core/ext/client_config/client_config.c", 
+      "src/core/ext/client_config/client_config.h", 
+      "src/core/ext/client_config/connector.c", 
+      "src/core/ext/client_config/connector.h", 
+      "src/core/ext/client_config/default_initial_connect_string.c", 
+      "src/core/ext/client_config/initial_connect_string.c", 
+      "src/core/ext/client_config/initial_connect_string.h", 
+      "src/core/ext/client_config/lb_policy.c", 
+      "src/core/ext/client_config/lb_policy.h", 
+      "src/core/ext/client_config/lb_policy_factory.c", 
+      "src/core/ext/client_config/lb_policy_factory.h", 
+      "src/core/ext/client_config/lb_policy_registry.c", 
+      "src/core/ext/client_config/lb_policy_registry.h", 
+      "src/core/ext/client_config/resolver.c", 
+      "src/core/ext/client_config/resolver.h", 
+      "src/core/ext/client_config/resolver_factory.c", 
+      "src/core/ext/client_config/resolver_factory.h", 
+      "src/core/ext/client_config/resolver_registry.c", 
+      "src/core/ext/client_config/resolver_registry.h", 
+      "src/core/ext/client_config/subchannel.c", 
+      "src/core/ext/client_config/subchannel.h", 
+      "src/core/ext/client_config/subchannel_factory.c", 
+      "src/core/ext/client_config/subchannel_factory.h", 
+      "src/core/ext/client_config/subchannel_index.c", 
+      "src/core/ext/client_config/subchannel_index.h", 
+      "src/core/ext/client_config/uri_parser.c", 
+      "src/core/ext/client_config/uri_parser.h", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.c", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
       "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c", 
@@ -4870,8 +4900,6 @@
       "src/core/lib/channel/channel_stack.h", 
       "src/core/lib/channel/channel_stack_builder.c", 
       "src/core/lib/channel/channel_stack_builder.h", 
-      "src/core/lib/channel/client_channel.c", 
-      "src/core/lib/channel/client_channel.h", 
       "src/core/lib/channel/compress_filter.c", 
       "src/core/lib/channel/compress_filter.h", 
       "src/core/lib/channel/connected_channel.c", 
@@ -4883,33 +4911,6 @@
       "src/core/lib/channel/http_server_filter.h", 
       "src/core/lib/channel/subchannel_call_holder.c", 
       "src/core/lib/channel/subchannel_call_holder.h", 
-      "src/core/lib/client_config/client_config.c", 
-      "src/core/lib/client_config/client_config.h", 
-      "src/core/lib/client_config/connector.c", 
-      "src/core/lib/client_config/connector.h", 
-      "src/core/lib/client_config/default_initial_connect_string.c", 
-      "src/core/lib/client_config/initial_connect_string.c", 
-      "src/core/lib/client_config/initial_connect_string.h", 
-      "src/core/lib/client_config/lb_policy.c", 
-      "src/core/lib/client_config/lb_policy.h", 
-      "src/core/lib/client_config/lb_policy_factory.c", 
-      "src/core/lib/client_config/lb_policy_factory.h", 
-      "src/core/lib/client_config/lb_policy_registry.c", 
-      "src/core/lib/client_config/lb_policy_registry.h", 
-      "src/core/lib/client_config/resolver.c", 
-      "src/core/lib/client_config/resolver.h", 
-      "src/core/lib/client_config/resolver_factory.c", 
-      "src/core/lib/client_config/resolver_factory.h", 
-      "src/core/lib/client_config/resolver_registry.c", 
-      "src/core/lib/client_config/resolver_registry.h", 
-      "src/core/lib/client_config/subchannel.c", 
-      "src/core/lib/client_config/subchannel.h", 
-      "src/core/lib/client_config/subchannel_factory.c", 
-      "src/core/lib/client_config/subchannel_factory.h", 
-      "src/core/lib/client_config/subchannel_index.c", 
-      "src/core/lib/client_config/subchannel_index.h", 
-      "src/core/lib/client_config/uri_parser.c", 
-      "src/core/lib/client_config/uri_parser.h", 
       "src/core/lib/compression/algorithm_metadata.h", 
       "src/core/lib/compression/compression_algorithm.c", 
       "src/core/lib/compression/message_compress.c", 
@@ -5021,7 +5022,6 @@
       "src/core/lib/surface/call_test_only.h", 
       "src/core/lib/surface/channel.c", 
       "src/core/lib/surface/channel.h", 
-      "src/core/lib/surface/channel_connectivity.c", 
       "src/core/lib/surface/channel_init.c", 
       "src/core/lib/surface/channel_init.h", 
       "src/core/lib/surface/channel_ping.c", 
@@ -5068,14 +5068,14 @@
     ], 
     "headers": [
       "include/grpc/grpc_zookeeper.h", 
-      "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+      "src/core/ext/client_config/resolvers/zookeeper_resolver.h"
     ], 
     "language": "c", 
     "name": "grpc_zookeeper", 
     "src": [
       "include/grpc/grpc_zookeeper.h", 
-      "src/core/lib/client_config/resolvers/zookeeper_resolver.c", 
-      "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+      "src/core/ext/client_config/resolvers/zookeeper_resolver.c", 
+      "src/core/ext/client_config/resolvers/zookeeper_resolver.h"
     ], 
     "third_party": false, 
     "type": "lib"
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index ab95af9d103b7d2ff05cf054eb6d9b358df4bcfd..53a110df4b9c05423c2d1b77d0d5b30bcb82473e 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -289,6 +289,20 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\connector.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
@@ -315,26 +329,12 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\connected_channel.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\context.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_client_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_server_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\message_compress.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\debug\trace.h" />
@@ -439,6 +439,38 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\channel_connectivity.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\connector.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\default_initial_connect_string.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
@@ -507,8 +539,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\connected_channel.c">
@@ -519,34 +549,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\default_initial_connect_string.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\compression_algorithm.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\message_compress.c">
@@ -697,8 +699,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_ping.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index ad03c802262b625b2d00ca56c4ca23534ad70a8a..66e0874a91f6eb70c86c75611dc08b6284127f82 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -28,6 +28,54 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
       <Filter>src\core\ext\census</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\channel_connectivity.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\connector.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\default_initial_connect_string.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClCompile>
@@ -130,9 +178,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.c">
-      <Filter>src\core\lib\channel</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
@@ -148,48 +193,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\default_initial_connect_string.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\compression_algorithm.c">
       <Filter>src\core\lib\compression</Filter>
     </ClCompile>
@@ -415,9 +418,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel.c">
       <Filter>src\core\lib\surface</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
-      <Filter>src\core\lib\surface</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
       <Filter>src\core\lib\surface</Filter>
     </ClCompile>
@@ -560,6 +560,48 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
       <Filter>src\core\ext\census</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\connector.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClInclude>
@@ -638,9 +680,6 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.h">
-      <Filter>src\core\lib\channel</Filter>
-    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
@@ -659,45 +698,6 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h">
       <Filter>src\core\lib\compression</Filter>
     </ClInclude>
@@ -977,6 +977,9 @@
     <Filter Include="src\core\ext\census">
       <UniqueIdentifier>{9bf70bd2-f553-11b2-c237-abd148971eea}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\core\ext\client_config">
+      <UniqueIdentifier>{003725f8-37fc-80b5-deba-baae32caf915}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src\core\ext\lb_policy">
       <UniqueIdentifier>{030f00ff-6c54-76c8-12df-37e3008335d1}</UniqueIdentifier>
     </Filter>
@@ -1046,9 +1049,6 @@
     <Filter Include="src\core\lib\channel">
       <UniqueIdentifier>{1931b044-90f3-cd68-b5f8-23be77ca8efc}</UniqueIdentifier>
     </Filter>
-    <Filter Include="src\core\lib\client_config">
-      <UniqueIdentifier>{2f3260de-be57-d18d-6882-61d115baa159}</UniqueIdentifier>
-    </Filter>
     <Filter Include="src\core\lib\compression">
       <UniqueIdentifier>{dadf7fe9-3f15-d431-e4f6-f987b090536c}</UniqueIdentifier>
     </Filter>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 08a0344c1159c4a8b5999bf9f72766f9f861cdbe..9d4fdf8ad25c2d5a44d25e5c3a511bee515219eb 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -279,6 +279,20 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\connector.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
@@ -305,26 +319,12 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\connected_channel.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\context.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_client_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\http_server_filter.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\message_compress.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\debug\trace.h" />
@@ -415,6 +415,38 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\channel_connectivity.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\connector.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\default_initial_connect_string.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
@@ -479,8 +511,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\connected_channel.c">
@@ -491,34 +521,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\default_initial_connect_string.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\compression_algorithm.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\message_compress.c">
@@ -639,8 +641,6 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_ping.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index a2c3aaa42543e91da435714cc18a43da55245a5f..f875519323ed5e3288f236c66d004fa9e0a1f1f2 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -28,6 +28,54 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
       <Filter>src\core\ext\census</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\channel_connectivity.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\connector.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\default_initial_connect_string.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.c">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClCompile>
@@ -124,9 +172,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.c">
-      <Filter>src\core\lib\channel</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
@@ -142,48 +187,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.c">
       <Filter>src\core\lib\channel</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\connector.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\default_initial_connect_string.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.c">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\compression\compression_algorithm.c">
       <Filter>src\core\lib\compression</Filter>
     </ClCompile>
@@ -364,9 +367,6 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel.c">
       <Filter>src\core\lib\surface</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
-      <Filter>src\core\lib\surface</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
       <Filter>src\core\lib\surface</Filter>
     </ClCompile>
@@ -497,6 +497,48 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
       <Filter>src\core\ext\census</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_channel.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\client_config.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\connector.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\initial_connect_string.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\lb_policy_registry.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_factory.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h">
+      <Filter>src\core\ext\client_config</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClInclude>
@@ -575,9 +617,6 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\client_channel.h">
-      <Filter>src\core\lib\channel</Filter>
-    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\compress_filter.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
@@ -596,45 +635,6 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\subchannel_call_holder.h">
       <Filter>src\core\lib\channel</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\uri_parser.h">
-      <Filter>src\core\lib\client_config</Filter>
-    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\compression\algorithm_metadata.h">
       <Filter>src\core\lib\compression</Filter>
     </ClInclude>
@@ -872,6 +872,9 @@
     <Filter Include="src\core\ext\census">
       <UniqueIdentifier>{3f21cd12-b8b9-18f8-8780-e21bbe2285d0}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\core\ext\client_config">
+      <UniqueIdentifier>{25fa8af3-0a05-987c-741f-fa8ff9d65d51}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src\core\ext\lb_policy">
       <UniqueIdentifier>{a23781d2-27e4-7cb0-12cd-59782ecb21ce}</UniqueIdentifier>
     </Filter>
@@ -935,9 +938,6 @@
     <Filter Include="src\core\lib\channel">
       <UniqueIdentifier>{fb964f3d-a59c-a7ba-fee5-6072dbb94a7b}</UniqueIdentifier>
     </Filter>
-    <Filter Include="src\core\lib\client_config">
-      <UniqueIdentifier>{29ca2974-89e4-1a74-3e4d-0d63e2f77566}</UniqueIdentifier>
-    </Filter>
     <Filter Include="src\core\lib\compression">
       <UniqueIdentifier>{b88002e9-185e-4e64-49f5-2d8989ce87f6}</UniqueIdentifier>
     </Filter>