diff --git a/build.gradle.kts b/build.gradle.kts
index e64a125..b4319d3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -102,7 +102,7 @@
 
 if (!project.hasProperty("versions.kotlin-native")) {
     // BEWARE! Bumping this version doesn't take an immediate effect on TeamCity: KTI-1107
-    extra["versions.kotlin-native"] = "2.0.0-dev-5387"
+    extra["versions.kotlin-native"] = "2.0.0-Beta1"
 }
 
 val irCompilerModules = arrayOf(
diff --git a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
index 9f36281..ce5f057 100644
--- a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
+++ b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
@@ -79,5 +79,5 @@
 // this class is ignored during classpath normalization when considering whether to recompile dependencies in Kotlin build
 private object KotlinVersionCurrentValue {
     @kotlin.jvm.JvmStatic
-    fun get(): KotlinVersion = KotlinVersion(2, 0, 255) // value is written here automatically during build
+    fun get(): KotlinVersion = KotlinVersion(2, 0, 0) // value is written here automatically during build
 }
diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
index e9a1451..e93170e 100644
--- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
@@ -16,6 +16,7 @@
 import org.gradle.api.file.FileCollection
 import org.gradle.api.provider.Provider
 import org.gradle.api.publish.maven.MavenPublication
+import org.gradle.api.tasks.TaskProvider
 import org.jetbrains.kotlin.gradle.PRESETS_API_IS_DEPRECATED_MESSAGE
 import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
 import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
@@ -71,7 +72,7 @@
     fun composeCopyResources(resourceDirectoryName: Provider<Path>, resourceIdentity: Provider<Path>, taskName: String)
 
     @InternalKotlinGradlePluginApi
-    fun composeResolveResources(): FileCollection
+    fun composeResolveResources(): TaskProvider<*>
 }
 
 interface KotlinTargetWithTests<E : KotlinExecution.ExecutionSource, T : KotlinTargetTestRun<E>> : KotlinTarget {
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
index a8b7462..dd08e42 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
@@ -5,6 +5,7 @@
 package org.jetbrains.kotlin.gradle.plugin.mpp
 
 import org.gradle.api.Action
+import org.gradle.api.DefaultTask
 import org.gradle.api.DomainObjectSet
 import org.gradle.api.Project
 import org.gradle.api.artifacts.ConfigurablePublishArtifact
@@ -13,6 +14,7 @@
 import org.gradle.api.provider.Provider
 import org.gradle.api.publish.maven.MavenPublication
 import org.gradle.api.tasks.Copy
+import org.gradle.api.tasks.TaskProvider
 import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
 import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
 import org.jetbrains.kotlin.gradle.PRESETS_API_IS_DEPRECATED_MESSAGE
@@ -22,7 +24,9 @@
 import org.jetbrains.kotlin.gradle.plugin.*
 import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsageContext.MavenScope.COMPILE
 import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsageContext.MavenScope.RUNTIME
+import org.jetbrains.kotlin.gradle.tasks.dependsOn
 import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
+import org.jetbrains.kotlin.gradle.tasks.registerTask
 import org.jetbrains.kotlin.gradle.utils.*
 import org.jetbrains.kotlin.tooling.core.MutableExtras
 import org.jetbrains.kotlin.tooling.core.mutableExtrasOf
@@ -94,13 +98,13 @@
                 artifactNameAppendix = dashSeparatedName(targetName.toLowerCaseAsciiOnly())
             )
         )
-
-        // FIXME: Is this needed here or only in the overrides?
-        usageContexts.add(
-            createResourcesSoftwareComponentVariant(
-                mainCompilation
-            )
-        )
+//
+//        // FIXME: Is this needed here or only in the overrides?
+//        usageContexts.add(
+//            createResourcesSoftwareComponentVariant(
+//                mainCompilation
+//            )
+//        )
 
         val result = createKotlinVariant(componentName, mainCompilation, usageContexts)
 
@@ -224,7 +228,7 @@
         composeResourceDirectories.add(ComposeResources(resourceDirectoryName, resourceIdentity, taskName))
     }
 
-    override fun composeResolveResources(): FileCollection {
+    override fun composeResolveResources(): TaskProvider<*> {
         val outputDirectory = project.layout.buildDirectory.dir("resolvedResourcesFor${disambiguationClassifier}")
         val resourcesConfiguration = project.configurations.getByName(
             lowerCamelCaseName(
@@ -256,23 +260,30 @@
             }
         }
 
-        val outputCollection = project.files()
-        outputCollection.builtBy(unzipAndCopyResourcesToBuildDirectoryTask)
+        val result = project.registerTask<DefaultTask>("aggregateResources${disambiguationClassifier}") {
+            it.outputs.dir(outputDirectory)
+        }
+//        val outputCollection = project.files()
+        result.dependsOn(unzipAndCopyResourcesToBuildDirectoryTask)
 
         // Copy resources for this target
         // FIXME: Copypasta
         // FIXME: Resources and outputDirectory are Providers, but this method doesn't await for any lifecycle event. This will break if called at a wrong time
-        compilations.getByName("main").registerCopyResourcesTasks(
-            "ResolveSelfResources${disambiguationClassifier}",
-            composeResourceDirectories,
-            outputDirectory
-        ).forEach { copyTask ->
-            outputCollection.builtBy(copyTask)
+        project.launch {
+            this.await(KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges)
+            compilations.getByName("main").registerCopyResourcesTasks(
+                "ResolveSelfResources${disambiguationClassifier}",
+                composeResourceDirectories,
+                outputDirectory
+            ).forEach { copyTask ->
+                result.dependsOn(copyTask)
+            }
         }
 
+
         // FIXME: Listing files in this directory may result in trash such as .DS_Store to suddenly appear. Figure out how to get the root of a zipTree?
-        outputCollection.from(outputDirectory.map { it.asFile.listFiles() ?: emptyArray() })
-        return outputCollection
+//        outputCollection.from(outputDirectory.map { it.asFile.listFiles() ?: emptyArray() })
+        return result
     }
 }
 
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
index ebcac5c..f3f6e2a 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
@@ -218,7 +218,9 @@
         )
     ).apply {
         // FIXME: See usages of shouldResolveConsistentlyWith
-        extendsFrom(compileDependencyConfiguration)
+//        dependencies.addAllLater(target.project.provider { compileDependencyConfiguration.allDependencies })
+//        extendsFrom(compileDependencyConfiguration)
+        extendsFrom(implementationConfiguration)
         usesPlatformOf(target)
         isVisible = false
         isCanBeConsumed = false
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
index b5b9738..f98a62b 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
@@ -58,7 +58,7 @@
         TODO("Not yet implemented")
     }
 
-    override fun composeResolveResources(): FileCollection {
+    override fun composeResolveResources(): TaskProvider<*> {
         TODO("Not yet implemented")
     }
 
