diff --git a/Makefile b/Makefile
index 478497e2ee4456a489abc12479151532cdfde8f8..e138b86277f1a2aa1d380c9aece31ad08c45dcfd 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,15 @@ ISO_IMAGE_DEST=$(WORKSPACE)/$(ARCH)/iso
 ISO_IMAGE=$(ISO_IMAGE_DEST)/image.iso
 ISO_NAME=$(ISO_FLAVOR)-$(ISO_VERSION)-desktop-$(ALTARCH).iso
 ISO_URL=$(ISO_BASE_URL)/$(ISO_RELEASE)/release
+ISO_CONTENT=$(ISO_IMAGE_DEST)/content
+
+CASPER_SOURCE_DIR=$(ISO_CONTENT)/casper
+INITRD_SOURCE=$(CASPER_SOURCE_DIR)/initrd.lz
+SQUASHFS_SOURCE=$(CASPER_SOURCE_DIR)/filesystem.squashfs
+
+ROOTFS=$(WORKSPACE)/$(ARCH)/rootfs
+INITRD=$(WORKSPACE)/$(ARCH)/initrd
+INITRD_TARGET=$(WORKSPACE)/$(ARCH)/initrd.lz
 
 $(info Architecture: $(ARCH) ($(ALTARCH)))
 $(info Workspace: $(WORKSPACE))
@@ -31,7 +40,7 @@ workspace : $(WORKSPACE)
 $(WORKSPACE) :
 	mkdir -p $(WORKSPACE)
 
-iso_download $(ISO_IMAGE) : $(WORKSPACE)
+iso_download $(ISO_IMAGE) : | $(WORKSPACE)
 	mkdir -p "$(ISO_IMAGE_DEST)"
 	wget -O "$(ISO_IMAGE_DEST)/$(ISO_NAME)" -c "$(ISO_URL)/$(ISO_NAME)"
 	wget -O "$(ISO_IMAGE_DEST)/SHA256SUMS.temp" -c "$(ISO_URL)/SHA256SUMS"
@@ -40,22 +49,41 @@ iso_download $(ISO_IMAGE) : $(WORKSPACE)
 	cd "$(ISO_IMAGE_DEST)" && sha256sum -c SHA256SUMS
 	mv "$(ISO_IMAGE_DEST)/$(ISO_NAME)" "$(ISO_IMAGE)"
 
-iso_files : $(ISO_IMAGE)
-	mkdir -p "$(ISO_IMAGE_DEST)/content"
-	7z -x -o"$(ISO_IMAGE_DEST)/content" "$(ISO_IMAGE)"
+iso_content $(INITRD_SOURCE) $(SQUASHFS_SOURCE) : $(ISO_IMAGE)
+	mkdir -p "$(ISO_CONTENT)"
+	7z x -o"$(ISO_CONTENT)" -aos "$(ISO_IMAGE)"
 
 iso_clean :
 	$(RM) "$(ISO_IMAGE)"
 	$(RM) -r "$(ISO_IMAGE_DEST)"
 
+#TODO: generic unsquash/squash with magic make variables ($@ etc.)
+rootfs_unsquash : | $(SQUASHFS_SOURCE)
+	$(RM) -r "$(ROOTFS)"
+	unsquashfs -f -d "$(ROOTFS)" "$(SQUASHFS_SOURCE)"
+
+initrd_unpack : | $(INITRD_SOURCE)
+	mkdir -p "$(INITRD)"
+	cd "$(INITRD)" && lzma -d < "$(INITRD_SOURCE)" | cpio -i
+
+initrd_clean :
+	$(RM) -r "$(INITRD)"
+	$(RM) "$(INITRD_TARGET)"
+
+initrd_remaster :
+	$(CURDIR)/scripts/remaster_initrd.sh "$(CURDIR)" "$(INITRD)"
+
+initrd_pack :
+	cd "$(INITRD)" && find | cpio -H newc -o | lzma -z > "$(INITRD_TARGET)"
+
 config $(CONFIG_FILE) :
 	$(info Generating configuration $(CONFIG_FILE))
 	echo -n "" > $(CONFIG_FILE)
-	echo "PRIMARY_ARCH=\"$(PRIMARY_ARCH)\"" >> "$(CONFIG_FILE)"
-	echo "SECONDARY_ARCH=\"$(SECONDARY_ARCH)\"" >> "$(CONFIG_FILE)"
-	echo "WORKSPACE=\"$(WORKSPACE)\"" >> "$(CONFIG_FILE)"
+	echo "PRIMARY_ARCH=$(PRIMARY_ARCH)" >> "$(CONFIG_FILE)"
+	echo "SECONDARY_ARCH=$(SECONDARY_ARCH)" >> "$(CONFIG_FILE)"
+	echo "WORKSPACE=$(WORKSPACE)" >> "$(CONFIG_FILE)"
 
 config_clean :
 	$(RM) $(CONFIG_FILE)
 
-.PHONY : config config_clean iso_clean
+.PHONY : config config_clean iso_clean initrd_clean
diff --git a/legacy_scripts/customize_common b/scripts/common_functions.sh
similarity index 100%
rename from legacy_scripts/customize_common
rename to scripts/common_functions.sh
diff --git a/scripts/remaster_initrd.sh b/scripts/remaster_initrd.sh
new file mode 100755
index 0000000000000000000000000000000000000000..41fd2c14ed63be86ce13f27037bdd2a68117648c
--- /dev/null
+++ b/scripts/remaster_initrd.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+###################################################################################
+# UCK - Ubuntu Customization Kit                                                  #
+# Copyright (C) 2006-2010 UCK Team                                                #
+#                                                                                 #
+# UCK is free software: you can redistribute it and/or modify                     #
+# it under the terms of the GNU General Public License as published by            #
+# the Free Software Foundation, either version 3 of the License, or               #
+# (at your option) any later version.                                             #
+#                                                                                 #
+# UCK is distributed in the hope that it will be useful,                          #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of                  #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                   #
+# GNU General Public License for more details.                                    #
+#                                                                                 #
+# You should have received a copy of the GNU General Public License               #
+# along with UCK.  If not, see <http://www.gnu.org/licenses/>.                    #
+###################################################################################
+
+SCRIPT_DIR="$1"
+IRD="$2"
+
+if [ ! -d "$SCRIPT_DIR" ]; then
+	echo "Expected lipck base path as first argument!"
+	exit 1
+fi
+
+if [ ! -d "$IRD" ]; then
+        echo "Expected initrd root directory as second argument!"
+        exit 2
+fi
+
+CONTRIB_DIR="$SCRIPT_DIR/contrib/initrd"
+
+if [ -e "$SCRIPT_DIR/scripts/common_functions.sh" ]; then
+        source "$SCRIPT_DIR/scripts/common_functions.sh"
+fi
+
+function install_nmtelekinese()
+{
+	mkdir -p "$IRD/lip/nm"
+	cp "$CONTRIB_DIR/nmtelekinese/nmtelekinese.desktop" "$IRD/lip/nm"
+	cp "$CONTRIB_DIR/nmtelekinese/nmtelekinese.py" "$IRD/lip/nm"
+	cp "$CONTRIB_DIR/nmtelekinese/26mopsmops" "$IRD/scripts/casper-bottom/"
+	chmod +x "$IRD/scripts/casper-bottom/26mopsmops"
+}
+
+function install_libnsa()
+{
+        mkdir -p "$IRD/lip/libnsa"
+        cp "$CONTRIB_DIR/libnsa/libnsa.desktop" "$IRD/lip/libnsa"
+        cp "$CONTRIB_DIR/libnsa/libnsa.sh" "$IRD/lip/libnsa"
+        cp "$CONTRIB_DIR/libnsa/26libnsa" "$IRD/scripts/casper-bottom/"
+        chmod +x "$IRD/lip/libnsa/libnsa.sh"
+        chmod +x "$IRD/scripts/casper-bottom/26libnsa"
+}
+
+function add_no_bootloader_icon()
+{
+	mkdir -p "$IRD/lip/no-bootloader-icon"
+	cp "$CONTRIB_DIR/no-bootloader-icon/ubiquity-kdeui.desktop" "$IRD/lip/no-bootloader-icon/"
+#	cp "$SCRIPT_DIR/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop" "$IRD/lip/no-bootloader-icon/"
+
+	cp "$CONTRIB_DIR/no-bootloader-icon/25adduser" "$IRD/scripts/casper-bottom/"
+	chmod +x "$IRD/scripts/casper-bottom/25adduser"
+}
+
+function install_liphook()
+{
+	cp "$CONTRIB_DIR/initrd_hook/24liphook" "$IRD/scripts/casper-bottom/"
+	chmod +x "$IRD/scripts/casper-bottom/24liphook"
+	cp "$CONTRIB_DIR/initrd_hook/ORDER" "$IRD/scripts/casper-bottom/"
+}
+
+mkdir -p "$IRD/lip"
+install_nmtelekinese
+#install_libnsa
+add_no_bootloader_icon
+install_liphook
+
+patch_all "$SCRIPT_DIR/patches/initrd" "$IRD"