diff --git a/recipes/dev/fal/recipe.sh b/recipes/dev/fal/recipe.sh
deleted file mode 100644
index 8e102368fca6d464502f8009e5f797a5ed1158a7..0000000000000000000000000000000000000000
--- a/recipes/dev/fal/recipe.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-GIT=https://github.com/4lDO2/fal-rs
-CARGO_PACKAGE=fal-frontend-redox
diff --git a/recipes/dev/lci/recipe.sh b/recipes/dev/lci/recipe.sh
deleted file mode 100644
index c1c88b909f2bd0456259fca14f1fc288bdf96a20..0000000000000000000000000000000000000000
--- a/recipes/dev/lci/recipe.sh
+++ /dev/null
@@ -1 +0,0 @@
-GIT=https://github.com/jD91mZM2/rust-lci
diff --git a/recipes/dev/lci/recipe.toml b/recipes/dev/lci/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..2f5e1cf440108ca36dadd067be62c42f2dca0151
--- /dev/null
+++ b/recipes/dev/lci/recipe.toml
@@ -0,0 +1,5 @@
+[source]
+git = "https://github.com/jD91mZM2/rust-lci"
+
+[build]
+template = "cargo"
diff --git a/recipes/tools/sodium/recipe.sh b/recipes/tools/sodium/recipe.sh
deleted file mode 100644
index 5572b9ae2fb56e761aacffbc619dde20c0d138df..0000000000000000000000000000000000000000
--- a/recipes/tools/sodium/recipe.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-GIT=https://gitlab.redox-os.org/redox-os/sodium.git
-BINDIR="/ui/bin"
-CARGOFLAGS="--features orbital"
-
-function recipe_stage {
-    mkdir -pv "$1/ui/apps"
-    cp -v manifest "$1/ui/apps/sodium"
-    mkdir -pv "$1/ui/icons"
-    cp -v icon.png "$1/ui/icons/sodium.png"
-}
diff --git a/recipes/tools/sodium/recipe.toml b/recipes/tools/sodium/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..5986392b07f550efd12791c5843f7fe1128c91e3
--- /dev/null
+++ b/recipes/tools/sodium/recipe.toml
@@ -0,0 +1,18 @@
+[source]
+git = "https://gitlab.redox-os.org/redox-os/sodium.git"
+
+[build]
+template = "custom"
+script = """
+"${COOKBOOK_CARGO}" install \
+    --path "${COOKBOOK_SOURCE}" \
+    --root "${COOKBOOK_STAGE}/ui" \
+    --locked \
+    --no-track \
+    --features orbital
+
+mkdir -pv "${COOKBOOK_STAGE}/ui/apps"
+cp -v ${COOKBOOK_SOURCE}/manifest "${COOKBOOK_STAGE}/ui/apps/sodium"
+mkdir -pv "${COOKBOOK_STAGE}/ui/icons"
+cp -v ${COOKBOOK_SOURCE}/icon.png "${COOKBOOK_STAGE}/ui/icons/sodium.png"
+"""
diff --git a/recipes/wip/fal/recipe.toml b/recipes/wip/fal/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..c8e48a478ec56f182db82108d6fc6bc20a71a8e9
--- /dev/null
+++ b/recipes/wip/fal/recipe.toml
@@ -0,0 +1,6 @@
+[source]
+git = "https://github.com/4lDO2/fal-rs"
+
+[build]
+template = "custom"
+script = "cookbook_cargo_packages fal-frontend-redox"
diff --git a/setup.sh b/setup.sh
deleted file mode 100755
index 25b6377a368596323411a300785f66fcd531300a..0000000000000000000000000000000000000000
--- a/setup.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-echo "Downloading latest pkgutils"
-git submodule update --init --remote pkgutils
-cargo update --manifest-path pkgutils/Cargo.toml
-
-echo "Defaulting to rust nightly"
-rustup override set nightly
-echo "Update rust nightly"
-rustup update nightly
-echo "Downloading rust source"
-rustup component add rust-src
-if [ -z "$(which cargo-config)" ]
-then
-    echo "Installing cargo-config"
-    cargo install -f cargo-config
-fi
-
-echo "cook.sh is ready to use"
diff --git a/src/bin/cook.rs b/src/bin/cook.rs
index 2badc3516f58b7de18f7c09b70c48c8f58f9f070..c6983d6e71dfb3577939aebc577d791fe3e684db 100644
--- a/src/bin/cook.rs
+++ b/src/bin/cook.rs
@@ -449,7 +449,7 @@ COOKBOOK_CARGO="${COOKBOOK_REDOXER}"
 function cookbook_cargo {
     "${COOKBOOK_CARGO}" install \
         --path "${COOKBOOK_SOURCE}" \
-        --root "${COOKBOOK_STAGE}" \
+        --root "${COOKBOOK_STAGE}/usr" \
         --locked \
         --no-track \
         "$@"