diff --git a/kotlin/builder/BUILD b/kotlin/builder/BUILD
index a8f2e6d..a268bbf 100644
--- a/kotlin/builder/BUILD
+++ b/kotlin/builder/BUILD
@@ -12,72 +12,113 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 load("//kotlin/builder:bootstrap.bzl", "kotlin_worker_lib")
+load("//kotlin:kotlin.bzl", "kt_jvm_library")
 
+# Should not be linked against to allow the compiler workspace to be switched out when toolchains support this.
+_COMPILER_DEPS = [
+    "@com_github_jetbrains_kotlin//:compiler",
+    "@com_github_jetbrains_kotlin//:kotlin-annotation-processing",
+    "@com_github_jetbrains_kotlin//:kotlin-script-runtime",
+]
+
+# Common depset for the builder.
+_COMMON_DEPS = [
+    "//kotlin/builder/proto",
+    "@com_github_jetbrains_kotlin//:preloader",
+    "@io_bazel_rules_kotlin_com_google_protobuf_protobuf_java//jar",
+    "@io_bazel_rules_kotlin_com_google_protobuf_protobuf_java_util//jar",
+    "@io_bazel_rules_kotlin_com_google_inject_guice//jar",
+    "@io_bazel_rules_kotlin_aopalliance_aopalliance//jar",
+    "@io_bazel_rules_kotlin_javax_inject_javax_inject//jar",
+    "@io_bazel_rules_kotlin_com_google_guava_guava//jar",
+    "@io_bazel_rules_kotlin_com_google_code_gson_gson//jar",
+    "@com_github_jetbrains_kotlin//:kotlin-reflect",
+    "@com_github_jetbrains_kotlin//:kotlin-stdlib",
+    "@com_github_jetbrains_kotlin//:kotlin-stdlib-jdk7",
+    "@com_github_jetbrains_kotlin//:kotlin-stdlib-jdk8",
+]
+
+# The compiler library, this is co-located in the kotlin compiler classloader.
 kotlin_worker_lib(
-    srcs = glob(["src/**/*.kt"]),
-    args = ["-jvm-target", "1.8"],
-    deps = [
-        "//kotlin/builder/proto",
-        "@com_github_jetbrains_kotlin//:preloader",
-        "@io_bazel_rules_kotlin_com_google_protobuf_protobuf_java//jar",
-        "@io_bazel_rules_kotlin_com_google_protobuf_protobuf_java_util//jar",
-        "@io_bazel_rules_kotlin_com_google_inject_guice//jar",
-        "@io_bazel_rules_kotlin_aopalliance_aopalliance//jar",
-        "@io_bazel_rules_kotlin_javax_inject_javax_inject//jar",
-        "@io_bazel_rules_kotlin_com_google_guava_guava//jar",
-        "@io_bazel_rules_kotlin_com_google_code_gson_gson//jar",
+    name = "compiler_lib",
+    srcs = glob(["src/io/bazel/kotlin/compiler/**/*.kt"]),
+    args = [
+        "-jvm-target","1.8",
     ],
-    exports = ["//kotlin/builder/proto"],
-    runtime_deps = [
-        "@com_github_jetbrains_kotlin//:kotlin-stdlib",
-        "@com_github_jetbrains_kotlin//:kotlin-stdlib-jdk7",
-        "@com_github_jetbrains_kotlin//:kotlin-stdlib-jdk8",
-        "@com_github_jetbrains_kotlin//:kotlin-reflect"
-    ]
+    neverlink_deps = _COMPILER_DEPS,
 )
 
+# The builder library.
+kotlin_worker_lib(
+    name = "builder_lib",
+    srcs = glob(["src/io/bazel/kotlin/builder/**/*.kt"]),
+    args = [
+        "-jvm-target","1.8",
+    ],
+    deps = _COMMON_DEPS
+)
+
+# This is a hack so that the builder and compiler sources can be picked up by intellij.
+kt_jvm_library(
+    name = "for_ide",
+    srcs = glob(["src/**/*.kt"]),
+    visibility = ["//visibility:private"],
+    deps = _COMMON_DEPS + _COMPILER_DEPS,
+)
+
+# The builder artifact.
 java_binary(
     name = "builder",
     main_class = "io.bazel.kotlin.builder.KotlinBuilder",
     visibility = ["//visibility:public"],
-    runtime_deps = [":worker_lib"]
-)
-
-filegroup(
-    name = "builder_runfiles",
-    srcs = [
-        "@com_github_jetbrains_kotlin//:kotlin-annotation-processing",
-        "@com_github_jetbrains_kotlin//:kotlin-script-runtime",
-        "@com_github_jetbrains_kotlin//:compiler",
-    ],
-    visibility = ["//visibility:private"]
-)
-
-java_test(
-    name = "integrationtests",
-    test_class = "io.bazel.kotlin.builder.KotlinBuilderTestSuite",
-    srcs = glob(["integrationtests/*.java"]),
-    deps = [
-        "//kotlin/builder:worker_lib",
-        "//kotlin/builder/proto:proto",
-        "//third_party/jvm/junit",
-        "//third_party/jvm/com/google/protobuf:protobuf_java",
-        "//third_party/jvm/com/google/guava",
-        "//third_party/jvm/com/google/inject:guice",
-        "//third_party/jvm/com/google/truth"
+    runtime_deps = [
+        ":builder_lib",
     ],
     data = [
-        ":builder_runfiles"
+        ":compiler_lib.jar"
+    ]
+)
+
+# This is defined so that tests can wire up a builder.
+filegroup(
+    name = "builder_runfiles_for_tests",
+    srcs = [
+        ":compiler_lib.jar",
+        "@com_github_jetbrains_kotlin//:compiler",
+        "@com_github_jetbrains_kotlin//:kotlin-annotation-processing",
+        "@com_github_jetbrains_kotlin//:kotlin-script-runtime",
+    ],
+    testonly = 1,
+    visibility = ["//visibility:private"],
+)
+
+java_library(
+    name = "builder_for_tests",
+    testonly = 1,
+    exports = _COMMON_DEPS + [
+        ":builder_lib",
+        ":compiler_lib",
+    ],
+    data = [
+        "builder_runfiles_for_tests"
     ]
 )
 
 java_test(
-    name = "unittests",
-    test_class = "io.bazel.kotlin.builder.mode.jvm.utils.JdepsParserTest",
-    srcs = glob(["unittests/**/*.java"]),
+    name = "integrationtests",
+    srcs = glob(["integrationtests/*.java"]),
+    test_class = "io.bazel.kotlin.builder.KotlinBuilderTestSuite",
     deps = [
-        ":worker_lib",
-        "//third_party/jvm/com/google/protobuf:protobuf_java",
+        "//kotlin/builder:builder_for_tests",
+        "//third_party/jvm/com/google/truth",
+        "//third_party/jvm/junit",
     ],
-    size = "small"
-)
\ No newline at end of file
+)
+
+java_test(
+    name = "unittests",
+    size = "small",
+    srcs = glob(["unittests/**/*.java"]),
+    test_class = "io.bazel.kotlin.builder.mode.jvm.utils.JdepsParserTest",
+    deps = [":builder_for_tests"],
+)
diff --git a/kotlin/builder/bootstrap.bzl b/kotlin/builder/bootstrap.bzl
index 28cdfe4..9772b81 100644
--- a/kotlin/builder/bootstrap.bzl
+++ b/kotlin/builder/bootstrap.bzl
@@ -40,25 +40,16 @@
 JAVA_HOME=external/local_jdk ./$(location @com_github_jetbrains_kotlin//:kotlinc) -cp $${CP} -d $(OUTS) $${ARGS} $(SRCS)
 """) % (name,args)
 
-def kotlin_worker_lib(srcs =[], args = [], deps=[], runtime_deps=[], exports=[]):
-    name = "worker"
+def kotlin_worker_lib(name, srcs, args = [], deps=[], runtime_deps=[], neverlink_deps=[]):
     dep_label = name + "_deps"
     jar_file_label =  name + "_file"
     jar_name = name+".jar"
-    libary_label =  name + "_lib"
+    jar_sources_file_label = jar_file_label + "_sources"
+    jar_sources_name = name + "-sources.jar"
 
-    # Dummy target loaded by `kotlin_library` so intellij can understand the sources.
-    _for_ide(
-        name = "for_ide",
-        srcs = srcs,
-        deps = deps,
-        runtime_deps = runtime_deps,
-        exports = exports,
-        visibility=["//visibility:private"],
-    )
     native.filegroup(
         name = dep_label,
-        srcs = deps,
+        srcs = deps + neverlink_deps,
         visibility = ["//visibility:private"]
     )
     native.genrule(
@@ -74,21 +65,26 @@
         cmd = _gen_cmd(dep_label, " ".join(args)),
         visibility = ["//visibility:private"]
     )
+    native.genrule(
+        name = jar_sources_file_label,
+        tools = [
+            "@local_jdk//:jdk",
+        ],
+        srcs = srcs,
+        outs = [jar_sources_name],
+        cmd = "jar cf $(OUTS) $(SRCS)",
+        visibility = ["//visibility:private"]
+    )
 
     # Use kt_jvm_import so that ijarification doesn't ruin the worker lib.
     kt_jvm_import(
-        name = libary_label + "_kt",
+        name = name,
         jars = [jar_name],
-        tags = ["no-ide"]
-    )
-
-    native.java_library(
-        name = libary_label,
-        exports = exports + [libary_label + "_kt"],
-        runtime_deps = (depset(runtime_deps) + exports + deps).to_list(),
+        srcjar = jar_sources_name,
+        tags = ["no-ide"],
+        runtime_deps = (depset(runtime_deps) + deps).to_list(),
         visibility = [
             "//tests:__subpackages__",
             "//kotlin:__subpackages__"
-        ],
-        tags = ["no-ide"]
+        ]
     )
\ No newline at end of file
diff --git a/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
index 197810e..7219f43 100644
--- a/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
@@ -48,11 +48,14 @@
             Guice.createInjector(
                 object : AbstractModule() {
                     override fun configure() {
+                        val builderRunfiles=Paths.get(System.getenv("JAVA_RUNFILES"))
                         bind(PrintStream::class.java).toProvider(outputProvider)
                         install(
                             KotlinToolchain.TCModule(
                                 javaHome = Paths.get("external", "local_jdk"),
-                                kotlinHome = Paths.get("external", "com_github_jetbrains_kotlin")
+                                kotlinHome = Paths.get("external", "com_github_jetbrains_kotlin"),
+                                bazelKotlinCompilersJar = builderRunfiles.resolveVerified(
+                                    "io_bazel_rules_kotlin", "kotlin", "builder","compiler_lib.jar")
                             )
                         )
                     }
@@ -87,10 +90,12 @@
     private class TCModule constructor(
         javaHome: Path,
         kotlinHome: Path,
+        bazelKotlinCompilersJar: File,
         kotlinLibraryDirectory: Path = kotlinHome.resolveVerified("lib").toPath(),
         kapt3Jar: File = kotlinLibraryDirectory.resolveVerified("kotlin-annotation-processing.jar"),
         classloader: ClassLoader = ClassPreloadingUtils.preloadClasses(
             mutableListOf<File>().let {
+                it.add(bazelKotlinCompilersJar)
                 it.addAll(kotlinLibraryDirectory.verifiedRelativeFiles(Paths.get("kotlin-compiler.jar")))
                 it.addAll(javaHome.verifiedRelativeFiles(Paths.get("lib", "tools.jar")))
                 it.toList()
@@ -129,7 +134,7 @@
         }
 
         private val kotlincInvoker = object : KotlincInvoker {
-            val compilerClass = classloader.loadClass("org.jetbrains.kotlin.cli.jvm.K2JVMCompiler")
+            val compilerClass = classloader.loadClass("io.bazel.kotlin.compiler.BazelK2JVMCompiler")
             val exitCodeClass = classloader.loadClass("org.jetbrains.kotlin.cli.common.ExitCode")
 
             val compiler = compilerClass.newInstance()
diff --git a/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt b/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
index 1ef89b4..e68f6e5 100644
--- a/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
@@ -106,7 +106,7 @@
  */
 fun Path.verifiedRelativeFiles(vararg paths: Path): List<File> = paths.map { relative -> resolve(relative).verified() }
 
-private fun Path.verified(): File = this.toFile().also { check(it.exists()) { "file did not exist: $this" } }
+fun Path.verified(): File = this.toFile().also { check(it.exists()) { "file did not exist: $this" } }
 
 
 val Throwable.rootCause: Throwable
diff --git a/kotlin/builder/src/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt b/kotlin/builder/src/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt
new file mode 100644
index 0000000..b42af31
--- /dev/null
+++ b/kotlin/builder/src/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2018 The Bazel Authors. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package io.bazel.kotlin.compiler
+
+import org.jetbrains.kotlin.cli.common.ExitCode
+import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
+
+class BazelK2JVMCompiler(private val delegate: K2JVMCompiler = K2JVMCompiler()) {
+    fun exec(errStream: java.io.PrintStream, vararg args: kotlin.String): ExitCode {
+        return delegate.exec(errStream, *args)
+    }
+}
\ No newline at end of file
diff --git a/kotlin/kotlin.bzl b/kotlin/kotlin.bzl
index 0935acf..e8b3c5d 100644
--- a/kotlin/kotlin.bzl
+++ b/kotlin/kotlin.bzl
@@ -241,6 +241,8 @@
 _common_outputs = dict(
     jar = "%{name}.jar",
     jdeps = "%{name}.jdeps",
+    # The params file, declared here so that validate it can be validated for testing.
+    jar_2_params = "%{name}.jar-2.params",
     srcjar = "%{name}-sources.jar",
 )
 
