reorganize builder packages
diff --git a/.bazelproject b/.bazelproject
index ec0f427..1574656 100644
--- a/.bazelproject
+++ b/.bazelproject
@@ -17,7 +17,7 @@
   .
 
 targets:
-  //kotlin/workers:for_ide
+  //kotlin/builder:for_ide
   //:all_tests
   //examples/...
 
diff --git a/BUILD b/BUILD
index b5351ab..b8b3116 100644
--- a/BUILD
+++ b/BUILD
@@ -14,7 +14,7 @@
 test_suite(
     name = "all_tests",
     tests = [
-        "//kotlin/workers:unittests",
+        "//kotlin/builder:unittests",
         "//tests/integrationtests"
     ]
 )
\ No newline at end of file
diff --git a/kotlin/workers/BUILD b/kotlin/builder/BUILD
similarity index 82%
rename from kotlin/workers/BUILD
rename to kotlin/builder/BUILD
index 6cfd49f..7ca7573 100644
--- a/kotlin/workers/BUILD
+++ b/kotlin/builder/BUILD
@@ -11,13 +11,13 @@
 # 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.
-load("//kotlin/workers:bootstrap.bzl", "kotlin_worker_lib")
+load("//kotlin/builder:bootstrap.bzl", "kotlin_worker_lib")
 
 kotlin_worker_lib(
     srcs = glob(["src/**/*.kt"]),
     args = ["-jvm-target", "1.8"],
     deps = [
-        "//kotlin/workers/proto",
+        "//kotlin/builder/proto",
         "@com_github_jetbrains_kotlin//:preloader",
         "@io_bazel_rules_kotlin_protobuf_protobuf_java//jar",
         "//third_party:okio",
@@ -25,7 +25,7 @@
         "//third_party:moshi-kotlin"
     ],
     exports = [
-        "//kotlin/workers/proto",
+        "//kotlin/builder/proto",
     ],
     runtime_deps = [
         "@com_github_jetbrains_kotlin//:kotlin-stdlib",
@@ -36,15 +36,15 @@
 )
 
 java_binary(
-    name = "compiler_jvm",
-    main_class = "io.bazel.ruleskotlin.workers.KotlinJvmBuilder",
+    name = "builder",
+    main_class = "io.bazel.kotlin.builder.KotlinBuilder",
     visibility = ["//visibility:public"],
     runtime_deps = [":worker_lib"]
 )
 
 java_test(
     name = "unittests",
-    test_class = "io.bazel.ruleskotlin.workers.compilers.jvm.utils.JdepsParserTest",
+    test_class = "io.bazel.kotlin.builder.mode.jvm.utils.JdepsParserTest",
     srcs = glob(["unittests/**/*.java"]),
     deps = [":worker_lib"],
     size = "small"
diff --git a/kotlin/workers/bootstrap.bzl b/kotlin/builder/bootstrap.bzl
similarity index 100%
rename from kotlin/workers/bootstrap.bzl
rename to kotlin/builder/bootstrap.bzl
diff --git a/kotlin/workers/proto/BUILD b/kotlin/builder/proto/BUILD
similarity index 89%
rename from kotlin/workers/proto/BUILD
rename to kotlin/builder/proto/BUILD
index e5770b9..367160c 100644
--- a/kotlin/workers/proto/BUILD
+++ b/kotlin/builder/proto/BUILD
@@ -18,7 +18,7 @@
         "jars/libworker_protocol_proto-speed.jar"
     ],
     exports = ["@io_bazel_rules_kotlin_protobuf_protobuf_java//jar"],
-    visibility = ["//kotlin/workers:__subpackages__"]
+    visibility = ["//kotlin/builder:__subpackages__"]
 )
 
 filegroup(
@@ -27,5 +27,5 @@
         "jars/libdeps_proto-speed.jar",
         "jars/libworker_protocol_proto-speed.jar"
     ],
-    visibility = ["//kotlin/workers:__subpackages__"]
+    visibility = ["//kotlin/builder:__subpackages__"]
 )
\ No newline at end of file
diff --git a/kotlin/workers/proto/deps.proto b/kotlin/builder/proto/deps.proto
similarity index 100%
rename from kotlin/workers/proto/deps.proto
rename to kotlin/builder/proto/deps.proto
diff --git a/kotlin/workers/proto/jars/libdeps_proto-speed.jar b/kotlin/builder/proto/jars/libdeps_proto-speed.jar
similarity index 100%
rename from kotlin/workers/proto/jars/libdeps_proto-speed.jar
rename to kotlin/builder/proto/jars/libdeps_proto-speed.jar
Binary files differ
diff --git a/kotlin/workers/proto/jars/libworker_protocol_proto-speed.jar b/kotlin/builder/proto/jars/libworker_protocol_proto-speed.jar
similarity index 100%
rename from kotlin/workers/proto/jars/libworker_protocol_proto-speed.jar
rename to kotlin/builder/proto/jars/libworker_protocol_proto-speed.jar
Binary files differ
diff --git a/kotlin/workers/proto/worker_protocol.proto b/kotlin/builder/proto/worker_protocol.proto
similarity index 100%
rename from kotlin/workers/proto/worker_protocol.proto
rename to kotlin/builder/proto/worker_protocol.proto
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/BazelWorker.kt b/kotlin/builder/src/io/bazel/kotlin/builder/BazelWorker.kt
similarity index 97%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/BazelWorker.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/BazelWorker.kt
index 0aa3f75..7834b4b 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/BazelWorker.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/BazelWorker.kt
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 
 import com.google.devtools.build.lib.worker.WorkerProtocol
-import io.bazel.ruleskotlin.workers.utils.rootCause
+import io.bazel.kotlin.builder.utils.rootCause
 import java.io.*
 import java.nio.charset.StandardCharsets.UTF_8
 import java.nio.file.Files
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/BuildAction.kt b/kotlin/builder/src/io/bazel/kotlin/builder/BuildAction.kt
similarity index 95%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/BuildAction.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/BuildAction.kt
index 7805229..87e6b09 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/BuildAction.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/BuildAction.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 
 abstract class BuildAction(@Suppress("unused") val id : String, protected val toolchain: KotlinToolchain) {
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/CommandLineProgram.kt b/kotlin/builder/src/io/bazel/kotlin/builder/CommandLineProgram.kt
similarity index 98%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/CommandLineProgram.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/CommandLineProgram.kt
index 3479d50..082d0fe 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/CommandLineProgram.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/CommandLineProgram.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 /**
  * Interface for command line programs.
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/CompileResult.kt b/kotlin/builder/src/io/bazel/kotlin/builder/CompileResult.kt
similarity index 95%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/CompileResult.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/CompileResult.kt
index 52c30b4..5cf91cf 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/CompileResult.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/CompileResult.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 import java.util.*
 
@@ -34,7 +34,7 @@
         error().ifPresent { e -> throw RuntimeException(message, e) }
     }
 
-    class Meta(id: String) : io.bazel.ruleskotlin.workers.Meta<CompileResult> {
+    class Meta(id: String) : io.bazel.kotlin.builder.Meta<CompileResult> {
         override val id: String = id
 
         fun run(ctx: Context, op: (Context) -> Int): CompileResult {
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Context.kt b/kotlin/builder/src/io/bazel/kotlin/builder/Context.kt
similarity index 96%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/Context.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/Context.kt
index eba0f6c..9dbc1c7 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Context.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/Context.kt
@@ -15,7 +15,7 @@
  */
 @file:Suppress("UNCHECKED_CAST")
 
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 import java.util.stream.Stream
 
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Flag.kt b/kotlin/builder/src/io/bazel/kotlin/builder/Flag.kt
similarity index 98%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/Flag.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/Flag.kt
index 633f17b..416ffcc 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Flag.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/Flag.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 import com.squareup.moshi.JsonAdapter
 import com.squareup.moshi.KotlinJsonAdapterFactory
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinJvmBuilder.kt b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinBuilder.kt
similarity index 88%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinJvmBuilder.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/KotlinBuilder.kt
index 1244a96..244686b 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinJvmBuilder.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinBuilder.kt
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 
-import io.bazel.ruleskotlin.workers.compilers.jvm.actions.*
-import io.bazel.ruleskotlin.workers.model.Flags
+import io.bazel.kotlin.builder.mode.jvm.actions.*
+import io.bazel.kotlin.builder.model.Flags
 import java.io.IOException
 
 /**
  * Bazel Kotlin Compiler worker.
  */
-object KotlinJvmBuilder : CommandLineProgram.Base(
+object KotlinBuilder : CommandLineProgram.Base(
         flags = Flags::class.flagsByName()
 ) {
     override val toolchain: KotlinToolchain = try {
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinToolchain.kt b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
similarity index 95%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinToolchain.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
index 0e948e0..cf68e6f 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/KotlinToolchain.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/KotlinToolchain.kt
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
-import io.bazel.ruleskotlin.workers.utils.resolveVerified
-import io.bazel.ruleskotlin.workers.utils.verifiedRelativeFiles
+import io.bazel.kotlin.builder.utils.resolveVerified
+import io.bazel.kotlin.builder.utils.verifiedRelativeFiles
 import org.jetbrains.kotlin.preloading.ClassPreloadingUtils
 import org.jetbrains.kotlin.preloading.Preloader
 import java.io.File
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Meta.kt b/kotlin/builder/src/io/bazel/kotlin/builder/Meta.kt
similarity index 97%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/Meta.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/Meta.kt
index fd76c8f..dd089bb 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/Meta.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/Meta.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers
+package io.bazel.kotlin.builder
 
 interface Meta<T : Any> {
     val id: String
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/CreateOutputJar.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/CreateOutputJar.kt
similarity index 80%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/CreateOutputJar.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/CreateOutputJar.kt
index 17d1157..7075633 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/CreateOutputJar.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/CreateOutputJar.kt
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
-import io.bazel.ruleskotlin.workers.model.CompileDirectories
-import io.bazel.ruleskotlin.workers.model.Flags
-import io.bazel.ruleskotlin.workers.model.PluginDescriptors
-import io.bazel.ruleskotlin.workers.utils.executeAndAwaitSuccess
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
+import io.bazel.kotlin.builder.model.CompileDirectories
+import io.bazel.kotlin.builder.model.Flags
+import io.bazel.kotlin.builder.model.PluginDescriptors
+import io.bazel.kotlin.builder.utils.executeAndAwaitSuccess
 import java.nio.file.Path
 
 /**
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/GenerateJdepsFile.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/GenerateJdepsFile.kt
similarity index 75%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/GenerateJdepsFile.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/GenerateJdepsFile.kt
index ca13558..6229d20 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/GenerateJdepsFile.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/GenerateJdepsFile.kt
@@ -13,19 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
 import com.google.devtools.build.lib.view.proto.Deps
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
-import io.bazel.ruleskotlin.workers.compilers.jvm.utils.JdepsParser
-import io.bazel.ruleskotlin.workers.model.Flags.CLASSPATH
-import io.bazel.ruleskotlin.workers.model.Flags.LABEL
-import io.bazel.ruleskotlin.workers.model.Flags.OUTPUT_CLASSJAR
-import io.bazel.ruleskotlin.workers.model.Flags.OUTPUT_JDEPS
-import io.bazel.ruleskotlin.workers.utils.executeAndWaitOutput
-import io.bazel.ruleskotlin.workers.utils.rootCause
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
+import io.bazel.kotlin.builder.mode.jvm.utils.JdepsParser
+import io.bazel.kotlin.builder.model.Flags.CLASSPATH
+import io.bazel.kotlin.builder.model.Flags.LABEL
+import io.bazel.kotlin.builder.model.Flags.OUTPUT_CLASSJAR
+import io.bazel.kotlin.builder.model.Flags.OUTPUT_JDEPS
+import io.bazel.kotlin.builder.utils.executeAndWaitOutput
+import io.bazel.kotlin.builder.utils.rootCause
 import java.io.FileOutputStream
 import java.nio.file.Files
 import java.nio.file.Paths
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/Initialize.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/Initialize.kt
similarity index 89%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/Initialize.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/Initialize.kt
index 20d2ee1..8811fa2 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/Initialize.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/Initialize.kt
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
 
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
-import io.bazel.ruleskotlin.workers.utils.PluginArgs
-import io.bazel.ruleskotlin.workers.model.*
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
+import io.bazel.kotlin.builder.utils.PluginArgs
+import io.bazel.kotlin.builder.model.*
 import java.nio.file.Files
 import java.nio.file.Paths
 
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/JavaMainCompile.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/JavaMainCompile.kt
similarity index 76%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/JavaMainCompile.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/JavaMainCompile.kt
index eb016a6..f5483b6 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/JavaMainCompile.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/JavaMainCompile.kt
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.CompileResult
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
-import io.bazel.ruleskotlin.workers.utils.annotationProcessingGeneratedJavaSources
-import io.bazel.ruleskotlin.workers.model.CompileDirectories
-import io.bazel.ruleskotlin.workers.model.Flags
-import io.bazel.ruleskotlin.workers.model.Metas
-import io.bazel.ruleskotlin.workers.utils.executeAndAwait
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.CompileResult
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
+import io.bazel.kotlin.builder.utils.annotationProcessingGeneratedJavaSources
+import io.bazel.kotlin.builder.model.CompileDirectories
+import io.bazel.kotlin.builder.model.Flags
+import io.bazel.kotlin.builder.model.Metas
+import io.bazel.kotlin.builder.utils.executeAndAwait
 
 /**
  * Simple java compile action that invokes javac directly and simply.
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/KotlinMainCompile.kt
similarity index 85%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/KotlinMainCompile.kt
index de78269..76e2b22 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/KotlinMainCompile.kt
@@ -13,21 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
 
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.CompileResult
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
-import io.bazel.ruleskotlin.workers.compilers.jvm.utils.KotlinCompilerOutputProcessor
-import io.bazel.ruleskotlin.workers.model.CompileDirectories
-import io.bazel.ruleskotlin.workers.model.CompilePluginConfig
-import io.bazel.ruleskotlin.workers.model.Flags
-import io.bazel.ruleskotlin.workers.model.Metas
-import io.bazel.ruleskotlin.workers.utils.addAll
-import io.bazel.ruleskotlin.workers.utils.annotationProcessingGeneratedJavaSources
-import io.bazel.ruleskotlin.workers.utils.moduleName
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.CompileResult
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
+import io.bazel.kotlin.builder.mode.jvm.utils.KotlinCompilerOutputProcessor
+import io.bazel.kotlin.builder.model.CompileDirectories
+import io.bazel.kotlin.builder.model.CompilePluginConfig
+import io.bazel.kotlin.builder.model.Flags
+import io.bazel.kotlin.builder.model.Metas
+import io.bazel.kotlin.builder.utils.addAll
+import io.bazel.kotlin.builder.utils.annotationProcessingGeneratedJavaSources
+import io.bazel.kotlin.builder.utils.moduleName
 
 // The Kotlin compiler is not suited for javac compilation as of 1.2.21. The errors are not conveyed directly and would need to be preprocessed, also javac
 // invocations Configured via Kotlin use eager analysis in some corner cases this can result in classpath exceptions from the Java Compiler..
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/ProcessCompileResult.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/ProcessCompileResult.kt
similarity index 90%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/ProcessCompileResult.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/ProcessCompileResult.kt
index 5165880..ae183ac 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/ProcessCompileResult.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/actions/ProcessCompileResult.kt
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.actions
+package io.bazel.kotlin.builder.mode.jvm.actions
 
 
-import io.bazel.ruleskotlin.workers.BuildAction
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain
+import io.bazel.kotlin.builder.BuildAction
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain
 
 
 /**
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParser.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/JdepsParser.kt
similarity index 94%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParser.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/JdepsParser.kt
index dc835dd..8854fc3 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParser.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/JdepsParser.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.utils
+package io.bazel.kotlin.builder.mode.jvm.utils
 
 import com.google.devtools.build.lib.view.proto.Deps
 import java.nio.file.Path
@@ -65,7 +65,7 @@
     private fun processLine(line: String) {
         val trimmedLine = line.trim { it <= ' ' }
         when (mode) {
-            JdepsParser.Mode.COLLECT_DEPS -> if (!line.startsWith(" ")) {
+            Mode.COLLECT_DEPS -> if (!line.startsWith(" ")) {
                 val parts = line.split(" -> ".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
                 if (parts.size == 2) {
                     if (parts[0] != filename) {
@@ -77,21 +77,21 @@
                 mode = Mode.DETERMINE_JDK
                 processLine(line)
             }
-            JdepsParser.Mode.DETERMINE_JDK -> {
+            Mode.DETERMINE_JDK -> {
                 mode = Mode.COLLECT_PACKAGES_JDK8
                 if (!line.endsWith(packageSuffix)) {
                     mode = Mode.COLLECT_PACKAGES_JDK9
                 }
                 processLine(line)
             }
-            JdepsParser.Mode.COLLECT_PACKAGES_JDK8 -> when {
+            Mode.COLLECT_PACKAGES_JDK8 -> when {
                 trimmedLine.endsWith(packageSuffix) -> packages.add(trimmedLine.substring(0, trimmedLine.length - packageSuffix.length))
                 trimmedLine.startsWith("-> ") -> {
                     // ignore package detail lines, in the jdk8 format these start with arrows.
                 }
                 else -> throw RuntimeException("unexpected line while collecting packages: " + line)
             }
-            JdepsParser.Mode.COLLECT_PACKAGES_JDK9 -> {
+            Mode.COLLECT_PACKAGES_JDK9 -> {
                 val pkg = trimmedLine.split("\\s+".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
                 packages.add(pkg[0])
             }
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/KotlinCompilerOutputProcessor.kt b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/KotlinCompilerOutputProcessor.kt
similarity index 97%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/KotlinCompilerOutputProcessor.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/KotlinCompilerOutputProcessor.kt
index 899fbc8..6f0cc25 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/utils/KotlinCompilerOutputProcessor.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/mode/jvm/utils/KotlinCompilerOutputProcessor.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.utils
+package io.bazel.kotlin.builder.mode.jvm.utils
 
 import java.io.ByteArrayInputStream
 import java.io.ByteArrayOutputStream
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/CompileState.kt b/kotlin/builder/src/io/bazel/kotlin/builder/model/CompileState.kt
similarity index 95%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/model/CompileState.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/model/CompileState.kt
index 05078ae..932fb32 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/CompileState.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/model/CompileState.kt
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.model
+package io.bazel.kotlin.builder.model
 
-import io.bazel.ruleskotlin.workers.MandatoryMeta
+import io.bazel.kotlin.builder.MandatoryMeta
 import java.nio.file.Files
 import java.nio.file.Path
 
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt b/kotlin/builder/src/io/bazel/kotlin/builder/model/Flags.kt
similarity index 95%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/model/Flags.kt
index 5b2461e..209be6c 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/model/Flags.kt
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.model
+package io.bazel.kotlin.builder.model
 
-import io.bazel.ruleskotlin.workers.Flag
+import io.bazel.kotlin.builder.Flag
 
 /**
  * The flags supported by the worker.
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/JavaBuilderFlags.kt b/kotlin/builder/src/io/bazel/kotlin/builder/model/JavaBuilderFlags.kt
similarity index 97%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/model/JavaBuilderFlags.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/model/JavaBuilderFlags.kt
index 54cfebf..c44a85e 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/JavaBuilderFlags.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/model/JavaBuilderFlags.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.model
+package io.bazel.kotlin.builder.model
 
 /**
  * Declares the flags used by the java builder.
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Metas.kt b/kotlin/builder/src/io/bazel/kotlin/builder/model/Metas.kt
similarity index 92%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Metas.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/model/Metas.kt
index 5c59ecd..e5c5f4c 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Metas.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/model/Metas.kt
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.model
+package io.bazel.kotlin.builder.model
 
-import io.bazel.ruleskotlin.workers.MandatoryMeta
+import io.bazel.kotlin.builder.MandatoryMeta
 
 /**
  * Listin of Meta keys that don't make sense as companion objects.
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/PluginDescriptors.kt b/kotlin/builder/src/io/bazel/kotlin/builder/model/PluginDescriptors.kt
similarity index 93%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/model/PluginDescriptors.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/model/PluginDescriptors.kt
index 03f765a..9b2b66c 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/PluginDescriptors.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/model/PluginDescriptors.kt
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.model
+package io.bazel.kotlin.builder.model
 
 import com.squareup.moshi.Json
-import io.bazel.ruleskotlin.workers.Meta
+import io.bazel.kotlin.builder.Meta
 
 data class AnnotationProcessor(
         @Json(name = "processor_class") val processorClass: String,
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/IOUtils.kt b/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
similarity index 98%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/IOUtils.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
index f743403..fd52c42 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/IOUtils.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/utils/IOUtils.kt
@@ -15,7 +15,7 @@
  */
 @file:JvmName("IOUtils")
 
-package io.bazel.ruleskotlin.workers.utils
+package io.bazel.kotlin.builder.utils
 
 import java.io.*
 import java.nio.file.Path
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt b/kotlin/builder/src/io/bazel/kotlin/builder/utils/MiscUtils.kt
similarity index 84%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/utils/MiscUtils.kt
index 3e76387..9ed9b85 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/utils/MiscUtils.kt
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-package io.bazel.ruleskotlin.workers.utils
+package io.bazel.kotlin.builder.utils
 
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.model.Flags
-import io.bazel.ruleskotlin.workers.model.Metas
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.model.Flags
+import io.bazel.kotlin.builder.model.Metas
 
 fun <T, C: MutableCollection<T>> C.addAll(vararg entries: T): C = this.also { addAll(entries) }
 
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/PluginUtils.kt b/kotlin/builder/src/io/bazel/kotlin/builder/utils/PluginUtils.kt
similarity index 91%
rename from kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/PluginUtils.kt
rename to kotlin/builder/src/io/bazel/kotlin/builder/utils/PluginUtils.kt
index a3a43b5..27f4094 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/PluginUtils.kt
+++ b/kotlin/builder/src/io/bazel/kotlin/builder/utils/PluginUtils.kt
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.utils
+package io.bazel.kotlin.builder.utils
 
-import io.bazel.ruleskotlin.workers.Context
-import io.bazel.ruleskotlin.workers.KotlinToolchain.CompilerPlugin
-import io.bazel.ruleskotlin.workers.model.CompileDirectories
-import io.bazel.ruleskotlin.workers.model.CompilePluginConfig
-import io.bazel.ruleskotlin.workers.model.PluginDescriptors
+import io.bazel.kotlin.builder.Context
+import io.bazel.kotlin.builder.KotlinToolchain.CompilerPlugin
+import io.bazel.kotlin.builder.model.CompileDirectories
+import io.bazel.kotlin.builder.model.CompilePluginConfig
+import io.bazel.kotlin.builder.model.PluginDescriptors
 import java.io.ByteArrayOutputStream
 import java.io.ObjectOutputStream
 import java.util.*
diff --git a/kotlin/workers/unittests/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParserTest.java b/kotlin/builder/unittests/io/bazel/kotlin/workers/mode/jvm/utils/JdepsParserTest.java
similarity index 98%
rename from kotlin/workers/unittests/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParserTest.java
rename to kotlin/builder/unittests/io/bazel/kotlin/workers/mode/jvm/utils/JdepsParserTest.java
index ec49d86..6f43e6e 100644
--- a/kotlin/workers/unittests/io/bazel/ruleskotlin/workers/compilers/jvm/utils/JdepsParserTest.java
+++ b/kotlin/builder/unittests/io/bazel/kotlin/workers/mode/jvm/utils/JdepsParserTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package io.bazel.ruleskotlin.workers.compilers.jvm.utils;
+package io.bazel.kotlin.builder.mode.jvm.utils;
 
 import com.google.devtools.build.lib.view.proto.Deps;
 import org.junit.Assert;
diff --git a/kotlin/kotlin.bzl b/kotlin/kotlin.bzl
index d624907..346db07 100644
--- a/kotlin/kotlin.bzl
+++ b/kotlin/kotlin.bzl
@@ -152,7 +152,7 @@
         cfg = "host",
     ),
     "_kotlinw": attr.label(
-        default = Label("//kotlin/workers:compiler_jvm"),
+        default = Label("//kotlin/builder"),
         executable = True,
         cfg = "host",
     ),