diff --git a/Cargo.toml b/Cargo.toml
index 11148175fe47c910fc5ec90a2b9f4f37a530b20a..750853e3d4577dea02c7776e6d71ca7632ffedb7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,11 +8,11 @@ name = "c"
 crate-type = ["staticlib"]
 
 [workspace]
-members = ["crt0"]
+members = ["src/crt0"]
 
 [dependencies]
 compiler_builtins = { git = "https://github.com/rust-lang-nursery/compiler-builtins.git", default-features = false, features = ["mem"] }
-platform = { path = "platform" }
+platform = { path = "src/platform" }
 ctype = { path = "src/ctype" }
 fcntl = { path = "src/fcntl" }
 grp = { path = "src/grp" }
diff --git a/fmt.sh b/fmt.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8e925fc0260e88e0b6f7905b276db1cd3d5d426d
--- /dev/null
+++ b/fmt.sh
@@ -0,0 +1,8 @@
+ARGS=()
+
+for crate in relibc $(find src -name Cargo.toml | cut -d '/' -f2 | grep -v template)
+do
+    ARGS+=("--package" "$crate")
+done
+
+cargo fmt "${ARGS[@]}" "$@"
diff --git a/crt0/Cargo.toml b/src/crt0/Cargo.toml
similarity index 100%
rename from crt0/Cargo.toml
rename to src/crt0/Cargo.toml
diff --git a/crt0/src/lib.rs b/src/crt0/src/lib.rs
similarity index 100%
rename from crt0/src/lib.rs
rename to src/crt0/src/lib.rs
diff --git a/src/ctype/Cargo.toml b/src/ctype/Cargo.toml
index d0ae7b3fb39da74066d0b92668c74424df847f0d..f8f98d92956a3d29c6433363e2e6f12aa7fa7b4f 100644
--- a/src/ctype/Cargo.toml
+++ b/src/ctype/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/fcntl/Cargo.toml b/src/fcntl/Cargo.toml
index 9eb0cb9a702afd7d14ba72572863a49f6b2405d7..c2b0198c38151910437d388ef3dc4f071568d93d 100644
--- a/src/fcntl/Cargo.toml
+++ b/src/fcntl/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/grp/Cargo.toml b/src/grp/Cargo.toml
index d09fdca34c75d5b72ccd3031437b03ecc39fcea5..d9eb91db9e0c85754f878946316bb343346560e9 100644
--- a/src/grp/Cargo.toml
+++ b/src/grp/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/mman/Cargo.toml b/src/mman/Cargo.toml
index e7e1f0d91588be3e29bc7dbc98b9f67396bbe76c..9d672ec75f1bfa70dfdab17b74319f74f94e0e2b 100644
--- a/src/mman/Cargo.toml
+++ b/src/mman/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/platform/Cargo.toml b/src/platform/Cargo.toml
similarity index 100%
rename from platform/Cargo.toml
rename to src/platform/Cargo.toml
diff --git a/platform/src/lib.rs b/src/platform/src/lib.rs
similarity index 100%
rename from platform/src/lib.rs
rename to src/platform/src/lib.rs
diff --git a/platform/src/linux/mod.rs b/src/platform/src/linux/mod.rs
similarity index 100%
rename from platform/src/linux/mod.rs
rename to src/platform/src/linux/mod.rs
diff --git a/platform/src/rawfile.rs b/src/platform/src/rawfile.rs
similarity index 100%
rename from platform/src/rawfile.rs
rename to src/platform/src/rawfile.rs
diff --git a/platform/src/redox/mod.rs b/src/platform/src/redox/mod.rs
similarity index 100%
rename from platform/src/redox/mod.rs
rename to src/platform/src/redox/mod.rs
diff --git a/platform/src/types.rs b/src/platform/src/types.rs
similarity index 100%
rename from platform/src/types.rs
rename to src/platform/src/types.rs
diff --git a/src/semaphore/Cargo.toml b/src/semaphore/Cargo.toml
index 5bc1c215846febf3c7c1835a5b60369509c03d46..a4e0960d99f1e296bca9c80704c3ec7f1121a283 100644
--- a/src/semaphore/Cargo.toml
+++ b/src/semaphore/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/stdio/Cargo.toml b/src/stdio/Cargo.toml
index c74b048852e1033ad82bc59abd8cd9b2e8d4b45a..e64c0df1a573822c7169f99b5041c08070749bbb 100644
--- a/src/stdio/Cargo.toml
+++ b/src/stdio/Cargo.toml
@@ -8,5 +8,5 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
 va_list = { path = "../../va_list", features = ["no_std"] }
diff --git a/src/stdlib/Cargo.toml b/src/stdlib/Cargo.toml
index ed0dce3f95c4ed15d695ec988e3631b03a417b6a..bc05d632db786914144b33718ec6957f82def7a8 100644
--- a/src/stdlib/Cargo.toml
+++ b/src/stdlib/Cargo.toml
@@ -8,5 +8,5 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
 ralloc = { path = "../../ralloc", default-features = false }
diff --git a/src/string/Cargo.toml b/src/string/Cargo.toml
index 9c58c499ca9cbf6879098ccda9e28fb1a81b49f4..a5678f9b05d3c9f856885fd2f03ec7b7cc6e5d51 100644
--- a/src/string/Cargo.toml
+++ b/src/string/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/template/Cargo.toml b/src/template/Cargo.toml
index 4021963f1f529cac673f398c4b1d6de87280f5c6..844bcb55eb2106f1403f361011054514d502fac4 100644
--- a/src/template/Cargo.toml
+++ b/src/template/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/src/unistd/Cargo.toml b/src/unistd/Cargo.toml
index e678f3a96b7088d2fbb40bf7e51f769c6bd76e51..3edd54a814220a16f00bbbe9093cbb4eb21ade0d 100644
--- a/src/unistd/Cargo.toml
+++ b/src/unistd/Cargo.toml
@@ -8,4 +8,4 @@ build = "build.rs"
 cbindgen = { path = "../../cbindgen" }
 
 [dependencies]
-platform = { path = "../../platform" }
+platform = { path = "../platform" }
diff --git a/test.sh b/test.sh
index 1ee02991cab3b282ff37ffe5fe6c9951a2809ead..cb7f9eba968969434aef81390628688564b33390 100755
--- a/test.sh
+++ b/test.sh
@@ -1,7 +1,7 @@
 set -ex
 
 cargo build
-cargo build --manifest-path crt0/Cargo.toml
+cargo build --manifest-path src/crt0/Cargo.toml
 
 cd openlibm
 make