diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 5362664..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open-Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(TARGET_DEVICE),m7wls)
-    include $(call first-makefiles-under,$(LOCAL_PATH))
-endif
-
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
deleted file mode 100644
index a4128da..0000000
--- a/AndroidBoard.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)
-
-# include the non-open-source counterpart to this file
--include vendor/htc/m7wls/AndroidBoardVendor.mk
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
deleted file mode 100644
index cf1493f..0000000
--- a/AndroidProducts.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-PRODUCT_MAKEFILES := \
-    $(LOCAL_DIR)/device_m7wls.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
index b08c716..1e78a7e 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -30,6 +30,13 @@
 # Bootloader
 TARGET_BOOTLOADER_BOARD_NAME := m7wls
 
+# Filesystem
+BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 16776704
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1946156032
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 27917287424
+BOARD_FLASH_BLOCK_SIZE := 131072
+
 # cat /proc/emmc:
 # dev: size erasesize name
 # mmcblk0p19: 000ffa00 00000200 "misc"
@@ -55,11 +62,6 @@
 # mmcblk0p32: 034ffa00 00000200 "reserve_2"
 # mmcblk0p34: 05fffc00 00000200 "reserve_3"
 # mmcblk0p31: 04729a00 00000200 "reserve"
-BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216
-BOARD_RECOVERYIMAGE_PARTITION_SIZE := 16776704
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1946156032
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 27917287424
-BOARD_FLASH_BLOCK_SIZE := 131072
 
 # inherit from the proprietary version
--include vendor/htc/m7wls/BoardConfigVendor.mk
+-include vendor/htc/m7spr/BoardConfigVendor.mk
diff --git a/README b/README
new file mode 100644
index 0000000..91e15f3
--- /dev/null
+++ b/README
@@ -0,0 +1,3 @@
+Copyright 2013 - The CyanogenMod Project
+
+Device configuration for the HTC One (Sprint model).
diff --git a/proprietary-files.txt b/device-proprietary-files.txt
similarity index 100%
rename from proprietary-files.txt
rename to device-proprietary-files.txt
diff --git a/device.mk b/device.mk
new file mode 100644
index 0000000..3e59ebc
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2011 The CyanogenMod Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# call the proprietary setup
+$(call inherit-product-if-exists, vendor/htc/m7spr/m7spr-vendor.mk)
+
+# overlays
+DEVICE_PACKAGE_OVERLAYS += device/htc/m7spr/overlay
+
+# common overlays
+DEVICE_PACKAGE_OVERLAYS += device/htc/m7-common/overlay-cdma
+
+# Sprint properties
+PRODUCT_PROPERTY_OVERRIDES += \
+    ro.com.google.clientidbase=android-sprint-us \
+    ro.carrier=Sprint
+
+# Inherit from m7-common
+$(call inherit-product, device/htc/m7-common/m7-common.mk)
diff --git a/device_m7wls.mk b/device_m7wls.mk
deleted file mode 100644
index c50ad5a..0000000
--- a/device_m7wls.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (C) 2011 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# common m7 configs
-$(call inherit-product, device/htc/m7-common/m7-common.mk)
-
-DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
-
-PRODUCT_COPY_FILES += \
-    frameworks/native/data/etc/android.hardware.telephony.cdma.xml:system/etc/permissions/android.hardware.telephony.cdma.xml \
-    frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml
-
-## CDMA Sprint stuffs
-PRODUCT_PROPERTY_OVERRIDES += \
-    ro.com.google.clientidbase=android-sprint-us \
-    ro.com.google.locationfeatures=1 \
-    ro.cdma.home.operator.numeric=310120 \
-    ro.cdma.home.operator.alpha=Sprint \
-    gsm.sim.operator.alpha = sprint \
-    gsm.sim.operator.numeric = 310120 \
-    gsm.sim.operator.iso-country = us \
-    gsm.operator.alpha = sprint \
-    gsm.operator.numeric = 310120 \
-    gsm.operator.iso-country = us \
-    ro.carrier=Sprint
-
-PRODUCT_NAME := full_m7wls
-PRODUCT_DEVICE := m7wls
-
-# call the proprietary setup
-$(call inherit-product-if-exists, vendor/htc/m7wls/m7wls-vendor.mk)
diff --git a/extract-files.sh b/extract-files.sh
index f951880..9b52595 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -1,38 +1,7 @@
 #!/bin/sh
 
-# Copyright (C) 2013 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+set -e
 
-# This file is generated by device/common/generate-blob-scripts.sh - DO NOT EDIT
-
-VENDOR=htc
-DEVICE=m7wls
-
-mkdir -p ../../../vendor/$VENDOR/$DEVICE/proprietary
-
-adb root
-adb wait-for-device
-
-echo "Pulling proprietary files..."
-for FILE in `cat ../$DEVICE/proprietary-files.txt | grep -v ^# | grep -v ^$`; do
-    DIR=`dirname $FILE`
-    if [ ! -d ../../../vendor/$VENDOR/$DEVICE/proprietary/$DIR ]; then
-        mkdir -p ../../../vendor/$VENDOR/$DEVICE/proprietary/$DIR
-    fi
-    adb pull /$FILE ../../../vendor/$VENDOR/$DEVICE/proprietary/$FILE
-done
-
-./../../../device/${VENDOR}/${DEVICE}/setup-makefiles.sh
-
-./../../../device/${VENDOR}/${DEVICE}-common/extract-files.sh
+export DEVICE=m7spr
+export VENDOR=htc
+./../m7-common/extract-files.sh $@
diff --git a/full_m7spr.mk b/full_m7spr.mk
new file mode 100644
index 0000000..6a8ec9f
--- /dev/null
+++ b/full_m7spr.mk
@@ -0,0 +1,36 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# This file is the build configuration for a full Android
+# build for maguro hardware. This cleanly combines a set of
+# device-specific aspects (drivers) with a device-agnostic
+# product configuration (apps). Except for a few implementation
+# details, it only fundamentally contains two inherit-product
+# lines, full and maguro, hence its name.
+#
+
+
+# Inherit from those products. Most specific first.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
+
+# Inherit from m7spr device
+$(call inherit-product, device/htc/m7spr/device.mk)
+
+# Set those variables here to overwrite the inherited values.
+PRODUCT_NAME := full_m7spr
+PRODUCT_DEVICE := m7spr
+PRODUCT_BRAND := htc
+PRODUCT_MANUFACTURER := htc
+PRODUCT_MODEL := One
diff --git a/setup-makefiles.sh b/setup-makefiles.sh
deleted file mode 100755
index 03f9039..0000000
--- a/setup-makefiles.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2013 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This file is generated by device/common/generate-blob-scripts.sh - DO NOT EDIT
-
-VENDOR=htc
-DEVICE=m7wls
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__VENDOR__/$VENDOR/g > ../../../vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk
-# Copyright (C) 2013 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-LOCAL_PATH := vendor/__VENDOR__/__DEVICE__
-
-PRODUCT_COPY_FILES += \\
-EOF
-
-LINEEND=" \\"
-COUNT=`cat proprietary-files.txt | grep -v ^# | grep -v ^$ | wc -l | awk {'print $1'}`
-for FILE in `cat proprietary-files.txt | grep -v ^# | grep -v ^$`; do
-    COUNT=`expr $COUNT - 1`
-    if [ $COUNT = "0" ]; then
-        LINEEND=""
-    fi
-    echo "    \$(LOCAL_PATH)/proprietary/$FILE:$FILE$LINEEND" >> ../../../vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk
-done
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__VENDOR__/$VENDOR/g > ../../../vendor/$VENDOR/$DEVICE/$DEVICE-vendor.mk
-# Copyright (C) 2013 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Pick up overlay for features that depend on non-open-source files
-DEVICE_PACKAGE_OVERLAYS += vendor/__VENDOR__/__DEVICE__/overlay
-
-\$(call inherit-product, vendor/__VENDOR__/__DEVICE__/__DEVICE__-vendor-blobs.mk)
-EOF
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__VENDOR__/$VENDOR/g > ../../../vendor/$VENDOR/$DEVICE/BoardConfigVendor.mk
-# Copyright (C) 2013 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-EOF
diff --git a/slim.mk b/slim.mk
index 2e6c0f9..f3bb3c7 100644
--- a/slim.mk
+++ b/slim.mk
@@ -1,28 +1,12 @@
-$(call inherit-product, vendor/slim/config/common_full_phone.mk)
+$(call inherit-product, device/htc/m7spr/full_m7spr.mk)
 
 $(call inherit-product, vendor/slim/config/cdma.mk)
 
-# Enhanced NFC
 $(call inherit-product, vendor/slim/config/nfc_enhanced.mk)
 
-# Inherit device configuration
-$(call inherit-product, device/htc/m7wls/device_m7wls.mk)
+$(call inherit-product, vendor/slim/config/common_full_phone.mk)
 
-# Device naming
-PRODUCT_DEVICE := m7wls
-PRODUCT_NAME := slim_m7wls
-PRODUCT_BRAND := htc
-PRODUCT_MODEL := HTC One
-PRODUCT_MANUFACTURER := HTC
+PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=m7wls BUILD_ID=JZO54K BUILD_FINGERPRINT="htc/m7wls/m7wls:4.1.2/JZO54K/166937.7:user/release-keys" PRIVATE_BUILD_DESC="1.29.651.7 CL166937 release-keys"
 
-# Set build fingerprint / ID / Product Name ect.
-PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=htc_m7wls BUILD_ID=JZO54K BUILD_FINGERPRINT="htc/m7wls/m7wls:4.1.2/JZO54K/166937.7:user/release-keys" PRIVATE_BUILD_DESC="1.29.651.7 CL166937 release-keys"
-
-# Release name
-PRODUCT_RELEASE_NAME := m7wls
-
-# Boot animation
-TARGET_SCREEN_HEIGHT := 1920
-TARGET_SCREEN_WIDTH := 1080
-
--include vendor/slim/config/common_versions.mk
+PRODUCT_NAME := slim_m7spr
+PRODUCT_DEVICE := m7spr
diff --git a/system.prop b/system.prop
index 229ab3a..18ff409 100644
--- a/system.prop
+++ b/system.prop
@@ -1,10 +1,6 @@
-#
-# system.prop for m7wls
+# system.prop for m7spr
 #
 
-ro.sf.lcd_density=480
-
-# RIL properties
 ro.ril.wp.feature=1
 persist.radio.add_power_save=1
 persist.radio.snapshot_disabled=1
@@ -13,6 +9,7 @@
 ro.ril.transmitpower=true
 ro.use_data_netmgrd=true
 persist.data_netmgrd_nint=16
+rild.libargs=-d /dev/smd0
 rild.libpath=/system/lib/libril-qc-qmi-1.so
 ril.subscription.types=NV,RUIM
 ro.config.svlte1x=true
@@ -28,9 +25,14 @@
 persist.rild.nitz_short_ons_1=""
 persist.rild.nitz_short_ons_2=""
 persist.rild.nitz_short_ons_3=""
-rild.libargs=-d /dev/smd0
 ro.cdma.home.operator.numeric=310120
 ro.cdma.home.operator.alpha=Sprint
+gsm.sim.operator.alpha=sprint \
+gsm.sim.operator.numeric=310120 \
+gsm.sim.operator.iso-country=us \
+gsm.operator.alpha=sprint \
+gsm.operator.numeric=310120 \
+gsm.operator.iso-country=us \
 ro.telephony.default_network=8
 telephony.lteOnCdmaDevice=1
 telephony.sms.pseudo_multipart=1
diff --git a/vendorsetup.sh b/vendorsetup.sh
index 362925a..a373a29 100644
--- a/vendorsetup.sh
+++ b/vendorsetup.sh
@@ -20,6 +20,6 @@
 # In particular, you can add lunch options with the add_lunch_combo
 # function: add_lunch_combo generic-eng
 
-add_lunch_combo slim_m7wls-userdebug
-add_lunch_combo slim_m7wls-eng
+add_lunch_combo slim_m7spr-userdebug
+add_lunch_combo slim_m7spr-eng
 
