diff --git a/mcast-pa/Makefile b/mcast-pa/Makefile
index d3864d703a3569fa2d66c82e7958439027f964cc..9858e26500427c6e0a5e33eedb3f5486fbe777e3 100644
--- a/mcast-pa/Makefile
+++ b/mcast-pa/Makefile
@@ -51,26 +51,11 @@ define Package/mcast-pa/install
 	$(INSTALL_DIR) $(1)/sbin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/mcast-pa $(1)/sbin/
 
-	$(INSTALL_DIR) $(1)/usr/prpl/scripts
-	$(CP) ./files/usr/prpl/scripts/* $(1)/usr/prpl/scripts/
-
-##
-# install iptv scripts from here now too
-#
-# NOTE: these should probably be in their own package
-##
 	$(INSTALL_DIR) $(1)/etc/init.d
-	$(INSTALL_BIN) ./files/etc/init.d/iptv $(1)/etc/init.d/.
-
-# HACK / FIXME - don't do this! make a uci-default instead
-	$(INSTALL_DIR) $(1)/etc/config
-	$(INSTALL_BIN) ./files/etc/config/iptv $(1)/etc/config/.
+	$(INSTALL_BIN) ./files/etc/init.d/mcast-pa $(1)/etc/init.d/mcast-pa
 
 	$(INSTALL_DIR) $(1)/etc/uci-defaults
 	$(INSTALL_BIN) ./files/etc/uci-defaults/mcast-pa $(1)/etc/uci-defaults/99-mcast-pa
-
-	$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
-	$(INSTALL_BIN) ./files/etc/hotplug.d/iface/60-iptv $(1)/etc/hotplug.d/iface/.
 endef
 
 $(eval $(call BuildPackage,mcast-pa))
diff --git a/mcast-pa/files/etc/config/iptv b/mcast-pa/files/etc/config/iptv
deleted file mode 100644
index 3929388d9679650aae06511d0d2655b9ad24c31f..0000000000000000000000000000000000000000
--- a/mcast-pa/files/etc/config/iptv
+++ /dev/null
@@ -1,14 +0,0 @@
-
-config iptv
-    # valid modes are: bridged | wan2lan | video2lan
-    option mode 'wan2lan'
-
-config igmp
-    option fastleave '1'
-    option force_v2 '1'
-
-config blocks
-    list entries '(*|239.255.255.0/24)'
-    list entries '(*|224.0.0.0/24)'
-    list entries '(*|239.192.0.0/16)'
-
diff --git a/mcast-pa/files/etc/hotplug.d/iface/60-iptv b/mcast-pa/files/etc/hotplug.d/iface/60-iptv
deleted file mode 100644
index 39a778dd5e25afccc7873a2f75dbd94dc8be7a1b..0000000000000000000000000000000000000000
--- a/mcast-pa/files/etc/hotplug.d/iface/60-iptv
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-###############################################################################
-#               _____                      _  ______ _____                    #
-#              /  ___|                    | | | ___ \  __ \                   #
-#              \ `--. _ __ ___   __ _ _ __| |_| |_/ / |  \/                   #
-#               `--. \ '_ ` _ \ / _` | '__| __|    /| | __                    #
-#              /\__/ / | | | | | (_| | |  | |_| |\ \| |_\ \                   #
-#              \____/|_| |_| |_|\__,_|_|   \__\_| \_|\____/ Inc.              #
-#                                                                             #
-###############################################################################
-#                                                                             #
-#                       copyright 2018 by SmartRG, Inc.                       #
-#                              Santa Barbara, CA                              #
-#                                                                             #
-###############################################################################
-#                                                                             #
-# Author: Colin Whittaker                                                     #
-#                                                                             #
-# Purpose: Reload iptv when changes occur to interfaces other than LAN        #
-#                                                                             #
-###############################################################################
-case $INTERFACE in
-lan*)
-exit 0
-;;
-LAN*)
-exit 0
-;;
-esac
-
-[ "$ACTION" = ifup -o "$ACTION" = ifupdate ] || exit 0
-[ "$ACTION" = ifupdate -a -z "$IFUPDATE_ADDRESSES" -a -z "$IFUPDATE_DATA" ] && exit 0
-
-/etc/init.d/iptv restart
-
-logger -t mcproxy "Reloading iptv due to $ACTION of $INTERFACE ($DEVICE)"
diff --git a/mcast-pa/files/etc/init.d/iptv b/mcast-pa/files/etc/init.d/iptv
deleted file mode 100755
index 05b3fe4d9092478ab5b96bacf25fad604734d9b2..0000000000000000000000000000000000000000
--- a/mcast-pa/files/etc/init.d/iptv
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/bin/sh /etc/rc.common
-###############################################################################
-#               _____                      _  ______ _____                    #
-#              /  ___|                    | | | ___ \  __ \                   #
-#              \ `--. _ __ ___   __ _ _ __| |_| |_/ / |  \/                   #
-#               `--. \ '_ ` _ \ / _` | '__| __|    /| | __                    #
-#              /\__/ / | | | | | (_| | |  | |_| |\ \| |_\ \                   #
-#              \____/|_| |_| |_|\__,_|_|   \__\_| \_|\____/ Inc.              #
-#                                                                             #
-###############################################################################
-#                                                                             #
-#                       copyright 2018 by SmartRG, Inc.                       #
-#                              Santa Barbara, CA                              #
-#                                                                             #
-###############################################################################
-#                                                                             #
-# Author: Colin Whittaker                                                     #
-#                                                                             #
-# Purpose: Configure mcproxy, mcast-pa and linux bridge based on iptv config  #
-#                                                                             #
-###############################################################################
-START=99
-USE_PROCD=1
-
-. /lib/functions/network.sh
-
-clear_section() {
-	local sec="$1"
-	while [ $? -eq 0 ]; do
-		uci delete $sec > /dev/null 2>/dev/null
-	done
-}
-setcfg() {
-	cfg=$1
-}
-set_instance() {
-	local name="$1"
-	local upif="$2"
-	local downif="br-lan"
-	local len
-	local i=1
-	local val
-
-	sec=$(uci add mcproxy instance)
-	uci set mcproxy.${sec}.name="$name"
-	uci set mcproxy.${sec}.upstream="$upif"
-	uci set mcproxy.${sec}.downstream="$downif"
-	uci set mcproxy.${sec}.disabled='0'
-
-	uci get iptv.blocks > /dev/null
-	if [ $? -eq 0 ]; then
-		# Make the blocks tables
-		config_get len blocks entries_LENGTH
-		[ -z "$len" ] && return 0
-
-		sec=$(uci add mcproxy table)
-		uci set mcproxy.${sec}.name="blocks"
-		while [ $i -le "$len" ]; do
-			config_get val blocks entries_ITEM$i
-			uci add_list mcproxy.${sec}.entries="$val"
-			i="$((i + 1))"
-		done
-
-		# Add all behaviors
-		sec=$(uci add mcproxy behaviour)
-		uci set mcproxy.${sec}.instance="$name"
-		uci set mcproxy.${sec}.section="upstream"
-		uci set mcproxy.${sec}.interface="$upif"
-		uci set mcproxy.${sec}.direction="in"
-		uci set mcproxy.${sec}.table="blocks"
-		sec=$(uci add mcproxy behaviour)
-		uci set mcproxy.${sec}.instance="$name"
-		uci set mcproxy.${sec}.section="upstream"
-		uci set mcproxy.${sec}.interface="$upif"
-		uci set mcproxy.${sec}.direction="out"
-		uci set mcproxy.${sec}.table="blocks"
-		sec=$(uci add mcproxy behaviour)
-		uci set mcproxy.${sec}.instance="$name"
-		uci set mcproxy.${sec}.section="downstream"
-		uci set mcproxy.${sec}.interface="$downif"
-		uci set mcproxy.${sec}.direction="in"
-		uci set mcproxy.${sec}.table="blocks"
-		sec=$(uci add mcproxy behaviour)
-		uci set mcproxy.${sec}.instance="$name"
-		uci set mcproxy.${sec}.section="downstream"
-		uci set mcproxy.${sec}.interface="$downif"
-		uci set mcproxy.${sec}.direction="out"
-		uci set mcproxy.${sec}.table="blocks"
-	fi
-}
-
-setup_mcpd_config() {
-	local action=$1
-
-	# valid modes are: bridged | video2lan | wan2lan 
-	local iptv_mode
-	local igmp_v2
-
-	config_load iptv
-	config_foreach setcfg iptv
-	config_get iptv_mode $cfg mode
-	config_foreach setcfg igmp
-	config_get igmp_v2 $cfg "force_v2"
-
-	# set IGMP version in bridge
-	/usr/prpl/scripts/set_force_v2.sh $igmp_v2
-	# set IGMP version in mcproxy
-	local mcpd_igmp_ver=""
-	if [ "$igmp_v2" = '1' ] ; then
-		mcpd_igmp_ver="IGMPv2"		
-	else
-		mcpd_igmp_ver="IGMPv3"		
-	fi
-	uci set mcproxy.mcproxy.protocol="$mcpd_igmp_ver"
-
-	logger -p crit -t "iptv" "setup_mcpd_config(): action=$action, mode=$iptv_mode, mcpd_igmp_ver=$mcpd_igmp_ver"
-
-	# Clear the old instance table and behaviors
-	clear_section "mcproxy.@instance[0]"
-	clear_section "mcproxy.@behaviour[0]"
-	clear_section "mcproxy.@table[0]"
-
-	# set mcpd proxy mode
-	if [ "$iptv_mode" = "video2lan" ] ; then
-		uci set mcproxy.mcproxy.disabled='0'
-		set_instance $iptv_mode "br-video"	
-	elif [ "$iptv_mode" = "wan2lan" ] ; then
-		uci set mcproxy.mcproxy.disabled='0'
-		network_get_device upif wan
-		set_instance $iptv_mode $upif
-	elif [ "$iptv_mode" = "bridged" ] ; then
-		# Nothing to do
-		uci set mcproxy.mcproxy.disabled='1'
-	else
-		logger -p crit -t "iptv" "setup_mcpd_config(): bad iptv mode: $iptv_mode"	
-	fi
-
-	# Install IGMP blocks into mcproxy
-
-	uci commit mcproxy
-	/etc/init.d/mcproxy restart
-	logger -p crit -t "iptv" "setup_mcpd_config mcproxy restarted()"
-}
-
-start_service() {
-	logger -p crit -t "iptv" "start_service()"
-	setup_mcpd_config start
-	if [ -e /usr/prpl/scripts/mcastpamgr.sh ]; then
-		/usr/prpl/scripts/mcastpamgr.sh iptv_start
-	fi
-}
-
-boot() {
-	logger -p crit -t "iptv" "boot()"
-	start 
-}
-
-stop_service() {
-	logger -p crit -t "iptv" "stop_service()"
-	if [ -e /usr/prpl/scripts/mcastpamgr.sh ]; then
-		/usr/prpl/scripts/mcastpamgr.sh iptv_stop
-	fi
-}
-
-reload_service() {
-	logger -p crit -t "iptv" "reload_service()"
-	stop_service
-	start_service
-}
-
-service_triggers()
-{
-	logger -p crit -t "iptv" "service_triggers()"
-	procd_add_reload_trigger iptv
-}
diff --git a/mcast-pa/files/etc/init.d/mcast-pa b/mcast-pa/files/etc/init.d/mcast-pa
new file mode 100755
index 0000000000000000000000000000000000000000..4f02ac829ff41b929106ff330006d19b955d717c
--- /dev/null
+++ b/mcast-pa/files/etc/init.d/mcast-pa
@@ -0,0 +1,29 @@
+#!/bin/sh /etc/rc.common
+
+START=90
+STOP=90
+
+USE_PROCD=1
+NAME=mcast-pa
+PROG=/sbin/mcast-pa
+
+start_service() {
+	# Is mcproxy configured?
+	wan=$(uci get mcproxy.@instance[0].upstream)
+	if [ -n $wan ]; then
+		procd_open_instance
+		procd_set_param command $PROG --wan $wan
+		procd_set_param respawn
+		procd_close_instance
+	fi
+}
+
+service_triggers()
+{
+	procd_add_reload_trigger network mcproxy
+}
+
+stop_service()
+{
+	killall mcast-pa
+}