diff --git a/build.gradle b/build.gradle
index 368970ba4..748e1cd2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,8 +16,12 @@ def mcVersion = "1.14.1 Pre-Release 2"
 def yarnVersion = "+build.2"
 
 def getSubprojectVersion(project, version) {
-	def latestCommit = grgit.log(paths: [project.name], maxCommits: 1).get(0)
-	return version + "+" + latestCommit.id.substring(0, 8)
+	def latestCommits = grgit.log(paths: [project.name], maxCommits: 1)
+	if (latestCommits.isEmpty()) {
+		return version + "+uncommited"
+	} else {
+		return version + "+" + latestCommits.get(0).id.substring(0, 8)
+	}
 }
 
 allprojects {
@@ -155,6 +159,7 @@ publishing {
 
 task licenseFormatAll
 subprojects { p -> licenseFormatAll.dependsOn("${p.path}:licenseFormat") }
+subprojects.each { remapJar.dependsOn("${it.path}:remapJar") }
 
 dependencies {
 	afterEvaluate {
diff --git a/fabric-lib/build.gradle b/fabric-api-base/build.gradle
similarity index 56%
rename from fabric-lib/build.gradle
rename to fabric-api-base/build.gradle
index 7a9694b0f..90fc0c30f 100644
--- a/fabric-lib/build.gradle
+++ b/fabric-api-base/build.gradle
@@ -1,2 +1,2 @@
-archivesBaseName = "fabric-lib"
+archivesBaseName = "fabric-api-base"
 version = getSubprojectVersion(project, "0.1.0")
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/api/event/Event.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/Event.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/api/event/Event.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/Event.java
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/api/event/EventFactory.java
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/api/util/NbtType.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/util/NbtType.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/api/util/NbtType.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/api/util/NbtType.java
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/api/util/TriState.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/api/util/TriState.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/api/util/TriState.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/api/util/TriState.java
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/ArrayBackedEvent.java
diff --git a/fabric-lib/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java b/fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java
similarity index 100%
rename from fabric-lib/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java
rename to fabric-api-base/src/main/java/net/fabricmc/fabric/impl/event/EventFactoryImpl.java
diff --git a/fabric-lib/src/main/resources/fabric.mod.json b/fabric-api-base/src/main/resources/fabric.mod.json
similarity index 72%
rename from fabric-lib/src/main/resources/fabric.mod.json
rename to fabric-api-base/src/main/resources/fabric.mod.json
index 65fa3cf63..ce88ff7eb 100644
--- a/fabric-lib/src/main/resources/fabric.mod.json
+++ b/fabric-api-base/src/main/resources/fabric.mod.json
@@ -1,6 +1,6 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-lib",
+  "id": "fabric-api-base",
   "version": "${version}",
   "license": "Apache-2.0"
-}
\ No newline at end of file
+}
diff --git a/fabric-commands-v0/build.gradle b/fabric-commands-v0/build.gradle
new file mode 100644
index 000000000..34b52eb5c
--- /dev/null
+++ b/fabric-commands-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-commands-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-commands/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
similarity index 100%
rename from fabric-commands/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/api/registry/CommandRegistry.java
diff --git a/fabric-commands/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java
similarity index 100%
rename from fabric-commands/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/impl/registry/CommandRegistryImpl.java
diff --git a/fabric-commands/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java
similarity index 100%
rename from fabric-commands/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinMinecraftDedicatedServer.java
diff --git a/fabric-commands/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinServerCommandManager.java b/fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinServerCommandManager.java
similarity index 100%
rename from fabric-commands/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinServerCommandManager.java
rename to fabric-commands-v0/src/main/java/net/fabricmc/fabric/mixin/registrycommands/MixinServerCommandManager.java
diff --git a/fabric-commands/src/main/resources/fabric-commands.mixins.json b/fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json
similarity index 100%
rename from fabric-commands/src/main/resources/fabric-commands.mixins.json
rename to fabric-commands-v0/src/main/resources/fabric-commands-v0.mixins.json
diff --git a/fabric-keybindings/src/main/resources/fabric.mod.json b/fabric-commands-v0/src/main/resources/fabric.mod.json
similarity index 59%
rename from fabric-keybindings/src/main/resources/fabric.mod.json
rename to fabric-commands-v0/src/main/resources/fabric.mod.json
index ca232c655..88a5c3e60 100644
--- a/fabric-keybindings/src/main/resources/fabric.mod.json
+++ b/fabric-commands-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-keybindings",
+  "id": "fabric-commands-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-keybindings.mixins.json"
+    "fabric-commands-v0.mixins.json"
   ]
 }
diff --git a/fabric-commands/build.gradle b/fabric-commands/build.gradle
deleted file mode 100644
index 17939867e..000000000
--- a/fabric-commands/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-registry-commands"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-containers-v0/build.gradle b/fabric-containers-v0/build.gradle
new file mode 100644
index 000000000..6a4b7f359
--- /dev/null
+++ b/fabric-containers-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-containers-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+	compile project(path: ':fabric-networking-v0', configuration: 'dev')
+}
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/api/client/screen/ContainerScreenFactory.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ContainerScreenFactory.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/api/client/screen/ContainerScreenFactory.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ContainerScreenFactory.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/client/screen/ScreenProviderRegistry.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/api/container/ContainerFactory.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/container/ContainerFactory.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/api/container/ContainerFactory.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/container/ContainerFactory.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/api/container/ContainerProviderRegistry.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/container/ContainerProviderRegistry.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/api/container/ContainerProviderRegistry.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/api/container/ContainerProviderRegistry.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/client/gui/ScreenProviderRegistryImpl.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/ContainerProviderImpl.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/impl/container/SyncIdProvider.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/SyncIdProvider.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/impl/container/SyncIdProvider.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/impl/container/SyncIdProvider.java
diff --git a/fabric-containers/src/main/java/net/fabricmc/fabric/mixin/container/MixinServerPlayerEntity.java b/fabric-containers-v0/src/main/java/net/fabricmc/fabric/mixin/container/MixinServerPlayerEntity.java
similarity index 100%
rename from fabric-containers/src/main/java/net/fabricmc/fabric/mixin/container/MixinServerPlayerEntity.java
rename to fabric-containers-v0/src/main/java/net/fabricmc/fabric/mixin/container/MixinServerPlayerEntity.java
diff --git a/fabric-containers/src/main/resources/fabric-containers.mixins.json b/fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json
similarity index 100%
rename from fabric-containers/src/main/resources/fabric-containers.mixins.json
rename to fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json
diff --git a/fabric-containers/src/main/resources/fabric.mod.json b/fabric-containers-v0/src/main/resources/fabric.mod.json
similarity index 75%
rename from fabric-containers/src/main/resources/fabric.mod.json
rename to fabric-containers-v0/src/main/resources/fabric.mod.json
index e20db5e28..0b7d55c13 100644
--- a/fabric-containers/src/main/resources/fabric.mod.json
+++ b/fabric-containers-v0/src/main/resources/fabric.mod.json
@@ -1,14 +1,14 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-containers",
+  "id": "fabric-containers-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-containers.mixins.json"
+    "fabric-containers-v0.mixins.json"
   ],
   "entrypoints": {
     "client": [
       "net.fabricmc.fabric.impl.client.gui.ScreenProviderRegistryImpl::init"
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/fabric-containers/build.gradle b/fabric-containers/build.gradle
deleted file mode 100644
index 45869d822..000000000
--- a/fabric-containers/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-containers"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-	compile project(path: ':fabric-networking', configuration: 'dev')
-}
diff --git a/fabric-content-registries-v0/build.gradle b/fabric-content-registries-v0/build.gradle
new file mode 100644
index 000000000..bf3677db0
--- /dev/null
+++ b/fabric-content-registries-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-content-registries-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+	compile project(path: ':fabric-resource-loader-v0', configuration: 'dev')
+}
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/CompostingChanceRegistry.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FlammableBlockRegistry.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/FuelRegistry.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/registry/LootEntryTypeRegistry.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/util/Block2ObjectMap.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/util/Block2ObjectMap.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/util/Block2ObjectMap.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/util/Block2ObjectMap.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/api/util/Item2ObjectMap.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/util/Item2ObjectMap.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/api/util/Item2ObjectMap.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/api/util/Item2ObjectMap.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/CompostingChanceRegistryImpl.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FireBlockHooks.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FlammableBlockRegistryImpl.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/FuelRegistryImpl.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/impl/registry/LootEntryTypeRegistryImpl.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinAbstractFurnaceBlockEntity.java
diff --git a/fabric-content-registries/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java
similarity index 100%
rename from fabric-content-registries/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java
rename to fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/registryextras/MixinFireBlock.java
diff --git a/fabric-content-registries/src/main/resources/fabric-content-registries.mixins.json b/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
similarity index 100%
rename from fabric-content-registries/src/main/resources/fabric-content-registries.mixins.json
rename to fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
diff --git a/fabric-content-registries-v0/src/main/resources/fabric.mod.json b/fabric-content-registries-v0/src/main/resources/fabric.mod.json
new file mode 100644
index 000000000..62bd8c813
--- /dev/null
+++ b/fabric-content-registries-v0/src/main/resources/fabric.mod.json
@@ -0,0 +1,9 @@
+{
+  "schemaVersion": 1,
+  "id": "fabric-content-registries-v0",
+  "version": "${version}",
+  "license": "Apache-2.0",
+  "mixins": [
+    "fabric-content-registries-v0.mixins.json"
+  ]
+}
diff --git a/fabric-content-registries/build.gradle b/fabric-content-registries/build.gradle
deleted file mode 100644
index 1afff1d18..000000000
--- a/fabric-content-registries/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-content-registries"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-	compile project(path: ':fabric-resource-loader', configuration: 'dev')
-}
diff --git a/fabric-content-registries/src/main/resources/fabric.mod.json b/fabric-content-registries/src/main/resources/fabric.mod.json
deleted file mode 100644
index 8a1991286..000000000
--- a/fabric-content-registries/src/main/resources/fabric.mod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schemaVersion": 1,
-  "id": "fabric-content-registries",
-  "version": "${version}",
-  "license": "Apache-2.0",
-  "mixins": [
-    "fabric-content-registries.mixins.json"
-  ]
-}
\ No newline at end of file
diff --git a/fabric-crash-report-info/build.gradle b/fabric-crash-report-info-v1/build.gradle
similarity index 50%
rename from fabric-crash-report-info/build.gradle
rename to fabric-crash-report-info-v1/build.gradle
index 12e1ccb47..fdc000a82 100644
--- a/fabric-crash-report-info/build.gradle
+++ b/fabric-crash-report-info-v1/build.gradle
@@ -1,2 +1,2 @@
-archivesBaseName = "fabric-crash-report-info"
+archivesBaseName = "fabric-crash-report-info-v1"
 version = getSubprojectVersion(project, "0.1.0")
diff --git a/fabric-crash-report-info/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java b/fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java
similarity index 100%
rename from fabric-crash-report-info/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java
rename to fabric-crash-report-info-v1/src/main/java/net/fabricmc/fabric/mixin/crash/MixinCrashReport.java
diff --git a/fabric-crash-report-info/src/main/resources/fabric-crash-report-info.mixins.json b/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
similarity index 100%
rename from fabric-crash-report-info/src/main/resources/fabric-crash-report-info.mixins.json
rename to fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
diff --git a/fabric-crash-report-info-v1/src/main/resources/fabric.mod.json b/fabric-crash-report-info-v1/src/main/resources/fabric.mod.json
new file mode 100644
index 000000000..7cfd585a3
--- /dev/null
+++ b/fabric-crash-report-info-v1/src/main/resources/fabric.mod.json
@@ -0,0 +1,9 @@
+{
+  "schemaVersion": 1,
+  "id": "fabric-crash-report-info-v1",
+  "version": "${version}",
+  "license": "Apache-2.0",
+  "mixins": [
+    "fabric-crash-report-info-v1.mixins.json"
+  ]
+}
diff --git a/fabric-crash-report-info/src/main/resources/fabric.mod.json b/fabric-crash-report-info/src/main/resources/fabric.mod.json
deleted file mode 100644
index 0a0ae9a3d..000000000
--- a/fabric-crash-report-info/src/main/resources/fabric.mod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schemaVersion": 1,
-  "id": "fabric-crash-report-info",
-  "version": "${version}",
-  "license": "Apache-2.0",
-  "mixins": [
-    "fabric-crash-report-info.mixins.json"
-  ]
-}
\ No newline at end of file
diff --git a/fabric-events-interaction-v0/build.gradle b/fabric-events-interaction-v0/build.gradle
new file mode 100644
index 000000000..727b396d9
--- /dev/null
+++ b/fabric-events-interaction-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-events-interaction-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/block/BlockAttackInteractionAware.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/block/BlockAttackInteractionAware.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/block/BlockAttackInteractionAware.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/block/BlockAttackInteractionAware.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/block/BlockPickInteractionAware.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/block/BlockPickInteractionAware.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/block/BlockPickInteractionAware.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/block/BlockPickInteractionAware.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/entity/EntityPickInteractionAware.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/entity/EntityPickInteractionAware.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/entity/EntityPickInteractionAware.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/entity/EntityPickInteractionAware.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockApplyCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockApplyCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockApplyCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockApplyCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockGatherCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockGatherCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockGatherCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/client/player/ClientPickBlockGatherCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/AttackBlockCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/AttackBlockCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/AttackBlockCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/AttackBlockCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/AttackEntityCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/AttackEntityCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/AttackEntityCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/AttackEntityCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseBlockCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseBlockCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseBlockCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseBlockCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseEntityCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseEntityCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseEntityCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseEntityCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseItemCallback.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseItemCallback.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/api/event/player/UseItemCallback.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/api/event/player/UseItemCallback.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouter.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/impl/event/InteractionEventsRouterClient.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinClientPlayerInteractionManager.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinMinecraftClient.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayNetworkHandler.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerEntity.java
diff --git a/fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java
similarity index 100%
rename from fabric-events-interaction/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java
rename to fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/eventsinteraction/MixinServerPlayerInteractionManager.java
diff --git a/fabric-events-interaction/src/main/resources/fabric-events-interaction.mixins.json b/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
similarity index 100%
rename from fabric-events-interaction/src/main/resources/fabric-events-interaction.mixins.json
rename to fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
diff --git a/fabric-events-interaction/src/main/resources/fabric.mod.json b/fabric-events-interaction-v0/src/main/resources/fabric.mod.json
similarity index 77%
rename from fabric-events-interaction/src/main/resources/fabric.mod.json
rename to fabric-events-interaction-v0/src/main/resources/fabric.mod.json
index 8b70b5331..7c3c21a88 100644
--- a/fabric-events-interaction/src/main/resources/fabric.mod.json
+++ b/fabric-events-interaction-v0/src/main/resources/fabric.mod.json
@@ -1,6 +1,6 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-events-interaction",
+  "id": "fabric-events-interaction-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "entrypoints": {
@@ -12,6 +12,6 @@
     ]
   },
   "mixins": [
-    "fabric-events-interaction.mixins.json"
+    "fabric-events-interaction-v0.mixins.json"
   ]
 }
diff --git a/fabric-events-interaction/build.gradle b/fabric-events-interaction/build.gradle
deleted file mode 100644
index 621276d6a..000000000
--- a/fabric-events-interaction/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-events-interaction"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-events-lifecycle-v0/build.gradle b/fabric-events-lifecycle-v0/build.gradle
new file mode 100644
index 000000000..c8a7c1731
--- /dev/null
+++ b/fabric-events-lifecycle-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-events-lifecycle-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/client/ClientTickCallback.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/client/ClientTickCallback.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/client/ClientTickCallback.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/client/ClientTickCallback.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerStartCallback.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerStartCallback.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerStartCallback.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerStartCallback.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerStopCallback.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerStopCallback.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerStopCallback.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerStopCallback.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerTickCallback.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerTickCallback.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/server/ServerTickCallback.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/server/ServerTickCallback.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/world/WorldTickCallback.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/world/WorldTickCallback.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/api/event/world/WorldTickCallback.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/api/event/world/WorldTickCallback.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftClient.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinMinecraftServer.java
diff --git a/fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java b/fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java
similarity index 100%
rename from fabric-events-lifecycle/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java
rename to fabric-events-lifecycle-v0/src/main/java/net/fabricmc/fabric/mixin/eventslifecycle/MixinWorld.java
diff --git a/fabric-events-lifecycle/src/main/resources/fabric-events-lifecycle.mixins.json b/fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json
similarity index 100%
rename from fabric-events-lifecycle/src/main/resources/fabric-events-lifecycle.mixins.json
rename to fabric-events-lifecycle-v0/src/main/resources/fabric-events-lifecycle-v0.mixins.json
diff --git a/fabric-events-lifecycle/src/main/resources/fabric.mod.json b/fabric-events-lifecycle-v0/src/main/resources/fabric.mod.json
similarity index 77%
rename from fabric-events-lifecycle/src/main/resources/fabric.mod.json
rename to fabric-events-lifecycle-v0/src/main/resources/fabric.mod.json
index 262c5f3d6..b9e77b00f 100644
--- a/fabric-events-lifecycle/src/main/resources/fabric.mod.json
+++ b/fabric-events-lifecycle-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-events-lifecycle",
+  "id": "fabric-events-lifecycle-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
     "fabric-events-lifecycle.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-events-lifecycle/build.gradle b/fabric-events-lifecycle/build.gradle
deleted file mode 100644
index 6418bc93f..000000000
--- a/fabric-events-lifecycle/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-events-lifecycle"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-item-groups-v0/build.gradle b/fabric-item-groups-v0/build.gradle
new file mode 100644
index 000000000..5add3010c
--- /dev/null
+++ b/fabric-item-groups-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-item-groups-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-resource-loader-v0', configuration: 'dev')
+}
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/api/client/itemgroup/FabricItemGroupBuilder.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/CreativeGuiExtensions.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/FabricCreativeGuiComponents.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/impl/itemgroup/ItemGroupExtensions.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/MixinItemGroup.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinCreativePlayerInventoryGui.java
diff --git a/fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java b/fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java
similarity index 100%
rename from fabric-item-groups/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java
rename to fabric-item-groups-v0/src/main/java/net/fabricmc/fabric/mixin/itemgroup/client/MixinItemGroup.java
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/bg_bg.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/bg_bg.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/bg_bg.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/bg_bg.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/de_de.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/de_de.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/de_de.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/de_de.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/en_us.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/en_us.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/en_us.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/en_us.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/pl_pl.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/pl_pl.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/pl_pl.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/pl_pl.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/zh_cn.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/zh_cn.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/zh_cn.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/zh_cn.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/lang/zh_tw.json b/fabric-item-groups-v0/src/main/resources/assets/fabric/lang/zh_tw.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/lang/zh_tw.json
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/lang/zh_tw.json
diff --git a/fabric-item-groups/src/main/resources/assets/fabric/textures/gui/creative_buttons.png b/fabric-item-groups-v0/src/main/resources/assets/fabric/textures/gui/creative_buttons.png
similarity index 100%
rename from fabric-item-groups/src/main/resources/assets/fabric/textures/gui/creative_buttons.png
rename to fabric-item-groups-v0/src/main/resources/assets/fabric/textures/gui/creative_buttons.png
diff --git a/fabric-item-groups/src/main/resources/fabric-item-groups.mixins.json b/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
similarity index 100%
rename from fabric-item-groups/src/main/resources/fabric-item-groups.mixins.json
rename to fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
diff --git a/fabric-rendering-hooks/src/main/resources/fabric.mod.json b/fabric-item-groups-v0/src/main/resources/fabric.mod.json
similarity index 56%
rename from fabric-rendering-hooks/src/main/resources/fabric.mod.json
rename to fabric-item-groups-v0/src/main/resources/fabric.mod.json
index a2269b89e..443d4df03 100644
--- a/fabric-rendering-hooks/src/main/resources/fabric.mod.json
+++ b/fabric-item-groups-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-rendering-hooks",
+  "id": "fabric-item-groups-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-rendering-hooks.mixins.json"
+    "fabric-item-groups-v0.mixins.json"
   ]
 }
diff --git a/fabric-item-groups/build.gradle b/fabric-item-groups/build.gradle
deleted file mode 100644
index 975252f7e..000000000
--- a/fabric-item-groups/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-item-groups"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-resource-loader', configuration: 'dev')
-}
diff --git a/fabric-keybindings-v0/build.gradle b/fabric-keybindings-v0/build.gradle
new file mode 100644
index 000000000..a3bc26b45
--- /dev/null
+++ b/fabric-keybindings-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-keybindings-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-keybindings/src/main/java/net/fabricmc/fabric/api/client/keybinding/FabricKeyBinding.java b/fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/api/client/keybinding/FabricKeyBinding.java
similarity index 100%
rename from fabric-keybindings/src/main/java/net/fabricmc/fabric/api/client/keybinding/FabricKeyBinding.java
rename to fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/api/client/keybinding/FabricKeyBinding.java
diff --git a/fabric-keybindings/src/main/java/net/fabricmc/fabric/api/client/keybinding/KeyBindingRegistry.java b/fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/api/client/keybinding/KeyBindingRegistry.java
similarity index 100%
rename from fabric-keybindings/src/main/java/net/fabricmc/fabric/api/client/keybinding/KeyBindingRegistry.java
rename to fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/api/client/keybinding/KeyBindingRegistry.java
diff --git a/fabric-keybindings/src/main/java/net/fabricmc/fabric/impl/client/keybinding/KeyBindingRegistryImpl.java b/fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/impl/client/keybinding/KeyBindingRegistryImpl.java
similarity index 100%
rename from fabric-keybindings/src/main/java/net/fabricmc/fabric/impl/client/keybinding/KeyBindingRegistryImpl.java
rename to fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/impl/client/keybinding/KeyBindingRegistryImpl.java
diff --git a/fabric-keybindings/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinGameOptions.java b/fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinGameOptions.java
similarity index 100%
rename from fabric-keybindings/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinGameOptions.java
rename to fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinGameOptions.java
diff --git a/fabric-keybindings/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinKeyBinding.java b/fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinKeyBinding.java
similarity index 100%
rename from fabric-keybindings/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinKeyBinding.java
rename to fabric-keybindings-v0/src/main/java/net/fabricmc/fabric/mixin/client/keybinding/MixinKeyBinding.java
diff --git a/fabric-keybindings/src/main/resources/fabric-keybindings.mixins.json b/fabric-keybindings-v0/src/main/resources/fabric-keybindings-v0.mixins.json
similarity index 100%
rename from fabric-keybindings/src/main/resources/fabric-keybindings.mixins.json
rename to fabric-keybindings-v0/src/main/resources/fabric-keybindings-v0.mixins.json
diff --git a/fabric-mining-levels/src/main/resources/fabric.mod.json b/fabric-keybindings-v0/src/main/resources/fabric.mod.json
similarity index 56%
rename from fabric-mining-levels/src/main/resources/fabric.mod.json
rename to fabric-keybindings-v0/src/main/resources/fabric.mod.json
index e2f279a5d..c5da09f43 100644
--- a/fabric-mining-levels/src/main/resources/fabric.mod.json
+++ b/fabric-keybindings-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-mining-levels",
+  "id": "fabric-keybindings-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-mining-levels.mixins.json"
+    "fabric-keybindings-v0.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-keybindings/build.gradle b/fabric-keybindings/build.gradle
deleted file mode 100644
index 5bd3ca6e6..000000000
--- a/fabric-keybindings/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-keybindings"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-mining-levels-v0/build.gradle b/fabric-mining-levels-v0/build.gradle
new file mode 100644
index 000000000..ba27de2c0
--- /dev/null
+++ b/fabric-mining-levels-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-mining-levels-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+    compile project(path: ':fabric-api-base', configuration: 'dev')
+    compile project(path: ':fabric-tag-extensions-v0', configuration: 'dev')
+}
diff --git a/fabric-mining-levels/src/main/java/net/fabricmc/fabric/api/tag/FabricItemTags.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/api/tag/FabricItemTags.java
similarity index 100%
rename from fabric-mining-levels/src/main/java/net/fabricmc/fabric/api/tag/FabricItemTags.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/api/tag/FabricItemTags.java
diff --git a/fabric-mining-levels/src/main/java/net/fabricmc/fabric/api/tools/FabricToolTags.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/api/tools/FabricToolTags.java
similarity index 100%
rename from fabric-mining-levels/src/main/java/net/fabricmc/fabric/api/tools/FabricToolTags.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/api/tools/FabricToolTags.java
diff --git a/fabric-mining-levels/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java
similarity index 100%
rename from fabric-mining-levels/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/impl/tools/ToolManager.java
diff --git a/fabric-mining-levels/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java
similarity index 100%
rename from fabric-mining-levels/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MiningToolItemAccessor.java
diff --git a/fabric-mining-levels/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java b/fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java
similarity index 100%
rename from fabric-mining-levels/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java
rename to fabric-mining-levels-v0/src/main/java/net/fabricmc/fabric/mixin/tools/MixinItemStack.java
diff --git a/fabric-mining-levels/src/main/resources/data/fabric/tags/items/axes.json b/fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/axes.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/data/fabric/tags/items/axes.json
rename to fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/axes.json
diff --git a/fabric-mining-levels/src/main/resources/data/fabric/tags/items/hoes.json b/fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/hoes.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/data/fabric/tags/items/hoes.json
rename to fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/hoes.json
diff --git a/fabric-mining-levels/src/main/resources/data/fabric/tags/items/pickaxes.json b/fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/pickaxes.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/data/fabric/tags/items/pickaxes.json
rename to fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/pickaxes.json
diff --git a/fabric-mining-levels/src/main/resources/data/fabric/tags/items/shovels.json b/fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/shovels.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/data/fabric/tags/items/shovels.json
rename to fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/shovels.json
diff --git a/fabric-mining-levels/src/main/resources/data/fabric/tags/items/swords.json b/fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/swords.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/data/fabric/tags/items/swords.json
rename to fabric-mining-levels-v0/src/main/resources/data/fabric/tags/items/swords.json
diff --git a/fabric-mining-levels/src/main/resources/fabric-mining-levels.mixins.json b/fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json
similarity index 100%
rename from fabric-mining-levels/src/main/resources/fabric-mining-levels.mixins.json
rename to fabric-mining-levels-v0/src/main/resources/fabric-mining-levels-v0.mixins.json
diff --git a/fabric-mining-levels-v0/src/main/resources/fabric.mod.json b/fabric-mining-levels-v0/src/main/resources/fabric.mod.json
new file mode 100644
index 000000000..5f031847a
--- /dev/null
+++ b/fabric-mining-levels-v0/src/main/resources/fabric.mod.json
@@ -0,0 +1,9 @@
+{
+  "schemaVersion": 1,
+  "id": "fabric-mining-levels-v0",
+  "version": "${version}",
+  "license": "Apache-2.0",
+  "mixins": [
+    "fabric-mining-levels-v0.mixins.json"
+  ]
+}
diff --git a/fabric-mining-levels/build.gradle b/fabric-mining-levels/build.gradle
deleted file mode 100644
index c16425017..000000000
--- a/fabric-mining-levels/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-mining-levels"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-    compile project(path: ':fabric-lib', configuration: 'dev')
-    compile project(path: ':fabric-tag-hooks', configuration: 'dev')
-}
diff --git a/fabric-models-v0/build.gradle b/fabric-models-v0/build.gradle
new file mode 100644
index 000000000..92d65315e
--- /dev/null
+++ b/fabric-models-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-models-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelAppender.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelAppender.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelAppender.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelAppender.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelLoadingRegistry.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelLoadingRegistry.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelLoadingRegistry.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelLoadingRegistry.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderContext.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderContext.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderContext.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderContext.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderException.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderException.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderException.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelProviderException.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelResourceProvider.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelResourceProvider.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelResourceProvider.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelResourceProvider.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelVariantProvider.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelVariantProvider.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/api/client/model/ModelVariantProvider.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/api/client/model/ModelVariantProvider.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoaderHooks.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoaderHooks.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoaderHooks.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoaderHooks.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoadingRegistryImpl.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoadingRegistryImpl.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoadingRegistryImpl.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/impl/client/model/ModelLoadingRegistryImpl.java
diff --git a/fabric-models/src/main/java/net/fabricmc/fabric/mixin/client/model/MixinModelLoader.java b/fabric-models-v0/src/main/java/net/fabricmc/fabric/mixin/client/model/MixinModelLoader.java
similarity index 100%
rename from fabric-models/src/main/java/net/fabricmc/fabric/mixin/client/model/MixinModelLoader.java
rename to fabric-models-v0/src/main/java/net/fabricmc/fabric/mixin/client/model/MixinModelLoader.java
diff --git a/fabric-models/src/main/resources/fabric-models.mixins.json b/fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json
similarity index 100%
rename from fabric-models/src/main/resources/fabric-models.mixins.json
rename to fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json
diff --git a/fabric-textures/src/main/resources/fabric.mod.json b/fabric-models-v0/src/main/resources/fabric.mod.json
similarity index 65%
rename from fabric-textures/src/main/resources/fabric.mod.json
rename to fabric-models-v0/src/main/resources/fabric.mod.json
index 719f5fda0..3c361e4e4 100644
--- a/fabric-textures/src/main/resources/fabric.mod.json
+++ b/fabric-models-v0/src/main/resources/fabric.mod.json
@@ -1,10 +1,10 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-textures",
+  "id": "fabric-models-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "environment": "client",
   "mixins": [
-    "fabric-textures.mixins.json"
+    "fabric-models-v0.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-models/build.gradle b/fabric-models/build.gradle
deleted file mode 100644
index 7e14ed8f3..000000000
--- a/fabric-models/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-models"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-networking-blockentity-v0/build.gradle b/fabric-networking-blockentity-v0/build.gradle
new file mode 100644
index 000000000..6105829ac
--- /dev/null
+++ b/fabric-networking-blockentity-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-networking-blockentity-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
+
diff --git a/fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/api/block/entity/BlockEntityClientSerializable.java b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/api/block/entity/BlockEntityClientSerializable.java
similarity index 100%
rename from fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/api/block/entity/BlockEntityClientSerializable.java
rename to fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/api/block/entity/BlockEntityClientSerializable.java
diff --git a/fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java
similarity index 100%
rename from fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java
rename to fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinBlockEntity.java
diff --git a/fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java b/fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java
similarity index 100%
rename from fabric-networking-blockentity/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java
rename to fabric-networking-blockentity-v0/src/main/java/net/fabricmc/fabric/mixin/networkingblockentity/MixinClientPlayNetworkHandler.java
diff --git a/fabric-networking-blockentity/src/main/resources/fabric-networking-blockentity.mixins.json b/fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json
similarity index 100%
rename from fabric-networking-blockentity/src/main/resources/fabric-networking-blockentity.mixins.json
rename to fabric-networking-blockentity-v0/src/main/resources/fabric-networking-blockentity-v0.mixins.json
diff --git a/fabric-networking-blockentity-v0/src/main/resources/fabric.mod.json b/fabric-networking-blockentity-v0/src/main/resources/fabric.mod.json
new file mode 100644
index 000000000..8aaf46c8a
--- /dev/null
+++ b/fabric-networking-blockentity-v0/src/main/resources/fabric.mod.json
@@ -0,0 +1,9 @@
+{
+  "schemaVersion": 1,
+  "id": "fabric-networking-blockentity-v0",
+  "version": "${version}",
+  "license": "Apache-2.0",
+  "mixins": [
+    "fabric-networking-blockentity-v0.mixins.json"
+  ]
+}
diff --git a/fabric-networking-blockentity/build.gradle b/fabric-networking-blockentity/build.gradle
deleted file mode 100644
index 0654b1950..000000000
--- a/fabric-networking-blockentity/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-networking-blockentity"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
-
diff --git a/fabric-networking-blockentity/src/main/resources/fabric.mod.json b/fabric-networking-blockentity/src/main/resources/fabric.mod.json
deleted file mode 100644
index 2bacd583a..000000000
--- a/fabric-networking-blockentity/src/main/resources/fabric.mod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schemaVersion": 1,
-  "id": "fabric-networking-blockentity",
-  "version": "${version}",
-  "license": "Apache-2.0",
-  "mixins": [
-    "fabric-networking-blockentity.mixins.json"
-  ]
-}
\ No newline at end of file
diff --git a/fabric-networking-v0/build.gradle b/fabric-networking-v0/build.gradle
new file mode 100644
index 000000000..40b9ed1c8
--- /dev/null
+++ b/fabric-networking-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-networking-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+    compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/event/network/C2SPacketTypeCallback.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/event/network/C2SPacketTypeCallback.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/event/network/C2SPacketTypeCallback.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/event/network/C2SPacketTypeCallback.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/event/network/S2CPacketTypeCallback.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/event/network/S2CPacketTypeCallback.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/event/network/S2CPacketTypeCallback.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/event/network/S2CPacketTypeCallback.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ClientSidePacketRegistry.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketConsumer.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketConsumer.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketConsumer.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketConsumer.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketRegistry.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketRegistry.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/network/PacketRegistry.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketRegistry.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/ServerSidePacketRegistry.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/server/PlayerStream.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ClientSidePacketRegistryImpl.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/CustomPayloadC2SPacketAccessor.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketRegistryImpl.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/PacketTypes.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/network/ServerSidePacketRegistryImpl.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStorageAccessor.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/impl/server/EntityTrackerStreamAccessor.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinClientPlayNetworkHandler.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinCustomPayloadC2SPacket.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinEntityTracker.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinMinecraftClient.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinPlayerManager.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinServerPlayNetworkHandler.java
diff --git a/fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java
similarity index 100%
rename from fabric-networking/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java
rename to fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/network/MixinThreadedAnvilChunkStorage.java
diff --git a/fabric-networking/src/main/resources/fabric-networking.mixins.json b/fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json
similarity index 100%
rename from fabric-networking/src/main/resources/fabric-networking.mixins.json
rename to fabric-networking-v0/src/main/resources/fabric-networking-v0.mixins.json
diff --git a/fabric-commands/src/main/resources/fabric.mod.json b/fabric-networking-v0/src/main/resources/fabric.mod.json
similarity index 56%
rename from fabric-commands/src/main/resources/fabric.mod.json
rename to fabric-networking-v0/src/main/resources/fabric.mod.json
index f5868b7b1..54a6e18a8 100644
--- a/fabric-commands/src/main/resources/fabric.mod.json
+++ b/fabric-networking-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-commands",
+  "id": "fabric-networking-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-commands.mixins.json"
+    "fabric-networking-v0.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-networking/build.gradle b/fabric-networking/build.gradle
deleted file mode 100644
index a62482916..000000000
--- a/fabric-networking/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-networking"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-    compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-networking/src/main/resources/fabric.mod.json b/fabric-networking/src/main/resources/fabric.mod.json
deleted file mode 100644
index ea14a5ba2..000000000
--- a/fabric-networking/src/main/resources/fabric.mod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schemaVersion": 1,
-  "id": "fabric-networking",
-  "version": "${version}",
-  "license": "Apache-2.0",
-  "mixins": [
-    "fabric-networking.mixins.json"
-  ]
-}
\ No newline at end of file
diff --git a/fabric-object-builders-v0/build.gradle b/fabric-object-builders-v0/build.gradle
new file mode 100644
index 000000000..dee559619
--- /dev/null
+++ b/fabric-object-builders-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-object-builders"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+    compile project(path: ':fabric-api-base', configuration: 'dev')
+    compile project(path: ':fabric-mining-levels-v0', configuration: 'dev')
+}
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/BlockSettingsExtensions.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/block/FabricBlockSettings.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/entity/EntityTrackingRegistry.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/EntityTrackingRegistry.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/entity/EntityTrackingRegistry.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/EntityTrackingRegistry.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/entity/FabricEntityTypeBuilder.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/event/registry/BlockConstructedCallback.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/event/registry/BlockConstructedCallback.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/event/registry/BlockConstructedCallback.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/event/registry/BlockConstructedCallback.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/api/event/registry/ItemConstructedCallback.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/event/registry/ItemConstructedCallback.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/api/event/registry/ItemConstructedCallback.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/api/event/registry/ItemConstructedCallback.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/impl/entity/FabricEntityType.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/BlockSettingsHooks.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinBlock.java
diff --git a/fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java b/fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java
similarity index 100%
rename from fabric-object-builders/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java
rename to fabric-object-builders-v0/src/main/java/net/fabricmc/fabric/mixin/builders/MixinItem.java
diff --git a/fabric-object-builders/src/main/resources/fabric-object-builders.mixins.json b/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
similarity index 100%
rename from fabric-object-builders/src/main/resources/fabric-object-builders.mixins.json
rename to fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
diff --git a/fabric-object-builders/src/main/resources/fabric.mod.json b/fabric-object-builders-v0/src/main/resources/fabric.mod.json
similarity index 77%
rename from fabric-object-builders/src/main/resources/fabric.mod.json
rename to fabric-object-builders-v0/src/main/resources/fabric.mod.json
index 5225f7a11..82f078ec2 100644
--- a/fabric-object-builders/src/main/resources/fabric.mod.json
+++ b/fabric-object-builders-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-object-builders",
+  "id": "fabric-object-builders-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
     "fabric-object-builders.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-object-builders/build.gradle b/fabric-object-builders/build.gradle
deleted file mode 100644
index efd1b67c5..000000000
--- a/fabric-object-builders/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-object-builders"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-    compile project(path: ':fabric-lib', configuration: 'dev')
-    compile project(path: ':fabric-mining-levels', configuration: 'dev')
-}
diff --git a/fabric-registry-sync-v0/build.gradle b/fabric-registry-sync-v0/build.gradle
new file mode 100644
index 000000000..d1a91fba4
--- /dev/null
+++ b/fabric-registry-sync-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-registry-sync-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+	compile project(path: ':fabric-networking-v0', configuration: 'dev')
+}
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/ExtendedIdList.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ExtendedIdList.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/ExtendedIdList.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ExtendedIdList.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/FabricRegistryClientInit.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/IdListUpdater.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/IdListUpdater.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/IdListUpdater.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/IdListUpdater.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/ListenableRegistry.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RegistryListener.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistryListener.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RegistryListener.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistryListener.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RegistrySyncManager.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemapException.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/RemappableRegistry.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBiomeRegistryListener.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBiomeRegistryListener.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBiomeRegistryListener.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBiomeRegistryListener.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBlockRegistryListener.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBlockRegistryListener.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBlockRegistryListener.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapBlockRegistryListener.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapFluidRegistryListener.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapFluidRegistryListener.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapFluidRegistryListener.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapFluidRegistryListener.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapItemRegistryListener.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapItemRegistryListener.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapItemRegistryListener.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/vanilla/BootstrapItemRegistryListener.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinBootstrap.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdList.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinIdRegistry.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinPlayerManager.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/MixinWorldSaveHandler.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinBlockColorMap.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemColorMap.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinItemModelMap.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinMinecraftClient.java
diff --git a/fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java
similarity index 100%
rename from fabric-registry-sync/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java
rename to fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/client/MixinParticleManager.java
diff --git a/fabric-registry-sync/src/main/resources/fabric-registry-sync.mixins.json b/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
similarity index 100%
rename from fabric-registry-sync/src/main/resources/fabric-registry-sync.mixins.json
rename to fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
diff --git a/fabric-registry-sync/src/main/resources/fabric.mod.json b/fabric-registry-sync-v0/src/main/resources/fabric.mod.json
similarity index 72%
rename from fabric-registry-sync/src/main/resources/fabric.mod.json
rename to fabric-registry-sync-v0/src/main/resources/fabric.mod.json
index 053192750..7623f3dc2 100644
--- a/fabric-registry-sync/src/main/resources/fabric.mod.json
+++ b/fabric-registry-sync-v0/src/main/resources/fabric.mod.json
@@ -1,14 +1,14 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-registry-sync",
+  "id": "fabric-registry-sync-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-registry-sync.mixins.json"
+    "fabric-registry-sync-v0.mixins.json"
   ],
   "entrypoints": {
     "client": [
       "net.fabricmc.fabric.impl.registry.FabricRegistryClientInit"
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/fabric-registry-sync/build.gradle b/fabric-registry-sync/build.gradle
deleted file mode 100644
index 90ae11273..000000000
--- a/fabric-registry-sync/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-registry-sync"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-	compile project(path: ':fabric-networking', configuration: 'dev')
-}
diff --git a/fabric-rendering-hooks/build.gradle b/fabric-rendering-hooks/build.gradle
deleted file mode 100644
index e8cf5c1c5..000000000
--- a/fabric-rendering-hooks/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-client-registries"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/fabric-rendering-v0/build.gradle b/fabric-rendering-v0/build.gradle
new file mode 100644
index 000000000..4d2f8f0a4
--- /dev/null
+++ b/fabric-rendering-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-rendering-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/BlockEntityRendererRegistry.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/BlockEntityRendererRegistry.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/BlockEntityRendererRegistry.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/BlockEntityRendererRegistry.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/ColorProviderRegistry.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/EntityRendererRegistry.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/EntityRendererRegistry.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/api/client/render/EntityRendererRegistry.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/api/client/render/EntityRendererRegistry.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/impl/client/render/ColorProviderRegistryImpl.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockColorMap.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockEntityRenderManager.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockEntityRenderManager.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockEntityRenderManager.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinBlockEntityRenderManager.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinEntityRenderManager.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinEntityRenderManager.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinEntityRenderManager.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinEntityRenderManager.java
diff --git a/fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java b/fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java
similarity index 100%
rename from fabric-rendering-hooks/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java
rename to fabric-rendering-v0/src/main/java/net/fabricmc/fabric/mixin/client/render/MixinItemColorMap.java
diff --git a/fabric-rendering-hooks/src/main/resources/fabric-rendering-hooks.mixins.json b/fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json
similarity index 100%
rename from fabric-rendering-hooks/src/main/resources/fabric-rendering-hooks.mixins.json
rename to fabric-rendering-v0/src/main/resources/fabric-rendering-v0.mixins.json
diff --git a/fabric-item-groups/src/main/resources/fabric.mod.json b/fabric-rendering-v0/src/main/resources/fabric.mod.json
similarity index 58%
rename from fabric-item-groups/src/main/resources/fabric.mod.json
rename to fabric-rendering-v0/src/main/resources/fabric.mod.json
index 4d98a6258..1ddf0ec12 100644
--- a/fabric-item-groups/src/main/resources/fabric.mod.json
+++ b/fabric-rendering-v0/src/main/resources/fabric.mod.json
@@ -1,9 +1,9 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-item-groups",
+  "id": "fabric-rendering-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "mixins": [
-    "fabric-item-groups.mixins.json"
+    "fabric-rendering-v0.mixins.json"
   ]
 }
diff --git a/fabric-resource-loader/build.gradle b/fabric-resource-loader-v0/build.gradle
similarity index 51%
rename from fabric-resource-loader/build.gradle
rename to fabric-resource-loader-v0/build.gradle
index 2b8dfe691..fdc87ee1a 100644
--- a/fabric-resource-loader/build.gradle
+++ b/fabric-resource-loader-v0/build.gradle
@@ -1,2 +1,2 @@
-archivesBaseName = "fabric-resource-loader"
+archivesBaseName = "fabric-resource-loader-v0"
 version = getSubprojectVersion(project, "0.1.0")
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/IdentifiableResourceReloadListener.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/IdentifiableResourceReloadListener.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/IdentifiableResourceReloadListener.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/IdentifiableResourceReloadListener.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ModResourcePack.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ModResourcePack.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ModResourcePack.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ModResourcePack.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceManagerHelper.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ResourceReloadListenerKeys.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceReloadListenerKeys.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/ResourceReloadListenerKeys.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/ResourceReloadListenerKeys.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/SimpleResourceReloadListener.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/SimpleResourceReloadListener.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/SimpleResourceReloadListener.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/SimpleResourceReloadListener.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/SimpleSynchronousResourceReloadListener.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/SimpleSynchronousResourceReloadListener.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/api/resource/SimpleSynchronousResourceReloadListener.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/api/resource/SimpleSynchronousResourceReloadListener.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredInputStream.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/DeferredNioExecutionHandler.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModNioResourcePack.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackCreator.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ModResourcePackUtil.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resources/ResourceManagerHelperImpl.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinKeyedResourceReloadListener.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftGame.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinMinecraftServer.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImpl.java
diff --git a/fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java
similarity index 100%
rename from fabric-resource-loader/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resources/MixinReloadableResourceManagerImplClient.java
diff --git a/fabric-resource-loader/src/main/resources/fabric-resource-loader.mixins.json b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
similarity index 100%
rename from fabric-resource-loader/src/main/resources/fabric-resource-loader.mixins.json
rename to fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
diff --git a/fabric-resource-loader-v0/src/main/resources/fabric.mod.json b/fabric-resource-loader-v0/src/main/resources/fabric.mod.json
new file mode 100644
index 000000000..f050ddf2d
--- /dev/null
+++ b/fabric-resource-loader-v0/src/main/resources/fabric.mod.json
@@ -0,0 +1,9 @@
+{
+  "schemaVersion": 1,
+  "id": "fabric-resource-loader-v0",
+  "version": "${version}",
+  "license": "Apache-2.0",
+  "mixins": [
+    "fabric-resource-loader-v0.mixins.json"
+  ]
+}
diff --git a/fabric-resource-loader/src/main/resources/fabric.mod.json b/fabric-resource-loader/src/main/resources/fabric.mod.json
deleted file mode 100644
index f72c6b891..000000000
--- a/fabric-resource-loader/src/main/resources/fabric.mod.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schemaVersion": 1,
-  "id": "fabric-resource-loader",
-  "version": "${version}",
-  "license": "Apache-2.0",
-  "mixins": [
-    "fabric-resource-loader.mixins.json"
-  ]
-}
\ No newline at end of file
diff --git a/fabric-tag-extensions-v0/build.gradle b/fabric-tag-extensions-v0/build.gradle
new file mode 100644
index 000000000..33fbadc4e
--- /dev/null
+++ b/fabric-tag-extensions-v0/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = "fabric-tag-extensions-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+	compile project(path: ':fabric-resource-loader-v0', configuration: 'dev')
+}
diff --git a/fabric-tag-hooks/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
similarity index 100%
rename from fabric-tag-hooks/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/api/tag/TagRegistry.java
diff --git a/fabric-tag-hooks/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java b/fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java
similarity index 100%
rename from fabric-tag-hooks/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java
rename to fabric-tag-extensions-v0/src/main/java/net/fabricmc/fabric/impl/tag/TagDelegate.java
diff --git a/fabric-tag-hooks/src/main/resources/fabric.mod.json b/fabric-tag-extensions-v0/src/main/resources/fabric.mod.json
similarity index 66%
rename from fabric-tag-hooks/src/main/resources/fabric.mod.json
rename to fabric-tag-extensions-v0/src/main/resources/fabric.mod.json
index 47468a258..186c6e81c 100644
--- a/fabric-tag-hooks/src/main/resources/fabric.mod.json
+++ b/fabric-tag-extensions-v0/src/main/resources/fabric.mod.json
@@ -1,6 +1,6 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-tag-hooks",
+  "id": "fabric-tag-extensions-v0",
   "version": "${version}",
   "license": "Apache-2.0"
-}
\ No newline at end of file
+}
diff --git a/fabric-tag-hooks/build.gradle b/fabric-tag-hooks/build.gradle
deleted file mode 100644
index fc31f4e56..000000000
--- a/fabric-tag-hooks/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-archivesBaseName = "fabric-tag-hooks"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-	compile project(path: ':fabric-resource-loader', configuration: 'dev')
-}
diff --git a/fabric-textures-v0/build.gradle b/fabric-textures-v0/build.gradle
new file mode 100644
index 000000000..fd67659fa
--- /dev/null
+++ b/fabric-textures-v0/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = "fabric-textures-v0"
+version = getSubprojectVersion(project, "0.1.0")
+
+dependencies {
+	compile project(path: ':fabric-api-base', configuration: 'dev')
+}
diff --git a/fabric-textures/src/main/java/net/fabricmc/fabric/api/client/texture/CustomSpriteLoader.java b/fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/client/texture/CustomSpriteLoader.java
similarity index 100%
rename from fabric-textures/src/main/java/net/fabricmc/fabric/api/client/texture/CustomSpriteLoader.java
rename to fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/client/texture/CustomSpriteLoader.java
diff --git a/fabric-textures/src/main/java/net/fabricmc/fabric/api/client/texture/DependentSprite.java b/fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/client/texture/DependentSprite.java
similarity index 100%
rename from fabric-textures/src/main/java/net/fabricmc/fabric/api/client/texture/DependentSprite.java
rename to fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/client/texture/DependentSprite.java
diff --git a/fabric-textures/src/main/java/net/fabricmc/fabric/api/event/client/ClientSpriteRegistryCallback.java b/fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/event/client/ClientSpriteRegistryCallback.java
similarity index 100%
rename from fabric-textures/src/main/java/net/fabricmc/fabric/api/event/client/ClientSpriteRegistryCallback.java
rename to fabric-textures-v0/src/main/java/net/fabricmc/fabric/api/event/client/ClientSpriteRegistryCallback.java
diff --git a/fabric-textures/src/main/java/net/fabricmc/fabric/impl/client/texture/FabricSprite.java b/fabric-textures-v0/src/main/java/net/fabricmc/fabric/impl/client/texture/FabricSprite.java
similarity index 100%
rename from fabric-textures/src/main/java/net/fabricmc/fabric/impl/client/texture/FabricSprite.java
rename to fabric-textures-v0/src/main/java/net/fabricmc/fabric/impl/client/texture/FabricSprite.java
diff --git a/fabric-textures/src/main/java/net/fabricmc/fabric/mixin/client/texture/MixinSpriteAtlasTexture.java b/fabric-textures-v0/src/main/java/net/fabricmc/fabric/mixin/client/texture/MixinSpriteAtlasTexture.java
similarity index 100%
rename from fabric-textures/src/main/java/net/fabricmc/fabric/mixin/client/texture/MixinSpriteAtlasTexture.java
rename to fabric-textures-v0/src/main/java/net/fabricmc/fabric/mixin/client/texture/MixinSpriteAtlasTexture.java
diff --git a/fabric-textures/src/main/resources/fabric-textures.mixins.json b/fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json
similarity index 100%
rename from fabric-textures/src/main/resources/fabric-textures.mixins.json
rename to fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json
diff --git a/fabric-models/src/main/resources/fabric.mod.json b/fabric-textures-v0/src/main/resources/fabric.mod.json
similarity index 64%
rename from fabric-models/src/main/resources/fabric.mod.json
rename to fabric-textures-v0/src/main/resources/fabric.mod.json
index 3b1765e82..e58b18001 100644
--- a/fabric-models/src/main/resources/fabric.mod.json
+++ b/fabric-textures-v0/src/main/resources/fabric.mod.json
@@ -1,10 +1,10 @@
 {
   "schemaVersion": 1,
-  "id": "fabric-models",
+  "id": "fabric-textures-v0",
   "version": "${version}",
   "license": "Apache-2.0",
   "environment": "client",
   "mixins": [
-    "fabric-models.mixins.json"
+    "fabric-textures-v0.mixins.json"
   ]
-}
\ No newline at end of file
+}
diff --git a/fabric-textures/build.gradle b/fabric-textures/build.gradle
deleted file mode 100644
index 6b3cad2af..000000000
--- a/fabric-textures/build.gradle
+++ /dev/null
@@ -1,6 +0,0 @@
-archivesBaseName = "fabric-textures"
-version = getSubprojectVersion(project, "0.1.0")
-
-dependencies {
-	compile project(path: ':fabric-lib', configuration: 'dev')
-}
diff --git a/settings.gradle b/settings.gradle
index 218a1f481..79a5c21ab 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -12,22 +12,23 @@ pluginManagement {
 
 rootProject.name = "fabric-api"
 
-include 'fabric-commands'
-include 'fabric-containers'
-include 'fabric-content-registries'
-include 'fabric-crash-report-info'
-include 'fabric-events-interaction'
-include 'fabric-events-lifecycle'
-include 'fabric-item-groups'
-include 'fabric-lib'
-include 'fabric-keybindings'
-include 'fabric-mining-levels'
-include 'fabric-models'
-include 'fabric-networking'
-include 'fabric-networking-blockentity'
-include 'fabric-object-builders'
-include 'fabric-registry-sync'
-include 'fabric-rendering-hooks'
-include 'fabric-resource-loader'
-include 'fabric-tag-hooks'
-include 'fabric-textures'
+include 'fabric-api-base'
+
+include 'fabric-commands-v0'
+include 'fabric-containers-v0'
+include 'fabric-content-registries-v0'
+include 'fabric-crash-report-info-v1'
+include 'fabric-events-interaction-v0'
+include 'fabric-events-lifecycle-v0'
+include 'fabric-item-groups-v0'
+include 'fabric-keybindings-v0'
+include 'fabric-mining-levels-v0'
+include 'fabric-models-v0'
+include 'fabric-networking-v0'
+include 'fabric-networking-blockentity-v0'
+include 'fabric-object-builders-v0'
+include 'fabric-registry-sync-v0'
+include 'fabric-rendering-v0'
+include 'fabric-resource-loader-v0'
+include 'fabric-tag-extensions-v0'
+include 'fabric-textures-v0'