diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index 541af5e3460e4df92223019a98d5933b50800bdc..1a105106fdb214e0ac4858964655b5b0b244f9dd 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -951,14 +951,7 @@ App.Data.resetOnNGPlus = {
 	bodyswapAnnounced: 0,
 	surnamesForbidden: 0,
 	menstruation: 0,
-	FCTVcount: 0,
-	FCTVrate: 4,
-	FCTVreceiver: 0,
-	receiverAvailable: 0,
-	FCTVshow: 0,
-	FCTVremote: 0,
-	lastShow: 0,
-	randShow: 0,
+	FCTV: {},
 	FCNNstation: 0,
 	MercenariesMessageSent: 0,
 	SpecialForcesMessageSent: 0,
diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 2bcbc353b62b27d75f4b8526529b7756a194d169..6f4ce1f1d42aa3ae4ad35a1c47cfb2a4c33a342c 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -813,6 +813,7 @@ App.Update.globalVariables = function() {
 		} else {
 			assistant.object();
 		}
+		FCTV.manage();
 		if (jQuery.isEmptyObject(V.FSPromenade)) {
 			V.FSPromenade = {
 				Subjugationist: 0,
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index b24a18772b8fbde68377ae77fe6ec09eb8549325..48c6b128f139128dc81d142489a8320363870116 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -108,6 +108,7 @@ You should have received a copy of the GNU General Public License along with thi
 <</for>>
 
 <<run assistant.object()>>
+<<run FCTV.manage()>>
 <<run repX(1000, "event")>>
 <<run setup.prostheticIDs.forEach(function(id) {
 	$prosthetics[id] = {amount: 0, research: 0};
diff --git a/src/pregmod/FCTV/FCTV.js b/src/pregmod/FCTV/FCTV.js
new file mode 100644
index 0000000000000000000000000000000000000000..93d5214c9b88cc8768fde1403ecbd5c8c153167f
--- /dev/null
+++ b/src/pregmod/FCTV/FCTV.js
@@ -0,0 +1,126 @@
+/*
+receiver - What is the state of the network box.
+	-1: PC has not been given a welcome packet. (default)
+	0: PC has been given a welcome packet but has not installed it.
+	1+: box is installed.
+channel[numberAsString] - how many times it has been viewed.
+channel.last - program viewed last week.
+pcViewership.count - How many weeks since the PC last watched FCTV.
+pcViewership.frequency - How oftern should the PC watch FCTV.
+	-1: Never.
+	1: at least once a week.
+	2: least every two weeks.
+	4: at least once a month. (default)
+remote - Does the PC have a FCTV branded remote (also used to trigger a slave acquisition event).
+weekEnabled - The week FCTV was installed.
+*/
+window.FCTV = (function() {
+	return {
+		channels:channels,
+		manage: manage,
+		showChannel:showChannel,
+		incrementChannel:incrementChannel,
+	};
+
+	function channels() {
+		return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
+	}
+
+	function manage() {
+		delete V.FCTVenable; let convert = 0;
+		if (V.releaseID < 1065) { convert = 1; }
+
+		V.FCTV.receiver = V.FCTV.receiver > -1 ? V.FCTV.receiver : -1;
+		if (convert && V.receiverAvailable) {
+			V.FCTV.receiver = V.FCTVreceiver > 0 ? V.FCTVreceiver : 0;
+		}
+
+		if (V.FCTV.receiver > -1) {
+			V.FCTV.channel = V.FCTV.channel || {};
+			V.FCTV.pcViewership = V.FCTV.pcViewership || {};
+
+			for (let i = 0; i < channels().length; i++) {
+				let channel = num(channels()[i], true);
+				let currentChannel = 'show'+capFirstChar(channel);
+				V.FCTV.channel[channel] = convert ? V[currentChannel] : V.FCTV.channel[channel] || 0;
+			}
+			V.FCTV.channel.last = convert ? V.lastShow : V.FCTV.channel.last || -1;
+
+			V.FCTV.pcViewership.count = convert ? V.FCTVcount : V.FCTV.pcViewership.count || 0;
+			V.FCTV.pcViewership.frequency = convert ? V.FCTVrate : V.FCTV.pcViewership.frequency || 4;
+			V.FCTV.remote = convert ? V.FCTVremote : V.FCTV.remote || 0;
+
+			if (convert) {
+				V.FCTV.weekEnabled = V.receiverAvailable > 1 ? V.receiverAvailable : 0;
+			}
+		}
+	}
+
+	function showChannel(i) {
+		let x = {canSelect: 1, text: `A notification is shown: ` };
+		switch(i) {
+		case 3: case 4:
+			if (!V.cheatMode || !V.debugMode) {
+				x.canSelect = -1;
+			}
+			break;
+		case 5:
+			if (!V.seePreg) {
+				x.canSelect = -1; x.text += `<i>Too much baking detected, changing program.</i>`;
+			}
+			break;
+		case 8:
+			if (!V.seeHyperPreg) {
+				x.canSelect = -1; x.text += `<i>Too much happiness detected, changing program.</i>`;
+			}
+			if (!V.seePreg) {
+				x.canSelect = -1; x.text += `<i>Too much baking detected, changing program.</i>`;
+			}
+			break;
+		case 10:
+			if (!V.seeExtreme) {
+				x.canSelect = -1; x.text += `<i>Too much hugging detected, changing program.</i>`;
+			}
+			if (!V.seeDicks && !V.makeDicks) {
+				x.canSelect = -1; x.text += `<i>Too many hot dogs detected, changing program.</i>`;
+			}
+			break;
+		case 11:
+			if (V.purchasedSagBGone && V.FCTV.channel[num(i, true)] > 2) {
+				x.canSelect = -1; x.text += `<i>Product purchase detected, skipping commercials.</i>`;
+			}
+			break;
+		case 12:
+			if (!V.seeIncest) {
+				x.canSelect = -1; x.text += `<i>Too much familiarity detected, changing program.</i>`;
+			}
+			if (V.minimumSlaveAge > 13) {
+				x.canSelect = -1; x.text += `<i>Actor not vintage enough, changing program.</i>`;
+			}
+			break;
+		case 14:
+			if (V.minimumSlaveAge > 13) {
+				x.canSelect = -1; x.text += `<i>Actor not vintage enough, changing program.</i>`;
+			}
+		case 16:
+			if (!V.seeDicks && !V.makeDicks)  {
+				x.canSelect = -1; x.text += `<i>Too many hot dogs detected, changing program.</i>`;
+			}
+			break;
+		}
+
+		if (State.temporary.all) { x.canSelect = 1; }
+		return x;
+	}
+
+	function incrementChannel(i = V.FCTV.channel.selected) {
+		V.FCTV.channel.selected = i; V.FCTV.channel[num(i, true)]++;
+		if (
+			[14, 15].includes(i) && V.FCTV.channel[num(i, true)] == 3
+			|| [13, 16].includes(i) && V.FCTV.channel[num(i, true)] == 4
+			|| i === 12 && V.FCTV.channel[num(i, true)] == 9
+		) {
+			V.FCTV.channel[num(i, true)] = 1;
+		}
+	}
+})();
diff --git a/src/pregmod/seFCTVinstall.tw b/src/pregmod/FCTV/seFCTVinstall.tw
similarity index 97%
rename from src/pregmod/seFCTVinstall.tw
rename to src/pregmod/FCTV/seFCTVinstall.tw
index fd94f788c5abc9fa6aff3eb4de9de7a6b528f95b..87459ea89cfb0f6baef17ffc6e70f67bf7911c02 100644
--- a/src/pregmod/seFCTVinstall.tw
+++ b/src/pregmod/FCTV/seFCTVinstall.tw
@@ -1,6 +1,6 @@
 :: SE FCTV Install [nobr]
 
-<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", $receiverAvailable = 1>>
+<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", $FCTV.receiver = 0>>
 
 You've been sitting in your office into the early afternoon going over bothersome lease documents that need your approval. When you take a break to look out the window, $assistant.name speaks up. "<<= properTitle()>>, you have received an approval welcome packet from 8HGG Inc. in regards to Free Cities TV. It seems that they've determined that $arcologies[0].name is now sufficiently developed enough to warrant a FCTV-Citizen connection. All the details and contracts necessary are included in the packet. From there, a receiver will need to be built onto $arcologies[0].name in order to access FCTV."
 <br><br>
diff --git a/src/pregmod/seFCTVremote.tw b/src/pregmod/FCTV/seFCTVremote.tw
similarity index 66%
rename from src/pregmod/seFCTVremote.tw
rename to src/pregmod/FCTV/seFCTVremote.tw
index 99f2636f82e3883c24d01668d8b4fb69ba8a9052..47a324d4a39a3f2c48e7a7f735200551fa010f5b 100644
--- a/src/pregmod/seFCTVremote.tw
+++ b/src/pregmod/FCTV/seFCTVremote.tw
@@ -1,6 +1,6 @@
 :: SE FCTV Remote [nobr]
 
-<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", $FCTVremote = 2>>
+<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", $FCTV.remote = 2>>
 
 <<set $activeSlaveOneTimeMinAge = 25>>
 <<set $activeSlaveOneTimeMaxAge = 35>>
@@ -12,46 +12,41 @@
 	<<set _races = setup.filterRacesLowercase.filter(race => race !== $arcologies[0].FSSubjugationistRace)>>
 	<<set $fixedRace = _races.random()>>
 <</if>>
-<<set $activeSlave = GenerateNewSlave()>>
-<<set $activeSlave.devotion = 0>>
-<<set $activeSlave.trust = 0>>
-<<run setHealth($activeSlave, jsRandom(60, 80))>>
-<<set $activeSlave.muscles = 60>>
-<<if $activeSlave.weight > 130>>
-	<<set $activeSlave.weight -= 100>>
-	<<set $activeSlave.waist = random(-10,50)>>
+<<set _slave = GenerateNewSlave()>>
+
+<<run Object.assign(_slave, {
+	devotion: 0, trust: 0,
+	muscles: 60, lips: 35,
+	origin: "You enslaved $him for poor customer service as an FCTV tech.", career: "an installation technician",
+	behavioralFlaw: "arrogant", markings: "none",
+	hLength: 10, eyewear: "glasses",
+	clothes: "conservative clothing", shoes: "flats"
+})>>
+<<run setHealth(_slave, jsRandom(60, 80))>>
+<<if _slave.weight > 130>>
+	<<set _slave.weight -= 100>>
+	<<set _slave.waist = random(-10,50)>>
 <</if>>
-<<set $activeSlave.lips = 35>>
-<<if $activeSlave.dick > 0>>
-	<<set $activeSlave.boobs = 0>>
-	<<set $activeSlave.butt = 0>>
-	/*<<set $activeSlave.hStyle = "messy">>*/
+<<if _slave.dick > 0>>
+	<<set _slave.boobs = 0>>
+	<<set _slave.butt = 0>>
+	/*<<set _slave.hStyle = "messy">>*/
 <<else>>
-	<<set $activeSlave.hStyle = "ponytail">>
-<</if>>
-<<set $activeSlave.origin = "You enslaved $him for poor customer service as an FCTV tech.">>
-<<set $activeSlave.career = "an installation technician">>
-<<set $activeSlave.behavioralFlaw = "arrogant">>
-<<set $activeSlave.markings = "none">>
-<<set $activeSlave.hLength = 10>>
-<<if $activeSlave.eyewear == "none">>
-	<<set $activeSlave.eyewear = "glasses">>
+	<<set _slave.hStyle = "ponytail">>
 <</if>>
-<<set $activeSlave.clothes = "conservative clothing">>
-<<set $activeSlave.shoes = "flats">>
 
-<<run Enunciate ($activeSlave)>>
-<<setLocalPronouns $activeSlave>>
+<<run Enunciate (_slave)>>
+<<setLocalPronouns _slave>>
 <<setPlayerPronouns>>
 <<setAssistantPronouns>>
 
 <span id="artFrame">
 	/* 000-250-006 */
-	<<if $seeImages == 1>>
+	<<if $seeImages > 0>>
 		<<if $imageChoice == 1>>
-			<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt($activeSlave, 2, 0)>></div>
+			<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(_slave, 2, 0)>></div>
 		<<else>>
-			<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt($activeSlave, 2, 0)>></div>
+			<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(_slave, 2, 0)>></div>
 		<</if>>
 	<</if>>
 	/* 000-250-006 */
@@ -72,7 +67,7 @@
 
 <p>
 	Presently, the tech enters the room and asks how your FCTV product is working. You tersely reply that it is fine,
-	<<if $FCTVremote == 1>>
+	<<if $FCTV.remote == 1>>
 		although you're annoyed you had to purchase your own remote,
 	<<else>>
 		although you find the random nature of the shows a little annoying,
@@ -84,7 +79,6 @@
 	$He unboxes the new remote and turns $his back to you, eagerly demonstrating how you can use it to watch any show you want. This could be your chance to turn the tables on FCTV and get some special "customer support" of your own.
 </p>
 
-
 <p id="scene">
 	<<link "\"Upgrade\" the tech for a little humiliation">>
 		<<replace "#scene">>
@@ -133,16 +127,16 @@
 			<<setLocalPronouns _customer 2>>
 
 			/* set up tech */
-			<<set $activeSlave.clitPiercing = 3>>
+			<<set _slave.clitPiercing = 3>>
 			<<if $seeDicks == 0>>
-				<<set $activeSlave.backTat = "'FCTV SERVICE for clits' is tattooed across $his upper back.">>
+				<<set _slave.backTat = "'FCTV SERVICE for clits' is tattooed across $his upper back.">>
 			<<elseif $seeDicks == 100>>
-				<<set $activeSlave.backTat = "'FCTV SERVICE for dicks' is tattooed across $his upper back.">>
+				<<set _slave.backTat = "'FCTV SERVICE for dicks' is tattooed across $his upper back.">>
 			<<else>>
-				<<set $activeSlave.backTat = "'FCTV SERVICE for clits and dicks' is tattooed across $his upper back.">>
+				<<set _slave.backTat = "'FCTV SERVICE for clits and dicks' is tattooed across $his upper back.">>
 			<</if>>
-			<<set $activeSlave.stampTat = "'Shove that upgraded package here' is tattooed above $his rear.">>
-			<<run cashX(forceNeg(($modCost*2) + $SPcost), "slaveMod", $activeSlave)>> /* two tats and a smart piercing */
+			<<set _slave.stampTat = "'Shove that upgraded package here' is tattooed above $his rear.">>
+			<<run cashX(forceNeg(($modCost*2) + $SPcost), "slaveMod", _slave)>> /* two tats and a smart piercing */
 
 			<p>
 				With a barely perceptible signal to $assistant.name, $his drone whirs to a stop and begins to fall to the floor. Before it lands, a dart hits $him in the neck. $He collapses into darkness.
@@ -150,8 +144,8 @@
 
 			<p>
 				As the tech wakes up $he finds $himself resting on your couch, with you looking
-				<<if hasAnyEyes($activeSlave)>>
-					into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>
+				<<if hasAnyEyes(_slave)>>
+					into $his eye<<if hasBothEyes(_slave)>>s<</if>>
 				<<else>>
 					at $him
 				<</if>>
@@ -159,7 +153,7 @@
 			</p>
 
 			<p>
-				The tech, $activeSlave.slaveName, shoves $his way through the crowd as quickly as $he can. In front of $him no one pays much attention, but the crowd behind begins to titter and even point and laugh. Oblivious, $activeSlave.slaveName arrives at the desired address and pauses to catch a breath. Watching from the eyes of $his drone, you can tell $his back is stiff and $his running had been uncomfortable. You can't help but laugh at $his shirt. Unknown to $activeSlave.slaveName, the entire back of $his shirt has been replaced with a clear panel of similar feeling material. It clearly shows $his $activeSlave.skin skin, as well as $his new tattoo. Like the lettered shirt it replaced it also says "FCTV SERVICE" in identical block letters, but below that it reads
+				The tech, _slave.slaveName, shoves $his way through the crowd as quickly as $he can. In front of $him no one pays much attention, but the crowd behind begins to titter and even point and laugh. Oblivious, _slave.slaveName arrives at the desired address and pauses to catch a breath. Watching from the eyes of $his drone, you can tell $his back is stiff and $his running had been uncomfortable. You can't help but laugh at $his shirt. Unknown to _slave.slaveName, the entire back of $his shirt has been replaced with a clear panel of similar feeling material. It clearly shows $his _slave.skin skin, as well as $his new tattoo. Like the lettered shirt it replaced it also says "FCTV SERVICE" in identical block letters, but below that it reads
 				<<if $seeDicks == 0>>
 					"for clits."
 				<<elseif $seeDicks == 100>>
@@ -171,26 +165,26 @@
 			</p>
 
 			<p>
-				<<if $seeImages == 1>>
+				<<if $seeImages > 0>>
 					<div class="imageColumn">
 						<div class="imageRef medImg">
 							<<= SlaveArt(_customer, 2, 0)>>
 						</div>
 					</div>
 				<</if>>
-				The door opens, and one of your citizens appears. $activeSlave.slaveName doesn't know it, but you've made a small change to $his calendar. $His new client has a <<if _customer.dick > 0>>legendarily large dick<<else>>legendary love of anal<</if>>, even for $arcologies[0].name. The tech loses $his professional façade for a moment, glancing at the customer's <<if _customer.dick > 0>>enormous bulge<<else>>hips<</if>> before gulping and gluing $his eyes on the customer's face. "Hi, I'm $activeSlave.slaveName from FCTV; I'm here to take a look at your re<<c>>eiver?"
+				The door opens, and one of your citizens appears. _slave.slaveName doesn't know it, but you've made a small change to $his calendar. $His new client has a <<if _customer.dick > 0>>legendarily large dick<<else>>legendary love of anal<</if>>, even for $arcologies[0].name. The tech loses $his professional façade for a moment, glancing at the customer's <<if _customer.dick > 0>>enormous bulge<<else>>hips<</if>> before gulping and gluing $his eyes on the customer's face. "Hi, I'm _slave.slaveName from FCTV; I'm here to take a look at your re<<c>>eiver?"
 			</p>
 
 			<p>
-				"Certainly, it's in the bedroom on the bottom shelf." As the tech takes a step forward you touch the first button on your other remote. The tech freezes. You know from the work you did that $he would be experiencing a puzzling throbbing or buzzing sensation at the moment. $His smart piercing was installed with a few blockers to pain, but $his sense of touch should be very acute, even heightened with some local aphrodisiacs. There is also a vibe deep inside $his ass, with a glue that will take some time to wear off. <<if $activeSlave.prostate>>Its buzzing should be impacting $his prostrate directly, albeit subtly.<</if>>
+				"Certainly, it's in the bedroom on the bottom shelf." As the tech takes a step forward you touch the first button on your other remote. The tech freezes. You know from the work you did that $he would be experiencing a puzzling throbbing or buzzing sensation at the moment. $His smart piercing was installed with a few blockers to pain, but $his sense of touch should be very acute, even heightened with some local aphrodisiacs. There is also a vibe deep inside $his ass, with a glue that will take some time to wear off. <<if _slave.prostate>>Its buzzing should be impacting $his prostrate directly, albeit subtly.<</if>>
 			</p>
 
 			<p>
-				"Are you OK, <<if $activeSlave.dick > 0>>sir<<else>>ma'am<</if>>?" The customer looks concerned. "It's... it's nothing." The tech replies. What on earth was happening? $He enters the house and follows the customer inside. You can see everything from the drone, and the tech seems to struggle a bit going up the stairs. The customer gestures inside a door, "It's just in here, like I said, bottom shelf." "Thank you!" the tech responds, and you notice $him checking out _his2 <<if _customer.dick > 0>>crotch<<else>>hips<</if>> a second time. This time $he's a little slower to meet $his customer's eyes. It's difficult to tell from the low quality of the drone camera, but you think you can begin to see a question forming there. As the tech passes _him2 and enters the room, even you can hear the sharp intake of breath from the customer. "Everything OK?" $activeSlave.slaveName asks, turning stiffly. "Uh, sure. Yeah." The customer responds. The tech turns back to the TV and the customer stares at $his back. You move the drone into the room and subtly find a good angle, then bump up the vibration a few levels with the remote.
+				"Are you OK, <<if _slave.dick > 0>>sir<<else>>ma'am<</if>>?" The customer looks concerned. "It's... it's nothing." The tech replies. What on earth was happening? $He enters the house and follows the customer inside. You can see everything from the drone, and the tech seems to struggle a bit going up the stairs. The customer gestures inside a door, "It's just in here, like I said, bottom shelf." "Thank you!" the tech responds, and you notice $him checking out _his2 <<if _customer.dick > 0>>crotch<<else>>hips<</if>> a second time. This time $he's a little slower to meet $his customer's eyes. It's difficult to tell from the low quality of the drone camera, but you think you can begin to see a question forming there. As the tech passes _him2 and enters the room, even you can hear the sharp intake of breath from the customer. "Everything OK?" _slave.slaveName asks, turning stiffly. "Uh, sure. Yeah." The customer responds. The tech turns back to the TV and the customer stares at $his back. You move the drone into the room and subtly find a good angle, then bump up the vibration a few levels with the remote.
 			</p>
 
 			<p>
-				$activeSlave.slaveName stands perfectly still for a moment, clearly not sure what was going on. $He'd never been dehydrated before, and surely it always made you feel hot and dizzy. The head of the arcology had mentioned nausea; did that cover this odd feeling down below? $He felt... horny.
+				_slave.slaveName stands perfectly still for a moment, clearly not sure what was going on. $He'd never been dehydrated before, and surely it always made you feel hot and dizzy. The head of the arcology had mentioned nausea; did that cover this odd feeling down below? $He felt... horny.
 			</p>
 
 			<p>
@@ -215,7 +209,7 @@
 				</p>
 
 				<p>
-					"Hmm, let me see. I think I have my OWN remote" the _woman2 says, as _he2 leans back on _his2 bed. Vibration sets in, strong enough that you can see $activeSlave.slaveName's ass quaking from your own suite. The _woman2 leans further back and beings to masturbate, moving _his2 eyes from the porn on the TV to the ass in front of _his2. "Ahh," _he2 says with a bit of malice. "I think..." _he2 stretches "I think your box needs an <i>update</i>." This time you have the drone in place to see the button _he2 presses, so you know it's "Fluid: All." You aren't sure how much "all" is, but the dildo is enormous, and you can see the tech's stomach distend. They both come at the same time.
+					"Hmm, let me see. I think I have my OWN remote" the _woman2 says, as _he2 leans back on _his2 bed. Vibration sets in, strong enough that you can see _slave.slaveName's ass quaking from your own suite. The _woman2 leans further back and beings to masturbate, moving _his2 eyes from the porn on the TV to the ass in front of _his2. "Ahh," _he2 says with a bit of malice. "I think..." _he2 stretches "I think your box needs an <i>update</i>." This time you have the drone in place to see the button _he2 presses, so you know it's "Fluid: All." You aren't sure how much "all" is, but the dildo is enormous, and you can see the tech's stomach distend. They both come at the same time.
 				</p>
 			<<else>>
 				<p>
@@ -226,8 +220,8 @@
 					"Uh, that <span class="virginity loss">virgin ass</span>!" the customer exclaims. "How's THIS for an upgraded package. Last time I had a billing problem you folks told me where to shove it. Well here. It. Goes!" From the way they collapse over each other, it seems they orgasmed at about the same time.
 				</p>
 			<</if>>
-			<<set $activeSlave.anus = 1>>
-			<<run seX($activeSlave, "anal", "public", "penetrative")>>
+			<<set _slave.anus = 1>>
+			<<run seX(_slave, "anal", "public", "penetrative")>>
 			<p>
 				Time passes...
 			</p>
@@ -243,40 +237,39 @@
 			<p id="result">
 				<<set _ContractCost = 1000>>
 				<<if $cash >= _ContractCost>>
+					<<set $activeSlave = _slave>>
 					<div>
 						<<link "Enslave $him">>
-							<<run cashX(forceNeg(_ContractCost), "slaveTransfer", $activeSlave)>>
+							<<run cashX(forceNeg(_ContractCost), "slaveTransfer", _slave)>>
 							<<replace "#result">>
 								<<set $analTotal++>>
-								$activeSlave.slaveName knows $he has nowhere to turn. Sobbing, $he complies with the process.
-								<p>
-									<<include "New Slave Intro">>
-								</p>
+								_slave.slaveName knows $he has nowhere to turn. Sobbing, $he complies with the process.
+								<p> <<include "New Slave Intro">> </p>
 							<</replace>>
 						<</link>>
 					</div>
 					<div>
 						<<link "Sentence $him to a day in a wall with a TV, then enslave $him">>
 							<<set $analTotal++>>
-							<<run healthDamage($activeSlave, 10)>>
-							<<set $activeSlave.behavioralFlaw = "odd">>
-							<<set $activeSlave.sexualFlaw = "hates penetration">>
-							<<set $activeSlave.anus = 2>>
+							<<run healthDamage(_slave, 10)>>
+							<<set _slave.behavioralFlaw = "odd">>
+							<<set _slave.sexualFlaw = "hates penetration">>
+							<<set _slave.anus = 2>>
 							<<set _fuckCount = random(20,35)>>
-							<<run seX($activeSlave, "anal", "public", "penetrative", _fuckCount)>>
-							<<if $activeSlave.vagina > -1>>
-								<<if $activeSlave.vagina < 2>>
-									<<set $activeSlave.vagina = 2>>
+							<<run seX(_slave, "anal", "public", "penetrative", _fuckCount)>>
+							<<if _slave.vagina > -1>>
+								<<if _slave.vagina < 2>>
+									<<set _slave.vagina = 2>>
 								<</if>>
-								<<if isFertile($activeSlave) && $activeSlave.eggType == "human">>
-									<<= knockMeUp($activeSlave, 40, 2, -2)>>
+								<<if isFertile(_slave) && _slave.eggType == "human">>
+									<<= knockMeUp(_slave, 40, 2, -2)>>
 								<</if>>
-								<<run seX($activeSlave, "vaginal", "public", "penetrative", _fuckCount*2)>>
+								<<run seX(_slave, "vaginal", "public", "penetrative", _fuckCount*2)>>
 							<</if>>
-							<<run cashX(forceNeg(_ContractCost), "slaveTransfer", $activeSlave)>>
+							<<run cashX(forceNeg(_ContractCost), "slaveTransfer", _slave)>>
 
 							<<replace "#result">>
-								You can't possibly be the only one annoyed at FCTV customer service. You soon have $him bent over with $his upper half encased in a wall, and $his lower half along with $his tramp stamp "$activeSlave.stampTat" exposed to the entire arcology. A large monitor above $his ass ensures every detail of $his expressions are available, and aphrodisiacs ensure they are interesting. Long waits for tech support are common in this broken world, but even so, the queue that forms as the word gets out is quite impressive. $He spends a torturous day in the wall before being hauled in for enslavement, somewhat
+								You can't possibly be the only one annoyed at FCTV customer service. You soon have $him bent over with $his upper half encased in a wall, and $his lower half along with $his tramp stamp "_slave.stampTat" exposed to the entire arcology. A large monitor above $his ass ensures every detail of $his expressions are available, and aphrodisiacs ensure they are interesting. Long waits for tech support are common in this broken world, but even so, the queue that forms as the word gets out is quite impressive. $He spends a torturous day in the wall before being hauled in for enslavement, somewhat
 								<span class="health dec">the worse for wear</span>
 								and
 								<span class="flaw gain">
@@ -286,7 +279,7 @@
 								<span class="virginity loss">
 									loosened
 								</span>
-								<<if $activeSlave.vagina > -1>>
+								<<if _slave.vagina > -1>>
 									anus and
 									<span class="virginity loss">
 										fucked-out
@@ -299,15 +292,13 @@
 								<span class="reputation inc">
 									enjoys the fun.
 								</span>
-								<<if $FCTVreceiver <= 3>>
+								<<if $FCTV.receiver <= 3>>
 									Frustrations released, they also seem more likely to watch FCTV.
-									<<set $FCTVreceiver++>>
+									<<set $FCTV.receiver++>>
 								<</if>>
-								<<run repX(500, "event", $activeSlave)>>
+								<<run repX(500, "event", _slave)>>
 								<<set $arcologies[0].prosperity += 2>>
-								<p>
-									<<include "New Slave Intro">>
-								</p>
+								<p> <<include "New Slave Intro">> </p>
 							<</replace>>
 						<</link>>
 					</div>
@@ -345,4 +336,4 @@
 			</p>
 		<</replace>>
 	<</link>>
-</p>
+</p>
\ No newline at end of file
diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/FCTV/seFCTVshows.tw
similarity index 82%
rename from src/pregmod/seFCTVshows.tw
rename to src/pregmod/FCTV/seFCTVshows.tw
index 550b032adcd6bb3f3aab2c1927a1f791957eb8bd..6e8c1721be0febbbfee05cd423381be03e07b365 100644
--- a/src/pregmod/seFCTVshows.tw
+++ b/src/pregmod/FCTV/seFCTVshows.tw
@@ -1,156 +1,57 @@
 :: SE FCTV Shows [nobr]
 
-<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", _MSL = $MastSiIDs.length>>
-
-<<if $randShow === "">>
-	<<set _usedRemote = 0>>
-<<else>>
-	<<set _usedRemote = 1>>
-<</if>>
-
-<<if _FCTVShowAll>>
-	There is an audible tone from your screen, which then displays a message: <i>Showing all content, for testing purposes.</i><br><br>
-<<else>>
-	/* we need to check for pansy no-extreme squick stuff */
-	<<set _randShowArray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]>>
-	<<for $i = 0;; $i++>>
-		<<if $randShow === "" || $i > 0>> /* $randShow may have been set by the remote, and we unset it at the end of this file to make sure. */
-			<<set $randShow = _randShowArray[Math.floor(Math.random() * _randShowArray.length)]>>
-		<</if>>
-
-		<<if $i > 0>>
-			<<set _usedRemote = 0>>
-		<</if>>
-
-		/* Let's not loop forever, here. */
-		<<if $i > 2>>
-			<<set $randShow = -1>>
-			/* -1 will show a "channel" that just says there's nothing on. */
-			<<break>>
-		<</if>>
-
-		<<if $randShow == $lastShow>>
-			<<if _usedRemote>>
-				You saw this program last week, and so choose something else at random.<br>
-			<<else>>
-				There is an audible tone from your screen, which then displays a message: <i>Detected recent viewing, changing channel.</i><br>
-			<</if>>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $minimumSlaveAge > 13 && [12,14].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Actor not vintage enough, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $seeExtreme == 0 && [10].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Too much hugging detected, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $seeHyperPreg == 0 && [8].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Too much happiness detected, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $seePreg == 0 && [5,8].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Too much baking detected, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $seeDicks == 0 && $makeDicks == 0 && [10,16].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Too many hot dogs detected, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $seeIncest == 0 && [12].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Too much familiarity detected, changing program.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-		<<if $purchasedSagBGone == 1 && $showEleven > 2 && [11].includes($randShow)>>
-			There is an audible tone from your screen, which then displays a message: <i>Product purchase detected, skipping commercials.</i><br>
-			<<run _randShowArray.splice($randShow, 1)>>
-			<<continue>>
-		<</if>>
-
-		/* Looks like we have a show that works! */
-		<<if $i > 0>>
-			<br>
-		<</if>>
-
-		<<break>>
-	<</for>>
-<</if>>
-
 /* Setup Millie art, since she is on multiple channels */
-<<if $seeImages == 1>>
+<<if $seeImages > 0>>
 	<<set _millie = BaseSlave()>>
-	<<set _millie.devotion = 100>>
-	<<set _millie.trust = 100>>
-	<<set _millie.weight = 120>>
-	<<set _millie.boobs = 5000>>
-	<<set _millie.hips = 2>>
-	<<set _millie.butt = 5>>
-	<<set _millie.hLength = 50>>
-	<<set _millie.skin = "dark olive">>
-	<<set _millie.hStyle = "luxurious">>
-	<<set _millie.hColor = "strawberry blonde">>
-	<<set _millie.clothes = "a leotard">>/*no cow suit yet, sadly*/
+	<<run Object.assign(_millie, {
+		devotion: 100, trust: 100,
+		weight: 120, boobs: 5000,
+		hips: 2, butt: 5,
+		hLength: 50, skin: "dark olive",
+		hStyle: "luxurious", hColor: "strawberry blonde",
+		clothes: "a leotard"
+	})>>
+<</if>>
+
+<br>
+<<if _usedRemote>>You select
+<<else>> It looks like the random function chose
 <</if>>
+''channel number: $FCTV.channel.selected''<<if $FCTV.channel.selected != 16>>,<<else>>.<</if>>
 
-<<switch $randShow>>
-<<case -1>>
-	There is simply nothing on FCTV tonight worth watching.
+<<switch $FCTV.channel.selected>>
+<<case -1>> however there is simply nothing on FCTV tonight worth watching.
 <<case 0>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel(1)>>
+	<<if $seeImages > 0>>
 		<<set _kirk = BaseSlave()>>
-		<<set _kirk.actualAge = 44>>
-		<<set _kirk.devotion = 0>>
-		<<set _kirk.trust = 0>>
-		<<set _kirk.health.condition = random(60,80)>>
-		<<set _kirk.health.health = _kirk.health.condition - _kirk.health.shortDamage - _kirk.health.longDamage>>
-		<<set _kirk.muscles = 60>>
-		<<set _kirk.weight = 30>>
-		<<set _kirk.waist = 90>>
-		<<set _kirk.boobs = 0>>
-		<<set _kirk.shoulders = 3>>
-		<<set _kirk.butt = 0>>
-		<<set _kirk.hips = -1>>
-		<<set _kirk.hLength = 10>>
-		<<set _kirk.hColor = "dark brown">>
-		<<set _kirk.faceShape = "masculine">>
-		<<set _kirk.hStyle = "messy">>
-		<<set _kirk.eyewear = "glasses">>
-		<<set _kirk.clothes = "conservative clothing">>
-		<<set _kirk.shoes = "flats">>
+		<<run Object.assign(_kirk, {
+			actualAge: 44, devotion: 0,
+			trust: 0, muscles: 60,
+			weight: 30, waist: 90,
+			boobs: 0, shoulders: 3,
+			butt: 0, hips: -1,
+			hLength: 10, hColor: "dark brown",
+			faceShape: "masculine", hStyle: "messy",
+			eyewear: "glasses", clothes: "conservative clothing",
+			shoes: "flats"
+		})>>
 
 		<<set _jules = BaseSlave()>>
-		<<set _jules.devotion = 0>>
-		<<set _jules.trust = 0>>
-		<<set _jules.health.condition = random(60,80)>>
-		<<set _jules.health.health = _jules.health.condition - _jules.health.shortDamage - _jules.health.longDamage>>
-		<<set _jules.weight = 30>>
-		<<set _jules.waist = 30>>
-		<<set _jules.boobs = 700>>
-		<<set _jules.butt = 3>>
-		<<set _jules.hLength = 50>>
-		<<set _jules.hStyle = "luxurious">>
-		<<set _jules.hColor = "auburn">>
-		<<set _jules.boobShape = "perky">>
-		<<set _jules.clothes = "panties and pasties">>/*pasties alone don't have art at this time, apparently */
-		<<set _jules.collar = "stylish leather">>
+		<<run Object.assign(_jules, {
+			devotion: 0, trust: 0,
+			weight: 30, waist: 30,
+			boobs: 700, butt: 3,
+			hLength: 50, hStyle: "luxurious"
+			hColor: "auburn", boobShape: "perky",
+			clothes: "panties and pasties", collar: "stylish leather"
+		})>>
 	<</if>>
-	<<set $showOne += 1, $lastShow = 0>>
-	<<if _usedRemote>>
-		You select
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	the FCNN stream channel, and you've started watching in the middle of a news segment.
-	<<set $randShow = random(0,2)+1>>
-	<<if $randShow == 1 && $showOne > 3 || $showOne == 1>>
-		<<if $seeImages == 1>>
+
+	officially known as the FCNN stream channel and you've started watching the middle of a news segment.
+	<<set _show = random(0,2)+1>>
+	<<if _show == 1 && $FCTV.channel.one > 3 || $FCTV.channel.one == 1>>
+		<<if $seeImages > 0>>
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_kirk, 2, 0)>>
@@ -164,29 +65,21 @@
 		<br><br>Jules seems to be quite passionate about the subject, the animated way she talks is causing her sizable tits to bounce all over the place. "It doesn't matter how famous or valuable that slut thinks she is, her behavior was just wrong on SO many levels. It makes all of us good slaves look bad. If you ask me, her master's choice of punishment fits the attention whore perfectly!"
 		<br><br>Kirk's face looks more than a little surprised, but you can't quite tell if it's an act or not. "You won't get any argument from me that she deserves to be punished... but getting chained up with an obedience collar and feeder system in the middle of Times Square, free for public use? A slum like Manhattan, she'll never <<if $seeExtreme == 0>><i>enjoy</i><<else>>survive<</if>> the 10 day sentence!"
 		<br><br>Jules smiles. "That's exactly right Master McMahon, she's going to be <<if $seeExtreme == 0>><i>hugged until she smiles</i><<else>>fucked to death<</if>>. Her precious popularity in the old world will have the locals lined up all the way to New New Jersey waiting for their turn. I'd never question her master's decision, but if it were me, I'd pump her full of curatives and stimulants during the sentence. That way, she doesn't <<if $seeExtreme == 0>><i>smile</i><<else>>die or pass out<</if>> too soon. I think her master is being lenient after the way she badmouthed him in a live broadcast."
-		<br><br>...
-	<<elseif $randShow == 2 && $showOne > 3 || $showOne == 2>>
-		<<if $seeImages == 1>>
+	<<elseif _show == 2 && $FCTV.channel.one > 3 || $FCTV.channel.one == 2>>
+		<<if $seeImages > 0>>
 			<<set _model = BaseSlave()>>
-			<<set _model.devotion = -90>>
-			<<set _model.trust = 0>>
-			<<set _model.health.condition = random(60,80)>>
-			<<set _model.health.health = _model.health.condition - _model.health.shortDamage - _model.health.longDamage>>
-			<<set _model.face = -20>>
-			<<set _model.hLength = 50>>
-			<<set _model.hStyle = "messy">>
-			<<set _model.hColor = "blazing red">>
-			<<set _model.underArmHStyle = "bushy">>
-			<<set _model.underArmHColor = "blazing red">>
-			<<set _model.height = 150>>
-			<<set _model.boobs = 700>>
-			<<set _model.boobShape = "perky">>
-			<<set _model.shoulders = 0>>
-			<<set _model.waist = 180>>
-			<<set _model.butt = 3>>
-			<<set _model.hips = 3>>
-			<<set _model.clothes = "spats and a tank top">>
-			<<set _model.shoes = "flats">>
+			<<run Object.assign(_model, {
+				devotion: -90, trust: 0,
+				face: -20, hLength: 50,
+				hStyle: "messy", hColor: "blazing red",
+				underArmHStyle: "bushy", underArmHColor: "blazing red",
+				height: 150, boobs: 700,
+				boobShape: "perky", shoulders: 0,
+				waist: 180, butt: 3,
+				hips: 3, clothes: "spats and a tank top",
+				shoes: "flats"
+			})>>
+
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_model, 2, 0)>>
@@ -198,9 +91,8 @@
 		The segment cuts back to two news anchors, a dark-haired man with a mustache and an aging bottle blonde.
 		<br><br>The bottle blonde speaks to the viewers. "Some of you may recognize the woman in that video as Angry Red, noted femsupremacist and a leading figure in the old world Emancipation Movement. The video you saw was released along with countless other media files and documents from the movement in the EmancipationGate hacktivist attack. This particular video has been confirmed by computer analysis to be behind the scenes footage from the movement's latest documentary about the horrors of slavery."
 		<br><br>The mustached man looks knowingly at the camera. "Anyone remotely familiar with Free City slavery knew the documentary was complete bullshit, but what we didn't know was just how far those radicalists were willing to go to make us all look bad."
-		<br><br>...
-	<<elseif $randShow == 3 && $showOne > 3 || $showOne == 3>>
-		<<if $seeImages == 1>>
+	<<elseif _show == 3 && $FCTV.channel.one > 3 || $FCTV.channel.one == 3>>
+		<<if $seeImages > 0>>
 			<<set _jules.vaginalAccessory = "large dildo">>
 			<div class="imageColumn">
 				<div class="imageRef medImg">
@@ -216,46 +108,35 @@
 		<br><br>The camera switches back to the two anchors, showing an excited Jules hefting and bouncing her tits. "They've barely sagged at all since they stopped growing, now I know why!"
 		<br><br>As the AnchorSlave continues to squeeze, one of the researchers answers from off camera. "That's right, it can be rather amazing. To tell you the truth, we didn't believe it at first, but the evidence made it too hard to ignore." Jules starts looking toward the backstage area trying to signal someone as the other researcher continues. "It's also important not to wear a bra unless you're doing high-impact cardio. We've known since the mid 20th century that wearing bras causes sagging; bras devastate the breasts of <<if $seePreg == 0>><i>friendly</i><<else>>postpartum<</if>> women in particular, and promote breast cancer... Despite countless decades-long studies showing us this, the old world insists on forcing women to wear..."
 		<br><br>It seems that Jules finally got the approval she was looking for, because she immediately reached down between her legs, causing the researcher to distractedly forget what he was saying. Apparently the panties she's wearing are of the dildo variety, because when she removes her hand you can see a tell-tale green indicator light glowing on the front of them. A cute rosy flush comes to Jules cheeks before she apologizes and urges the pair of researchers to continue.
-		<br><br>...
 	<</if>>
 <<case 1>>
-	<<set $showTwo += 1, $lastShow = 1>><<set _rerun = random(2,10)>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play <<if $showTwo < 12>>the newest episode of a<<else>>a repeat of the<</if>> popular competitive reality show<<if $showTwo > 0>>: Next Top Breeder.<<else>> where several female citizens are competing for something.<</if>> The intro sequence shows a succession of beautiful ladies either participating in a mixture of contrived competitions, or talking and going about their lives in a sorority-like setting. The montage is overlaid with a narrator's voice: "12 of Canadia Arcology's most attractive women are all competing for the privilege of having the arcology owner's children. Clint Miles has desirable genes, and these ladies are determined to prove their worth as gestators. And here in Canadia, there are no restrictions on fertility drugs for the winner, so the competition this season is fierce! <<if $showTwo < 12>>_rerun<<else>>$showTwo<</if>> lad<<if $showTwo > 0>>ies have<<else>>y has<</if>> already been sent packing, who will be Canadia's... Next Top Breeder!?" The title finally pops up, redundantly labeling the show as 'Next Top Breeder: Canadia'.
-	<br><br>
-	<<if _MSL > 1 && $Concubine != 0>>
-		<<setLocalPronouns $Concubine 2>>
-		You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. Of course, the same could be said for the other eager slaves living in your bedroom, and the situation quickly devolves into a lust-filled orgy.
-	<<elseif _MSL > 0 && $Concubine != 0>>
-		<<setLocalPronouns $Concubine 2>>
-		You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. Of course, the same could be said for the other eager slave living in your bedroom, and the situation quickly devolves into a lust-filled threesome.
-	<<elseif _MSL == 0 && $Concubine != 0>>
-		<<setLocalPronouns $Concubine 2>>
-		You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. You've trained _him2 well, and _he2 knows exactly how to please you. You spend the rest of the evening doing something a lot more fun than watching reality TV.
-	<<elseif _MSL > 1 && $Concubine == 0>>
-		You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has the pleasure slaves in your bed eager for some attention from their own arcology owner. You spend the rest of the evening doing something a lot more fun than watching reality TV.
-	<<elseif _MSL > 0>>
-		You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has the pleasure slave in your bed eager for some attention from her own arcology owner. You spend the rest of the evening doing something a lot more fun than watching reality TV.
+	<<run FCTV.incrementChannel(2)>>
+	<<set _rerun = random(2,10), _MSL = $MastSiIDs.length>>
+	which is currently showing <<if $FCTV.channel.two < 12>>the newest episode of a<<else>>a repeat of the<</if>> popular competitive reality show<<if $FCTV.channel.two > 0>>: Next Top Breeder.<<else>> where several female citizens are competing for something.<</if>> The intro sequence shows a succession of beautiful ladies either participating in a mixture of contrived competitions, or talking and going about their lives in a sorority-like setting. The montage is overlaid with a narrator's voice: "12 of Canadia Arcology's most attractive women are all competing for the privilege of having the arcology owner's children. Clint Miles has desirable genes, and these ladies are determined to prove their worth as gestators. And here in Canadia, there are no restrictions on fertility drugs for the winner, so the competition this season is fierce! <<if $FCTV.channel.two < 12>>_rerun<<else>>$FCTV.channel.two<</if>> lad<<if $FCTV.channel.two > 0>>ies have<<else>>y has<</if>> already been sent packing, who will be Canadia's... Next Top Breeder!?" The title finally pops up, redundantly labeling the show as 'Next Top Breeder: Canadia'.
+	<<if _MSL >= 1>>
+		<br><br>You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has
+		<<if _MSL >= 1 && $Concubine != 0>>
+			<<setLocalPronouns $Concubine 2>>
+			@@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. Of course, the same could be said for the other eager slaves living in your bedroom, and the situation quickly devolves into a lust-filled <<if _MSL > 1>>orgy<<else>>threesome<</if>>.
+		<<elseif _MSL == 0 && $Concubine != 0>>
+			<<setLocalPronouns $Concubine 2>>
+			@@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. You've trained _him2 well, and _he2 knows exactly how to please you. You spend the rest of the evening doing something a lot more fun than watching reality TV.
+		<<elseif _MSL >= 1 && $Concubine == 0>>
+			the pleasure slaves in your bed eager for some attention from their own arcology owner. You spend the rest of the evening doing something a lot more fun than watching reality TV.
+		<</if>>
 	<</if>>
 <<case 2>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel(3)>>
+	<<if $seeImages > 0>>
 		<<set _model = BaseSlave()>>
-		<<set _model.devotion = 0>>
-		<<set _model.trust = 0>>
-		<<set _model.health.condition = random(60,80)>>
-		<<set _model.health.health = _model.health.condition - _model.health.shortDamage - _model.health.longDamage>>
-		<<set _model.muscles = 60>>
-		<<set _model.boobs = 700>>
-		<<set _model.butt = 3>>
-		<<set _model.hLength = 50>>
-		<<set _model.skin = "tan">>
-		<<set _model.hStyle = "messy">>
-		<<set _model.hColor = "blonde">>
-		<<set _model.boobShape = "perky">>
+		<<run Object.assign(_model, {
+			devotion: 0, trust: 0,
+			muscles: 600, boobs: 700,
+			butt: 3, hLength: 50,
+			skin: "tan", hStyle: "messy",
+			hColor: "blonde", boobShape: "perky"
+		})>>
+
 		<div class="imageColumn">
 			<div class="imageRef medImg">
 				<<= SlaveArt(_model, 2, 0)>>
@@ -264,369 +145,356 @@
 				<<= SlaveArt(_model, 2, 0)>>
 			</div>
 		</div>
-	<</if>>
-	<<set $showThree += 1, $lastShow = 2>>
-	<<set $randShow = random(0,2)+1>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play the 'Home and Slave' stream channel. The current show features a set of female twins wearing nothing but tool belts. Their assets aren't particularly noteworthy, but they have a great hourglass figure, toned muscles, and gorgeous girl-next-door faces. The girls are hosting a DIY show, and seem to be performing a lot of the work themselves. The occasional bead of sweat makes their smooth tan skin really stand out. It seems like this time they are
-	<<if $randShow == 1>>
+ <</if>>
+ <<set _show = random(0,2)+1>>
+ which is currently showing the 'Home and Slave' stream channel. The current show features a set of female twins wearing nothing but tool belts. Their assets aren't particularly noteworthy, but they have a great hourglass figure, toned muscles, and gorgeous girl-next-door faces. The girls are hosting a DIY show, and seem to be performing a lot of the work themselves. The occasional bead of sweat makes their smooth tan skin really stand out. It seems like this time they are
+ <<if _show == 1>>
 		working on modifications to an apartment to accommodate enormous anatomy. The pair demonstrate how to tastefully modify a doorway so that giant breasts, <<if $seeDicks == 0>><i>smiles</i><<else>>testicles<</if>>, and <<if $seePreg == 0>><i>hairdos</i><<else>>baby bumps<</if>> can get through easily. Their final results weren't refined enough to use in your own home, but were pretty amazing for the economy-sized apartment they filmed at.
 		<br><br>At the end of the show they test out the new doorways by bringing in a somewhat unusual slave. A naked fu<<if $seeDicks == 0>><i>nny cow</i><<else>>tanari<</if>> wearing only a cowbell collar, she has massive milky tits, gigantic <<if $seeDicks == 0>><i>smile</i><<else>>balls hanging low in her sack<</if>>, and a belly engorged with what was probably a <<if $seePreg == 0>><i>five-course dinner</i><<else>><<if $seeHyperPreg == 0>><i>single baby</i><<else>>dozen babies<</if>><</if>>. The <<if $seeDicks == 0>><i>fun</i><<else>>futa<</if>> cow ambles through the modified door without a problem, resulting in a bouncy victory dance from the naked twins.
-	<<elseif $randShow == 2>>
+ <<elseif _show == 2>>
 		working on setting up a slave nutrition system inside a moderately-sized apartment. They're installing a deluxe system that has integrated nutritional sensing in addition to a food system that supplies the unit's two feeder/med-dispenser combo units. Amazingly, the whole thing fits into the kitchen without a problem, as they located the main system housing in the pantry. When they're finished, you couldn't tell the nutrition system is there, except for the two large dildos that are sticking out of the side of a cabinet.
 		<br><br>After their work is done, you're treated to watching the young twins testing the system out. They each take one feeder and ride it to get a test suppository, before turning around and inhaling the cockfeeders for a small meal. You wonder at their choice for the order of events, sucking the cockfeeder they had just finished ramming up their ass, but they were so enthusiastic about it that you decide they probably liked it that way.
-	<<else>>
+ <<else>>
 		converting a bedroom into slave quarters. Rather than a complex or large project, this episode showcases a number of small projects. It's a pretty helpful show; a lot of what the nude twins cover will help owners house extra slaves without needing more space. The most interesting parts of the program to you are the slave training and libido upgrades they install.
 		<br><br>The room is set up so that slaves sleep in something resembling bunk beds, though there are four beds instead of two. Instead of worrying about the lack of space, the twins use the confined sleeping arrangements as an advantage. A simple neural activity monitor combined with a few sources of stimulation or discomfort serve to condition the slaves while they sleep. The twins helpfully demonstrate for their audience the features of these beds. Part of the stain-proof mattress is covered with flexible strips of metal to conduct electricity for stimulation or pain. Focused speakers play naughty sounds, while a dim display can show a stream of pornography or other material without being bright enough to disturb the slave's sleep. The final addition is a quartet of vibrating dildos that extend from the bunk above to stimulate a slave while they sleep.
 		<br><br>The whole setup seemed impressive, but you aren't really sure how effective it would be... particularly when you compare the likely cost of such a setup to an inexpensive cot on the floor.
-	<</if>>
+ <</if>>
 
 <<case 3 4>>
+	<<run FCTV.incrementChannel(4)>>
 	/* NOTE: These slaves are meant to be high quality and expensive, they are the product of the combined slave markets of all the Free Cities. Additionally, they won't follow the player's slave selling policies because they aren't being sold in the PC's arcology. Because they are purchased, it shouldn't be a balance issue or impact the game like a slave gift. */
-	<<set $showFour += 1, $lastShow = 4>>
 	<<if $seeDicks == 0>>
 		<<if $seePreg == 0>>
-			<<set $randShow = random(5,6)>>
+			<<set _show = random(5,6)>>
 		<<else>>
-			<<set $randShow = random(0,6)>>
+			<<set _show = random(0,6)>>
 		<</if>>
-	<<elseif $seeDicks == 100>>
+ <<elseif $seeDicks == 100>>
 		<<if $seePreg == 0>>
-			<<set $randShow = random(7)>>
+			<<set _show = random(7)>>
 		<<else>>
-			<<set $randShow = random(7,9)>>
+			<<set _show = random(7,9)>>
 		<</if>>
-	<<else>>
+ <<else>>
 		<<if $seePreg == 0>>
-			<<set $randShow = random(5,7)>>
+			<<set _show = random(5,7)>>
 		<<else>>
-			<<set $randShow = random(0,9)>>
+			<<set _show = random(0,9)>>
 		<</if>>
 	<</if>>
-	<<if $randShow < 3>> /* premium virgin */
-		<<set $activeSlaveOneTimeMinAge = ($fertilityAge + 2)>>
-		<<set $activeSlaveOneTimeMaxAge = 18>>
+	<<if _show < 3>> /* premium virgin */
+		<<set _slaveOneTimeMinAge = ($fertilityAge + 2)>>
+		<<set _slaveOneTimeMaxAge = 18>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XX")>>
-		<<set $activeSlave.devotion = random(40,60)>>
-		<<set $activeSlave.weight = random(-10,10)>>
-		<<set $activeSlave.waist = random(-45,25)>>
-		<<set $activeSlave.face = random(70,100)>>
-		<<set $activeSlave.anus = 0>>
-		<<set $activeSlave.vagina = 0>>
-		<<set $activeSlave.trueVirgin = 1>>
-		<<set $activeSlave.boobs = (random(14,26)*50)>>
-		<<set $activeSlave.boobShape = "perky">>
-		<<set $activeSlave.hips = 2>>
-		<<set $activeSlave.butt = random(5,6)>>
-		<<set $activeSlave.shoulders = -1>>
-		<<set $activeSlave.preg = 0>>
-		<<set $activeSlave.ovaries = 1>>
-		<<set $activeSlave.skill.vaginal = 0>>
-		<<set $activeSlave.lips = random(20,50)>>
-		<<set $activeSlave.teeth = "normal">>
-		<<set $activeSlave.vaginaLube = 2>>
-		<<set $activeSlave.energy = random(65,95)>>
-		<<set $activeSlave.attrXY = random(70,100)>>
-		<<set $activeSlave.attrXX = random(60,90)>>
-		<<set $activeSlave.attrKnown = 1>>
-		<<set $activeSlave.fetishKnown = 1>>
-		<<set $activeSlave.fetish = either("cumslut", "cumslut", "humiliation", "pregnancy", "pregnancy", "pregnancy", "submissive")>>
-		<<set $activeSlave.fetishStrength = random(70,100)>>
-		<<set $activeSlave.sexualFlaw = "none">>
-		<<set $activeSlave.behavioralFlaw = "none">>
-		<<set $activeSlave.behavioralQuirk = either("advocate", "funny", "insecure", "none", "none")>>
-		<<set $activeSlave.sexualQuirk = either("caring", "none", "romantic")>>
-		<<set $activeSlave.skill.entertainment = random(50,80)>>
-		<<set $activeSlave.skill.oral = random(20,60)>>
-		<<set $activeSlave.skill.anal = 0>>
-		<<set $activeSlave.skill.whoring = 0>>
-		<<set $activeSlave.intelligence = random(51,70)>>
-		<<set $activeSlave.intelligenceImplant = 30>>
-		<<set $activeSlave.devotion = random(60,90)>>
-		<<set $activeSlave.trust = random(50,80)>>
-		<<set $activeSlave.chem = 0>>
-		<<set $activeSlave.health.condition = 75>>
-		<<set $activeSlave.health.health = $activeSlave.health.condition - $activeSlave.health.shortDamage - $activeSlave.health.longDamage>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-		<<set $activeSlave.career = "a slave">>
-		<<set $activeSlave.custom.tattoo = "$He has a small stylized 'A' tattooed on the nape of $his neck marking $him as the product of the famous breeding program at Arcturus Arcology.">>
-	<<elseif $randShow == 3>> /* hyperpregnant */
-		<<set $activeSlaveOneTimeMinAge = ($fertilityAge + 3)>>
-		<<set $activeSlaveOneTimeMaxAge = 20>>
+		<<set _slave = GenerateNewSlave("XX")>>
+		<<set _slave.devotion = random(40,60)>>
+		<<set _slave.weight = random(-10,10)>>
+		<<set _slave.waist = random(-45,25)>>
+		<<set _slave.face = random(70,100)>>
+		<<set _slave.anus = 0>>
+		<<set _slave.vagina = 0>>
+		<<set _slave.trueVirgin = 1>>
+		<<set _slave.boobs = (random(14,26)*50)>>
+		<<set _slave.boobShape = "perky">>
+		<<set _slave.hips = 2>>
+		<<set _slave.butt = random(5,6)>>
+		<<set _slave.shoulders = -1>>
+		<<set _slave.preg = 0>>
+		<<set _slave.ovaries = 1>>
+		<<set _slave.skill.vaginal = 0>>
+		<<set _slave.lips = random(20,50)>>
+		<<set _slave.teeth = "normal">>
+		<<set _slave.vaginaLube = 2>>
+		<<set _slave.energy = random(65,95)>>
+		<<set _slave.attrXY = random(70,100)>>
+		<<set _slave.attrXX = random(60,90)>>
+		<<set _slave.attrKnown = 1>>
+		<<set _slave.fetishKnown = 1>>
+		<<set _slave.fetish = either("cumslut", "cumslut", "humiliation", "pregnancy", "pregnancy", "pregnancy", "submissive")>>
+		<<set _slave.fetishStrength = random(70,100)>>
+		<<set _slave.sexualFlaw = "none">>
+		<<set _slave.behavioralFlaw = "none">>
+		<<set _slave.behavioralQuirk = either("advocate", "funny", "insecure", "none", "none")>>
+		<<set _slave.sexualQuirk = either("caring", "none", "romantic")>>
+		<<set _slave.skill.entertainment = random(50,80)>>
+		<<set _slave.skill.oral = random(20,60)>>
+		<<set _slave.skill.anal = 0>>
+		<<set _slave.skill.whoring = 0>>
+		<<set _slave.intelligence = random(51,70)>>
+		<<set _slave.intelligenceImplant = 30>>
+		<<set _slave.devotion = random(60,90)>>
+		<<set _slave.trust = random(50,80)>>
+		<<set _slave.chem = 0>>
+		<<set _slave.health.condition = 75>>
+		<<set _slave.health.health = _slave.health.condition - _slave.health.shortDamage - _slave.health.longDamage>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+		<<set _slave.career = "a slave">>
+		<<set _slave.custom.tattoo = "$He has a small stylized 'A' tattooed on the nape of $his neck marking $him as the product of the famous breeding program at Arcturus Arcology.">>
+ <<elseif _show == 3>> /* hyperpregnant */
+		<<set _slaveOneTimeMinAge = ($fertilityAge + 3)>>
+		<<set _slaveOneTimeMaxAge = 20>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XX")>>
-		<<set $activeSlave.weight = random(10,20)>>
-		<<set $activeSlave.waist = random(-25,25)>>
-		<<set $activeSlave.anus = 1>>
-		<<set $activeSlave.vagina = 2>>
-		<<set $activeSlave.preg = random(25,30)>>
+		<<set _slave = GenerateNewSlave("XX")>>
+		<<set _slave.weight = random(10,20)>>
+		<<set _slave.waist = random(-25,25)>>
+		<<set _slave.anus = 1>>
+		<<set _slave.vagina = 2>>
+		<<set _slave.preg = random(25,30)>>
 		<<if $seeHyperPreg == 0>>
-			<<set $activeSlave.pregType = either(6,7,7,8)>>
+			<<set _slave.pregType = either(6,7,7,8)>>
 		<<else>>
-			<<set $activeSlave.pregType = random(10,16)>>
+			<<set _slave.pregType = random(10,16)>>
 		<</if>>
-		<<set $activeSlave.pregKnown = 1>>
-		<<set $activeSlave.pregWeek = $activeSlave.preg>>
-		<<run SetBellySize($activeSlave)>>
-		<<set $activeSlave.pregAdaptation = 300>>
-		<<set $activeSlave.ovaries = 1>>
-		<<set $activeSlave.lips = random(20,50)>>
-		<<set $activeSlave.teeth = "normal">>
-		<<set $activeSlave.vaginaLube = 2>>
-		<<set $activeSlave.boobs = (random(10,30)*50)>>
-		<<set $activeSlave.lactation = 1>>
-		<<set $activeSlave.lactationDuration = 2>>
-		<<set $activeSlave.hips = 3>>
-		<<set $activeSlave.hipsImplant = 1>>
-		<<set $activeSlave.butt = random(7,9)>>
-		<<set $activeSlave.attrKnown = 1>>
-		<<set $activeSlave.energy = random(65,100)>>
-		<<set $activeSlave.attrXY = random(70,100)>>
-		<<set $activeSlave.attrXX = random(40,100)>>
-		<<set $activeSlave.skill.vaginal = random(50,80)>>
-		<<set $activeSlave.skill.oral = random(40,80)>>
-		<<set $activeSlave.skill.anal = random(20,50)>>
-		<<set $activeSlave.skill.whoring = random(0,50)>>
-		<<set $activeSlave.devotion = random(40,70)>>
-		<<set $activeSlave.trust = random(40,70)>>
-		<<set $activeSlave.fetish = "pregnancy">>
-		<<set $activeSlave.fetishKnown = 1>>
-		<<set $activeSlave.fetishStrength = "100">>
-		<<set $activeSlave.sexualFlaw = "breeder">>
-		<<set $activeSlave.behavioralFlaw = "none">>
-		<<set $activeSlave.behavioralQuirk = "none">>
-		<<set $activeSlave.sexualQuirk = either("caring", "caring", "romantic")>>
-		<<set $activeSlave.chem = 0>>
-		<<set $activeSlave.health.condition = 75>>
-		<<set $activeSlave.health.health = $activeSlave.health.condition - $activeSlave.health.shortDamage - $activeSlave.health.longDamage>>
-		<<set $activeSlave.intelligence = random(-15,80)>>
-		<<set $activeSlave.intelligenceImplant = 15>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-		<<set $activeSlave.career = setup.youngCareers.random()>>
-	<<elseif $randShow == 4>> /* superfetation */
-		<<set $activeSlaveOneTimeMinAge = ($fertilityAge + 4)>>
-		<<set $activeSlaveOneTimeMaxAge = 24>>
+		<<set _slave.pregKnown = 1>>
+		<<set _slave.pregWeek = _slave.preg>>
+		<<run SetBellySize(_slave)>>
+		<<set _slave.pregAdaptation = 300>>
+		<<set _slave.ovaries = 1>>
+		<<set _slave.lips = random(20,50)>>
+		<<set _slave.teeth = "normal">>
+		<<set _slave.vaginaLube = 2>>
+		<<set _slave.boobs = (random(10,30)*50)>>
+		<<set _slave.lactation = 1>>
+		<<set _slave.lactationDuration = 2>>
+		<<set _slave.hips = 3>>
+		<<set _slave.hipsImplant = 1>>
+		<<set _slave.butt = random(7,9)>>
+		<<set _slave.attrKnown = 1>>
+		<<set _slave.energy = random(65,100)>>
+		<<set _slave.attrXY = random(70,100)>>
+		<<set _slave.attrXX = random(40,100)>>
+		<<set _slave.skill.vaginal = random(50,80)>>
+		<<set _slave.skill.oral = random(40,80)>>
+		<<set _slave.skill.anal = random(20,50)>>
+		<<set _slave.skill.whoring = random(0,50)>>
+		<<set _slave.devotion = random(40,70)>>
+		<<set _slave.trust = random(40,70)>>
+		<<set _slave.fetish = "pregnancy">>
+		<<set _slave.fetishKnown = 1>>
+		<<set _slave.fetishStrength = "100">>
+		<<set _slave.sexualFlaw = "breeder">>
+		<<set _slave.behavioralFlaw = "none">>
+		<<set _slave.behavioralQuirk = "none">>
+		<<set _slave.sexualQuirk = either("caring", "caring", "romantic")>>
+		<<set _slave.chem = 0>>
+		<<set _slave.health.condition = 75>>
+		<<set _slave.health.health = _slave.health.condition - _slave.health.shortDamage - _slave.health.longDamage>>
+		<<set _slave.intelligence = random(-15,80)>>
+		<<set _slave.intelligenceImplant = 15>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+		<<set _slave.career = setup.youngCareers.random()>>
+	<<elseif _show == 4>> /* superfetation */
+		<<set _slaveOneTimeMinAge = ($fertilityAge + 4)>>
+		<<set _slaveOneTimeMaxAge = 24>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XX")>>
-		<<set $activeSlave.weight = random(20,40)>>
-		<<set $activeSlave.waist = random(-25,25)>>
-		<<set $activeSlave.boobs = (random(4,6)*100)>>
-		<<set $activeSlave.butt = random(3,5)>>
-		<<set $activeSlave.hips = 1>>
-		<<set $activeSlave.face = random(60,90)>>
-		<<set $activeSlave.anus = 1>>
-		<<set $activeSlave.vagina = 3>>
-		<<set $activeSlave.preg = 0>>
-		<<set $activeSlave.pregWeek = -2>>
-		<<set $activeSlave.bellySag = 1>>
-		<<set $activeSlave.bellySagPreg = 1>>
-		<<set $activeSlave.geneticQuirks.superfetation = 2>>
-		<<set $activeSlave.ovaries = 1>>
-		<<set $activeSlave.teeth = "normal">>
-		<<set $activeSlave.vaginaLube = 2>>
-		<<set $activeSlave.energy = random(60,90)>>
-		<<set $activeSlave.attrXY = random(60,100)>>
-		<<set $activeSlave.attrXX = random(40,65)>>
-		<<set $activeSlave.attrKnown = 1>>
-		<<set $activeSlave.fetishKnown = 1>>
-		<<set $activeSlave.fetish = either("cumslut", "humiliation", "pregnancy", "pregnancy", "submissive")>>
-		<<set $activeSlave.fetishStrength = random(70,100)>>
-		<<set $activeSlave.sexualFlaw = "none">>
-		<<set $activeSlave.behavioralFlaw = "none">>
-		<<set $activeSlave.behavioralQuirk = "none">>
-		<<set $activeSlave.sexualQuirk = "none">>
-		<<set $activeSlave.skill.oral = random(20,50)>>
-		<<set $activeSlave.skill.vaginal = random(50,100)>>
-		<<set $activeSlave.skill.anal = random(10,20)>>
-		<<set $activeSlave.intelligence = random(-15,80)>>
-		<<set $activeSlave.intelligenceImplant = 0>>
-		<<set $activeSlave.devotion = random(60,90)>>
-		<<set $activeSlave.trust = random(50,80)>>
-		<<set $activeSlave.chem = 0>>
-		<<set $activeSlave.health.condition = 75>>
-		<<set $activeSlave.health.health = $activeSlave.health.condition - $activeSlave.health.shortDamage - $activeSlave.health.longDamage>>
-		<<set $activeSlave.counter.birthsTotal = random(2,3)>>
-		<<set $activeSlave.career = setup.youngCareers.random()>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-	<<elseif $randShow == 5>> /* MILF */
-		<<set $activeSlaveOneTimeMinAge = 36>>
-		<<set $activeSlaveOneTimeMaxAge = 40>>
+		<<set _slave = GenerateNewSlave("XX")>>
+		<<set _slave.weight = random(20,40)>>
+		<<set _slave.waist = random(-25,25)>>
+		<<set _slave.boobs = (random(4,6)*100)>>
+		<<set _slave.butt = random(3,5)>>
+		<<set _slave.hips = 1>>
+		<<set _slave.face = random(60,90)>>
+		<<set _slave.anus = 1>>
+		<<set _slave.vagina = 3>>
+		<<set _slave.preg = 0>>
+		<<set _slave.pregWeek = -2>>
+		<<set _slave.bellySag = 1>>
+		<<set _slave.bellySagPreg = 1>>
+		<<set _slave.geneticQuirks.superfetation = 2>>
+		<<set _slave.ovaries = 1>>
+		<<set _slave.teeth = "normal">>
+		<<set _slave.vaginaLube = 2>>
+		<<set _slave.energy = random(60,90)>>
+		<<set _slave.attrXY = random(60,100)>>
+		<<set _slave.attrXX = random(40,65)>>
+		<<set _slave.attrKnown = 1>>
+		<<set _slave.fetishKnown = 1>>
+		<<set _slave.fetish = either("cumslut", "humiliation", "pregnancy", "pregnancy", "submissive")>>
+		<<set _slave.fetishStrength = random(70,100)>>
+		<<set _slave.sexualFlaw = "none">>
+		<<set _slave.behavioralFlaw = "none">>
+		<<set _slave.behavioralQuirk = "none">>
+		<<set _slave.sexualQuirk = "none">>
+		<<set _slave.skill.oral = random(20,50)>>
+		<<set _slave.skill.vaginal = random(50,100)>>
+		<<set _slave.skill.anal = random(10,20)>>
+		<<set _slave.intelligence = random(-15,80)>>
+		<<set _slave.intelligenceImplant = 0>>
+		<<set _slave.devotion = random(60,90)>>
+		<<set _slave.trust = random(50,80)>>
+		<<set _slave.chem = 0>>
+		<<set _slave.health.condition = 75>>
+		<<set _slave.health.health = _slave.health.condition - _slave.health.shortDamage - _slave.health.longDamage>>
+		<<set _slave.counter.birthsTotal = random(2,3)>>
+		<<set _slave.career = setup.youngCareers.random()>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+ <<elseif _show == 5>> /* MILF */
+		<<set _slaveOneTimeMinAge = 36>>
+		<<set _slaveOneTimeMaxAge = 40>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XX")>>
-		<<set $activeSlave.weight = random(20,90)>>
-		<<set $activeSlave.waist = random(-45,45)>>
-		<<set $activeSlave.boobs = (random(20,30)*50)>>
-		<<set $activeSlave.butt = random(5,7)>>
-		<<set $activeSlave.hips = 2>>
-		<<set $activeSlave.face = random(60,90)>>
-		<<set $activeSlave.anus = 1>>
-		<<set $activeSlave.vagina = 2>>
-		<<set $activeSlave.preg = 0>>
-		<<set $activeSlave.ovaries = 1>>
-		<<set $activeSlave.teeth = "normal">>
-		<<set $activeSlave.vaginaLube = 2>>
-		<<set $activeSlave.energy = random(60,90)>>
-		<<set $activeSlave.attrXY = random(60,100)>>
-		<<set $activeSlave.attrXX = random(40,85)>>
-		<<set $activeSlave.attrKnown = 1>>
-		<<set $activeSlave.fetishKnown = 1>>
-		<<set $activeSlave.fetish = either("buttslut", "buttslut", "cumslut", "cumslut", "humiliation", "pregnancy", "pregnancy", "submissive")>>
-		<<set $activeSlave.fetishStrength = random(70,100)>>
-		<<set $activeSlave.sexualFlaw = "none">>
-		<<set $activeSlave.behavioralFlaw = "none">>
-		<<set $activeSlave.behavioralQuirk = "none">>
-		<<set $activeSlave.sexualQuirk = "none">>
-		<<set $activeSlave.skill.entertainment = random(20,80)>>
-		<<set $activeSlave.skill.oral = random(50,100)>>
-		<<set $activeSlave.skill.vaginal = random(50,100)>>
-		<<set $activeSlave.skill.anal = random(20,80)>>
-		<<set $activeSlave.skill.whoring = random(20,80)>>
-		<<set $activeSlave.intelligence = random(-15,80)>>
-		<<set $activeSlave.intelligenceImplant = 15>>
-		<<set $activeSlave.devotion = random(60,90)>>
-		<<set $activeSlave.trust = random(50,80)>>
-		<<set $activeSlave.chem = 0>>
-		<<set $activeSlave.health.condition = 75>>
-		<<set $activeSlave.health.health = $activeSlave.health.condition - $activeSlave.health.shortDamage - $activeSlave.health.longDamage>>
-		<<set $activeSlave.counter.birthsTotal = random(1,3)>>
-		<<set $activeSlave.career = setup.youngCareers.random()>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-	<<elseif $randShow == 6>> /* discount young hottie */
-		<<set $activeSlaveOneTimeMaxAge = 25>>
+		<<set _slave = GenerateNewSlave("XX")>>
+		<<set _slave.weight = random(20,90)>>
+		<<set _slave.waist = random(-45,45)>>
+		<<set _slave.boobs = (random(20,30)*50)>>
+		<<set _slave.butt = random(5,7)>>
+		<<set _slave.hips = 2>>
+		<<set _slave.face = random(60,90)>>
+		<<set _slave.anus = 1>>
+		<<set _slave.vagina = 2>>
+		<<set _slave.preg = 0>>
+		<<set _slave.ovaries = 1>>
+		<<set _slave.teeth = "normal">>
+		<<set _slave.vaginaLube = 2>>
+		<<set _slave.energy = random(60,90)>>
+		<<set _slave.attrXY = random(60,100)>>
+		<<set _slave.attrXX = random(40,85)>>
+		<<set _slave.attrKnown = 1>>
+		<<set _slave.fetishKnown = 1>>
+		<<set _slave.fetish = either("buttslut", "buttslut", "cumslut", "cumslut", "humiliation", "pregnancy", "pregnancy", "submissive")>>
+		<<set _slave.fetishStrength = random(70,100)>>
+		<<set _slave.sexualFlaw = "none">>
+		<<set _slave.behavioralFlaw = "none">>
+		<<set _slave.behavioralQuirk = "none">>
+		<<set _slave.sexualQuirk = "none">>
+		<<set _slave.skill.entertainment = random(20,80)>>
+		<<set _slave.skill.oral = random(50,100)>>
+		<<set _slave.skill.vaginal = random(50,100)>>
+		<<set _slave.skill.anal = random(20,80)>>
+		<<set _slave.skill.whoring = random(20,80)>>
+		<<set _slave.intelligence = random(-15,80)>>
+		<<set _slave.intelligenceImplant = 15>>
+		<<set _slave.devotion = random(60,90)>>
+		<<set _slave.trust = random(50,80)>>
+		<<set _slave.chem = 0>>
+		<<set _slave.health.condition = 75>>
+		<<set _slave.health.health = _slave.health.condition - _slave.health.shortDamage - _slave.health.longDamage>>
+		<<set _slave.counter.birthsTotal = random(1,3)>>
+		<<set _slave.career = setup.youngCareers.random()>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+ <<elseif _show == 6>> /* discount young hottie */
+		<<set _slaveOneTimeMaxAge = 25>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XX")>>
-		<<set $activeSlave.face = random(70,100)>>
-		<<set $activeSlave.weight = random(-5,10)>>
-		<<set $activeSlave.waist = random(-45,25)>>
-		<<set $activeSlave.anus = 1>>
-		<<set $activeSlave.vagina = 1>>
-		<<set $activeSlave.boobs = (random(14,26)*50)>>
-		<<set $activeSlave.boobShape = "perky">>
-		<<set $activeSlave.hips = 2>>
-		<<set $activeSlave.butt = random(5,6)>>
-		<<set $activeSlave.shoulders = -1>>
-		<<set $activeSlave.preg = 0>>
-		<<set $activeSlave.ovaries = 1>>
-		<<set $activeSlave.lips = random(25,50)>>
-		<<if $activeSlave.physicalAge >= 12>>
-			<<set $activeSlave.teeth = "normal">>
+		<<set _slave = GenerateNewSlave("XX")>>
+		<<set _slave.face = random(70,100)>>
+		<<set _slave.weight = random(-5,10)>>
+		<<set _slave.waist = random(-45,25)>>
+		<<set _slave.anus = 1>>
+		<<set _slave.vagina = 1>>
+		<<set _slave.boobs = (random(14,26)*50)>>
+		<<set _slave.boobShape = "perky">>
+		<<set _slave.hips = 2>>
+		<<set _slave.butt = random(5,6)>>
+		<<set _slave.shoulders = -1>>
+		<<set _slave.preg = 0>>
+		<<set _slave.ovaries = 1>>
+		<<set _slave.lips = random(25,50)>>
+		<<if _slave.physicalAge >= 12>>
+			<<set _slave.teeth = "normal">>
 		<</if>>
-		<<set $activeSlave.vaginaLube = 2>>
-		<<set $activeSlave.skill.vaginal = 15>>
-		<<set $activeSlave.skill.oral = 15>>
-		<<set $activeSlave.skill.anal = 15>>
-		<<set $activeSlave.skill.whoring = 15>>
-		<<set $activeSlave.sexualFlaw = either("hates anal", "hates oral", "hates penetration", "idealistic")>>
-		<<set $activeSlave.behavioralFlaw = either("arrogant", "bitchy", "hates men")>>
-		<<set $activeSlave.energy = 10>>
-		<<set $activeSlave.fetish = "none">>
-		<<set $activeSlave.clit = either(3,3,4,4,5,8,10)>>
-		<<set $activeSlave.muscles = random(0,25)>>
-		<<set $activeSlave.devotion = random(-25,25)>>
-		<<set $activeSlave.trust = random(-25,25)>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-	<<elseif $randShow <= 8>> /* huge balls */
-		<<set $activeSlaveOneTimeMaxAge = 25>>
+		<<set _slave.vaginaLube = 2>>
+		<<set _slave.skill.vaginal = 15>>
+		<<set _slave.skill.oral = 15>>
+		<<set _slave.skill.anal = 15>>
+		<<set _slave.skill.whoring = 15>>
+		<<set _slave.sexualFlaw = either("hates anal", "hates oral", "hates penetration", "idealistic")>>
+		<<set _slave.behavioralFlaw = either("arrogant", "bitchy", "hates men")>>
+		<<set _slave.energy = 10>>
+		<<set _slave.fetish = "none">>
+		<<set _slave.clit = either(3,3,4,4,5,8,10)>>
+		<<set _slave.muscles = random(0,25)>>
+		<<set _slave.devotion = random(-25,25)>>
+		<<set _slave.trust = random(-25,25)>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+ <<elseif _show <= 8>> /* huge balls */
+		<<set _slaveOneTimeMaxAge = 25>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XY")>>
-		<<set $activeSlave.anus = 2>>
-		<<set $activeSlave.balls = random(20,35)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-		<<set $activeSlave.dick = random(3,5)>>
-		<<set $activeSlave.prostate = 2>>
-		<<set $activeSlave.skill.oral = random(30,60)>>
-		<<set $activeSlave.skill.anal = random(20,50)>>
-		<<set $activeSlave.skill.whoring = random(0,25)>>
-		<<set $activeSlave.devotion = random(50,80)>>
-		<<set $activeSlave.trust = random(50,80)>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-	<<elseif $randShow == 9>> /* mpreg dickgirl */
-		<<set $activeSlaveOneTimeMaxAge = 22>>
+		<<set _slave = GenerateNewSlave("XY")>>
+		<<set _slave.anus = 2>>
+		<<set _slave.balls = random(20,35)>>
+		<<set _slave.scrotum = _slave.balls>>
+		<<set _slave.dick = random(3,5)>>
+		<<set _slave.prostate = 2>>
+		<<set _slave.skill.oral = random(30,60)>>
+		<<set _slave.skill.anal = random(20,50)>>
+		<<set _slave.skill.whoring = random(0,25)>>
+		<<set _slave.devotion = random(50,80)>>
+		<<set _slave.trust = random(50,80)>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
+ <<elseif _show == 9>> /* mpreg dickgirl */
+		<<set _slaveOneTimeMaxAge = 22>>
 		<<set $oneTimeDisableDisability = 1>>
-		<<set $activeSlave = GenerateNewSlave("XY")>>
-		<<set $activeSlave.anus = 2>>
-		<<set $activeSlave.vagina = -1>>
-		<<set $activeSlave.ovaries = 0>>
-		<<set $activeSlave.mpreg = 1>>
-		<<set $activeSlave.preg = 0>>
-		<<set $activeSlave.pubertyXX = 1>>
-		<<set $activeSlave.dick = random(3,5)>>
-		<<set $activeSlave.balls = random(3,6)>>
-		<<set $activeSlave.skill.oral = random(40,80)>>
-		<<set $activeSlave.skill.anal = random(40,80)>>
-		<<set $activeSlave.skill.whoring = random(40,70)>>
-		<<set $activeSlave.muscles = either(20, 50)>>
-		<<set $activeSlave.energy = random(70,100)>>
-		<<set $activeSlave.attrXY = random(70,100)>>
-		<<set $activeSlave.attrXX = random(70,100)>>
-		<<set $activeSlave.attrKnown = 1>>
-		<<set $activeSlave.fetishKnown = 1>>
-		<<set $activeSlave.fetish = "pregnancy">>
-		<<set $activeSlave.fetishStrength = random(80,100)>>
-		<<set $activeSlave.sexualFlaw = "none">>
-		<<set $activeSlave.behavioralFlaw = "none">>
-		<<set $activeSlave.behavioralQuirk = "none">>
-		<<set $activeSlave.sexualQuirk = "none">>
-		<<set $activeSlave.intelligence = random(-15,80)>>
-		<<set $activeSlave.intelligenceImplant = 15>>
-		<<set $activeSlave.devotion = random(60,90)>>
-		<<set $activeSlave.trust = random(50,80)>>
-		<<set $activeSlave.chem = 0>>
-		<<set $activeSlave.health.condition = 75>>
-		<<set $activeSlave.health.health = $activeSlave.health.condition - $activeSlave.health.shortDamage - $activeSlave.health.longDamage>>
-		<<set $activeSlave.career = setup.youngCareers.random()>>
-		<<set $activeSlave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
-	<</if>>
-	<<setLocalPronouns $activeSlave>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
+		<<set _slave = GenerateNewSlave("XY")>>
+		<<set _slave.anus = 2>>
+		<<set _slave.vagina = -1>>
+		<<set _slave.ovaries = 0>>
+		<<set _slave.mpreg = 1>>
+		<<set _slave.preg = 0>>
+		<<set _slave.pubertyXX = 1>>
+		<<set _slave.dick = random(3,5)>>
+		<<set _slave.balls = random(3,6)>>
+		<<set _slave.skill.oral = random(40,80)>>
+		<<set _slave.skill.anal = random(40,80)>>
+		<<set _slave.skill.whoring = random(40,70)>>
+		<<set _slave.muscles = either(20, 50)>>
+		<<set _slave.energy = random(70,100)>>
+		<<set _slave.attrXY = random(70,100)>>
+		<<set _slave.attrXX = random(70,100)>>
+		<<set _slave.attrKnown = 1>>
+		<<set _slave.fetishKnown = 1>>
+		<<set _slave.fetish = "pregnancy">>
+		<<set _slave.fetishStrength = random(80,100)>>
+		<<set _slave.sexualFlaw = "none">>
+		<<set _slave.behavioralFlaw = "none">>
+		<<set _slave.behavioralQuirk = "none">>
+		<<set _slave.sexualQuirk = "none">>
+		<<set _slave.intelligence = random(-15,80)>>
+		<<set _slave.intelligenceImplant = 15>>
+		<<set _slave.devotion = random(60,90)>>
+		<<set _slave.trust = random(50,80)>>
+		<<set _slave.chem = 0>>
+		<<set _slave.health.condition = 75>>
+		<<set _slave.health.health = _slave.health.condition - _slave.health.shortDamage - _slave.health.longDamage>>
+		<<set _slave.career = setup.youngCareers.random()>>
+		<<set _slave.origin = "You purchased $him from FCTV's Home Slave Shopping stream channel.">>
 	<</if>>
-	to play the 'Home Slave Shopping' stream channel. It's a bit strange, shopping for slaves without inspecting them in person, but you have to admit it's kind of convenient. Plus, you might find something that'd be difficult to get in your own arcology's markets. You start watching at the end of one slave being displayed; the program goes into a lot of detail that isn't always available from shady salesmen at the market. Two hosts are displaying the merchandise and an older male reads details on each slave from a prompter, while a fit female works the slave for the camera to give viewers a good look at what they might purchase.
+	<<setLocalPronouns _slave>>
+	which is currently showing the 'Home Slave Shopping' stream channel. It's a bit strange, shopping for slaves without inspecting them in person, but you have to admit it's kind of convenient. Plus, you might find something that'd be difficult to get in your own arcology's markets. You start watching at the end of one slave being displayed; the program goes into a lot of detail that isn't always available from shady salesmen at the market. Two hosts are displaying the merchandise and an older male reads details on each slave from a prompter, while a fit female works the slave for the camera to give viewers a good look at what they might purchase.
 	<br><br>"Next up, we have
-	<<if $randShow < 3>> /* premium virgin */
-		a premium virgin named $activeSlave.slaveName." A bright pink "VV" symbol flashes on the corner of the screen. "Take a good look, because $he is a product of the famous sex slave breeding program at Arcturus Arcology. Like all the slaves they sell, $he's a premium @@.pink;double virgin.@@ $He has excellent breeding potential, and while $he isn't that skilled yet, $he's got good intelligence and is already well acclimated to the life of a sex slave."
-	<<elseif $randShow == 3>> /* hyperpregnant */
-		<<= addA($activeSlave.race)>> breeder, young and healthy with an advanced <<if $seeHyperPreg == 0>><i>@@.pink;super pregnancy.@@</i><<else>>@@.pink;hyper pregnancy.@@<</if>> $activeSlave.slaveName is really into making babies, and has even had $his hips surgically widened to help $him carry a large brood. Our tests here at HSS show that $he's pregnant with $activeSlave.pregType babies!"
-	<<elseif $randShow == 4>> /* superfetation */
-		a special slave named $activeSlave.slaveName who has quite the gift, @@.pink;superfetation!@@ $He can become pregnant while pregnant! Isn't that amazing? $He may have a few miles on $him, having just completed a double pregnancy, but with a trait like that, $he's more than worth $his price if you like your <<= $girl>>s to constantly have a bun in the oven."
-	<<elseif $randShow == 5>> /* MILF */
-		<<= addA($activeSlave.race)>> @@.pink;MILF.@@ $He's no longer young, but still quite attractive. $He has been a slave for many years now, and has been trained well. $He also has a good array of skills that you can put to use. $He has huge tits and a huge ass to play with, but $he'd also make good <<if $seePreg == 0>><i>sandwiches</i><<else>>stock for a breeding program<</if>>."
-	<<elseif $randShow == 6>> /* discount young hottie */
-		a bargain discount offer on a young $activeSlave.race $girl. Unlike our usual stock $he's something of a @@.red;disobedient@@ slave, but that means savings for you, and all the fun of breaking in a new slave. We have to admit that $his previous owner had a hard time training $him, but I'm sure you can tell that $his body has potential<<if $activeSlave.clit > 4>>, just look at the @@.pink;clit@@ on $him<</if>>!"
-	<<elseif $randShow <= 8>> /* huge balls */
-		<<= addA($activeSlave.race)>> cum cow. Just take a look at that pair of @@.pink;massive balls.@@ This slave also has a prostate stimulating hormone implant to ramp up $his cum production even further. $He's a perfect fit for your dairy, or even your own kitchen creamery!"
+	<<if _show < 3>> /* premium virgin */
+		a premium virgin named _slave.slaveName." A bright pink "VV" symbol flashes on the corner of the screen. "Take a good look, because $he is a product of the famous sex slave breeding program at Arcturus Arcology. Like all the slaves they sell, $he's a premium @@.pink;double virgin.@@ $He has excellent breeding potential, and while $he isn't that skilled yet, $he's got good intelligence and is already well acclimated to the life of a sex slave."
+	<<elseif _show == 3>> /* hyperpregnant */
+		<<= addA(_slave.race)>> breeder, young and healthy with an advanced <<if $seeHyperPreg == 0>><i>@@.pink;super pregnancy.@@</i><<else>>@@.pink;hyper pregnancy.@@<</if>> _slave.slaveName is really into making babies, and has even had $his hips surgically widened to help $him carry a large brood. Our tests here at HSS show that $he's pregnant with _slave.pregType babies!"
+	<<elseif _show == 4>> /* superfetation */
+		a special slave named _slave.slaveName who has quite the gift, @@.pink;superfetation!@@ $He can become pregnant while pregnant! Isn't that amazing? $He may have a few miles on $him, having just completed a double pregnancy, but with a trait like that, $he's more than worth $his price if you like your <<= $girl>>s to constantly have a bun in the oven."
+	<<elseif _show == 5>> /* MILF */
+		<<= addA(_slave.race)>> @@.pink;MILF.@@ $He's no longer young, but still quite attractive. $He has been a slave for many years now, and has been trained well. $He also has a good array of skills that you can put to use. $He has huge tits and a huge ass to play with, but $he'd also make good <<if $seePreg == 0>><i>sandwiches</i><<else>>stock for a breeding program<</if>>."
+	<<elseif _show == 6>> /* discount young hottie */
+		a bargain discount offer on a young _slave.race $girl. Unlike our usual stock $he's something of a @@.red;disobedient@@ slave, but that means savings for you, and all the fun of breaking in a new slave. We have to admit that $his previous owner had a hard time training $him, but I'm sure you can tell that $his body has potential<<if _slave.clit > 4>>, just look at the @@.pink;clit@@ on $him<</if>>!"
+	<<elseif _show <= 8>> /* huge balls */
+		<<= addA(_slave.race)>> cum cow. Just take a look at that pair of @@.pink;massive balls.@@ This slave also has a prostate stimulating hormone implant to ramp up $his cum production even further. $He's a perfect fit for your dairy, or even your own kitchen creamery!"
 		<br><br>The woman helping to display the slaves shows her hand to the camera; it's coated in a sticky layer of precum from handling the cum cow's equipment.
-	<<elseif $randShow == 9>> /* mpreg dickgirl */
-		a strong young $activeSlave.race $girl that retains $his cock and balls. $activeSlave.slaveName has something that makes $him special: thanks to medical science $he's got a @@.pink;functional ass womb.@@ That's right folks, this slave is fertile and can get knocked up if you inseminate $his asshole. That's pretty amazing, to be honest, and exceptionally rare. Don't let this opportunity slip by!"
+	<<elseif _show == 9>> /* mpreg dickgirl */
+		a strong young _slave.race $girl that retains $his cock and balls. _slave.slaveName has something that makes $him special: thanks to medical science $he's got a @@.pink;functional ass womb.@@ That's right folks, this slave is fertile and can get knocked up if you inseminate $his asshole. That's pretty amazing, to be honest, and exceptionally rare. Don't let this opportunity slip by!"
 	<</if>>
-	<<set _slaveCost = slaveCost($activeSlave)>>
-	<<if $randShow < 3>>
+	<<set _slaveCost = slaveCost(_slave)>>
+	<<if _show < 3 || _show > 6>>
 		<<set _slaveCost *= 1.3>>
-	<<elseif $randShow == 4>>
+	<<elseif _show == 4>>
 		<<set _slaveCost *= 2>>
-	<<elseif $randShow == 6>>
+	<<elseif _show == 6>>
 		<<set _slaveCost *= 0.7>>
-	<<elseif $randShow > 6>>
-		<<set _slaveCost *= 1.3>>
 	<</if>>
 	<<set _slaveCost = 500*Math.trunc(_slaveCost/500)>>
 	The offered price is <<print cashFormat(_slaveCost)>>.
 
 	<<if $cash >= _slaveCost>>
-		<br>
+		<br> <<set $activeSlave = _slave>>
 		<<link "Buy $his slave contract">>
-			<<run cashX(forceNeg(_slaveCost), "slaveTransfer", $activeSlave)>>
+			<<run cashX(forceNeg(_slaveCost), "slaveTransfer", _slave)>>
 			<<set $nextLink = "Scheduled Event", $returnTo = "Scheduled Event">>
 			<<goto "New Slave Intro">>
 		<</link>>
@@ -637,36 +505,29 @@
 	<<set $saleDescription = 1>><<include "Long Slave Description">><<set $saleDescription = 0>>
 
 <<case 5>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $seeImages > 0>>
 		<<set _model = BaseSlave()>>
-		<<set _model.devotion = 0>>
-		<<set _model.trust = 0>>
-		<<set _model.boobs = 700>>
-		<<set _model.hips = 2>>
-		<<set _model.butt = 5>>
-		<<set _model.hLength = 50>>
-		<<set _model.hStyle = "luxurious">>
-		<<set _model.hColor = "blonde">>
-		<<set _model.boobShape = "perky">>
-		<<set _model.belly = 10000>>
-		<<set _model.preg = 35>>
-		<<set _model.clothes = "a maternity dress">>
+		<<run Object.assign(_model, {
+			devotion: 0, trust: 0,
+			boobs: 700, hips: 2,
+			butt: 5, hLength: 50,
+			hStyle: "luxurious", hColor: "blonde",
+			boobShape: "perky", belly: 10000,
+			preg: 35, clothes: "a maternity dress"
+		})>>
+
 		<div class="imageColumn">
 			<div class="imageRef medImg">
 				<<= SlaveArt(_model, 2, 0)>>
 			</div>
 		</div>
 	<</if>>
-	<<set $showFive += 1, $lastShow = 5>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play an episode of the slave-breeding for beginners series: 'Husbandry with Millie'. The show is hosted by the famous and charismatic Millie, a slave breeder from Arcturus who appears to be in her mid thirties. She's wearing something resembling a maternity dress over her large pregnant belly, but the loose fabric doesn't hide her enormous hips and complementary ass. The dress only comes part of the way up her chest, leaving her large milk-engorged breasts exposed as they rest atop the fabric. Millie begins the show the same way as always, by giving her viewers some encouragement. "Anyone can become a breeder, even you! Just be willing to learn, and as I always say..." she pats her full belly meaningfully "be ready to get your hands dirty!"
+
+	which is currently showing an episode of the slave-breeding for beginners series: 'Husbandry with Millie'. The show is hosted by the famous and charismatic Millie, a slave breeder from Arcturus who appears to be in her mid thirties. She's wearing something resembling a maternity dress over her large pregnant belly, but the loose fabric doesn't hide her enormous hips and complementary ass. The dress only comes part of the way up her chest, leaving her large milk-engorged breasts exposed as they rest atop the fabric. Millie begins the show the same way as always, by giving her viewers some encouragement. "Anyone can become a breeder, even you! Just be willing to learn, and as I always say..." she pats her full belly meaningfully "be ready to get your hands dirty!"
 	<br><br>
-	<<set $randShow = random(2)+1>>
-	<<if $randShow == 1 && $showFive > 3 || $showFive == 1>>
+	<<set _show = random(2)+1>>
+	<<if _show == 1 && $FCTV.channel.five > 3 || $FCTV.channel.five == 1>>
 		Millie walks away from the classroom-like set, followed by a camera panning along beside her. Her purposeful steps and swinging hips set her breasts jiggling and sending droplets of milk flying from her dark milky nipples. It takes a sadly brief time for her to arrive at her destination, a mostly-white clinical-looking set prepared with several naked — and presumably fertile — slaves. As she comes to a stop in front of the line of slaves, all of the beautiful girls bow their heads and greet her. "<i>Hello Mistress Millie!</i>"
 		<br><br>
 		Millie ignores the naked slaves and turns to the camera. "Today we're going to cover the basics of choosing good breeding sluts, using some of my own stock. Of course, as we covered before, you want to choose breeders that have the traits you're looking for. Intelligence, temperament, bone structure, beauty, or simple cosmetic features like skin and hair color. But that's not all you need to look for!" Millie beckons to one of the slaves in the background, who rushes forward to stand in front of the camera. She points at the girl's flank, and the camera zooms in so that the screen is taken up by the girl's broad hips and moist pussy. "They call them child-bearing hips for a reason!" Millie starts rubbing the girl's hips as she continues. "Wide hips are a solid indicator of a good breeder; they mean a healthier pregnancy and easier — not to mention cheaper — birth. And if you want to increase your production with multiple pregnancies, wide hips are a must!"
@@ -674,8 +535,7 @@
 		The wide hips of the nubile slave girl suddenly walk off camera, and are soon replaced by the hips of another girl that are dramatically smaller. They aren't the hips of a man, but certainly bring to mind the narrow hips of an old-timey fashion model. The girl has a little extra weight, which is more obvious on her narrow frame, but you can tell she is fit with well-developed muscles. Millie starts touching her demonstration model as she points things out. "Sometimes, you're looking for narrow hips. Maybe you want to breed an athlete or pit fighter, or your tastes just run that way for some reason. You don't have to rule out a slut just because she has small hips, but there are some things to look for. First, you want to make sure the bitch is nicely plush, with well-distributed fat. This is important for a healthy pregnancy, but tends to be overlooked in narrow sluts. Also check their core strength. Muscles are even more important for narrow sluts, to help support the uterus and ease childbirth." She traces the shapes of the slave's hips. "They might be small, but make sure they're well formed, you want them to work properly. Finally, check the pubic bone, its joints with the iliac crests, and the fore part of the crests. You want a smooth curve throughout with loose joints that'll open wide n' easy when it's time."
 		<br><br>
 		With a smack on the ass, the bitch trots off camera to be replaced by a girl with her knees bent and feet spaced far apart. When the camera pans down you have a clear view of her sodden slit; the stage lights give the natural lubricant coating her inner thighs a more noticeable sheen. Millie rubs two fingers between the slaves' labia, and withdraws the now-soaked digits for the camera to see. "Remember! A wet cunt is a good cunt!" Without any warm-up, she bunches her fingers and thumbs together and inserts her entire hand into the slave's gaping pussy. "A loose baggy cunt may be no good for fucking, but I guarantee it's perfect for making you new slaves. And it may just help you save money, too. Loose cunts tend to drive down a slut's value, right at the perfect age for turning a slut into a breeding bitch."
-		<br><br>.....
-	<<elseif $randShow == 2 && $showFive > 3 || $showFive == 2>>
+ <<elseif _show == 2 && $FCTV.channel.five > 3 || $FCTV.channel.five == 2>>
 		Millie walks towards the back of the set, returning with her hands behind her back. "This episode, we're going to talk about an important decision any breeder needs to make. Bull" she pulls a large life-like <<if $seeDicks == 0>><i>pop sickle</i><<else>>dildo<</if>> from behind her back, "or no bull?" This time she whips out something resembling a turkey baster. She gives both a hard squeeze, and they both squirt out a jet of <<if $seeDicks == 0>><i>whipped cream.</i><<else>>alabaster fluid.<</if>> She drops both of the spent tools and turns to walk towards her chair, the camera follows to give a good view of hefty ass and swinging hips.
 		<br><br>
 		Sitting down in her comfortable-looking chair, Millie begins her lecture. "So, thanks to the miracles of the modern dairy and industrial <<if $seeDicks == 0>><i>banana</i><<else>>cock<</if>> milkers, a reliable supply of <<if $seeDicks == 0>><i>banana juice</i><<else>>cum<</if>> is available for most citizens. This is definitely the least expensive option for those starting out, and combined with easy access, seems to be a popular choice for new breeders. It's also a common pitfall, so thank goodness you're watching now! Industrial dairies simply aren't focused on reproduction in most arcologies. Owners are focused on production, quantity over quality, and most of the material is used for slave nutrition and industrial purposes. Even if your arcology has a reproduction-focused <<if $seeDicks == 0>><i>banana cream</i><<else>>jizz<</if>> farm, they're usually focused on breeding menials. You still have no way of knowing what you're getting. It makes any attempt at proper husbandry nearly impossible. You don't want to sink all your resources into buying and caring for breeding sluts, only to end up with a litter only fit to be menials!"
@@ -683,7 +543,6 @@
 		"Your best bet if you're low on resources is looking to prominent citizens with high quality slaves. Often times, for a modest stud fee, you can get your bitches pregnant with a known stud of high quality. Particularly when it comes to older bulls, you can often get your bitches bred for nearly the same cost as dairy <<if $seeDicks == 0>><i>cream</i><<else>>jizz<</if>>! You do have to do the leg work, but think of it as picking the best bull for your breeding plan. As you get more established, purchase an older bull for yourself. Older bulls are better-behaved, and still perfectly capable of helping to take care of your pregnant sluts, when they aren't knocking up the empty ones, that is. A slave may be old, but the DNA in that <<if $seeDicks == 0>><i>banana juice</i><<else>>cum<</if>> is the same as it was 20 years ago!"
 		<br><br>
 		Millie gives the viewers a big smile. "If you take anything away from this episode, just remember that industrial <<if $seeDicks == 0>><i>juice</i><<else>>cum<</if>> is used to make industrial slaves!"
-		<br><br>.....
 	<<else>>
 		Millie walks towards the camera, approaching it at an angle, and giving the viewers a good look at her dripping tits. The camera pans while leaving part of Millie in-frame, revealing a naked slave on display. The slave is the perfect picture of a breeding bitch: gargantuan hips, toned muscles, plush softness, and a pair of milk-filled tits. Millie sounds happy as she explains her first display. "So we've covered what makes the perfect birthing slut, this one here gave birth just a few weeks ago." Millie's upper body takes up a quarter of the camera frame, and she provides some bouncy entertainment as the camera pans to the next display. It's a <<if $seeDicks == 0>><i>very happy</i><<else>>well-hung<</if>> bull with <<if $seeDicks == 0>><i>large horns.</i><<else>>huge balls that look swollen with seed.<</if>>
 		<br><br>
@@ -694,39 +553,34 @@
 		Millie faces the camera. "But what if you want to do some serious breeding? Maybe you want a litter that'll grow to have gigantic natural tits with rich milk that just pours out of the nipple, or maybe you want a litter with hips so wide that they can fit a head between their legs without opening them? The trouble is time..." Millie looks sad for a moment. "Slaves take too long to reach maturity; even if you start breeding 'em young, how many decades will it be before you reach that perfect third or fourth generation?" She walks over to the machine and pats it lovingly. "Thanks to this beauty of modern science, we can accelerate the growth of your most promising calf. Instead of waiting <<if $pedo_mode == 0>>18 years<<else>>$minimumSlaveAge years<</if>> to breed 'em, you can have them ready to go in <<if $pedo_mode == 0>>only 3.<<else>>as little as a year.<</if>> Fact is, the newer models can have a sow ready to be bred in half a year, and give 'em some training and conditioning on the way. I've even heard rumors that the most cutting-edge tech will do it in 3 months."
 		<br><br>
 		"You may be thinking: 'as if I could ever afford something like that!'" Millie gives the camera a bright smile. "Don't worry; Mamma Millie's got you covered. It's true that most of you won't be able to afford one of these, not to mention the special electrical hookups and maintenance... but the fact that better models exist means that the older models don't have much use for the types of people that <b>can</b> afford them. That means empty incubators that are just too valuable to simply dispose of, and a chance for you to rent or lease one or two of 'em long enough to get a major jump start on your breeding program. It'll still be expensive, maybe even as much as a high-quality slave ready to be trained. You'll also have to deal with and treat the chemical damage. But when it comes to developing a solid breeding line to produce high quality litters, the time savings can't be beat. Just don't expect the ones fresh out of the incubator to be good for much other that making new slaves!"
-		<br><br>.....
 	<</if>>
 
 <<case 6>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $seeImages > 0>>
 		<div class="imageColumn">
 			<div class="imageRef medImg">
 				<<= SlaveArt(_millie, 2, 0)>>
 			</div>
 		</div>
 	<</if>>
-	<<set $showSix += 1, $lastShow = 6>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play an episode of the 'Modern Dairy' edutainment series, which opens with a montage of milk-related food and cooking shots. After the last of the opening credits disappears, the show sticks to a single shot from the montage, a delicious looking bowl of cereal. The camera zooms out to reveal the show's host wearing her trademark cow print leotard, and getting just a little too much enjoyment out of her cereal. She slowly puts the spoon down while savoring her cereal, reluctantly swallowing and starting the show. "Hi there y'all, welcome to another episode of Modern Dairy!" She gives the camera a wave — setting her gargantuan melons wobbling inside the spandex-like leotard — and the camera fades to black.
+
+	which is currently showing an episode of the 'Modern Dairy' edutainment series, which opens with a montage of milk-related food and cooking shots. After the last of the opening credits disappears, the show sticks to a single shot from the montage, a delicious looking bowl of cereal. The camera zooms out to reveal the show's host wearing her trademark cow print leotard, and getting just a little too much enjoyment out of her cereal. She slowly puts the spoon down while savoring her cereal, reluctantly swallowing and starting the show. "Hi there y'all, welcome to another episode of Modern Dairy!" She gives the camera a wave — setting her gargantuan melons wobbling inside the spandex-like leotard — and the camera fades to black.
 	<br><br>
-	<<set $randShow = random(2)+1>>
+	<<set _show = random(2)+1>>
 	<<if $seeExtreme == 0>>
 		<<if $seeDicks == 0>>
-			<<set $randShow = 1>>
+			<<set _show = 1>>
 			<i>CONTENT ADVISOR: Selecting show without too much hugging or hotdogs...</i><br><br>
 		<<else>>
-			<<set $randShow = either(1,2)>>
+			<<set _show = either(1,2)>>
 			<i>CONTENT ADVISOR: Selecting show without too much hugging...</i><br><br>
 		<</if>>
 	<<elseif $seeDicks == 0>>
-		<<set $randShow = either(1,3)>>
+		<<set _show = either(1,3)>>
 		<i>CONTENT ADVISOR: Selecting show without too many hotdogs...</i><br><br>
 	<</if>>
-	<<if $randShow == 1>>
+	<<if _show == 1>>
 		The camera fades in to show an excited Bess standing next to a double door labeled 'Dairy 3'. "I'm here at Arcology G-9 to give you a look at their state-of-the-art milking equipment." Bess gestures to her jiggling bosom. "As you can see, I'm terribly excited! I've heard this dairy's equipment is a pretty radical departure from the standard ones that look like dentist's chairs!" Without further ado, she pushes her way through the swinging doors, and sets off into the dairy. The camera follows, spending as much time focused on her seductively-swinging rear end as it does panning to look around the long room. The first thing you notice is that the lighting is a soft warm glow more at home in a spa than an industrial facility. The room consists of a long hallway, the row of milkers on either side are separated by fabric dividing curtains in earth tone colors, though most of them appear to be open. You didn't notice at first, but it seems like most of the milkers are occupied... the radically different shape tricked your trained eye for a moment.
 		<br><br>
 		Eventually Bess reaches the end of the hallway, and is greeted by a nearly-naked slave with visible muscles that seems to be a milk maid. <i>"Hello there Ma'am, you must be Bess. My name is Anabell, and I'm a milk maid here. Welcome to dairy number three!"</i>
@@ -755,38 +609,30 @@
 		Bess looks a little bit envious of the cow, but gives her approval. "Go ahead; I'll just help myself to some fresh milk while you're busy." She heads toward the dangling udders to retrieve her treat. It only takes Anabell a few shakes <<if $seeDicks == 0>><i>of the massage oil bottle before the cow's ass is glistening, and he gets to work massaging her.</i><<else>>to get her monstrous python of a cock throbbing and ready, and she doesn't waste any time hilting herself in the cow's ready pussy.<</if>> There's a loud muffled moo, and the camera reluctantly moves to get a shot of Bess.
 		<br><br>
 		Bess is on her hands and knees, her mouth full of nipple and milk, messily trying to keep up with the output of the prodigious mammary. She pinches the nipple to stop drinking for a moment so that she can speak to the camera. "Oh my god! This milk is SOOO good!" She sucks the cow's long nipple back into her mouth and resumes her feast.
-		<br><br>.....
-	<<elseif $randShow == 2>>
+	<<elseif _show == 2>>
 		Instead of starting a new episode like you were expecting, it starts a teaser trailer for an upcoming episode. It seems to be focused on the semen side of the industrial dairy, and ends with some suggesting shots of Bess drinking "straight from the source."
-		<br><br>.....
 	<<else>>
 		Instead of starting a new episode like you were expecting, it starts a teaser trailer for an upcoming episode. It seems to be focused on bulk fluid production and menial bioreactor slaves, something of a departure from earlier episodes showcasing dairies focusing on high-quality product.
-		<br><br>.....
 	<</if>>
 
 <<case 7>>
-	<<set $showSeven += 1, $lastShow = 7>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play an educational program on arcologies titled: "Architecture + Ecology = Arcology". <<if $PC.skill.engineering > 50>>The information is likely to be far too simplistic, considering your knowledge of engineering, but you watch anyway to see how most of your citizens view the massive structures.<<else>>Your practical experience means that this program is unlikely to tell you anything you don't already know, but you watch anyway to see how an average citizen views an arcology.<</if>> A likely-artificial voice of an older man narrates while the program displays video to demonstrate the topic being narrated. The show looks crisp and professional, but you can tell it doesn't have the budget that the more sexually-charged shows do.
+	<<run FCTV.incrementChannel()>>
+	which is currently showing an educational program on arcologies titled: "Architecture + Ecology = Arcology". <<if $PC.skill.engineering > 50>>The information is likely to be far too simplistic, considering your knowledge of engineering, but you watch anyway to see how most of your citizens view the massive structures.<<else>>Your practical experience means that this program is unlikely to tell you anything you don't already know, but you watch anyway to see how an average citizen views an arcology.<</if>> A likely-artificial voice of an older man narrates while the program displays video to demonstrate the topic being narrated. The show looks crisp and professional, but you can tell it doesn't have the budget that the more sexually-charged shows do.
 	<br><br>
-	<<set $randShow = random(2)+1>>
-	<<if $randShow == 1 && $showSeven > 3 || $showSeven == 1>>
+	<<set _show = random(2)+1>>
+	<<if _show == 1 && $FCTV.channel.seven > 3 || $FCTV.channel.seven == 1>>
 		This episode seems to be focusing on some basics in addition to an arcology's Penthouse.
 		<br><br>
 		A standard arcology is so huge that it needs to be divided into levels and sectors to make talking about it easier. Levels are the horizontal rows. An arcology is a very large building, and each Level includes many floors. Sectors are slices of those levels. For example, on Levels with four Sectors, each sector includes a quarter of each floor that's part of that Level. Each Sector is typically occupied by facilities, tenants, or both. Sometimes facilities are owned or leased by tenants! Now when your friend tells you to meet them at "promenade B" or mentions that they live in sector "7C", you'll know how those names came about.
 		<br><br>
 		In most arcologies with a single owner, the uppermost Level is called the Penthouse. It's an entire sector where the owner and slaves under his direct supervision live. With such a large space for a single person or family, there is a great deal of customization possible. Even two arcologies of the same design, built at the same time, are likely to have very different penthouses! It's always worth visiting a penthouse if you get the chance. Not all arcologies are built or owned by a single person, often there is a group or partnership of owners. After all, building a structure as massive as an arcology is an extremely expensive endeavor! In these cases, the term penthouse is typically still used to refer to the top sector, as it is often divided into a number of luxurious penthouse apartments for the owners.
-	<<elseif $randShow == 2 && $showSeven > 3 || $showSeven == 2>>
+	<<elseif _show == 2 && $FCTV.channel.seven > 3 || $FCTV.channel.seven == 2>>
 		This episode seems to be focusing on the Promenade and residential areas.
 		<br><br>
 		Below the penthouse — and potentially some residential sectors — is the Promenade, which is a major social area and hosts most of the businesses which cater to the arcology's citizens. Promenade Sectors are occupied by shops, restaurants, and other amusements. A promenade is critical to the success of an arcology; it allows the arcology to function as a self-contained residence, and is important to the economy. Sometimes it's nice to head over to a different arcology in your Free City for some unique cuisine or shopping, but could you imagine having to go through all that trouble any time you wanted to shop or eat out? While the concept of a promenade is almost universal amongst arcologies, the design, layout, and decoration of each tends to be rather unique, making it a fun experience to visit the promenade of arcologies other than your own.
 		<br><br>
 		The next area common to all arcologies are the residential sectors filled with apartments and other living arrangements. While designs and layouts differ — some arcologies have luxury residential areas that resemble an old-fashioned neighborhood complete with artificial sky — the purpose is always to house arcology citizens. Residential areas are critical for an arcology, in order to have a functioning self-contained economy. While all citizens in an arcology are fortunate, some are more fortunate than others. Lower-class citizens commonly live in dense efficiency apartments, while wealthy citizens often live in opulent sectors with large apartments. Without citizens there would be nobody to own or operate the stores, restaurants, and other attractions in the arcology, and there would be nobody to purchase those goods or services either!
-	<<elseif $randShow == 3 && $showSeven > 3 || $showSeven == 3>>
+	<<elseif _show == 3 && $FCTV.channel.seven > 3 || $FCTV.channel.seven == 3>>
 		This episode seems to be focusing on the lower levels, the Concourse and Service Level.
 		<br><br>
 		Another common level for an arcology is the Concourse, which is typically located near the bottom of the structure. Like the Promenade, it hosts businesses, but these focus less on the luxury and entertainment needs of citizens than the Promenade. The Concourse typically houses bulk trade, necessary services such as medical clinics, corporate offices, research and development centers, and even education facilities. The best universities in the world are located on the concourse level of an arcology! Of course, the concourse also houses slave markets and slave training facilities. Some arcologies have arenas for sports or other events, while others have venues for sport combat ranging from traditional octagon fighting rings to pits reminiscent of ancient gladiatorial combat. If you're lucky, your arcology may just have a public arcade, where a variety of needs can be met at an affordable price. With research pointing to the benefits of arcades to adolescent development, family-friendly arcologies are quickly adding arcades of their own!
@@ -795,49 +641,34 @@
 	<</if>>
 
 <<case 8>>
-	<<if $seeImages == 1>>
+	<<set $FCTV.channel.eight++>>
+	<<if $seeImages > 0>>
 		<div class="imageColumn">
 			<div class="imageRef medImg">
 				<<= SlaveArt(_millie, 2, 0)>>
 			</div>
 		</div>
 	<</if>>
-	<<set $showEight += 1, $lastShow = 8>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play a preview of the how-to series "Extreme Gestation for Fun and Profit", hosted by Millie. It seems like the show's going to cover topics ranging from hyper-pregnancy to broodmother implants, and even hints and some sort of medical technique to allow anal pregnancy in males.
-	<br><br>.....
 
-<<case 9>>
-	<<if $seeImages == 1>>
+	which is currently showing a preview of the how-to series "Extreme Gestation for Fun and Profit", hosted by Millie. It seems like the show's going to cover topics ranging from hyper-pregnancy to broodmother implants, and even hints and some sort of medical technique to allow anal pregnancy in males.
+
+<<case 9>> /* Hea;th condition of 70 */
+	<<run FCTV.incrementChannel()>>
+	<<if $seeImages > 0>>
 		<<set _model = BaseSlave()>>
-		<<set _model.devotion = 0>>
-		<<set _model.trust = 0>>
-		<<set _model.health.condition = 70>>
-		<<set _model.health.health = _model.health.condition - _model.health.shortDamage - _model.health.longDamage>>
-		<<set _model.hLength = 50>>
-		<<set _model.hStyle = "neat">>
-		<<set _model.hColor = "brown">>
-		<<set _model.boobs = 700>>
-		<<set _model.boobShape = "perky">>
-		<<set _model.waist = 180>>
-		<<set _model.butt = 3>>
-		<<set _model.hips = 3>>
-		<<set _model.clothes = "conservative clothing">>
-		<<set _model.shoes = "flats">>
-	<</if>>
-	<<set $showNine += 1, $lastShow = 9, $randShow = random(0,3)+1>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
+		<<run Object.assign(_model, {
+			devotion: 0, trust: 0,
+			hLength: 50, hStyle: "neat
+			hColor: "brown", boobs: 700,
+			boobShape: "perky", waist: 180,
+			butt: 3, hips: 3,
+			clothes: "conservative clothing", shoes: "flats"
+		})>>
 	<</if>>
-	to play
-	<<if $randShow == 1>>
-		<<if $seeImages == 1>>
+	<<set _show = random(0,3)+1>>
+	which is currently showing
+	<<if _show == 1>>
+		<<if $seeImages > 0>>
 			<<set _model.belly = 10000>>
 			<<set _model.preg = 35>>
 			<<set _model.makeup = 2>>
@@ -848,7 +679,7 @@
 				</div>
 			</div>
 		<</if>>
-		a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without.
+		a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV shows, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without.
 		<br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the Free Cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world.
 		<br><br>The second point concerns the source of the new citizens and slaves that the Free Cities need. Her arguments concerning citizens focus on the unique culture of the Free Cities, and the direction that the future society will take. She points out that immigrants from the old world are rooted in its decaying culture. She asks her viewers how long it took them to adapt to their new lives, and how often they find themselves doubting their new home subconsciously. She admits that even she sometimes finds something wrong or repulsive, until she realizes that it's the ghost of her past life clinging to her. A noted psychologist talks about the strong hold people's earlier lives has on them, and how developing the promise of the Free Cities will need a generation untainted by the old world. The documentary's argument for slaves largely comes down to the fact that second-generation slaves are happier, better adjusted, and simply better slaves.
 		<<if $IntelligenceEugenicsSMR != 0 || $HeightEugenicsSMR != 0 || $FaceEugenicsSMR != 0>>
@@ -856,8 +687,8 @@
 		<</if>>
 		<br><br>Overall, it's a convincing documentary, if a little too emotional for your tastes.
 
-	<<elseif $arcologies[0].FSGenderFundamentalist == "unset" && $randShow == 2>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSGenderFundamentalist == "unset" && _show == 2>>
+		<<if $seeImages > 0>>
 			<<set _model.dick = 6>>
 			<<set _model.boobs = 750>>
 			<div class="imageColumn">
@@ -868,10 +699,9 @@
 		<</if>>
 		a documentary on the increasingly-popular Gender Radicalist movement titled: "Power, not Biology". After the opening credits, the documentary introduces an androgynous documentarian in a nicely-cut suit. The finely tailored suit doesn't try to hide the person's breasts, which seem to be a pretty average D-cup. Similarly, another bulge is visible stretching down one of the pants legs. The futanari opens with a pretty simple question: "Am I a man, or am I a woman?" The documentary is focused on answering that question in the context of a modern era where medical science means that genitalia are irrelevant. It argues that a person's body no longer has any relation to their sexuality or ambition, that being free means choosing the body that pleases you most, and that society needs new criteria from which to determine gender.
 		<br><br>The criteria suggested by the documentary is power. The idea is simple; the powerful are male, the weak are female. It argues that the biology and sexual proclivities of a person simply can't represent them any longer. The powerful are often free to choose the body and activities they wish to pursue, while the weak have those decisions made for them. It's a practical argument, and the documentary gives a long list of evidence supporting it, from expert interviews to ancient civilizations that followed a similar idea. The concept is somewhat appealing to you; after all, you wield extraordinary power, and a large part of that power includes altering the bodies of others. Whatever you choose to do, you can't see any reason to let your slaves and citizens criticize you for it.
-		<br><br>.....
 
-	<<elseif $arcologies[0].FSGenderRadicalist == "unset" && $randShow == 2>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSGenderRadicalist == "unset" && _show == 2>>
+		<<if $seeImages > 0>>
 			<<set _model.faceShape = "masculine">>
 			<<set _model.waist = 180>>
 			<<set _model.weight = 180>>
@@ -888,30 +718,24 @@
 		<</if>>
 		a documentary on conservative Gender Fundamentalism movement titled: "It's Eve, NOT Steve". After the outdated graphics finish displaying the garish opening credits, a portly man in late middle age introduces himself as Reverend Brad, the apparent commentator of the program. You don't pay much attention, but learn that apparently the Futanari Sisters are whore agents of Satan. You also learn that you're apparently destined for hell because of the medical technology in your penthouse that could be used to alter someone's naughty bits. You did get a good laugh when the reverend started yelling that choir boys are boys, and if he wanted a girl he would've found a nun.
 		<br><br>You have to admit that most of the show is complete bullshit, but you can't deny that it's useful for controlling your citizens. As long as they're filling their heads with this bullshit, they won't be getting any dangerous ideas from somewhere else. In a more practical sense, it's a lot easier to manage an arcology and a house full of slaves when you don't have to worry about crazy gender issues or people disliking pregnant slaves.
-		<br><br>.....
 
-	<<elseif $arcologies[0].FSSlimnessEnthusiast == "unset" && $randShow == 3>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSSlimnessEnthusiast == "unset" && _show == 3>>
+		<<if $seeImages > 0>>
 			<<set _model.dick = 4>>
 			<<set _model.boobs = 0>>
 			<<set _model.hLength = 10>>
 			<<set _model.hColor = "black">>
 
 			<<set _model2 = BaseSlave()>>
-			<<set _model2.devotion = 0>>
-			<<set _model2.trust = 0>>
-			<<set _model2.health.condition = 70>>
-			<<set _model2.health.health = _model2.health.condition - _model2.health.shortDamage - _model2.health.longDamage>>
-			<<set _model2.hLength = 50>>
-			<<set _model2.hStyle = "luxurious">>
-			<<set _model2.hColor = "blonde">>
-			<<set _model2.boobs = 700>>
-			<<set _model2.boobShape = "perky">>
-			<<set _model2.waist = 180>>
-			<<set _model2.butt = 3>>
-			<<set _model2.hips = 3>>
-			<<set _model2.clothes = "a ball gown">>
-			<<set _model2.shoes = "heels">>
+			<<run Object.assign(_model2, {
+				devotion: 0, trust: 0,
+				hLength: 50, hStyle: "luxurious",
+				hColor: "blonde", boobs: 700,
+				boobShape: "perky", waist: 180,
+				butt: 3, hips: 3,
+				clothes: "a ball gown", shoes: "heels"
+			})>>
+
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_model, 2, 0)>>
@@ -923,10 +747,9 @@
 		<</if>>
 		a documentary on the growing Asset Expansionist movement titled: "More of a Good Thing". After a brief set of opening credits the documentary dives immediately into short clips of numerous interviews with stacked women stating that they love having big tits and a big ass. Eventually, a man and woman are introduced as the hosts of the program. Both are finely dressed in the recent fashions, and despite the subject of the documentary, they don't have humongous assets. The woman does have huge breasts, wide hips, and a large derrière; the man has a noticeable bulge in his pants, but nothing extreme. The hosts explain that seeing Asset Expansionism as a call for ridiculous size is something of a misconception. They emphasize that it's about the freedom to enjoy more of a good thing.
 		<br><br>The documentary makes several arguments in favor of the movement, and is clear about explaining the natural biological attraction humans have to large assets. By interviewing stacked members of the movement and psychological experts alike, they try to demonstrate how larger assets lead to happier and more pleasurable lives, both in and out of the bedroom. The documentary neatly tops off its argument by demonstrating how assets have been expanding naturally since the start of the twentieth century, and claiming that it's silly to idolize the way humans looked before modern nutrition and medicine. Western countries in the old world already had average bust sizes of D-cup or larger by the turn of the century, the hosts claim that trying to go back to smaller sizes is synonymous with reducing the prosperity of free citizens.
-		<br><br>.....
 
-	<<elseif $arcologies[0].FSAssetExpansionist == "unset" && $randShow == 3>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSAssetExpansionist == "unset" && _show == 3>>
+		<<if $seeImages > 0>>
 			<<set _model.weight = -30>>
 			<<set _model.butt = 0>>
 			<<set _model.boobs = 450>>
@@ -939,10 +762,9 @@
 		<</if>>
 		a documentary on the Slimness Enthusiast counter movement titled: "Slim Is In". Artistic opening credits play across the screen before a slim woman walks up and begins talking to the camera conversationally. She seems to be in her mid to late thirties, and is wearing conservative makeup to accent her natural beauty. Her narrow waist combines with her slim hips and full shoulders to create a balanced but muted hourglass profile. It's a look that was popular for decades on fashion models in the old world, and it improves the attractiveness of her B- or C-cup breasts and taut butt. It's obvious that the woman aspires to be a role model in addition to being the documentary's commentator.
 		<br><br>Much of the documentary's arguments center around the concept of fashion and the privileged. They point out how in the past societal changes have altered what people find attractive, giving skin tans as an example. When most worked outside and only the privileged stayed indoors pale skin was considered attractive. When the world changed and most people worked indoors, suddenly the tan skin of those with leisure time to spend outside came into vogue. She argues that modern hormones can easily expand the assets of the masses, but that only the privileged can afford to sculpt themselves into an ideal form like hers. She points out that even though the masses may imitate with surgery, they'll never be able to copy the naturally good bone structure and vibrancy of the well-bred elite.
-		<br><br>.....
 
-	<<elseif $arcologies[0].FSTransformationFetishist == "unset" && $randShow == 4>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSTransformationFetishist == "unset" && _show == 4>>
+		<<if $seeImages > 0>>
 			<<set _model.devotion = 100>>
 			<<set _model.trust = 100>>
 			<<set _model.health.condition = 70>>
@@ -959,12 +781,12 @@
 			<<set _model.shoes = "heels">>
 
 			<<set _model2 = BaseSlave()>>
-			<<set _model2.dick = 4>>
-			<<set _model2.boobs = 0>>
-			<<set _model2.hLength = 10>>
-			<<set _model2.hColor = "grey">>
-			<<set _model2.clothes = "conservative clothing">>
-			<<set _model2.shoes = "flats">>
+			<<run Object.assign(_model2, {
+				dick: 4, boobs: 0,
+				hLength: 10, hColor: "grey",
+				clothes: "conservative clothing", shoes: "flats"
+			})>>
+
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_model, 2, 0)>>
@@ -976,10 +798,9 @@
 		<</if>>
 		a documentary on the spreading Body Purist movement titled: "Don't Settle for Imitations". The opening credits are displayed over a series of comparison images showing beautiful breasts and asses next to obviously artificial imitations of the same. The screen splits and shows the two hosts in their own environments side by side. One is an extremely attractive doctor, her body is exquisitely curvy underneath her lab coat and her face is an impossible combination of beautiful and cute. The other host is an artist with graying hair; he's working in his studio to create a life-size sculpture of the first host. He starts off the documentary by asking why people are so eager to destroy the natural beauty of the human form. The doctor continues by asking why people are so impatient that they get implants instead of using a superior process of targeted hormonal growth.
 		<br><br>The documentary keeps up the two-viewpoint style and approaches the issue from two directions. The first is the stark aesthetic differences between natural and artificial bodies. It demonstrates why implants always fall short of the beauty they seek to imitate, and how those with implants are doomed to a vicious cycle of surgery to try and recapture the beauty they lost in the initial surgery. The other angle, presented by the doctor, is a lot more practical. It points out the numerous shortcomings of implants when compared to natural growth, such as the frequent need for maintenance surgeries, the significant extra health risks, the reduced pleasure and sensitivity felt by implant patients, and the extreme difficulty of a patient to get what they want. Taken together the argument is pretty simple: why get implants when other medical options are cheaper, safer, more effective, healthier, and more attractive?
-		<br><br>.....
 
-	<<elseif $arcologies[0].FSBodyPurist == "unset" && $randShow == 4>>
-		<<if $seeImages == 1>>
+ <<elseif $arcologies[0].FSBodyPurist == "unset" && _show == 4>>
+		<<if $seeImages > 0>>
 			<<set _model2 = BaseSlave()>>
 			<<set _model2.dick = 4>>
 			<<set _model2.boobs = 0>>
@@ -994,8 +815,8 @@
 		a documentary on the rise of the Transformation Fetish titled: "The Mass Insanity of Adding Mass". The opening credits are styled to look like a psychological case study from a mental institution. When the credits finish, the video cuts to a scene of a man sitting behind a desk, the whole shot is high contrast due to the harsh lighting from a lone desk lamp. The middle-aged man screams 'hard-boiled' and looks like he walked straight out of a noir film to host this documentary. His opening monologue makes it pretty clear that this documentary has a lot of parallels with a crime documentary. Worse, is that the evidence and expert witnesses available to the producers were apparently overwhelming, because the program seems rushed trying to fit as much as it can into a narrow time slot.
 		<br><br>Evidence and whatever else be damned, this isn't the kind of documentary that should be on the FCTV stream in your arcology. You tell $assistant.name to remind you to send a complaint in the morning.
 
-	<<else>>
-		<<if $seeImages == 1>>
+ <<else>>
+		<<if $seeImages > 0>>
 			<<set _model.belly = 10000>>
 			<<set _model.preg = 35>>
 			<<set _model.makeup = 2>>
@@ -1006,17 +827,18 @@
 				</div>
 			</div>
 		<</if>>
-		a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without.
+		a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV shows, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without.
 		<br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the Free Cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world.
 		<br><br>The second point concerns the source of the new citizens and slaves that the Free Cities need. Her arguments concerning citizens focus on the unique culture of the Free Cities, and the direction that the future society will take. She points out that immigrants from the old world are rooted in its decaying culture. She asks her viewers how long it took them to adapt to their new lives, and how often they find themselves doubting their new home subconsciously. She admits that even she sometimes finds something wrong or repulsive, until she realizes that it's the ghost of her past life clinging to her. A noted psychologist talks about the strong hold people's earlier lives has on them, and how developing the promise of the Free Cities will need a generation untainted by the old world. The documentary's argument for slaves largely comes down to the fact that second-generation slaves are happier, better adjusted, and simply better slaves.
 		<<if $IntelligenceEugenicsSMR != 0 || $HeightEugenicsSMR != 0 || $FaceEugenicsSMR != 0>>
 			It also points out the practical problems that the mass importation of slaves will cause in the gene pool.
 		<</if>>
 		<br><br>Overall, it's a convincing documentary, if a little too emotional for your tastes.
-	<</if>>
+ <</if>>
 
 <<case 10>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $seeImages > 0>>
 		<<set _mindy = BaseSlave()>>
 		<<set _mindy.devotion = 100>>
 		<<set _mindy.trust = 100>>
@@ -1050,31 +872,25 @@
 			</div>
 		</div>
 	<</if>>
-	<<set $showTen += 1, $lastShow = 10>>
-	<<if _usedRemote>>
-		You choose
-	<<else>>
-		It looks like the random function chose
-	<</if>>
-	to play a competitive game show 'Cum and Cream Challenge' The program has a short opening sequence showing a variety of male and female contestants competing in a variety of lewd and messy body fluid competitions. The program flashes to a title screen where the letters are being spelled out in white fluids: "CUM and CREAM CHALLENGE". The writing is messy enough to <<if $showTen == 1>>make you wonder<<else>>keep you wondering<</if>> if slaves were actually trained to spell out the text each week, or if it's just some clever camera work. The camera pans up past a large dripping <<if $seeDicks == 0>><i>frankfurter</i><<else>>cock<</if>> and two massive nipples, eventually revealing the two hosts that look to be in their early twenties. <<if $showTen < 2>>A muscular man wearing athletic clothes, and a buxom young woman in a bikini that looks more like a microkini on her large breasts and hips. The pair is helpfully labeled on screen as Mike and Mindy, and as the camera gets closer it reveals that both have rather sizable endowments. Mike's crotch is soaked, and Mindy's bikini top allows small rivulets of milk to stream down from the sodden fabric. <<else>>The fluid enthusiast Mike and Mindy pair are wearing their usual style in new colors, the clothes appearing to be as soddenly wet as any other episode.<</if>>
+	which is currently showing a competitive game show 'Cum and Cream Challenge' The program has a short opening sequence showing a variety of male and female contestants competing in a variety of lewd and messy body fluid competitions. The program flashes to a title screen where the letters are being spelled out in white fluids: "CUM and CREAM CHALLENGE". The writing is messy enough to <<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>make you wonder<<else>>keep you wondering<</if>> if slaves were actually trained to spell out the text each week, or if it's just some clever camera work. The camera pans up past a large dripping <<if $seeDicks == 0>><i>frankfurter</i><<else>>cock<</if>> and two massive nipples, eventually revealing the two hosts that look to be in their early twenties. <<if $FCTV.channel[num($FCTV.channel.selected, true)] < 2>>A muscular man wearing athletic clothes, and a buxom young woman in a bikini that looks more like a microkini on her large breasts and hips. The pair is helpfully labeled on screen as Mike and Mindy, and as the camera gets closer it reveals that both have rather sizable endowments. Mike's crotch is soaked, and Mindy's bikini top allows small rivulets of milk to stream down from the sodden fabric. <<else>>The fluid enthusiast Mike and Mindy pair are wearing their usual style in new colors, the clothes appearing to be as soddenly wet as any other episode.<</if>>
 	<br><br>
 	Mindy kicks off the show, speaking to the audience. "Welcome to another episode of Cum and Cream!"
 	<br><br>
-	<<set $randShow = random(2)+1>>
-	<<if ($randShow == 1 && $showTen > 3) || $showTen == 1>>
+	<<set _show = random(2)+1>>
+	<<if (_show == 1 && $FCTV.channel[num(_show, true)] > 3) || $FCTV.channel[num(_show, true)] == 1>>
 		Mike smoothly continues. "We've got a great show for you tonight! A male-female team challenge!"
 		<br><br>That's right Mike, and this time we've mixed it up! It's a production AND inflation challenge. Just thinking about it has me leaking top and bottom!"
 		<br><br>"You don't have to tell me Mindy, I can see your puddle! In this contest, two teams will compete to produce the largest combined volume of cum and cream. The losing team goes on to a sudden-death inflation contest!"
 		<br><br>Mindy bounces with excitement, sending milk everywhere, and freeing half of one long nipple from her bikini. "All the cum and cream from the previous contest administered anally, first one to tap out goes to the Loser's Pit!"
 		<br><br>You watch with fascination through the contest, hanging on the edge of your seat during the final inflation challenge as the contestants' stomachs bulge further and further. <<if $seeDicks == 0>><i>Everybody smiles and has a good time. The End.</i><<else>>Suddenly, the male's taut stomach shifts and wobbles and he lets out an agonized scream. Medics rush to his side, and it cuts back to the hosts applauding his determination to win.<</if>>
-	<<elseif ($randShow == 2 && $showTen > 3) || $showTen == 2>>
+ <<elseif (_show == 2 && $FCTV.channel[num(_show, true)] > 3) || $FCTV.channel[num(_show, true)] == 2>>
 		Mike unexpectedly moves over and starts rubbing Mindy's stomach, the extra attention highlighting how big her stomach is. "Mindy, don't tell me you went and got yourself knocked up... Your belly has gotten downright huge!"
 		<br><br>Mindy laughs and chides Mike. "Oh Mike! You know I'm waiting for the perfect <<if $seeDicks == 0>><i>smile</i><<else>>cock<</if>> before I try out womb inflation!" She uses both hands to grab a handful of each of her large udders. "You know I use my own milk to keep myself pumped up, right? Well these babies have stepped up their production lately, nearly <<if $showInches == 2>>four liters<<else>>a gallon<</if>> a session with my milker. I figure it was my body's way of telling me it's time to step up my inflation game!"
 		<br><br>Mike laughs along with Mindy before reaching over to grab the closest triangle of Mindy's bikini top. Yanking it up off her breast, he gets a firm grip on her nearly <<if $showInches == 2>>4-inch-long<<else>>10-centimeter-long<</if>> milky nipple before bending over and sucking it into his mouth to drink straight from the teat. After a few swallows he straightens up and faces the camera once more. "Wow, delicious as always, Mindy! You should start sending some of that rich cream my way!"
 		<br><br>Mindy didn't look at all bothered by Mike's impromptu snack, and doesn't even attempt to pull her bikini top back into place. "Sure thing Mike, but for now, I'm sure our viewers are dying to know what we've got lined up for the show!"
 		<br><br>Mike nods excitedly. "No new events tonight, but it's still a fan favorite! The Suck n' Gulp Jizz Challenge!"
 		<br><br>"Three hungry ladies, and plenty of <<if $seeDicks == 0>><i>donuts</i><<else>>large studly balls<</if>> ready to feed them... once they've earned it, that is! The scales are ready to measure our contestants before they get started, but first....."
-	<<elseif ($randShow == 3 && $showTen > 3) || $showTen == 3>>
+ <<elseif (_show == 3 && $FCTV.channel[num(_show, true)] > 3) || $FCTV.channel[num(_show, true)] == 3>>
 		Both Mike and Mindy are both wearing ecstatic smiles, looking more excited than ever. Mike doesn't try to hide his raging <<if $seeDicks == 0>><i>smile</i><<else>>erection<</if>> as he continues the introduction. "Tonight we have a truly special treat for you, and it's all thanks to Arcology Imperiales!"
 		<br><br>Mindy continues, and makes no attempt to hide the fact that she has one hand stuffed inside her bikini bottom. "Thanks to the wonderful Dr. Picarde, owner of Arcology Imperiales, we have access to three amazing sex slaves for tonight's challenge!"
 		<br><br>Mike nods enthusiastically. "Mindy, tell everyone what makes them so special!"
@@ -1086,16 +902,12 @@
 		<br><br>"Certainly Mindy! You know I'll help you fill any hole you want, it's the least I can do! After all, you went and hired that awesome MilkSlut Delivery company to deliver some of your fresh cream each morning... I gotta say, it goes perfect with my Arcol-O-gies <<if $seeDicks == 0>><i>smile</i><<else>>prostate<</if>> enhancement cereal each morning!"
 		<br><br>After talking about the surgery, Mindy is openly milking one nipple while her other hand goes wild at her crotch. "Okay Mike, I can't wait anymore, let's start the challenge!"
 		<br><br><br>You watch the challenge, which involves three young contestants with huge <<if $seeDicks == 0>><i>smiles</i><<else>>balls<</if>>, each of them fucking a slave full of cum until one massively swollen stomach finally bursts.
-	<</if>>
+ <</if>>
 
 <<case 11>>
-	<<set $lastShow = 11, $showEleven++>>
-	<<if _usedRemote>>
-		You choose for some foolish reason<<if $showEleven > 1>>, once again,<</if>>
-	<<else>>
-		It looks like the random function chose<<if $showEleven > 1>>, once again,<</if>>
-	<</if>>
-	to play an infomercial attempting to sell a product named "sag-B-gone" that claims to be able to prevent breasts from naturally sagging under their own weight.
+	<<run FCTV.incrementChannel()>>
+	<<if _usedRemote>>for some foolish reason<</if>><<if $FCTV.channel[num($FCTV.channel.selected, true)] > 1>>, once again,<</if>>
+	which is currently showing an infomercial attempting to sell a product named "sag-B-gone" that claims to be able to prevent breasts from naturally sagging under their own weight.
 	<br><br>
 	<<if $purchasedSagBGone == 1>>
 		You've already made the mistake of ordering the sham of a product. While it gave you a great excuse to fondle breasts, it's not like you needed one in the first place.
@@ -1104,7 +916,7 @@
 			<<setLocalPronouns $Concubine>>
 			"I told you it wouldn't work, <<Master>>. Plu<<s>> you know you can touch the<<s>>e anytime!" $Concubine.slaveName shakes $his chest at you.
 		<</if>>
-	<<elseif $showEleven > 1>>
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] > 1>>
 		You could always order a crate to play around with. Who knows, maybe it'll actually work?<<if $PC.dick != 0>> At the very least it should make for some decent lubricant for a titfuck.<</if>>
 		<br>
 		<span id="called">
@@ -1144,27 +956,16 @@
 				<</replace>>
 			<</link>> // This will cost <<print cashFormat(Math.trunc(50 * $upgradeMultiplierTrade))>> //
 		</span>
-	<</if>>
+ <</if>>
 
 <<case 12>>
-	<<set $lastShow = 12, $showTwelve++>>
-	<<if $showTwelve == 9>><<set $showTwelve = 1>><</if>>
-	/* $showTwelve is the number of times the channel has been viewed. This will be your chapter count, more or less. */
-	<<if $showTwelve == 1>>
-		<<if _usedRemote>>
-			You select
-		<<else>>
-			It looks like the random function has lead you to
-		<</if>>
-		a drama series about a girl adapting to living in the Free Cities.
+	<<run FCTV.incrementChannel()>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
+		currently airing a drama series about a girl adapting to living in the Free Cities.
 	<<else>>
-		<<if _usedRemote>>
-			You tune in again for another episode of that drama series.
-		<<else>>
-			The random function has brought up another episode of that drama series for you.
-		<</if>>
+		currently airing another episode of that drama series
 	<</if>>
-	<<if $showTwelve == 1>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
 		For a moment you consider changing the channel, but you decide to give it a shot.
 		<br><br>The woman posed in the mirror. She was tall for a woman, fair skinned, and wore a keyhole sweater dress. Her scarlet hair was done in a braid down her back and her plump lips were covered in ruby red lipstick. She was slender, but not intolerably so; at the very least, she filled out her dress enough to avoid being arrested for indecency. All in all, the woman's reflection made for a pleasant picture. The only thing detracting from this scene was her glare.
 		<br><br>"Hey Scott, do you have anything a bit more conservative?" The woman asked. "We've been over this." Scott said. "Not showing off your breasts is seen as very rude here." Scott frowned, "Well, that's not entirely correct, but it is seen as distinctly unfriendly; the only girls who don't show some cleavage are frigid cunts and old-worlders fresh off the boat."
@@ -1180,7 +981,7 @@
 		<br><br>Scott called out to Cathy, "Come on out and give us a look!" The door to the bathroom opened and Cathy stepped out, tugging at her skirt. The clothing was a simple blouse and skirt affair with a Holstein pattern. In truth, it didn't look like something that would offend old world sensibilities, except for the fact the skirt was so short that her frilly panties were in plain view.
 		<br><br>"Do you have a skirt that's a little longer?" Cathy said and tugged at her skirt again. "It's supposed to look like that." Scott explained. Cathy looked skeptical. "Really?" she asked. Sarah gave Cathy a look that asked if she really was that stupid. "Why would you wear pretty panties and never show anyone?" She asked rhetorically. Cathy started on a hot retort, but was interrupted by Scott. "We'll stop for now and pick this up later. You can put your new clothes away." Cathy sighed, picked up her clothes, and walked out the door.
 		<br><br>Scott stood up and set his daughter on her feet. She turned her back to her father, bent over slightly, and wiggled her bottom meaningfully. Scott smacked her right butt cheek and said, "Off you go." Sarah didn't move. "Daddy" she said pleadingly and wiggled her bottom again. He smacked her left butt cheek. She giggled happily and jiggled out the door. Scott smiled at his daughter's antics, shook his head, and made his way to his bedroom.
-	<<elseif $showTwelve == 2>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 2>>
 		The random function has brought up another episode of that drama series for you.
 		<br><br>On his way to the bedroom he passed through the kitchen and caught sight of June preparing lunch. She was tall for a woman. Her hair was a golden blonde and her figure spoke of her ongoing romance with growth drugs. She wore a black thong and an apron embroidered with the words 'Milk the cook'. Which was rather strange considering she normally wore her 'Rape the cook' apron on Saturdays. But he guessed she was still raw from last night.
 		<br><br>He came up behind her and reached into her apron to give her breasts a squeeze. June made a sound of pleasure in response. "Hello master, are you finished with Cathy for today?" He set his chin on the top of her head. "For the moment. After I've tended to Annie and had lunch, I think I'll take Cathy out for a bit. Maybe take the whole family out for ice cream."
@@ -1203,7 +1004,7 @@
 		<br><br>Scott leaned into his wife's breasts to bask in the afterglow. While Annie had coaxed Sarah to turn around, pulled Sarah's cunny to her face and began to slowly eat her daughter out. Sarah just lay bonelessly atop her mother's breasts.
 		<br><br>Scott just enjoyed the sight of mother-daughter bonding for a while before recalling his earlier plans. "I was thinking of taking the family out for ice cream after lunch." Annie made a pleased sound as she continued licking her daughter's cunny, Sarah cheered lazily, Sadie's legs wiggled with what could be called excitement.
 		<br><br>"I was also thinking of taking Cathy with us." Annie stopped sucking on her daughter's clit to frown at him. He made a placating gesture and said, "She won't make a big scene with all of us there and besides you enjoy it when she has a mini freak out." She paused to think for a moment then said, "You have cameras and a drone on her right?" He nodded. "I want copies." She gave him a lusty grin before returning to her meal. He turned Sarah. "I wanna bloom berry sundae with bottom boost sprinkles." He nodded, hooked his head to look behind his wife and said, "How about you Sadie?" The hand that poked out from behind his wife waggled uncertainly, but ultimately became a thumbs up.
-	<<elseif $showTwelve == 3>>
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 3>>
 		<br><br>After a light lunch, the family assembled in the entry hall. Sarah rode in her mother's cleavage, playing with a tablet as they waited on Cathy. When Cathy made her way into the hall Scott frowned at her. "You're not going out dressed like that." Cathy looked down at herself. "What's wrong with this? This shows of my body well enough, right?"
 		<br><br>She wore jeans and a T-shirt made a few sizes too small by her regimen of growth drug. "Why don't you put on that bikini I gave you?" Cathy just furrowed her brow and said nothing. Scott sighed and said, "Just don't wear pants and show some cleavage. For god's sake, people show more skin at funerals than you do." Cathy frowned, but went back to change. When she came back she was wearing the Holstein pattern skirt and blouse he had given her earlier. "You're going to wear that?" he asked. "What's wrong now?" He raised his hands in a placating gesture. "Nothing, nothing. Let's go."
 		<br><br>The family left, made their way to an elevator and rode it down a few floors before exiting. As they turned the corner onto the street, the creamery came into sight. The family continued onward until Sarah spoke up. "Daddy, where's Cathy?" Scott looked back and saw that Cathy had stopped walking a few <<if $showInches == 2>>feet<<else>>meters<</if>> back. She stood staring wide eyed at the creamery.
@@ -1217,7 +1018,7 @@
 		<br><br>Cathy looked at the cup in confusion. "Shouldn't we head inside?" Scott just gave her a small smile. "Not just yet." An aura of excitement began to build in the crowd. She noticed that most of the crowd wore very little. Most of the women wore underwear or jewelry and nothing else. Cathy just stared at her cup and then looked up and noticed something she'd missed before. A countdown timer in the corner of the creamery's screen. And it had just hit zero.
 		<br><br>The cowslaves mounted above began to moan and a deluge of milk flowed onto the crowd. The crowd cheered and laughed raising their cups high. Some of the women just basked in the spray, rubbing the milk into their skin. Some of the younger children danced and jumped in the puddles that formed.
 		<br><br>While others were reveling in the downpour, Cathy just stood still, exuding the aura of a wet cat. Scott laughed at Cathy's put out expression and took another swig from his cup. "Now we can go in."
-	<<elseif $showTwelve == 4>>
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 4>>
 		<br><br>A soft gust of air flowed over the family as they passed through the doors to the creamery. Compared to its outward appearance, the creamery's interior was rather rustic. The warmly colored wood and soft amber lighting gave it a close and homey feel, like walking into an old ranch home at sunset.
 		<br><br>The family passed wooden stalls containing a bevy of cowslaves. Each stall had a plaque with the slave's name on it, milking lines snaked down from the ceiling, and above each stall was a screen displaying the cow's sexual exploits. Some of them were chatting with customers, taking selfies with them and recommending products to try. Others were providing more intimate services to their clientele or simply milked themselves and stared at passersby, their smoldering eyes and flushed faces promising every earthly delight one could imagine. Cathy did her best to ignore the goings on around her and focus her attention forward, but couldn't help herself from taking short peeks from the corner of her eye.
 		<br><br>Eventually, the family came to a stop at a dessert counter. Various cakes, pastries, and other treats tempted customers from behind the glass. Each dessert had stylized pictures of the cows that provided the ingredients. One particularly large cake had a picture of adorably deformed and scantily clad construction crew building the cake in a clumsy, but earnest fashion. Above the counter was a series of chalk boards that listed products on the menu, as well as boasting of the day's specials. On top of the counter was a single silver bell. Annie sidled up to the counter, her breasts pressing into the glass. Her daughter reached over from her perch and rung the bell. They didn't have to wait for long before a voice called out to them. "Oh, master! I didn't know you were coming in today."
@@ -1238,7 +1039,7 @@
 		<br><br>Scott pondered her question for a moment, before saying, "Shortly after starting up here, there was a big scandal over slave milk. Apparently, some moron thought adulterating slave milk with actual cow milk was a good idea. As you might guess, it didn't turn out well for him." He took a bite of his ice cream before continuing. "After that, customer trust was at an all-time low. So, I decided to make sure customers could see the whole process right outside the door." He jabbed his cone at her. "That level of transparency made me quite rich and my cows famous. Upstairs, you can buy all sorts of merchandise based on them: clothes, dolls, you name it." He smiled. "There's even a cartoon in the works." Cathy looked at him with a thoughtful expression. "So, that's why?" He gave her a lewd grin. "That, and it's quite sexy. Now, eat your ice cream before it melts." He turned to his wife and daughter. "That goes for you too. Remember, clean your plate, then masturbate." Sarah pulled away from Annie, gobbled down what remained of food, and then pressed her breasts into her mother's face.
 		<br><br>A few minutes later, the family had finished their ice cream and were taking a moment to relax. Sarah rested languidly in her mother's cleavage, basking in the afterglow. Annie shifted uncomfortably. "Feeling pretty sticky. I think mommy is going to go home and take a shower." Scott patted her breast. "Sounds good, I think June and I'll get some shopping done and head back." At the word 'shopping,' Sarah immediately said, "No spinach." Scott looked at his daughter. "Yes spinach. You're not going to grow up to be big and milky like mommy if you don't eat your greens." Sarah pouted and mumbled into her mother's breast, "I want lolimommy cheese curds and a new plushy." Scott ruffled her hair. "We'll see."
 		<br><br>As the family gathered themselves, Cathy held up the remote. "Should we just leave this at the counter?" Annie smiled at her. "Why don't you give her a buzz? I'm sure she'd like it." Cathy gave her a confused frown. Annie sighed and asked, "Kitten, how do you think that gets her attention?" Cathy turned the remote over in her hands. "She would have something that blinked and vibrated when someone used the remote." Annie just looked at her with a serene smile, her eyes twinkling mischievously. With a sudden gasp, Cathy dropped the remote like it had shocked her. A second later, there was a distant squeal and the clatter of a tray hitting the floor.
-	<<elseif $showTwelve == 5>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 5>>
 		<br><br>A moment later, a beet red Cathy was stuttering an apology to an even redder Martha. "Don't worry about it, it was just a pleasant surprise." She smiled and pressed her breasts against Cathy's. "Hope to see you 'round soon darlin'." Marth pulled her into a hug and whispered softly into her ear. "I know it's hard to adjust to, but I think you'll do just fine here." She pressed a piece of paper into Cathy's cleavage and sashayed away.
 		<br><br>Cathy fished it out to see it was an email and phone number with a lip print in bright red lipstick. "Oh my," Annie said, her eyes dancing with amusement. "It looks like you've made a friend." She turned to her husband and said, "I think they'd make a cute couple, wouldn't you?" Scott examined Cathy for a second before nodding. "So long as she makes an honest woman out of her, she has my blessing." Cathy just slowly fumed, her face scarlet in embarrassment. A moment passed before Annie couldn't take it anymore and let out loud, breast quaking, laughter.
 		<br><br>Cathy glared at Annie "She was just being friendly." This just sent Annie into another fit of bosom shaking hysterics. Scott attempted to steady his wife. "Cathy, do you remember the remote she gave you?" She nodded warily. "You don't need one of those to call a waitress. The menus have a button that calls the nearest one to the table," he explained. "Remotes like that are typically reserved for VIPs or favored customers." Her brow furrowed. "But you're the owner! Why wouldn't she leave one with you?" He gave her a small grin and said," Indeed I am, but she gave the remote to you, not me." Cathy thought that over for a second before putting her head in her hands and sulked.
@@ -1255,7 +1056,7 @@
 		<br><br>Cathy took a tentative bite before popping the rest into her mouth. "It's good." Tabby gave her a sunny smile and said, "Thank you! I worked really hard on them." Scott smiled at her fondly and patted her head, "Yes you did." She preened at his praise and let out a sigh of contentment.
 		<br><br>A moment passed in companionable silence, before Scott noticed that Cathy was starting to get antsy. "Anyway, we're going to get some groceries and head on out." Tabby nodded, but couldn't hide her disappointment. "I'll come by tomorrow to check on you and talk to Gabe." He gave her a squeeze and fondly tousled her hair before heading further into the store, Cathy and June in tow.
 		<br><br>They only made it a few paces before an impish gleam entered Scott's eye. He signaled the rest to wait before heading back to the merchandise tables and returned quickly with a pair of plushies in hand. He handed one to Cathy without breaking stride and continued into the store. Cathy looked at the plushie and saw that it was Martha. She sighed and despite her chagrin, clutched the doll to her chest and followed.
-	<<elseif $showTwelve == 6>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 6>>
 		<br><br>By the time Cathy had caught up, June had procured a shopping cart and was making her way to the produce section. A variety of fruits and vegetables tempted passersby, all so enticing that one might think they had been pulled from the canvas of an oil painting. The produce was arranged in finely crafted wooden displays with small chalkboards bearing names and prices written in a tidy hand. Overall, it gave off a rustic charm, like stepping into a small town farmers' market. Detracting from this image somewhat, were a series of screens above the produce.
 		<br><br>The screens displayed what looked like the inside of a greenhouse, although one could be forgiven for not realizing that right away. The LED lamps above gave off an odd magenta light turning the vast swaths of greenery a reddish-black. The odd hue gave the display a rather surreal look.
 		<br><br>While June and Scott were inspecting the produce for freshness, Cathy paused to stare at the screens. "Those are live feeds from the greenhouses," June provided helpfully. Cathy nodded, but continued to stare at the screens, her brow furrowed in confusion. "I got that, but why is it kinda pink?" Scott held an orange to his nose and gave it a quick sniff. "The lights in the greenhouses only produce the wavelengths plants use for photosynthesis. Saves on power, stimulates growth and plant health." He placed the orange in his produce bag. "The carbon dioxide levels are about five times higher than normal in there too." He pressed some produce bags into her hand, "But enough about that, grab some spinach and get a little something for yourself while you're at it."
@@ -1270,7 +1071,7 @@
 		<br><br>Eventually, the party made their way to the star of Blue Barn, the dairy aisle. Display coolers lined the aisle, filled to the brim with milk bottles of various shapes and sizes. Each one bore a printed screen containing a recording of the sexual act that had produced the milk. Whoever was in charge of managing the aisle was kind enough to arrange the milk by kink and sexual act.
 		<br><br>Cathy clutched her plushie and looked around the aisle uncertainty. Scott nudged her. "Go grab a bottle of From the Source, it should be in the titfucking section." She clutched the plushie a little harder then walked down the aisle.
 		<br><br>While she was looking for her quarry, something caught her eye. She squinted at a particular bottle for a moment before reaching in to grab it. With a hesitant finger, she pressed the play button on the bottle. As the video played, a look of dawning horror spread across her face. She was so enthralled with the video, she didn't notice Scott walking up to her. "Oh, did you find something you wanted?" She started and spun to face him, brandishing the bottle at him. "YOU MARRIED YOUR SISTER!?"
-	<<elseif $showTwelve == 7>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 7>>
 		<br><br>The offending bottle was of a higher quality than most of its neighbors, offering a gallery of artists' renditions of the cow in addition to the video. The video on the bottle showed Scott fucking Annie from behind, a slightly tinny slap followed by a squeal from the tiny speakers on the bottle. However, this was not the source of Cathy's distress, as surprising as that may be. Rather, it was the words, Top shelf: All in the Family, printed in red lettering across the bottle.
 		<br><br>Scott cocked an eyebrow, utterly unperturbed. "Yes? And?" Cathy sputtered, but quickly regained her momentum. "You don't do that! Why would do that!?" she all but shrieked, her face blotchy.
 		<br><br>"For two reasons," he said, and held up a finger. "One, have you seen her?" A lewd grin spread across his face, "Rawr." Cathy's blush deepened as her outrage engine built up steam. The grin slid off of Scott's face and his voice grew solemn. "Second, parents can't sell their children if they're already married."
@@ -1285,7 +1086,7 @@
 		<br><br>Scott walked up behind her and slipped his arms around her to grab her breasts. "Doing some early Christmas shopping?" he asked looking over her shoulder. She leaned into him, "Just looking at the new milker you were going to buy for Sarah." He gave her breasts a squeeze as he read the article over her shoulder. "It's a high end model. I'm a very thoughtful father, aren't I?" he said in faux pompous tone, nodding to himself. A small smile spread across June's face. "Of course you are, master." They enjoyed each other's company for a moment before she spoke in a low tone, "Everything alright?" He teased her nipples and spoke in the same tone, "I think I've made some progress with her." He leaned closer to whisper in her ear, "I told you it was a good idea."
 		<br><br>They separated and returned to the cart. While they were having their little chat, Cathy had decided to brave the contents of the erotica section. The look on her face was difficult to describe, but she was reading the book very intently. Scott caught her eye and said, "you can have it, if you want it..." She snapped the book shut, placed it on the shelf, and tried to look as small as possible. He just shrugged in response and looked through the cart before nodding to himself. "I think we're ready to go. Any objections?" June shook her head, but Cathy looked at the shelf for a long second before shaking her head.
 		<br><br>The three gathered up their purchases and headed to the exit. As they were passing through the checkout, Scott noticed a certain book pass amongst their purchases. He turned to give Cathy a look. She was pointedly not looking in his direction when she snatched up the book and made a beeline for the door. When she stepped outside, she noticed something was off about the building, but she couldn't put her finger on it. Scott and June made their way outside to see her gaze flickering over the building. Scott simply smiled at Cathy. Finally, the penny dropped, Cathy glared at him like she was trying to set him on fire with her mind. The upper level of Blue Barn didn't have cows mounted on the wall. Cackling laughter echoed in the street.
-	<<elseif $showTwelve == 8>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 8>>
 		<br><br>Cathy's ire had faded somewhat by the time they made it home. A soft chime rang out as they walked in the door, followed shortly by a faint voice calling out, "Welcome home," from further in the house. The trio put the groceries on the kitchen island and began to put them away. The background murmur of a TV and the faint roar of a hair dryer were coming from the next room. Scott was about to walk into the room, but he paused and looked at the plushie in his hand. He turned and pressed it into June's hands, giving her a meaningful look. She looked at the doll for a moment before returning his look with a smile. Message received. He gave her a quick nod before walking through the door.
 		<br><br>At first glance, the living room didn't look too dissimilar from something of an old-world home decorating magazine. The furniture was well made and comfortable, but was noticeably designed with more robust figures in mind. Books and magazines laid scattered across a number of coffee and end tables. An old copy of <i>Milkers Monthly</i> was opened to a video of a cowslave demonstrating the use of a cleavage vibrator. The shelves on the far wall held a number of statues, their brass figures bearing immobilizing breasts. And on the end was a 1st place ribbon from a school milking competition.
 		<br><br>Annie sat on the couch with a towel around her shoulders, only wearing her exosuit. She relaxed as Sadie went over her vast cleavage with a hair dryer and a towel, letting out noises of contentment as she luxuriated in Sadie's ministrations. Sarah was cuddled up to her mother, her hair still damp from the shower. Scott sat down on the couch and pulled Sarah onto his lap before moving closer to his wife. Sarah just made herself comfortable while Annie leaned over to give him a kiss. "Everything go alright?" He patted his wife's breast reassuringly. "There was a little bump or two, but it went alright. I'll tell you about it later."
@@ -1302,19 +1103,17 @@
 		<br><br>The moment Cathy was out the door, Annie began giggling which shortly transformed into breast quaking laughter. She wiped at her eyes, her smile bright as she looked at her husband. "Have I told you lately that I love you?" He wrapped an arm around her waist, his eyes bright with amusement, "I don't know, but it couldn't hurt to say it again." She pulled him closer, kissed him on the cheek and whispered, "I love you." He returned her kiss, rubbed her back gently, and whispered back, "I know."
 		<br><br>For a while, the couple just relaxed and enjoyed each other's company. Annie let out a sigh of pleasure and asked, "You said there were a few bumps?" Scott let out a sound of acknowledgment. "Gabe has been riding the girls rather hard." Almost immediately, she said, "You should try getting her knocked up." Laughter burst of his chest, at her questioning look he said, "Beth said much the same thing." She nodded approvingly. "Beth is a smart girl. There can always be more babies." She pressed herself into her husband and said, "Gabe isn't the only one who needs knocking up." She nibbled on his earlobe and whispered, "Babies, babies, babies, babies, babies." He turned to look at her and she caught his lips in a searing kiss. When they parted she seemed short of breath, her eyes filled with need. "Babies."
 		<br><br>Scott took a moment to steady his breath. "You know we have to wait for the treatment to take." Annie let out a sound of displeasure, but Scott didn't waver. "Do you want to go through all the trouble we had with Sarah again?" She deflated a bit. He leaned over and whispered in her ear, "That doesn't mean we can't get some practice in." Immediately, Annie captured his mouth again and began tearing at his clothes. It took them a few hours to make it back to bedroom.
-	<</if>>
+ <</if>>
 
 <<case 13>>
-	<<set $lastShow = 13, $showThirteen++>>
-	<<if $showThirteen == 4>><<set $showThirteen = 1>><</if>>
-	/* $showThirteen is the number of times the channel has been viewed. This will be your chapter count, more or less. */
-	<<if $showThirteen == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
 		<<if _usedRemote>>
-			You tune in
+			based off an interesting thumbnail that turns out to be
 		<<else>>
-			The random function has skipped straight
+			which is
 		<</if>>
-		to the middle of a "real life" documentary.
+			currently in the middle of a "real life" documentary.
 		<br><br>
 		The mountain roads started getting dangerous when the rains started getting bad. All that water washed away the earth and loosened up rocks that had been there for ages. Rock slides started getting more and more common, so the roads started getting less and less traffic. People with enough money took planes to get across the mountains, and those without money just stayed put. That is until things started getting worse over there. There was an exodus of desperate people leaving some time ago after their government withdrew from the area, and that many vehicles was enough to bring down the rocks and kill hundreds. All that was left back home was those stupid enough to think things would get better, and those smart enough to realize that crossing was death. Now the roads are in pretty bad shape, but occasionally some groups come through. Either stupid or desperate, and either case works for us.
 		<br><br>
@@ -1355,13 +1154,13 @@
 		"Recon, moving out."
 		<br><br>
 		The screen is closed as the pool of heat in the middle slowly cools. The camera and computer are grabbed and the recon team leaves the vantage point.
-	<<elseif $showThirteen == 2>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 2>>
 		<<if _usedRemote>>
-			You jump
+			another interesting thumbail which is currently in
 		<<else>>
-			The random function has skipped straight
+			 skipping straight to
 		<</if>>
-		to the middle of yet another "real life" documentary.
+		the middle of yet another "real life" documentary.
 		<br><br>
 		The dull blueish glow of a simple terminal illuminates a haggard, pock-marked face as it gazes at account data just barely in the black. A simple reminder breaks the tense silence between the figure and the machine. "Deployment at 1800. Two hour reminder."
 		<br><br>
@@ -1402,13 +1201,8 @@
 		"Are you going to go and protect people, Dad?"
 		A pained grimace crosses over his face as he locks eyes with the nurse who has a very similar expression. After a long moment he turns back with the most genuine smile a father can muster and says, "I sure am, kiddo. I sure am," before turning again to leave.
 		"Good luck."
-	<<elseif $showThirteen == 3>>
-		<<if _usedRemote>>
-			You select
-		<<else>>
-			The random function seems to have selected
-		<</if>>
-		a program about the nuances of slave life.
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 3>>
+		currently airing a program about the nuances of slave life.
 		<br><br>
 		The screen fades in with a fly-through shot of what is undoubtedly an arcology penthouse littered with slaves accompanied by a somewhat upbeat piano melody. You recognize many of the traditional additions to a penthouse, though there are some stylistic differences. After a short time the show identifies itself as "The Other Hand" before fading out.
 		<br><br>
@@ -1438,16 +1232,9 @@
 	<</if>>
 
 <<case 14>>
-	<<set $lastShow = 14, $showFourteen++>>
-	<<if $showFourteen == 3>><<set $showFourteen = 1>><</if>>
-	/* $showFourteen is the number of times the channel has been viewed. This will be your chapter count, more or less. */
-	<<if $showFourteen == 1>>
-		<<if _usedRemote>>
-			You choose
-		<<else>>
-			It looks like the random function chose
-		<</if>>
-		to play the newest episode of a family-oriented soap opera. The intro shows a beautiful family of three, featuring a husband, wife, and young daughter. When they show the events of the previous episode, it quickly becomes clear that this episode is the finale of the current season of the show.
+	<<run FCTV.incrementChannel()>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
+		which is currently showing the newest episode of a family-oriented soap opera. The intro shows a beautiful family of three, featuring a husband, wife, and young daughter. When they show the events of the previous episode, it quickly becomes clear that this episode is the finale of the current season of the show.
 		<br>
 		The episode opens with the husband waking up alone in bed and finding a note on his nightstand that his wife had left for him at the end of the previous episode. Through narration in his head, the note is read aloud to the audience.
 		<br>
@@ -1539,7 +1326,7 @@
 				<<setLocalPronouns $Concubine>>
 				grab $Concubine.slaveName and recreate the entire ending with $him.
 				<<set _fctvs = $slaveIndices[$Concubine.ID]>>
-				<<set $slaves[_fctvs].counter.vaginal += 1, $vaginalTotal += 1>>
+				<<set $slaves[_fctvs].counter.vaginal++, $vaginalTotal++>>
 				<<if canImpreg($Concubine, $PC)>>
 					<<= knockMeUp($slaves[_fctvs], 10, 0, -1, 1)>>
 				<</if>>
@@ -1556,7 +1343,7 @@
 				get $Concubine.slaveName nice and hard before recreating the entire ending with $him. You've never had a more hope-filled orgasm.
 				<<= knockMeUp($PC, 10, 0, $Concubine.ID, 1)>>
 				<<set _fctvs = $slaveIndices[$Concubine.ID]>>
-				<<set $slaves[_fctvs].counter.penetrative += 1, $penetrativeTotal += 1>>
+				<<set $slaves[_fctvs].counter.penetrative++, $penetrativeTotal++>>
 			<<elseif $sexualOpeness == 1>>
 				find your favorite cock to get a creampie from. You've never had a more lust-filled orgasm.
 			<<else>>
@@ -1564,8 +1351,8 @@
 			<</if>>
 		<</if>>
 	<<else>>
-		<<set $activeSlaveOneTimeMinAge = 25>>
-		<<set $activeSlaveOneTimeMaxAge = 35>>
+		<<set _slaveOneTimeMinAge = 25>>
+		<<set _slaveOneTimeMaxAge = 35>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
 		<<if $arcologies[0].FSSupremacistLawME == 1>>
@@ -1596,8 +1383,8 @@
 		<<set _hostess.clothes = "a halter top dress">>
 		<<set _hostess.shoes = "heels">>
 
-		<<set $activeSlaveOneTimeMinAge = 25>>
-		<<set $activeSlaveOneTimeMaxAge = 35>>
+		<<set _slaveOneTimeMinAge = 25>>
+		<<set _slaveOneTimeMaxAge = 35>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
 		<<if $arcologies[0].FSSupremacistLawME == 1>>
@@ -1630,8 +1417,8 @@
 		<<set _scientist.clothes = "conservative clothing">>
 		<<set _scientist.shoes = "flats">>
 
-		<<set $activeSlaveOneTimeMinAge = 25>>
-		<<set $activeSlaveOneTimeMaxAge = 35>>
+		<<set _slaveOneTimeMinAge = 25>>
+		<<set _slaveOneTimeMaxAge = 35>>
 		<<set $one_time_age_overrides_pedo_mode = 1>>
 		<<set $oneTimeDisableDisability = 1>>
 		<<if $arcologies[0].FSSupremacistLawME == 1>>
@@ -1660,7 +1447,7 @@
 		<<set _nun.hStyle = "buzzcut">>
 		<<set _nun.clothes = "a penitent nuns habit">>
 
-		<<if $seeImages == 1>>
+		<<if $seeImages > 0>>
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_hostess, 2, 0)>>
@@ -1673,12 +1460,7 @@
 				</div>
 			</div>
 		<</if>>
-		<<if _usedRemote>>
-			You begin
-		<<else>>
-			The random function begins
-		<</if>>
-		playing a Free Cities documentary on the benefits of aphrodisiacs, which is almost halfway over. A montage of out-of-context shots of injectors, suppositories, and bottles of liquid interspersed with very horny, sweaty slaves needily grinding on each other plays before cutting back to the presenter, a gorgeous young woman with long, brown hair in a tight one-piece red dress and matching heels. Her dress, practically a second skin, proudly reveals that she definitely isn't wearing a bra or panties of any kind but still leaves plenty up to the imagination increasing her enticing presence. She's with a handsome man in a lab coat, and they're sitting on a couch in an office with a microphone on a coffee table between them.
+		currently displaying a Free Cities documentary on the benefits of aphrodisiacs, which is almost halfway over. A montage of out-of-context shots of injectors, suppositories, and bottles of liquid interspersed with very horny, sweaty slaves needily grinding on each other plays before cutting back to the presenter, a gorgeous young woman with long, brown hair in a tight one-piece red dress and matching heels. Her dress, practically a second skin, proudly reveals that she definitely isn't wearing a bra or panties of any kind but still leaves plenty up to the imagination increasing her enticing presence. She's with a handsome man in a lab coat, and they're sitting on a couch in an office with a microphone on a coffee table between them.
 		<br>
 		"I met with one of the leading scientists working on cleaner, higher-purity aphrodisiacs." the woman presenting narrates.
 		<br>
@@ -1703,16 +1485,16 @@
 		"Anywhere. Please, now. Please."
 		<br>
 		He bends her over the couch, right next to the presenter, who's been watching the entire time. She's transfixed with genuine interest in the aphrodisiacs and genuine cocklust for the scientist. The scientist slides his spit-covered cock into the nun's ass, and she thanks him through tears as she moans and desperately rubs her clit. He's pounding her hard and fast, and she cums quickly, but clearly she isn't satiated judging by how quickly she goes back to slamming her ass against the scientist after cumming. Eventually the sight of it is too much for the presenter, who mouths "fuck it" before hiking up the bottom of her dress to her hips revealing a beautifully puffy pussy and a carefully-sculpted landing strip. The presenter shifts over on the couch, and pulls the nun by her hair to make her eat her cunt. They go on like this for some time, with the nun and presenter frequently changing places, much to the delight of the scientist. By the end of the scene the nun is crying on the floor, leaking cum from every holy hole and staring off into space. The benefits of aphrodisiacs are quite clear.
-	<</if>>
+ <</if>>
 
 <<case 15>>
-	<<set $lastShow = 15, $showFifteen++>>
-	<<if $showFifteen == 3>><<set $showFifteen = 1>><</if>>
-	<<if $showFifteen == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
 		/*
 		You awaken one morning, just before the break of dawn, and find yourself unable to go back to sleep. Giving up on the idea of returning to slumber, you idly flip through the channels on your TV, finding mostly static or early morning infomercials, until you finally land on a channel broadcasting so early in the morning.
 		<br><br>
 		*/
+		aka the Pirate channel.<br>
 		You're greeted by a man with an eyepatch, a bushy black beard, and a crimson bandanna around his head. He's sitting behind a crude looking bamboo desk. Behind him is the backdrop of a sun rising over the ocean and two slaves in tight revealing sailor outfits swabbing the deck. The whole set looks like some sort of tropical pirate theme and you almost change the channel mistaking the show for a kids show when it catches up to you what the pirate is talking about.
 		<br><br>
 		"- An' that be concludin' our special report on the dangers o' dealin' with old world customs agencies an' how to find a scallywag'll right proper let you sneak a bound wench through fer the right bribe. If'n you missed it or be needin' a refresher, catch our rebroadcast in 12 bells time. Now afore the turn of the hourglass we go to our weatherwench Lusty Pearl who's been keepin' a weather eye on the horizon. Lusty?"
@@ -1731,8 +1513,8 @@
 		When the weather finishes, she crosses her arms under her breasts, emphasizing the pair barely restrained by the laces of her blouse and barely slipping free after her energetic report, as credits of strange and funny pirate themed names begin to flash across the bottom of the screen, she happily begins to sign off. "We here at Pieces o' Eight thank ye fer trustin' us with yer global news an' weather, from our crew to yours, have a merry day!"
 		<br><br>
 		You flip off the TV. News from a pirate, how novel.
-	<<elseif $showFifteen == 2>>
-		Your TV randomly hits channel 15, the pirate themed channel. Apparently this is a live feed produced by a band of pirates and you tuned in right as they board a small pleasure craft.
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 2>>
+		 the pirate themed channel. Apparently this is a live feed produced by a band of pirates and you tuned in right as they board a small pleasure craft.
 		<br><br>
 		Three armed pirates are swiftly sweeping the boat, gathering the passengers, a man, his wife and his two children, on deck and tying them up. The camera is attached to the pirate captain as he sweeps below deck finding their supplies.
 		<br><br>
@@ -1753,8 +1535,10 @@
 		<br><br>
 		Captain Orca rushes up the stairs to reveal over the aft the approach of a viking ship. Standing at its prow a blonde man covered in blue woad tattoos shouting wildly and firing two automatic rifles off into the air. The screen stops there with a "to be continued" overlaid on the screen.
 	<</if>>
+
 <<case 16>>
-	<<if $seeImages == 1>>
+	<<run FCTV.incrementChannel()>>
+	<<if $seeImages > 0>>
 		<<set _indian = BaseSlave()>>
 		<<set _indian.devotion = 0>>
 		<<set _indian.trust = 100>>
@@ -1767,15 +1551,13 @@
 		<<set _indian.hStyle = "braided">>
 		<<set _indian.hColor = "black">>
 		<<set _indian.clothes = "shibari ropes">>
-	<</if>>
+ <</if>>
 
-	<<set $lastShow = 16, $showSixteen++>>
-	<<if $showSixteen == 4>><<set $showSixteen = 1>><</if>>
 	/* All actors are at least 18 */
 	<p>
 		As you snuggle in for the night<<if $Concubine != 0>> with your concubine<</if>>, you <<if _usedRemote == 1>>tune to<<else>>begin watching<</if>> the <i>Age of Slavery</i> channel. With so many new types of arcologies emerging, it's sometimes difficult to tell if you are watching events unfolding on a set or in a real arcology with a historical society.
 	</p>
-	<<if $showSixteen == 1>>
+	<<if $FCTV.channel[num($FCTV.channel.selected, true)] == 1>>
 		"Well, you did well to win the 'cleanest urchin' contest."
 		<br>Currently you seem to be watching a scene from the industrial revolution, in a smoke smudged brick courtyard by a factory. A stout manager, dressed in a black suit, is leading a thin urchin toward a wooden building built out from the main factory.
 		<br>"Thank you, sir," the urchin gulps. "My mother really needs the money. You promised a shilling?"
@@ -1808,8 +1590,8 @@
 		<br>"Then you need some blasted motivation! I'll pack those bearings in myself!"
 		<br>The youth shrieks, and in a panic sprints around the tank. The man follows closely, and then chases him out the door. With no time to grab his clothing, the youth squirts out bearings as he runs, before making the relative safety of the street, still nude. A camera from the street reveals an interesting surprise as the desperation on the fleeing youth's face shifts to consternation. Heads on the street turn, too, as he drops the last bearings and spurts white over coal black skin. There was more than water in the tank: he's dyed now as black as night from head to toe.
 		<br>Pointing and laughing uproariously, the man flips the eighth bearing into the air before pocketing it again and buttoning up his pants. The camera pans out to show the factory's name as "Titan's Textiles."
-	<<elseif $showSixteen == 2>>
-		<<if $seeImages == 1>>
+	<<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 2>>
+		<<if $seeImages > 0>>
 			<div class="imageColumn">
 				<div class="imageRef medImg">
 					<<= SlaveArt(_indian, 2, 0)>>
@@ -1833,11 +1615,11 @@
 		<br> The camera pans away and when it returns, the Indian girls face is positively caked with the most absurdly overdone makeup you have ever seen. It's both hot and hilarious in the same way.
 		<<if $Concubine.makeup > 0>>
 			You look at your own concubine's face.
-			<<set _activeSlave = $activeSlave>>
-			<<set $activeSlave = $Concubine>>
+			<<set _activeSlave = _slave>>
+			<<set _slave = $Concubine>>
 			<<makeupDescription>>
 			It's just the way you like it, but it's nowhere near as messy and overdone as the girl in the show.
-			<<set $activeSlave = _activeSlave>>
+			<<set _slave = _activeSlave>>
 		<</if>>
 		<br> "Mmmm, good but now the rest of her seems a little plain," Annie frowns. "Don't loose girls wear big boots?"
 		<br> "I can help with that," Dakota smiles.
@@ -1877,8 +1659,8 @@
 		<br> Little Cloud lets out an enormous wet belch, then two more as she strains her body.
 		<br> "Hahahaha, her breath smells like whiskey and," Annie says as she eyes Kate, "You, to be frank." They both burst out laughing again.
 
-	<<elseif $showSixteen == 3>>
-		<<if $seeImages == 1>>
+ <<elseif $FCTV.channel[num($FCTV.channel.selected, true)] == 3>>
+		<<if $seeImages > 0>>
 			<<set _indian.hStyle = "messy">>
 			<<set _indian.shoeColor = "#c80000">>
 			<<set _indian.shoes = "boots">>
@@ -1903,7 +1685,6 @@
 		<</if>>
 
 		<br> "Then we just run this one up heeere." Katie waves the tip of the other tube in her face. Cloud shudders but keeps her mouth shut. "Oh, but you are so <i>thirsty</i>, right? Well, we had to do this for a man that damn near died to a mountain lion. Slept for three weeks before he started healing." Kate coats the tip in pitch again and then shoves it far up Cloud's nose. Cloud frantically dances at the discomfort as some of the pressure below is released, but freezes a moment later as an <i>extremely</i> unpleasant flavor arrives in her throat.
-
 		<br>Kate deliberately kinks the hose to shut off the flow for the moment and presses the kink into Cloud's hand, before wrapping her fingers around it. "Up to her now where she wants it," Kate explains. "It's important to give a patient choices, don't you think?" The gagging Indian tries to use her new grip on the hose to pull it out, but Kate bends her fingers painfully further shut. "Uh-uh. Nope." Kate firmly knots another rawhide band around the hose, and then ties the strip around Cloud's wrist, keeping her from reeling in the hose with her fingers. With her arms themselves bound, she can't move around enough to tear out the hose either. "Medicine goes up or down, not out!"
 
 		<br><br> At this point, her stomach is so distended that the black pitch is showing around individual feathers. Annie and Dakota lock eyes and giggle, while Kate moves to where the noose is tied.
@@ -1921,9 +1702,7 @@
 		<br> "Shut UP already!" Annie is irate. "I am done hearing you whine about what you like and what you don't like. We gave you drink, we gave you food. Shut. Your. Beak!" Annie rams the round handle of the trowel deep into Cloud's mouth, then ties the middle of the trowel tightly with rawhide before fastening it behind her head. She bends the metal to point down a bit. "See? Silence. And a beak!"
 
 		<br> "One lasssst thing, though." Kate holds up a few boards. "She doesn't quite have chicken feet!" Using the noose the three haul Cloud's bulk upright, and place her feet on the boards. Careful not to pierce the skin or smash the toes, Kate uses U-shaped nails to firmly trap the girl's toes to the board, giving her comically large "sandals." Another coat of thick red paint on the boards, nails, and legs, and her new feet are finished.
-
 		<br><br> Finally, their work is done. Little Cloud is completely unrecognizable. Her face is a slobbery mess, and it's not clear if she is still drooling or if she has begun to leak tea from her mouth. She gives another wet belch, and slouches to the side. Her breasts are the only naturally colored thing left on her body, still trapped and protruding from the now hidden ropes that bind her. Her stomach is so grossly distended that the pitch is showing, giving the impression that her skin is black. The bulge at the back of her loincloth has picked up a few feathers and looks like a sad tail. Her cunt is leaking a single <<if $seeBestiality == 0>><i>sunflower seed</i><<else>>wriggling worm<</if>> around the loincloth, with many more trapped inside. And her long slender legs are fixed to boards in a mockery of feet.
-
 		<br> "Enthing...” she slurs around the trowel. "Ethrything ith...".
 
 		<br> "Oh it's ending all right." Annie says. "Right, here is how this goes. You are out of here. History. None of us want to touch your filthy sticky hide. If you don't want to <i>pop</i>, I suggest you get back to your little teepee and find someone that cares to help you. If you hurry, you might make it before sundown."
@@ -1939,9 +1718,8 @@
 		<br> Little Cloud frantically begins to flop and cluck her way out of town into the sunset as fast as she can, chased by the three hysterical women.
 	<</if>>
 
-
-<<default>>
-	It seems there's a technical error preventing you from streaming; you tell $assistant.name to look into it.
+<<default>> It seems there's a technical error preventing you from streaming; you tell $assistant.name to look into it.
 <</switch>>
 
-<<set $randShow = "">>
\ No newline at end of file
+<<set $FCTV.channel.last = $FCTV.channel.selected>>
+<<run delete $FCTV.channel.selected>> <<run delete $FCTV.channel.choice>>
\ No newline at end of file
diff --git a/src/pregmod/FCTV/seFCTVwatch.tw b/src/pregmod/FCTV/seFCTVwatch.tw
new file mode 100644
index 0000000000000000000000000000000000000000..163bbfd27ca09de3f09137773203ff45d9dd388b
--- /dev/null
+++ b/src/pregmod/FCTV/seFCTVwatch.tw
@@ -0,0 +1,74 @@
+:: SE FCTV Watch [nobr]
+
+<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV">>
+<<set $FCTV.pcViewership.count++, _possibleChannels = [0].concat(FCTV.channels())>>
+
+Tired after a long day, you tell <<if $Concubine > 0>>your concubine: @@.pink;$Concubine.slaveName@@<<else>>$assistant.name<</if>> to turn on the TV and
+<<if !_usedRemote && ($cheatMode > 0 || $debugMode > 0 || $FCTV.remote)>>
+	bring you the remote so you can choose whatever show you find interesting.<br>
+	<<set _usedRemote = 1, _pos = 0>>
+	<center>
+	<<if ndef $FCTV.channel.choice>>
+		<<for _i = 0; _i < _possibleChannels.length; _i++>>
+			<<set _pos++>>
+			<<capture _i>>
+			<<if FCTV.showChannel(_i).canSelect > 0>>
+				<<if $FCTV.channel.selected != _i>>
+					[[_i|SE FCTV Watch][$FCTV.channel.selected = _i]]
+				<<else>>
+					<<link "@@.yellow;<b>[_i]</b>@@" "SE FCTV Watch">> <<set $FCTV.channel.selected = _i>> <</link>>
+				<</if>>
+			<<else>>
+				<<if ![3, 4].includes(_i)>>
+					<<= App.UI.disabledLink(_i, [FCTV.showChannel(_i).text])>>
+				<<else>>
+					<<= _i>>
+				<</if>>
+			<</if>>
+			<</capture>>
+			<<if _pos == 4>> <br> <<set _pos = 0>> <</if>>
+		<</for>>
+
+		<br>
+		<<if $FCTV.channel.selected == $FCTV.channel.last>>You tuned into this channel last week, you may want choose something else.<br> <</if>>
+		<span id='all'> </span>
+		<<if $cheatMode > 0 || $debugMode > 0>> <br>
+			<<link "Toggle inappropriate">>
+				<<if _all>>
+					<<set _all = 0>>
+				<<else>>
+					<<set _all = 1>>
+				<</if>>
+				<<replace '#all'>>
+					<<if _all>>
+						There is an audible tone from your screen, which then displays a message: <i>Showing all content, for testing purposes.</i> <br>
+					<</if>>
+					<</replace>>
+			<</link>> |
+		<</if>>
+		<<if $FCTV.channel.selected > -1>>[[Continue|SE FCTV Watch][$FCTV.channel.choice = 1]]<</if>>
+	<</if>>
+	</center>
+	<<if $FCTV.channel.choice>> <<include "SE FCTV Shows">> <</if>>
+<<elseif !_usedRemote>>
+	set FCTV to find a random show. Your larger-than-life screen flashes on, and is soon playing content from the popular streaming service.
+	<<for _i = 0;; _i++>>
+		<<set $FCTV.channel.selected = _possibleChannels[Math.floor(Math.random() * _possibleChannels.length)]>>
+		<<if $FCTV.channel.last > -1 && $FCTV.channel.selected == $FCTV.channel.last>>
+			<div>There is an audible tone from your screen, which then displays a message: <i>Detected recent viewing, changing channel.</i> </div>
+			<<run _possibleChannels.splice($FCTV.channel.selected, 1)>>
+			<<continue>>
+		<</if>>
+		<<if FCTV.showChannel($FCTV.channel.selected).canSelect < 0 && ![3, 4].includes($FCTV.channel.selected)>>
+			<div> <<= FCTV.showChannel($FCTV.channel.selected).text>> </div>
+			<<run _possibleChannels.splice($FCTV.channel.selected, 1)>>
+			<<continue>>
+		<</if>>
+
+		<<if _i > 2>>
+			<<set $FCTV.channel.selected = -1>> <<break>>
+		<</if>>
+		<<break>>
+	<</for>>
+	<<include "SE FCTV Shows">>
+<</if>>
\ No newline at end of file
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index f5f7f454835aef1de1893969e61ec45666280b40..4163a2b32e1604a556841a78cd7bf411349caf7e 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -224,22 +224,22 @@
 	</p>
 <</if>>
 
-<<if $FCTVreceiver > 0>>
+<<if $FCTV.receiver > 0>>
 	<h2>FCTV</h2>
 
 	<p>
-		<<if $FCTVrate == 1>>
-			You make sure to tune in to FCTV at least once a week. [[Watch every other week|Manage Personal Affairs][$FCTVrate = 2]] | [[Watch once a month|Manage Personal Affairs][$FCTVrate = 4]] | [[Ignore it|Manage Personal Affairs][$FCTVrate = -1]]
-		<<elseif $FCTVrate == 2>>
-			You make sure to tune in to FCTV at least every two weeks. [[Watch every week|Manage Personal Affairs][$FCTVrate = 1]] | [[Watch once a month|Manage Personal Affairs][$FCTVrate = 4]] | [[Ignore it|Manage Personal Affairs][$FCTVrate = -1]]
-		<<elseif $FCTVrate == 4>>
-			You make sure to check in on FCTV at least once a month. [[Watch every week|Manage Personal Affairs][$FCTVrate = 1]] | [[Watch every other week|Manage Personal Affairs][$FCTVrate = 2]] | [[Ignore it|Manage Personal Affairs][$FCTVrate = -1]]
+		<<if $FCTV.pcViewership.frequency == 1>>
+			You make sure to tune in to FCTV at least once a week. [[Watch every other week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 2]] | [[Watch once a month|Manage Personal Affairs][$FCTV.pcViewership.frequency = 4]] | [[Ignore it|Manage Personal Affairs][$FCTV.pcViewership.frequency = -1]]
+		<<elseif $FCTV.pcViewership.frequency == 2>>
+			You make sure to tune in to FCTV at least every two weeks. [[Watch every week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 1]] | [[Watch once a month|Manage Personal Affairs][$FCTV.pcViewership.frequency = 4]] | [[Ignore it|Manage Personal Affairs][$FCTV.pcViewership.frequency = -1]]
+		<<elseif $FCTV.pcViewership.frequency == 4>>
+			You make sure to check in on FCTV at least once a month. [[Watch every week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 1]] | [[Watch every other week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 2]] | [[Ignore it|Manage Personal Affairs][$FCTV.pcViewership.frequency = -1]]
 		<<else>>
-			You don't watch FCTV. [[Watch every week|Manage Personal Affairs][$FCTVrate = 1]] | [[Watch every other week|Manage Personal Affairs][$FCTVrate = 2]] | [[Watch once a month|Manage Personal Affairs][$FCTVrate = 4]]
+			You don't watch FCTV. [[Watch every week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 1]] | [[Watch every other week|Manage Personal Affairs][$FCTV.pcViewership.frequency = 2]] | [[Watch once a month|Manage Personal Affairs][$FCTV.pcViewership.frequency = 4]]
 		<</if>>
-		<<if $saveImported > 0 && $FCTVremote == 0>>
+		<<if $saveImported > 0 && !$FCTV.remote>>
 			<div>
-				You know TVs should have a remote. [[Buy one yourself|Manage Personal Affairs][$FCTVremote = 1, cashX(forceNeg(100*$upgradeMultiplierTrade), "capEx")]]
+				You know TVs should have a remote. [[Buy one yourself|Manage Personal Affairs][$FCTV.remote = 1, cashX(forceNeg(100*$upgradeMultiplierTrade), "capEx")]]
 			</div>
 		<</if>>
 	</p>
diff --git a/src/pregmod/rePregInventor.tw b/src/pregmod/rePregInventor.tw
index 0e8254535492630c65cf1104e55cdbfdf05e33a3..da9a74821595fcacb38c3111cb64e8aac977c864 100644
--- a/src/pregmod/rePregInventor.tw
+++ b/src/pregmod/rePregInventor.tw
@@ -343,7 +343,7 @@
 			<<set $activeSlave.trust += 2, $activeSlave.devotion += 5>>
 			<</replace>>
 		<</link>>
-		<<if $FCTVreceiver > 0>>
+		<<if $FCTV.receiver > 0>>
 			<br><<link "Organize a televised demonstration of $his skills.">>
 				<<replace "#result2">>
 				You are so impressed by $his ideas that you arrange to have $him demonstrate $his discoveries on a prominent FCTV talk show. It will take some time, and you'll have to insure that $he's at least reasonably well known before the show's executives will agree to allow $him on-air, but you're certain that $activeSlave.slaveName's name will soon be on the lips of pregnancy-loving slaveowners and Free Cities citizens around the world. In the meantime, you implement $his ideas around the arcology. $He is @@.hotpink;thrilled@@ to have pleased you so much that you would @@.mediumaquamarine;put such faith in $his ideas.@@
@@ -539,7 +539,7 @@
 			<<set $activeSlave.trust += 2, $activeSlave.devotion += 5>>
 			<</replace>>
 		<</link>>
-		<<if $FCTVreceiver > 0>>
+		<<if $FCTV.receiver > 0>>
 			<br><<link "Organize a televised demonstration of $his skills.">>
 				<<replace "#result2">>
 				You are so impressed by $his ideas that you arrange to have $him demonstrate $his discoveries on a prominent FCTV talk show. It will take some time, and you'll have to insure that $he's at least reasonably well known before the show's executives will agree to allow $him on-air, but you're certain that $activeSlave.slaveName's name will soon be on the lips of pregnancy-loving slaveowners and Free Cities citizens around the world. In the meantime, you implement $his ideas around the arcology. $He is @@.hotpink;thrilled@@ to have pleased you so much that you would @@.mediumaquamarine;put such faith in $his ideas.@@
@@ -757,7 +757,7 @@
 			<<set $activeSlave.trust += 2, $activeSlave.devotion += 5>>
 			<</replace>>
 		<</link>>
-		<<if $FCTVreceiver > 0>>
+		<<if $FCTV.receiver > 0>>
 			<br><<link "Organize a televised demonstration of $his skills.">>
 				<<replace "#result2">>
 				You are so impressed by $his ideas that you arrange to have $him demonstrate $his discoveries on a prominent FCTV talk show. It will take some time, and you'll have to insure that $he's at least reasonably well known before the show's executives will agree to allow $him on-air, but you're certain that $activeSlave.slaveName's name will soon be on the lips of pregnancy-loving slaveowners and Free Cities citizens around the world. In the meantime, you implement $his ideas around the arcology. $He is @@.hotpink;thrilled@@ to have pleased you so much that you would @@.mediumaquamarine;put such faith in $his ideas.@@
diff --git a/src/pregmod/seFCTVwatch.tw b/src/pregmod/seFCTVwatch.tw
deleted file mode 100644
index 56c351f1e75826ceb93b9d788160148860a58911..0000000000000000000000000000000000000000
--- a/src/pregmod/seFCTVwatch.tw
+++ /dev/null
@@ -1,147 +0,0 @@
-:: SE FCTV Watch [nobr]
-
-<<set $nextButton = "Continue", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $showEncyclopedia = 1, $encyclopedia = "FCTV", $randShow = "", $FCTVshow = 0>>
-
-
-Tired after a long day, you tell <<if $Concubine != 0>>@@.pink;$Concubine.slaveName@@<<else>>$assistant.name<</if>> to turn on the TV and
-<<if $cheatMode == 1 || $debugMode == 1 || $FCTVremote > 0>>
-	bring you the remote so you can choose whatever show you find interesting.
-	<br>
-
-	<style>
-		table.finances {
-			text-align: left;
-			border-collapse: separate;
-			border-spacing: 5px;
-			border-style: hidden;
-			empty-cells: hide;
-			/*width: 75%;*/
-		}
-	</style>
-
-	<table class="finances" border="1">
-	<tr><th>
-	<<link 0>>
-		<<set $randShow = 0>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 1>>
-		<<set $randShow = 1>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 2>>
-		<<set $randShow = 2>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<if $cheatMode == 1 || $debugMode == 1>> /* Disable the home slave shopping network for normies because exploits. */
-		<<link 3>>
-			<<set $randShow = 3>>
-			<<replace "#show">>
-				<<include "SE FCTV Shows">>
-			<</replace>>
-		<</link>>
-		<<link 4>>
-			<<set $randShow = 4>>
-			<<replace "#show">>
-				<<include "SE FCTV Shows">>
-			<</replace>>
-		<</link>>
-	<<else>>
-		3 4
-	<</if>>
-	<<link 5>>
-		<<set $randShow = 5>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 6>>
-		<<set $randShow = 6>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 7>>
-		<<set $randShow = 7>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 8>>
-		<<set $randShow = 8>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 9>>
-		<<set $randShow = 9>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 10>>
-		<<set $randShow = 10>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 11>>
-		<<set $randShow = 11>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 12>>
-		<<set $randShow = 12>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 13>>
-		<<set $randShow = 13>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 14>>
-		<<set $randShow = 14>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 15>>
-		<<set $randShow = 15>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<link 16>>
-		<<set $randShow = 16>>
-		<<replace "#show">>
-			<<include "SE FCTV Shows">>
-		<</replace>>
-	<</link>>
-	<<if $cheatMode == 1 || $debugMode == 1>> /* remove toggle for normies */
-		|
-		<<link "Toggle inappropriate">>
-			<<if _FCTVShowAll>>
-				<<set _FCTVShowAll = 0>>
-			<<else>>
-				<<set _FCTVShowAll = 1>>
-			<</if>>
-		<</link>>
-	<</if>>
-	</th></tr></table>
-<<else>>
-	set FCTV to random show. Your larger-than-life screen flashes on, and is soon playing a random show from the popular streaming service.
-<</if>>
-
-<span id="show">
-	<<include "SE FCTV Shows">>
-</span>
\ No newline at end of file
diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw
index 333224bf5924924b8b2040ed4e99f0a7f08a8b41..b32cd29bc31d84da14275459bc071d8fe0b89d40 100644
--- a/src/uncategorized/fsDevelopments.tw
+++ b/src/uncategorized/fsDevelopments.tw
@@ -47,29 +47,29 @@
 	Your @@.yellowgreen;societal spending@@ helps forward your goals for the arcology's future.
 	<<set _broadProgress += Math.trunc($FSSpending/(1000-(500*$arcologies[0].FSEdoRevivalistLaw)-(250*$arcologies[0].FSArabianRevivalistLaw)))>>
 <</if>>
-<<if $FCTVreceiver == 3>>
+<<if $FCTV.receiver == 3>>
 	Your customized @@.yellowgreen;FCTV programming@@ strongly influences your citizens, greatly helping define your arcology's culture.
-	<<if ($week - $receiverAvailable) > 29>>
+	<<if ($week - $FCTV.weekEnabled) > 29>>
 		<<set _broadProgress += 3>>
-	<<elseif ($week - $receiverAvailable) > 19>>
+	<<elseif ($week - $FCTV.weekEnabled) > 19>>
 		<<set _broadProgress += 2>>
-	<<elseif ($week - $receiverAvailable) > 4>>
+	<<elseif ($week - $FCTV.weekEnabled) > 4>>
 		<<set _broadProgress += 1>>
 	<</if>>
-<<elseif $FCTVreceiver == 2>>
+<<elseif $FCTV.receiver == 2>>
 	Your customized @@.yellowgreen;FCTV programming@@ influences your citizens, helping define your arcology's culture.
-	<<if ($week - $receiverAvailable) > 34>>
+	<<if ($week - $FCTV.weekEnabled) > 34>>
 		<<set _broadProgress += 3>>
-	<<elseif ($week - $receiverAvailable) > 23>>
+	<<elseif ($week - $FCTV.weekEnabled) > 23>>
 		<<set _broadProgress += 2>>
-	<<elseif ($week - $receiverAvailable) > 8>>
+	<<elseif ($week - $FCTV.weekEnabled) > 8>>
 		<<set _broadProgress += 1>>
 	<</if>>
-<<elseif $FCTVreceiver == 1>>
+<<elseif $FCTV.receiver == 1>>
 	Your customized @@.yellowgreen;FCTV programming@@ influences a small number of your citizens, slightly helping define your arcology's culture.
-	<<if ($week - $receiverAvailable) > 39>>
+	<<if ($week - $FCTV.weekEnabled) > 39>>
 		<<set _broadProgress += 2>>
-	<<elseif ($week - $receiverAvailable) > 24>>
+	<<elseif ($week - $FCTV.weekEnabled) > 24>>
 		<<set _broadProgress += 1>>
 	<</if>>
 <</if>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 595f5eb3ab60e9bb7cc5247d37fd6dfa48946947..c97c4b352b9dd357e171a2bc95191385a47101af 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -114,18 +114,19 @@
 	</div>
 
 	<div>
-	<<if ($receiverAvailable == 1) && ($FCTVreceiver == 0)>>
+	<<run FCTV.manage()>>
+	<<if $FCTV.receiver > -1 && !$FCTV.weekEnabled>>
 		You have not installed an FCTV receiver.
 		Installing this receiver yourself will cost <<print cashFormat(Math.trunc(25000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.
 		You can have your citizens pay for the fiberoptic upgrades, reducing the cost to <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.
 		You can also have them heavily subsidize installation, they will be upset about it, but it will only cost <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.
 
-		[[No subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(25000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTVreceiver = 1, $receiverAvailable = $week, repX(500, "capEx"), $PC.skill.hacking += 1]] | [[Light subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTVreceiver = 1, $receiverAvailable = $week, $PC.skill.hacking += 1]] | [[Heavy subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTVreceiver = 1, $receiverAvailable = $week, repX(-1500, "capEx"), $PC.skill.hacking += 1]]
-	<<elseif ($FCTVreceiver == 3)>>
+		[[No subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(25000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTV.receiver = 1, $FCTV.weekEnabled = $week, repX(500, "capEx"), $PC.skill.hacking += 1]] | [[Light subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTV.receiver = 1, $FCTV.weekEnabled= $week, $PC.skill.hacking += 1]] | [[Heavy subsidy|Manage Arcology][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $FCTV.receiver = 1, $FCTV.weekEnabled = $week, repX(-1500, "capEx"), $PC.skill.hacking += 1]]
+	<<elseif ($FCTV.receiver == 3)>>
 		You have installed the FCTV receiver and have access to the full range of FCTV's programs. High viewership rates amongst your citizens makes it easier to pursue your societal goals.
-	<<elseif ($FCTVreceiver == 2)>>
+	<<elseif ($FCTV.receiver == 2)>>
 		You have installed the FCTV receiver and have access to the full range of FCTV's programs. Decent viewership rates amongst your citizens makes it somewhat easier to pursue your societal goals.
-	<<elseif ($FCTVreceiver == 1)>>
+	<<elseif ($FCTV.receiver == 1)>>
 		You have installed the FCTV receiver and have access to the full range of FCTV's programs. Low viewership rates amongst your citizens limits the impact of FCTV on your societal goals.
 	<</if>>
 	</div>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 46db24aef7f56f69201af604e564ec66b3512cc5..654aea45b97abb554bfc61f1c71a667d0d99f861 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -271,11 +271,10 @@
 	<<set $PC.forcedFertDrugs-->>
 <</if>>
 
-<<if $FCTVreceiver > 0>>
-	<<set $FCTVcount += 1>>
-	<<if $FCTVcount >= $FCTVrate && $FCTVrate != -1>>
-		<<set $FCTVcount = 0>>
-		<<set $FCTVshow = 1>>
+<<if $FCTV.receiver > 0 && $FCTV.pcViewership.frequency != -1>>
+	<<set $FCTV.pcViewership.count++>>
+	<<if $FCTV.pcViewership.count >= $FCTV.pcViewership.frequency>>
+		<<set $FCTV.pcViewership.count = 0>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
index f63a1c14b1e4a033fadf812d1cd07e3d292f5180..5cbeaf6a1d928752f42f6255e50e9b93c148748f 100644
--- a/src/uncategorized/nonRandomEvent.tw
+++ b/src/uncategorized/nonRandomEvent.tw
@@ -8,7 +8,7 @@
 <<if (_effectiveWeek == 4) && ($arcologies[0].name.indexOf("Arcology ") != -1)>>
 	<<set $Event = "arcology naming">>
 	<<goto "Generic Plot Events">>
-<<elseif (_effectiveWeek >= 5 && $receiverAvailable == 0)>>
+<<elseif (_effectiveWeek >= 5 && $FCTV.receiver == -1)>>
 	<<goto "SE FCTV Install">>
 <<elseif (_effectiveWeek == 6)>>
 	<<set $Event = "strip club closing">>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index f53c060307f0fa24ca285048dba575776069975f..aa46228cf53ca3da508fac9c28ef0f025b6db9cd 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -101,7 +101,7 @@
 				<</if>>
 			<</if>>
 		<<elseif $pregInventor == 2 && $pregInventions == 1 && $eventSlave.ID == $pregInventorID>>
-			<<if $FCTVreceiver > 0>>
+			<<if $FCTV.receiver > 0>>
 				<<if ($eventSlave.bellyPreg >= 1000000)>>
 					<<if $eventSlave.fetish != "mindbroken" && $eventSlave.fuckdoll == 0>>
 						<<if ($eventSlave.devotion > 50)>>
diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw
index 74bb0057e10a20629b9ea095e816e11390e976c6..f870103877af26a6468127912b16d350339c28e1 100644
--- a/src/uncategorized/scheduledEvent.tw
+++ b/src/uncategorized/scheduledEvent.tw
@@ -127,12 +127,9 @@
 <<elseif ($birthee != 0)>>
 	<<set $birthed = 0>>
 	<<goto "SE Birth">>
-<<elseif ($FCTVshow == 1)>>
-	<<if $week > 50 && $FCTVremote < 2>>
-		<<goto "SE FCTV Remote">>
-	<<else>>
-		<<set $FCTVshow = 0, $activeSlave = 0>>
-		<<goto "SE FCTV Watch">>
+<<elseif ($FCTV.receiver > 0) && $FCTV.pcViewership.frequency != -1 && $FCTV.pcViewership.count == 0>>
+	<<if $week > 50 && $FCTV.remote < 2>> <<goto "SE FCTV Remote">>
+	<<else>> <<goto "SE FCTV Watch">>
 	<</if>>
 <<elseif ($Recruiter != 0 && $recruiterEugenics == 0 && $recruiterProgress >= 13)>>
 	<<goto "SE recruiter success">>