diff --git a/.gitignore b/.gitignore
index 04583fcf923da5eea5062fac42eac3b5eff3b5d7..aa73dbf8050b515f63e289299b7d6e1f39183c29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
 *.tar.gz
 
 *.pyc
+Cargo.lock
 
 /gitstats
 /libcore
@@ -18,6 +19,7 @@
 /acpica/acpica-*
 /externals/crates.io/*
 /Screenshots
+/rustc-nightly-src
 
 Graphics/*.rs
 Graphics/*.r8
diff --git a/Usermode/Xargo.toml b/Usermode/Xargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..a8ecde9ec4ceed38884e0e1ea638295bd3cd7b82
--- /dev/null
+++ b/Usermode/Xargo.toml
@@ -0,0 +1,6 @@
+[dependencies.alloc]
+stage = 0
+
+#[dependencies.std]
+#path = "libstd"
+#stage = 2
diff --git a/Usermode/filebrowser/Cargo.toml b/Usermode/filebrowser/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..dfef6ed7d023e3c5bd77e785b61418bcbfe0862f
--- /dev/null
+++ b/Usermode/filebrowser/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "filebrowser"
+version = "0.0.1"
+
+[dependencies]
+wtk = { path = "../libwtk" }
+vec_ring = { path = "../libvec_ring" }
+syscalls = { path = "../libsyscalls" }
+loader = { path = "../loader" }
diff --git a/Usermode/liballoc_system/Cargo.toml b/Usermode/liballoc_system/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..f7c2b9e60e429270716d6aeca8141e60e914b03e
--- /dev/null
+++ b/Usermode/liballoc_system/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "alloc_system"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+syscalls = { path = "../libsyscalls" }
+std_sync = { path = "../libstd_sync" }
diff --git a/Usermode/libasync/Cargo.toml b/Usermode/libasync/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..90b6096cfd4d8d441714cebd1b9f9ca463bb9cba
--- /dev/null
+++ b/Usermode/libasync/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "async"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+std = { path = "../libstd" }
+syscalls = { path = "../libsyscalls" }
diff --git a/Usermode/libbyteorder/Cargo.toml b/Usermode/libbyteorder/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..78949bc25b1b1912a17977b2e8e471a161aa62d7
--- /dev/null
+++ b/Usermode/libbyteorder/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "byteorder"
+version = "0.0.1"
+
+[dependencies]
+std = { path = "../libstd" }
+
+
diff --git a/Usermode/libmacros/Cargo.toml b/Usermode/libmacros/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..47dc80848d6e42682b6c4f9ae3c8bcff8e8735cd
--- /dev/null
+++ b/Usermode/libmacros/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+crate-type = "lib"
+name = "macros"
+version = "0.0.1"
+
+
diff --git a/Usermode/libstd/Cargo.toml b/Usermode/libstd/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..b23003ff724be2dc1d26afbb79833864a4505727
--- /dev/null
+++ b/Usermode/libstd/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "std"
+version = "0.0.1"
+
+[dependencies]
+std_io = { path = "../libstd_io" }
+std_rt = { path = "../libstd_rt" }
+std_sync = { path = "../libstd_sync" }
+syscalls = { path = "../libsyscalls" }
+macros = { path = "../libmacros" }
+alloc_system = { path = "../liballoc_system" }
diff --git a/Usermode/libstd_io/Cargo.toml b/Usermode/libstd_io/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..fd0b1091163563822149b08ddc0394fdb157bf5d
--- /dev/null
+++ b/Usermode/libstd_io/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "std_io"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+syscalls = { path = "../libsyscalls" }
+macros = { path = "../libmacros" }
diff --git a/Usermode/libstd_rt/Cargo.toml b/Usermode/libstd_rt/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..8f1df4be5090ccb425f758c03359c3f6cea4623b
--- /dev/null
+++ b/Usermode/libstd_rt/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+crate-type = "lib"
+name = "std_rt"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+syscalls = { path = "../libsyscalls" }
+macros = { path = "../libmacros" }
+
diff --git a/Usermode/libstd_sync/Cargo.toml b/Usermode/libstd_sync/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..1b7b4efd5307cd27822295f3368c16cdf67ddfee
--- /dev/null
+++ b/Usermode/libstd_sync/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "std_sync"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+syscalls = { path = "../libsyscalls" }
+
+
diff --git a/Usermode/libsyscalls/Cargo.toml b/Usermode/libsyscalls/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..1633ada4b7bd058a8565b1e7819d2d7f591081b1
--- /dev/null
+++ b/Usermode/libsyscalls/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "syscalls"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
diff --git a/Usermode/libvec_ring/Cargo.toml b/Usermode/libvec_ring/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..1397881308b74a6a9014a1b75c4af23d03615eeb
--- /dev/null
+++ b/Usermode/libvec_ring/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "vec_ring"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+
+std = { path = "../libstd" }
diff --git a/Usermode/libwtk/Cargo.toml b/Usermode/libwtk/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..f86ce3e5078063af5a11acf1cff0a0d42f958b3b
--- /dev/null
+++ b/Usermode/libwtk/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "wtk"
+version = "0.0.1"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+syscalls = { path = "../libsyscalls" }
+macros = { path = "../libmacros" }
+async = { path = "../libasync" }
+byteorder = { path = "../libbyteorder" }
+
+std = { path = "../libstd" }
diff --git a/Usermode/loader/Cargo.toml b/Usermode/loader/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..1abf89e35b92ed90b585a87dd7c3c49a8f36f871
--- /dev/null
+++ b/Usermode/loader/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "loader"
+version = "0.0.1"
+
+[[bin]]
+name = "loader"
+path = "src/main.rs"
+
+[lib]
+path = "lib.rs"
+
+[dependencies]
+std = { path = "../libstd" }
+std_rt = { path = "../libstd_rt" }
+syscalls = { path = "../libsyscalls" }
+byteorder = { path = "../libbyteorder" }
+cmdline_words_parser = { path = "../../externals/crates.io/cmdline_words_parser" }