diff --git a/Changelog.txt b/Changelog.txt
index ae020e11c9a30261b7dbf27702f14b198e7b5a60..b68a3883de446f9981d4e84f6d4490288f389fa0 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -2,6 +2,36 @@ Pregmod
 
 0.10.7.1-3.1.x
 
+	-added overflow feedback to demand
+
+	12/11/2019
+
+	4
+	-JS'd saGetMilked
+	-milk value slightly boosted with repopulation law
+	-tweaked femCum output upwards
+
+	3
+	-removed lingering isPlayerFertile()s
+	-fixes
+
+	12/10/2019
+
+	2
+	-fixed critical error in BC player object conversion
+	-temporarily added option to remove accidental dicks from the player to options
+
+	12/09/2019
+
+	1
+	-added slave search feature
+	-closed major RA exploit
+	-cheat edit player and player testicle enhancement re-enabled
+	-slave listing performance improvements
+	-fixes and cleaning
+
+	12/04/2019
+
 	0
 	-standardized player and slave objects
 	-cheat edit player and player testicle enhancement disabled for cleaning
@@ -17,7 +47,6 @@ Pregmod
 	11/21/2019
 
 	0
-	
 	-added FS Intellectual Dependency
 	-added FS Slave Professionalism
 	-added FS Statuesque Glorification
@@ -29,7 +58,7 @@ Pregmod
 0.10.7.1-2.9.x
 
 	11/09/2019
-	
+
 	2
 
 	-sugarcube updated to 2.30.0
@@ -38,7 +67,7 @@ Pregmod
 	-various minor fixes and cleaning
 
 	10/28/2019
-	
+
 	1
 	-beta 3.0.0 work (schoolroom remodel)
 	-added ability to reject delivered custom slaves without closing the order
@@ -48,7 +77,7 @@ Pregmod
 	-saTakeClasses JSification
 
 	10/15/2019
-	
+
 	0
 	-corporation overhauling
 	-some minor ui settings
diff --git a/compile.sh b/compile.sh
index ca18ce3d5cb1a0dae61f6e61ddaa9ad6b813d767..dc9140f965b049e6f595d1f0bca62b50d32f8a47 100755
--- a/compile.sh
+++ b/compile.sh
@@ -29,9 +29,7 @@ function echoMessage {
 
 #compile the HTML file
 function compile {
-
-	mkdir -p bin
-
+	mkdir -p bin/resources
 	export TWEEGO_PATH=devTools/tweeGo/storyFormats
 	TWEEGO_EXE="tweego"
 
@@ -66,17 +64,19 @@ function compile {
 		esac
 	fi
 
-	if [[ "$usehash" ]]; then
-		HASH="$(git rev-list -n 1 --abbrev-commit HEAD)"
-		file="bin/FC_pregmod_${HASH}.html"
-	else
+	if [[ -d .git ]]; then
 		COMMIT=$(git rev-parse --short HEAD) # Find and insert current commit
-		sed -Ei "s/build .releaseID/\0 commit $COMMIT/" src/gui/mainMenu/AlphaDisclaimer.tw
+		if [[ "$usehash" ]]; then
+			file="bin/FC_pregmod_${COMMIT}.html"
+		else
+			sed -Ei "s/build: .releaseID/\0, commit: $COMMIT/" src/gui/mainMenu/AlphaDisclaimer.tw
+			file="bin/FC_pregmod.html"
+		fi
+	else
 		file="bin/FC_pregmod.html"
 	fi
 
 	$TWEEGO_EXE -o $file src/ --head devTools/head.html || build_failed="true"
-
 	if [ "$build_failed" = "true" ]
 	then
 		echoError "Build failed."
@@ -85,9 +85,9 @@ function compile {
 
 	#Make the output prettier, replacing \t with a tab and \n with a newline
 	sed -i -e '/^.*<div id="store-area".*$/s/\\t/\t/g' -e '/^.*<div id="store-area".*$/s/\\n/\n/g' $file
-
-	mkdir -p bin/resources
-	if [[ ! "$usehash" ]]; then git checkout -- src/gui/mainMenu/AlphaDisclaimer.tw;fi # Revert AlphaDisclaimer for next compilation
+	if [[ -d .git ]]; then
+		git checkout -- src/gui/mainMenu/AlphaDisclaimer.tw # Revert AlphaDisclaimer for next compilation
+	fi
 	echoMessage "Saved to $file."
 }
 
@@ -131,6 +131,10 @@ fi
 [ -n "$java" ] && ./sanityCheck.sh java
 [ -n "$python" ] && ./sanityCheck.sh
 
+if ! [[ -d .git ]]; then
+	echoMessage "No git repository. Git specfific actions disabled."
+fi
+
 #compile
 if [[ "$dry" ]]; then
 	echoMessage "Dry run finished."
diff --git a/devNotes/Useful JS Function Documentation.txt b/devNotes/Useful JS Function Documentation.txt
index c81a21482a1e8738082c31ad56d50cbe39141efb..602967b831108ea89b67a0622513be3167fafa7f 100644
--- a/devNotes/Useful JS Function Documentation.txt	
+++ b/devNotes/Useful JS Function Documentation.txt	
@@ -58,6 +58,8 @@ mutualChildren(slave1, slave2) - Returns if slave1 and slave2 have children toge
 
 isSlaveAvailable(slave) - Returns if slave is available and not confined someplace.
 
+assignmentVisible(slave) - Returns whether a slave's current assignment is shown in Main. Often used as a proxy for "penthouse slave".
+
 randomRelatedSlave(slave) - Returns a random relative of slave if possible.
 
 randomRelatedAvailableSlave(slave) - Returns a random available relative of slave if possible.
@@ -86,9 +88,7 @@ canBreed(slave1, slave2) - Returns if slave1 and slave2 are capable of breeding
 
 canImpreg(slave1, slave2) - Returns if slave2 can impregnate slave1. PC works as an argument as well.
 
-isFertile(slave) - Returns if the slave is capable of having children.
-
-isPlayerFertile(PC) - Returns if the player can get pregnant.
+isFertile(slave) - Returns if the actor is capable of having children.
 
 canAchieveErection(slave) - Returns if the slave can get an erection. (Not blocked by chastity.)
 
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 30050c331600173014d109551835c2999fc65412..e03826017476958517a98b40adb8c2dec4204cea 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -901,12 +901,6 @@ slave's assignment
 		"guard you"
 		"recruit girls"
 
-assignmentVisible:
-
-shows assignment in descriptions
-0 - yes
-1 - no
-
 sentence:
 
 how many weeks a slave is sentenced to work a job
diff --git a/src/001-lib/04-ScopeMacro/ScopeMacro.js b/src/001-lib/04-ScopeMacro/ScopeMacro.js
new file mode 100644
index 0000000000000000000000000000000000000000..08999d246d4e3dc84310c453e794538c14c7d0ac
--- /dev/null
+++ b/src/001-lib/04-ScopeMacro/ScopeMacro.js
@@ -0,0 +1,57 @@
+Macro.add('scope', {
+	skipArgs : true,
+	tags     : null,
+	handler() {
+		const oldTemporary = State.temporary;
+		const restoreOldTemporary = function() {
+			let keys = Object.keys(oldTemporary);
+			for(let i=0; i<keys.length; ++i) {
+				let key = keys[i];
+				let obj = oldTemporary[key];
+				State.temporary[key] = obj;
+			}
+		};
+		let keepOverwrites = false;
+		try {
+			State.clearTemporary();
+			if(/^\s*as\s+child\s*$/.test(this.args.raw)) {
+				restoreOldTemporary();
+				keepOverwrites = true;
+			} else {
+				const varRe = new RegExp(`(${Patterns.variable})`, 'g');
+				let match;
+				/*
+					Cache the existing values of the variables and add a shadow.
+				*/
+				while ((match = varRe.exec(this.args.raw)) !== null) {
+					const varName = match[1];
+					const varKey  = varName.slice(1);
+					if(varName[0] === '$') {
+						return this.error("Global variable '" + varName + "'cannot be scoped.");
+					}
+
+					if (!oldTemporary.hasOwnProperty(varKey)) {
+						continue;
+					}
+
+					State.temporary[varKey] = oldTemporary[varKey];
+				}
+			}
+			new Wikifier(this.output, this.payload[0].contents.trim());
+		} finally {
+			if(!keepOverwrites) {
+				State.clearTemporary();
+				restoreOldTemporary();
+			} else {
+				const overwrites = State.temporary;
+				State.clearTemporary();
+				let keys = Object.keys(oldTemporary);
+				for(let i=0; i<keys.length; ++i) {
+					let key = keys[i];
+					let obj = overwrites[key];
+					State.temporary[key] = obj;
+				}
+			}
+		}
+	}
+});
diff --git a/src/002-config/sugarCubeConfig.js b/src/002-config/sugarCubeConfig.js
index bd8bc1e80925d720fd94bcc99e9ce0d6117c0890..43711f8918b3b59977af30039d5d8c6f693fa320 100644
--- a/src/002-config/sugarCubeConfig.js
+++ b/src/002-config/sugarCubeConfig.js
@@ -6,11 +6,11 @@ Config.passages.start = "init";
 
 /* Set description used by Save, for all passages, to give some decent information about game state. */
 Config.passages.descriptions = function () {
-    let sv = State.variables;
-    if (sv.arcologies === undefined || sv.arcologies.length === 0)
-        return "New Game Setup, Week 0"; // no arcology yet...
-    else
-        return sv.arcologies[0].name + ", Week " + sv.week + ", " + sv.slaves.length + " Slaves, " + cashFormat(sv.cash);
+	let sv = State.variables;
+	if (sv.arcologies === undefined || sv.arcologies.length === 0)
+		return "New Game Setup, Week 0"; // no arcology yet...
+	else
+		return sv.arcologies[0].name + ", Week " + sv.week + ", " + sv.slaves.length + " Slaves, " + cashFormat(sv.cash);
 };
 
 /* Disable forward/back buttons in panel. */
diff --git a/src/Corporation/corporate-constants.js b/src/Corporation/corporate-constants.js
index 5117176df8fbae2c14ccd1e309bf2f211c855b92..d10a3590f6f15ff5161d5ce1c4e4d52ced36167a 100644
--- a/src/Corporation/corporate-constants.js
+++ b/src/Corporation/corporate-constants.js
@@ -1,541 +1,541 @@
 App.Corporate.InitConstants = function () {
-    App.Corporate.payoutMinimumCash = 1000000;
-    App.Corporate.payoutCorpValueMultiplier = 0.05;
-    App.Corporate.dividendOptions = [0.75, 0.5, 0.25, 0.1, 0.05];
-    App.Corporate.stockSplits = [
-        {
-            'newStocks': 3,
-            'oldStocks': 2,
-            'weeks': 1,
-            'cost': 7.5
-        },
-        {
-            'newStocks': 2,
-            'weeks': 1,
-            'cost': 10
-        },
-        {
-            'newStocks': 3,
-            'weeks': 2,
-            'cost': 12.5
-        },
-        {
-            'newStocks': 4,
-            'weeks': 3,
-            'cost': 15
-        },
-        {
-            'oldStocks': 4,
-            'weeks': 1,
-            'cost': 15
-        },
-        {
-            'oldStocks': 10,
-            'weeks': 2,
-            'cost': 25
-        },
-    ];
-    /*
-    center/range object: The center value is the average or center value of the property, while range is the value range (centered on center). So if center is 1 and range is 0.5, the value can be anything from 0.75 to 1.25.
+	App.Corporate.payoutMinimumCash = 1000000;
+	App.Corporate.payoutCorpValueMultiplier = 0.05;
+	App.Corporate.dividendOptions = [0.75, 0.5, 0.25, 0.1, 0.05];
+	App.Corporate.stockSplits = [
+		{
+			'newStocks': 3,
+			'oldStocks': 2,
+			'weeks': 1,
+			'cost': 7.5
+		},
+		{
+			'newStocks': 2,
+			'weeks': 1,
+			'cost': 10
+		},
+		{
+			'newStocks': 3,
+			'weeks': 2,
+			'cost': 12.5
+		},
+		{
+			'newStocks': 4,
+			'weeks': 3,
+			'cost': 15
+		},
+		{
+			'oldStocks': 4,
+			'weeks': 1,
+			'cost': 15
+		},
+		{
+			'oldStocks': 10,
+			'weeks': 2,
+			'cost': 25
+		},
+	];
+	/*
+	center/range object: The center value is the average or center value of the property, while range is the value range (centered on center). So if center is 1 and range is 0.5, the value can be anything from 0.75 to 1.25.
 
-    == Base ==
-    id: The variable ID for identifying the department.
-    name: The display name of the department.
-    focusDescription: The descriptive phrase of what the department does:
-    The department focuses on {breaking slaves}.
+	== Base ==
+	id: The variable ID for identifying the department.
+	name: The display name of the department.
+	focusDescription: The descriptive phrase of what the department does:
+	The department focuses on {breaking slaves}.
 
-    sizeCost: How much a single development of the department costs in thousands.
-    maintenance: (object) Defines the amount paid each week.
-        linear: How much a single development costs to maintain each week in thousands.
-        quadratic: Development maintenance increases quadratically; this is the multiplier on the squared development component.
-        category: Which division maintenance category this division belongs to. Multiple divisions in a category increase overhead costs exponentially.
-    founding: (object) Defines information regarding the founding of the division.
-    corporateCash: Defines how much it costs the player to *found the corporation* with this department with a 2-to-1 split, in thousands. This will be the corporation's starting cash, from which the development and slaves will be purchased.
-    startingSize: How developed the department is upon founding, including how many active slaves the department starts with (Note that acquiring divisions don't start with slaves)
-    merger: A list of companies that can be purchased during the merger event. The event will collect all of these company objects associated with owned divisions and pick some at random.
-        name: The generic name of the company that is being purchased. This will have "the" put in front of it, so it must fit with the sentance "The {name} will be bought."
-        cost: How much, in thousands, it will cost to purchase this company. Default: 50.
-        text: An object with the flavor text of the event.
-            trouble: A description of the company and its troubles. Will be in the sentence "The first company is {trouble}"
-            acquire: The text that will be shown when the player chooses to acquire the company. Will be in the sentence "You acquire the {name}{acquire}".
-        result: The functional result of acquiring this company.
-            development: The number of developments that will be added to this division.
-            slaves: the number of activeSlaves that will be added to this division. If the division doesn't have enough room to store them you will have to purchase more development by the end of the week or they will be sold off. *WARNING* Do not provide this property if the division cannot have activeSlave set (Acquiring divisions, for example)
+	sizeCost: How much a single development of the department costs in thousands.
+	maintenance: (object) Defines the amount paid each week.
+		linear: How much a single development costs to maintain each week in thousands.
+		quadratic: Development maintenance increases quadratically; this is the multiplier on the squared development component.
+		category: Which division maintenance category this division belongs to. Multiple divisions in a category increase overhead costs exponentially.
+	founding: (object) Defines information regarding the founding of the division.
+	corporateCash: Defines how much it costs the player to *found the corporation* with this department with a 2-to-1 split, in thousands. This will be the corporation's starting cash, from which the development and slaves will be purchased.
+	startingSize: How developed the department is upon founding, including how many active slaves the department starts with (Note that acquiring divisions don't start with slaves)
+	merger: A list of companies that can be purchased during the merger event. The event will collect all of these company objects associated with owned divisions and pick some at random.
+		name: The generic name of the company that is being purchased. This will have "the" put in front of it, so it must fit with the sentance "The {name} will be bought."
+		cost: How much, in thousands, it will cost to purchase this company. Default: 50.
+		text: An object with the flavor text of the event.
+			trouble: A description of the company and its troubles. Will be in the sentence "The first company is {trouble}"
+			acquire: The text that will be shown when the player chooses to acquire the company. Will be in the sentence "You acquire the {name}{acquire}".
+		result: The functional result of acquiring this company.
+			development: The number of developments that will be added to this division.
+			slaves: the number of activeSlaves that will be added to this division. If the division doesn't have enough room to store them you will have to purchase more development by the end of the week or they will be sold off. *WARNING* Do not provide this property if the division cannot have activeSlave set (Acquiring divisions, for example)
 
-    == Acquiring ==
-    An acquiring division generates new slaves. It can always sell to the market but cannot buy from the market.
-    slaveValue: How much value is added to a slave when it becomes a Held slave.
-    acquiring: (center/range) The percentage of development that can acquire a slave each week.
-    mercenaryHelp: (object) If present, defines how and when your mercenaries (not SF) assist this division in acquiring slaves.
-    level: What level the mercenaries must be above in order to assist.
-    cost: How much each level of mercenary above level costs the department for this assistance, in thousands.
-    nextDivision: (list) The ids of the divisions that acquired slaves can be sent directly to. Note that if any of these divisions can send slaves to a listed division, that division will block this division from sending to it. For example, if A->[B,C] and B->C, then A->C can only happen if B *has not* been founded. Once B is founded, slaves from A must proceed A->B->C and cannot skip to C.
+	== Acquiring ==
+	An acquiring division generates new slaves. It can always sell to the market but cannot buy from the market.
+	slaveValue: How much value is added to a slave when it becomes a Held slave.
+	acquiring: (center/range) The percentage of development that can acquire a slave each week.
+	mercenaryHelp: (object) If present, defines how and when your mercenaries (not SF) assist this division in acquiring slaves.
+	level: What level the mercenaries must be above in order to assist.
+	cost: How much each level of mercenary above level costs the department for this assistance, in thousands.
+	nextDivision: (list) The ids of the divisions that acquired slaves can be sent directly to. Note that if any of these divisions can send slaves to a listed division, that division will block this division from sending to it. For example, if A->[B,C] and B->C, then A->C can only happen if B *has not* been founded. Once B is founded, slaves from A must proceed A->B->C and cannot skip to C.
 
-    ==Processing==
-    A processing division enhances the value of slaves. It can always buy from the market and sell to the market.
-    addedValue: How much value is added to a slave when it becomes a Held slave.
-    processing: (center/range) The percentage of active slaves that become held slaves each week.
-    slaveProcessType: (text object) The verb used for the completion of the processing done on slaves. It will be used to explain when a slave moves from processed to held.
-    present: The department can {break} 5 slaves.
-    past:The department {broke} 5 slaves.
-    slaveProcessDescription: The descriptive phrase for what sort of processing is being done to the division's slaves.
-    present: the department is {breaking} 5 slaves.
-    future: the department will {break} 5 slaves.
-    past: Over the past week, the department {broke} 5 slaves.
-    market: The department bought {fresh slaves} from the market.
-    nextDivision: (list) The ids of the divisions that improved slaves can be sent directly to. Note that if any of these divisions can send slaves to a listed division, that division will block this division from sending to it. For example, if A->[B,C] and B->C, then A->C can only happen if B *has not* been founded. Once B is founded, slaves from A must proceed A->B->C and cannot skip to C.
+	==Processing==
+	A processing division enhances the value of slaves. It can always buy from the market and sell to the market.
+	addedValue: How much value is added to a slave when it becomes a Held slave.
+	processing: (center/range) The percentage of active slaves that become held slaves each week.
+	slaveProcessType: (text object) The verb used for the completion of the processing done on slaves. It will be used to explain when a slave moves from processed to held.
+	present: The department can {break} 5 slaves.
+	past:The department {broke} 5 slaves.
+	slaveProcessDescription: The descriptive phrase for what sort of processing is being done to the division's slaves.
+	present: the department is {breaking} 5 slaves.
+	future: the department will {break} 5 slaves.
+	past: Over the past week, the department {broke} 5 slaves.
+	market: The department bought {fresh slaves} from the market.
+	nextDivision: (list) The ids of the divisions that improved slaves can be sent directly to. Note that if any of these divisions can send slaves to a listed division, that division will block this division from sending to it. For example, if A->[B,C] and B->C, then A->C can only happen if B *has not* been founded. Once B is founded, slaves from A must proceed A->B->C and cannot skip to C.
 
-    ==Working==
-    A working division produces revenue by working slaves. It can always buy from the market but cannot sell to the market.
-    attrition: (center/range) The percentage of active slaves that become no longer workable
-    revenue: (center/range) The amount of money generated by a slave.
-    slaveProcessDescription: The descriptive phrase for what sort of work is being done by the division's slaves and how they are removed from the workforce.
-    present: the department is {exploiting} 5 slaves.
-    future: the department will {exploit} 5 slaves.
-    past: Over the past week, the department {wore out} 5 slaves.
-    market: The department bought {menials} from the market.
+	==Working==
+	A working division produces revenue by working slaves. It can always buy from the market but cannot sell to the market.
+	attrition: (center/range) The percentage of active slaves that become no longer workable
+	revenue: (center/range) The amount of money generated by a slave.
+	slaveProcessDescription: The descriptive phrase for what sort of work is being done by the division's slaves and how they are removed from the workforce.
+	present: the department is {exploiting} 5 slaves.
+	future: the department will {exploit} 5 slaves.
+	past: Over the past week, the department {wore out} 5 slaves.
+	market: The department bought {menials} from the market.
 
 
-    */
-    App.Corporate.divisionList = [
-        new App.Corporate.Division.Acquiring( {
-            'id':'Extra',
-            'name':'Extralegal Enslavement',
-            'focusDescription':'capturing and enslaving prisoners',
-            'sizeCost': 20,
-            'slaveValue':10,
-            'acquiring': {
-                'center':1,
-                'range': 0.8,
-            },
-            'maintenance':{
-                'linear': 7.5,
-                'quadratic': 5,
-                'category':'acquision',
-            },
-            'founding':{
-                'corporateCash':100,
-            },
-            'mercenaryHelp': {
-                'level': 2,
-                'cost': 0.05
-            },
-            'nextDivision': [
-                "Break",
-                "Arcade"
-            ],
-            'merger':[
-                {
-                    'name': 'mercenary company',
-                    'cost': 50,
-                    'text': {
-                        'trouble':'a troubled mercenary company. After a spate of failed operations, the rank and file deposed their management and are now looking to merge with a better-run organization. The old leadership did not engage in enslavement activities, but the mercenaries have decided to turn their talents towards slaving for profit in conflict zones.',
-                        'acquire':' and ease their transition to conflict zone slaving.'
-                    },
-                    'result': {
-                        'development': 5
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Acquiring( {
-            'id': 'Legal',
-            'name': 'Legal Enslavement',
-            'focusDescription': 'legal enslavement',
-            'sizeCost': 25,
-            'slaveValue':15,
-            'acquiring': {
-                'center':1,
-                'range': 0.5,
-            },
-            'maintenance':{
-                'linear': 12,
-                'quadratic': 6,
-                'category':'acquision',
-            },
-            'founding':{
-                'corporateCash':125,
-            },
-            'nextDivision': [
-                "Train",
-                "Menial",
-                "Surgery"
-            ],
-            'merger':[
-                {
-                    'name':'telemarketing firm',
-                    'cost': 50,
-                    'text': {
-                        'trouble':'an old world telemarketing firm. In an attempt to survive in the changing economy, it turned its focus towards convincing desperate, ignorant, or stupid people from the old world to accept voluntary enslavement, through a variety of entrapment procedures. It failed to make the transition successfully, but you could certainly continue its operations under your aegis.',
-                        'acquire':' and clean out the deadwood, getting the business in Free Cities shape.'
-                    },
-                    'result': {
-                        'development':5
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Processing( {
-            'id': 'Break',
-            'name': 'Slave Breaking',
-            'focusDescription': 'breaking slaves',
-            'sizeCost': 10,
-            'addedValue': 5,
-            'processing': {
-                'center':0.3,
-                'range':0.3,
-            },
-            'maintenance':{
-                'linear': 0.45,
-                'quadratic': 0.6,
-                'category':'processing',
-            },
-            'founding':{
-                'corporateCash':25,
-            },
-            'slaveProcessType':{
-                'present':'break',
-                'past':'broke'
-            },
-            'slaveProcessDescription':{
-                'present':'attempting to break',
-                'future':'break',
-                'past':'broken',
-                'market': {
-                    single: 'slave that needs breaking',
-                    plural: 'slaves that need breaking'
-                }
-            },
-            'nextDivision': [
-                "Train",
-                "Menial",
-                "Surgery"
-            ],
-            'merger':[
-                {
-                    'name': 'slave breaking facility',
-                    'cost': 50,
-                    'text': {
-                        'trouble':'a small slave breaking firm. Despite a great need for obedient slaves the owner of this little establishment was unable to turn a profit. The facility has everything a respecting slave breaking could ever need, it seems the owner simply lacked the right character to apply effective breaking techniques. Your corporation knows perfectly well what it takes to achieve obedience and the assets can be put to great use.',
-                        'acquire':' and staff it with qualified personnel to make use of the new assets.'
-                    },
-                    'result': {
-                        'development':5,
-                        'slaves':5
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Processing( {
-            'id': 'Surgery',
-            'name': 'Slave Modifications',
-            'focusDescription': 'physical slave modifications',
-            'sizeCost': 20,
-            'addedValue':8,
-            'processing': {
-                'center':0.5,
-                'range':0.2,
-            },
-            'maintenance':{
-                'linear': 2.4,
-                'quadratic': 1,
-                'category':'processing',
-            },
-            'founding':{
-                'corporateCash':55,
-            },
-            'slaveProcessType':{
-                'present':'modify',
-                'past':'finished working on'
-            },
-            'slaveProcessDescription':{
-                'present':'working on',
-                'future':'work on',
-                'past':'improved',
-                'market': {
-                    single: 'slave that could use some work done to their body',
-                    plural: 'slaves that could use some work done to their bodies'
-                }
-            },
-            'nextDivision': [
-                "Train",
-                "Dairy"
-            ],
-            'merger':[
-                {
-                    'name': 'medical clinic',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a small medical clinic. Medical malpractice continues to be a major source of trouble for surgeons in the old world. A plastic surgeon has just suffered defeat in a major legal case over implant ruptures. He's looking to make the transition to a more enlightened area, along with his inventory and staff.",
-                        'acquire':" and the surgeon decides to retire on the proceeds of the sale, wishing your corporation well. It was a smart decision; he can retire to the Free Cities on that sum of money, and remote surgery is killing surgeons' wages."
-                    },
-                    'result': {
-                        'development': 3,
-                        'slaves':3
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Processing( {
-            'id': 'Train',
-            'name': 'Slave Training',
-            'focusDescription': 'training slaves',
-            'sizeCost': 25,
-            'addedValue': 11,
-            'processing': {
-                'center':0.2,
-                'range':0.3,
-            },
-            'maintenance':{
-                'linear': 0.7,
-                'quadratic': 1,
-                'category':'processing',
-            },
-            'founding':{
-                'corporateCash':50,
-            },
-            'slaveProcessType':{
-                'present':'train',
-                'past':'trained'
-            },
-            'slaveProcessDescription':{
-                'present':'training',
-                'future':'train',
-                'past':'trained',
-                'market': {
-                    single: 'slave that needs slave training',
-                    plural: 'slaves that need slave training'
-                }
-            },
-            'nextDivision': [
-                "Whore"
-            ],
-            'merger':[
-                {
-                    'name': 'slave training firm',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a small slave training firm. Slave training is a notoriously difficult business, since the maturation times on the merchandise can be extremely long, and the improvement in price can be marginal if the training does not prove highly successful. There's nothing inherently wrong with the business, they've simply hit a cash flow bottleneck and need to merge with a cash-rich organization like yours.",
-                        'acquire':". The previous owners are happy they'll be able to continue operations under the aegis of a better-run, richer corporation."
-                    },
-                    'result': {
-                        'development': 3,
-                        'slaves':3
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Working( {
-            'id': 'Arcade',
-            'name': 'Sex Arcades',
-            'focusDescription': 'operating sex arcades',
-            'sizeCost': 5,
-            'attrition': {
-                'center':0.05,
-                'range':0.2,
-            },
-            'maintenance':{
-                'linear': 0.2,
-                'quadratic': 0.125,
-                'category':'working',
-            },
-            'revenue':{
-                'center':1000,
-                'range':0.1
-            },
-            'founding':{
-                'corporateCash':15,
-                'startingSize':20,
-            },
-            'slaveWorkDescription':{
-                'present':'exploiting',
-                'future':'exploit',
-                'past':'wore out',
-                'market': 'fresh slave'
-            },
-            'merger':[
-                {
-                    'name': 'café',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a quaint maid café. The prime location together with a popular concept should make for a bustling business and yet the owner is looking to get out of the business hoping to salvage some of his savings. Sadly there was a lack of capital to employ attractive servant slave maids. While someone might very well be more than willing to come in and invest in some better slaves, the place is so cheap you could easily replace the furniture and use the current assets to create a new arcade location for your corporation instead.",
-                        'acquire':". The old owner wishes his slaves luck under the new management, not knowing your plans for the place. A new sex arcade under your corporate umbrella will open shortly."
-                    },
-                    'result': {
-                        'development':5,
-                        'slaves':5
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Working( {
-            'id': 'Menial',
-            'name': 'Menial Services',
-            'focusDescription': 'offering menial services',
-            'sizeCost': 6.5,
-            'attrition': {
-                'center':0.05,
-                'range':0.2,
-            },
-            'maintenance':{
-                'linear': 0.2,
-                'quadratic': 0.1,
-                'category':'working',
-            },
-            'revenue':{
-                'center':1250,
-                'range':0.2
-            },
-            'founding':{
-                'corporateCash':20,
-                'startingSize':20,
-            },
-            'slaveWorkDescription':{
-                'present':'exploiting',
-                'future':'exploit',
-                'past':'wore out',
-                'market':'menial slave'
-            },
-            'merger':[
-                {
-                    'name': 'slaveholding firm',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a minor slaveholding company. A major deal with a troubled government just fell through, and they had depended on it going through to an unwise degree. They need to merge with a larger slaving concern immediately, but there's nothing at all wrong with their significant inventory of slaves.",
-                        'acquire':", cash out its hapless staff, and absorb its stock into your corporation."
-                    },
-                    'result': {
-                        'development':5,
-                        'slaves':5
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Working( {
-            'id': 'Dairy',
-            'name': 'Dairy',
-            'focusDescription': 'milking slaves',
-            'sizeCost': 15,
-            'attrition': {
-                'center':0.05,
-                'range':0.2,
-            },
-            'maintenance':{
-                'linear': 0.85,
-                'quadratic': 0.4,
-                'category':'working',
-            },
-            'revenue':{
-                'center':3000,
-                'range':0.2
-            },
-            'founding':{
-                'corporateCash':25,
-            },
-            'slaveWorkDescription':{
-                'present':'milking',
-                'future':'milk',
-                'past':'ran dry',
-                'market': 'cow'
-            },
-            'merger':[
-                {
-                    'name': 'farm',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a dairy farm. Why a conventional dairy farm popped up as target confused you for a moment, but it quickly became clear the entire family was so deep in debt it would be a no brainer to buy the farm and start milking the large-uddered farmer's daughters as a great addition to your corporate dairy.",
-                        'acquire':" and your new slaves for the corporation. The family is not happy with your plans, but their approval is not required, you care only for their fluids."
-                    },
-                    'result': {
-                        'development':3,
-                        'slaves':3
-                    }
-                }
-            ]
-        }),
-        new App.Corporate.Division.Working( {
-            'id': 'Whore',
-            'name': 'Escort Service',
-            'focusDescription': 'whoring out slaves',
-            'sizeCost': 20,
-            'attrition': {
-                'center':0.05,
-                'range':0.2,
-            },
-            'maintenance':{
-                'linear': 0.7,
-                'quadratic': 0.25,
-                'category':'working',
-            },
-            'revenue':{
-                'center':3000,
-                'range':0.1
-            },
-            'founding':{
-                'corporateCash':50,
-            },
-            'slaveWorkDescription':{
-                'present':'whoring out',
-                'future':'whore out',
-                'past':'lost their appeal',
-                'market': 'trained whore'
-            },
-            'merger':[
-                {
-                    'name': 'brothel',
-                    'cost': 50,
-                    'text': {
-                        'trouble':"a little brothel. With slave whores becoming the dominant force in sexual services the current madam lost her passion for the business. She's getting up there in age and has run a tight ship for many years so she deemed it the right time to bow out. All you need to do to add a new brothel location for your corporation is sign at the dotted line before anyone else has a chance to bite.",
-                        'acquire':" before anyone else can make an offer. The madam is surprised by your speed, but happily signs over the brothel."
-                    },
-                    'result': {
-                        'development':3,
-                        'slaves':3
-                    }
-                }
-            ]
-        })
-    ];
-    //divisionCategoriesList: Division maintenance categories are used to calculate the overhead that occurs from having multiple divisions within the same category.
-    //  id: The identifier that will be used in division.maintenance.category
-    //  freeDivisions: How many divisions must appear in this category before the overhead cost comes into play. For example, if this is 1, then the second division will cost divisionCost, and the third will bring the overhead up to four times divisionCost.
-    //  divisionCost: How much to multiply the overhead by in cash. The first division past the free divisions will cost this much, but the value will increase exponentially.
-    //  freeDevelopment: How many developments, totaled across all divisions in the category, are ignored by this category before overhead comes into play. Note: freeDivisions does *not* affect this; if freeDevelopment is 100 and freeDivisions is 1, if you only have a single division with 110 developments, you will be charged for the 10 developments over.
-    //  developmentCost: How much to multiply the squared developments by, in cash. The first development past the ignored value will cost this much, but the cost increases exponentially.
-    //corporate: The corporate-wide overhead for divisions, beyond the individual categories.
-    //  freeDivisions: How many total divisions, across all categories, are ignored before charging corporate level overhead.
-    //  divisionCost: How much to multiply the square of counted divisions in cash. The first counted division will cost this much, but the value increases exponentially.
-    //Equations:
-    // divisionBaseOverhead = (divisions - freeDivisions) ^ 2 * divisionCost
-    // divisionOperationOverhead = (sum(development) - freeDevelopment) ^ 2 * developmentCost
-    // corpOverhead = (divisions - 2) ^ 2 * 10000
-    App.Corporate.maintenance = {
-        divisionCategoriesList: [
-            {
-                id:'acquision',
-                freeDivisions: 0,
-                divisionCost: 25000,
-                freeDevelopment: 100,
-                developmentCost: 2
-            },
-            {
-                id:'processing',
-                freeDivisions: 0,
-                divisionCost: 25000,
-                freeDevelopment: 200,
-                developmentCost: 1
-            },
-            {
-                id:'working',
-                freeDivisions: 1,
-                divisionCost: 15000,
-                freeDevelopment: 800,
-                developmentCost: 0.1
-            },
-        ],
-        corporate: {
-            freeDivisions: 2,
-            divisionCost: 10000
-        }
-    };
+	*/
+	App.Corporate.divisionList = [
+		new App.Corporate.Division.Acquiring( {
+			'id':'Extra',
+			'name':'Extralegal Enslavement',
+			'focusDescription':'capturing and enslaving prisoners',
+			'sizeCost': 20,
+			'slaveValue':10,
+			'acquiring': {
+				'center':1,
+				'range': 0.8,
+			},
+			'maintenance':{
+				'linear': 7.5,
+				'quadratic': 5,
+				'category':'acquision',
+			},
+			'founding':{
+				'corporateCash':100,
+			},
+			'mercenaryHelp': {
+				'level': 2,
+				'cost': 0.05
+			},
+			'nextDivision': [
+				"Break",
+				"Arcade"
+			],
+			'merger':[
+				{
+					'name': 'mercenary company',
+					'cost': 50,
+					'text': {
+						'trouble':'a troubled mercenary company. After a spate of failed operations, the rank and file deposed their management and are now looking to merge with a better-run organization. The old leadership did not engage in enslavement activities, but the mercenaries have decided to turn their talents towards slaving for profit in conflict zones.',
+						'acquire':' and ease their transition to conflict zone slaving.'
+					},
+					'result': {
+						'development': 5
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Acquiring( {
+			'id': 'Legal',
+			'name': 'Legal Enslavement',
+			'focusDescription': 'legal enslavement',
+			'sizeCost': 25,
+			'slaveValue':15,
+			'acquiring': {
+				'center':1,
+				'range': 0.5,
+			},
+			'maintenance':{
+				'linear': 12,
+				'quadratic': 6,
+				'category':'acquision',
+			},
+			'founding':{
+				'corporateCash':125,
+			},
+			'nextDivision': [
+				"Train",
+				"Menial",
+				"Surgery"
+			],
+			'merger':[
+				{
+					'name':'telemarketing firm',
+					'cost': 50,
+					'text': {
+						'trouble':'an old world telemarketing firm. In an attempt to survive in the changing economy, it turned its focus towards convincing desperate, ignorant, or stupid people from the old world to accept voluntary enslavement, through a variety of entrapment procedures. It failed to make the transition successfully, but you could certainly continue its operations under your aegis.',
+						'acquire':' and clean out the deadwood, getting the business in Free Cities shape.'
+					},
+					'result': {
+						'development':5
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Processing( {
+			'id': 'Break',
+			'name': 'Slave Breaking',
+			'focusDescription': 'breaking slaves',
+			'sizeCost': 10,
+			'addedValue': 5,
+			'processing': {
+				'center':0.3,
+				'range':0.3,
+			},
+			'maintenance':{
+				'linear': 0.45,
+				'quadratic': 0.6,
+				'category':'processing',
+			},
+			'founding':{
+				'corporateCash':25,
+			},
+			'slaveProcessType':{
+				'present':'break',
+				'past':'broke'
+			},
+			'slaveProcessDescription':{
+				'present':'attempting to break',
+				'future':'break',
+				'past':'broken',
+				'market': {
+					single: 'slave that needs breaking',
+					plural: 'slaves that need breaking'
+				}
+			},
+			'nextDivision': [
+				"Train",
+				"Menial",
+				"Surgery"
+			],
+			'merger':[
+				{
+					'name': 'slave breaking facility',
+					'cost': 50,
+					'text': {
+						'trouble':'a small slave breaking firm. Despite a great need for obedient slaves the owner of this little establishment was unable to turn a profit. The facility has everything a respecting slave breaking could ever need, it seems the owner simply lacked the right character to apply effective breaking techniques. Your corporation knows perfectly well what it takes to achieve obedience and the assets can be put to great use.',
+						'acquire':' and staff it with qualified personnel to make use of the new assets.'
+					},
+					'result': {
+						'development':5,
+						'slaves':5
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Processing( {
+			'id': 'Surgery',
+			'name': 'Slave Modifications',
+			'focusDescription': 'physical slave modifications',
+			'sizeCost': 20,
+			'addedValue':8,
+			'processing': {
+				'center':0.5,
+				'range':0.2,
+			},
+			'maintenance':{
+				'linear': 2.4,
+				'quadratic': 1,
+				'category':'processing',
+			},
+			'founding':{
+				'corporateCash':55,
+			},
+			'slaveProcessType':{
+				'present':'modify',
+				'past':'finished working on'
+			},
+			'slaveProcessDescription':{
+				'present':'working on',
+				'future':'work on',
+				'past':'improved',
+				'market': {
+					single: 'slave that could use some work done to their body',
+					plural: 'slaves that could use some work done to their bodies'
+				}
+			},
+			'nextDivision': [
+				"Train",
+				"Dairy"
+			],
+			'merger':[
+				{
+					'name': 'medical clinic',
+					'cost': 50,
+					'text': {
+						'trouble':"a small medical clinic. Medical malpractice continues to be a major source of trouble for surgeons in the old world. A plastic surgeon has just suffered defeat in a major legal case over implant ruptures. He's looking to make the transition to a more enlightened area, along with his inventory and staff.",
+						'acquire':" and the surgeon decides to retire on the proceeds of the sale, wishing your corporation well. It was a smart decision; he can retire to the Free Cities on that sum of money, and remote surgery is killing surgeons' wages."
+					},
+					'result': {
+						'development': 3,
+						'slaves':3
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Processing( {
+			'id': 'Train',
+			'name': 'Slave Training',
+			'focusDescription': 'training slaves',
+			'sizeCost': 25,
+			'addedValue': 11,
+			'processing': {
+				'center':0.2,
+				'range':0.3,
+			},
+			'maintenance':{
+				'linear': 0.7,
+				'quadratic': 1,
+				'category':'processing',
+			},
+			'founding':{
+				'corporateCash':50,
+			},
+			'slaveProcessType':{
+				'present':'train',
+				'past':'trained'
+			},
+			'slaveProcessDescription':{
+				'present':'training',
+				'future':'train',
+				'past':'trained',
+				'market': {
+					single: 'slave that needs slave training',
+					plural: 'slaves that need slave training'
+				}
+			},
+			'nextDivision': [
+				"Whore"
+			],
+			'merger':[
+				{
+					'name': 'slave training firm',
+					'cost': 50,
+					'text': {
+						'trouble':"a small slave training firm. Slave training is a notoriously difficult business, since the maturation times on the merchandise can be extremely long, and the improvement in price can be marginal if the training does not prove highly successful. There's nothing inherently wrong with the business, they've simply hit a cash flow bottleneck and need to merge with a cash-rich organization like yours.",
+						'acquire':". The previous owners are happy they'll be able to continue operations under the aegis of a better-run, richer corporation."
+					},
+					'result': {
+						'development': 3,
+						'slaves':3
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Working( {
+			'id': 'Arcade',
+			'name': 'Sex Arcades',
+			'focusDescription': 'operating sex arcades',
+			'sizeCost': 5,
+			'attrition': {
+				'center':0.05,
+				'range':0.2,
+			},
+			'maintenance':{
+				'linear': 0.2,
+				'quadratic': 0.125,
+				'category':'working',
+			},
+			'revenue':{
+				'center':1000,
+				'range':0.1
+			},
+			'founding':{
+				'corporateCash':15,
+				'startingSize':20,
+			},
+			'slaveWorkDescription':{
+				'present':'exploiting',
+				'future':'exploit',
+				'past':'wore out',
+				'market': 'fresh slave'
+			},
+			'merger':[
+				{
+					'name': 'café',
+					'cost': 50,
+					'text': {
+						'trouble':"a quaint maid café. The prime location together with a popular concept should make for a bustling business and yet the owner is looking to get out of the business hoping to salvage some of his savings. Sadly there was a lack of capital to employ attractive servant slave maids. While someone might very well be more than willing to come in and invest in some better slaves, the place is so cheap you could easily replace the furniture and use the current assets to create a new arcade location for your corporation instead.",
+						'acquire':". The old owner wishes his slaves luck under the new management, not knowing your plans for the place. A new sex arcade under your corporate umbrella will open shortly."
+					},
+					'result': {
+						'development':5,
+						'slaves':5
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Working( {
+			'id': 'Menial',
+			'name': 'Menial Services',
+			'focusDescription': 'offering menial services',
+			'sizeCost': 6.5,
+			'attrition': {
+				'center':0.05,
+				'range':0.2,
+			},
+			'maintenance':{
+				'linear': 0.2,
+				'quadratic': 0.1,
+				'category':'working',
+			},
+			'revenue':{
+				'center':1250,
+				'range':0.2
+			},
+			'founding':{
+				'corporateCash':20,
+				'startingSize':20,
+			},
+			'slaveWorkDescription':{
+				'present':'exploiting',
+				'future':'exploit',
+				'past':'wore out',
+				'market':'menial slave'
+			},
+			'merger':[
+				{
+					'name': 'slaveholding firm',
+					'cost': 50,
+					'text': {
+						'trouble':"a minor slaveholding company. A major deal with a troubled government just fell through, and they had depended on it going through to an unwise degree. They need to merge with a larger slaving concern immediately, but there's nothing at all wrong with their significant inventory of slaves.",
+						'acquire':", cash out its hapless staff, and absorb its stock into your corporation."
+					},
+					'result': {
+						'development':5,
+						'slaves':5
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Working( {
+			'id': 'Dairy',
+			'name': 'Dairy',
+			'focusDescription': 'milking slaves',
+			'sizeCost': 15,
+			'attrition': {
+				'center':0.05,
+				'range':0.2,
+			},
+			'maintenance':{
+				'linear': 0.85,
+				'quadratic': 0.4,
+				'category':'working',
+			},
+			'revenue':{
+				'center':3000,
+				'range':0.2
+			},
+			'founding':{
+				'corporateCash':25,
+			},
+			'slaveWorkDescription':{
+				'present':'milking',
+				'future':'milk',
+				'past':'ran dry',
+				'market': 'cow'
+			},
+			'merger':[
+				{
+					'name': 'farm',
+					'cost': 50,
+					'text': {
+						'trouble':"a dairy farm. Why a conventional dairy farm popped up as target confused you for a moment, but it quickly became clear the entire family was so deep in debt it would be a no brainer to buy the farm and start milking the large-uddered farmer's daughters as a great addition to your corporate dairy.",
+						'acquire':" and your new slaves for the corporation. The family is not happy with your plans, but their approval is not required, you care only for their fluids."
+					},
+					'result': {
+						'development':3,
+						'slaves':3
+					}
+				}
+			]
+		}),
+		new App.Corporate.Division.Working( {
+			'id': 'Whore',
+			'name': 'Escort Service',
+			'focusDescription': 'whoring out slaves',
+			'sizeCost': 20,
+			'attrition': {
+				'center':0.05,
+				'range':0.2,
+			},
+			'maintenance':{
+				'linear': 0.7,
+				'quadratic': 0.25,
+				'category':'working',
+			},
+			'revenue':{
+				'center':3000,
+				'range':0.1
+			},
+			'founding':{
+				'corporateCash':50,
+			},
+			'slaveWorkDescription':{
+				'present':'whoring out',
+				'future':'whore out',
+				'past':'lost their appeal',
+				'market': 'trained whore'
+			},
+			'merger':[
+				{
+					'name': 'brothel',
+					'cost': 50,
+					'text': {
+						'trouble':"a little brothel. With slave whores becoming the dominant force in sexual services the current madam lost her passion for the business. She's getting up there in age and has run a tight ship for many years so she deemed it the right time to bow out. All you need to do to add a new brothel location for your corporation is sign at the dotted line before anyone else has a chance to bite.",
+						'acquire':" before anyone else can make an offer. The madam is surprised by your speed, but happily signs over the brothel."
+					},
+					'result': {
+						'development':3,
+						'slaves':3
+					}
+				}
+			]
+		})
+	];
+	//divisionCategoriesList: Division maintenance categories are used to calculate the overhead that occurs from having multiple divisions within the same category.
+	//  id: The identifier that will be used in division.maintenance.category
+	//  freeDivisions: How many divisions must appear in this category before the overhead cost comes into play. For example, if this is 1, then the second division will cost divisionCost, and the third will bring the overhead up to four times divisionCost.
+	//  divisionCost: How much to multiply the overhead by in cash. The first division past the free divisions will cost this much, but the value will increase exponentially.
+	//  freeDevelopment: How many developments, totaled across all divisions in the category, are ignored by this category before overhead comes into play. Note: freeDivisions does *not* affect this; if freeDevelopment is 100 and freeDivisions is 1, if you only have a single division with 110 developments, you will be charged for the 10 developments over.
+	//  developmentCost: How much to multiply the squared developments by, in cash. The first development past the ignored value will cost this much, but the cost increases exponentially.
+	//corporate: The corporate-wide overhead for divisions, beyond the individual categories.
+	//  freeDivisions: How many total divisions, across all categories, are ignored before charging corporate level overhead.
+	//  divisionCost: How much to multiply the square of counted divisions in cash. The first counted division will cost this much, but the value increases exponentially.
+	//Equations:
+	// divisionBaseOverhead = (divisions - freeDivisions) ^ 2 * divisionCost
+	// divisionOperationOverhead = (sum(development) - freeDevelopment) ^ 2 * developmentCost
+	// corpOverhead = (divisions - 2) ^ 2 * 10000
+	App.Corporate.maintenance = {
+		divisionCategoriesList: [
+			{
+				id:'acquision',
+				freeDivisions: 0,
+				divisionCost: 25000,
+				freeDevelopment: 100,
+				developmentCost: 2
+			},
+			{
+				id:'processing',
+				freeDivisions: 0,
+				divisionCost: 25000,
+				freeDevelopment: 200,
+				developmentCost: 1
+			},
+			{
+				id:'working',
+				freeDivisions: 1,
+				divisionCost: 15000,
+				freeDevelopment: 800,
+				developmentCost: 0.1
+			},
+		],
+		corporate: {
+			freeDivisions: 2,
+			divisionCost: 10000
+		}
+	};
 };
diff --git a/src/Corporation/corporate-divisionAcquiring.js b/src/Corporation/corporate-divisionAcquiring.js
index bdf5a516446dc6e42096050d5c1e62bb7676316d..af87a640601ab0a7e477b3c6354d1da8ba60e0dd 100644
--- a/src/Corporation/corporate-divisionAcquiring.js
+++ b/src/Corporation/corporate-divisionAcquiring.js
@@ -1,89 +1,89 @@
 App.Corporate.Init_DivisionAcquiring = function(shared) {
 
-    App.Corporate.Division.Acquiring = class extends App.Corporate.Division.Base {
-        constructor({slaveValue, acquiring, mercenaryHelp, nextDivision}) {
-            super(arguments[0]);
-            this._const.slaveValue = slaveValue;
-            this._const.acquiring = new averageRange(acquiring);
-            this._const.nextDivisions = nextDivision;
-            if(mercenaryHelp != null) {
-                this._const.mercenaryHelp = {
-                    level: mercenaryHelp.level,
-                    cost: mercenaryHelp.cost
-                }
-            }
-        }
-        //abstract virtual definitions
-        get fromMarket()          { return false; }
-        get toMarket()            { return true; }
-        get heldSlaves()          { return this.getStored("Slaves"); }
-        set heldSlaves(value)     { this.setStored("Slaves",Math.trunc(value)); }
-        get activeSlaves()        { return 0; }
-        set activeSlaves(value)   { throw "Cannot set active slaves for acquiring divisions"; }
-        get processRate()         { return this._const.acquiring.center; }
-        get purchasedSlaveValue() { return null; }
-        get initialSlaveValue()   { return this.soldSlaveValue; }
-        get soldSlaveValue()      { return this._const.slaveValue; }
-        get nounFinishedSlave()   { return "slave"; }
-        get nounSlaveFromMarket() { return "slave"; }
-        messageSlaveCount() {
-            return `It averages <span class="green">${numberWithPluralNonZero(this.developmentCount, "new slave")}</span> each week.`;
-        }
-        messageSlaveOutput() {
-            return shared.MessageSlaveToMarket(this);
-        }
-        message_endWeek_Slaves(divLedger) {
-            let newSlaves = divLedger.slaves.value;
-            if(newSlaves > 0) {
-                return `<span class="green">acquired ${numberWithPlural(newSlaves, "slave")}</span>`
-                     + (this.hadMercenaryHelp ? " with the help of your mercenaries" : "");
-            }
-            else {
-                return `<span class="red">failed to acquire any slaves</span>`
-                     + (this.hadMercenaryHelp ? " even with the help of your mercenaries" : "");
-            }
-        }
-        endWeek_Slaves(divLedger) {
-            let slaves = shared.EndWeekProcessing_Slaves(this.developmentCount, this._const.acquiring);
-            this.heldSlaves += slaves.value;
-            return divLedger.slaves.apply(slaves);
-        }
-        //virtual overrides
-        get purchasedSlaveValue() {
-            return null;
-        }
-        get nextDivisions()       { return this._const.nextDivisions; }
-        dissolve() {
-            App.Corporate.sellSlaves(this, this.heldSlaves);
-            super.dissolve();
-            delete V[`${this._const.corpId}Slaves`];
-        }
-        getAutoBuyFromMarket() {
-            return false;
-        }
-        setAutoBuyFromMarket(value) {
-            throw "Acquiring divisions cannot acquire from the market";
-        }
+	App.Corporate.Division.Acquiring = class extends App.Corporate.Division.Base {
+		constructor({slaveValue, acquiring, mercenaryHelp, nextDivision}) {
+			super(arguments[0]);
+			this._const.slaveValue = slaveValue;
+			this._const.acquiring = new averageRange(acquiring);
+			this._const.nextDivisions = nextDivision;
+			if(mercenaryHelp != null) {
+				this._const.mercenaryHelp = {
+					level: mercenaryHelp.level,
+					cost: mercenaryHelp.cost
+				}
+			}
+		}
+		//abstract virtual definitions
+		get fromMarket()		  { return false; }
+		get toMarket()			{ return true; }
+		get heldSlaves()		  { return this.getStored("Slaves"); }
+		set heldSlaves(value)	 { this.setStored("Slaves",Math.trunc(value)); }
+		get activeSlaves()		{ return 0; }
+		set activeSlaves(value)   { throw "Cannot set active slaves for acquiring divisions"; }
+		get processRate()		 { return this._const.acquiring.center; }
+		get purchasedSlaveValue() { return null; }
+		get initialSlaveValue()   { return this.soldSlaveValue; }
+		get soldSlaveValue()	  { return this._const.slaveValue; }
+		get nounFinishedSlave()   { return "slave"; }
+		get nounSlaveFromMarket() { return "slave"; }
+		messageSlaveCount() {
+			return `It averages <span class="green">${numberWithPluralNonZero(this.developmentCount, "new slave")}</span> each week.`;
+		}
+		messageSlaveOutput() {
+			return shared.MessageSlaveToMarket(this);
+		}
+		message_endWeek_Slaves(divLedger) {
+			let newSlaves = divLedger.slaves.value;
+			if(newSlaves > 0) {
+				return `<span class="green">acquired ${numberWithPlural(newSlaves, "slave")}</span>`
+					 + (this.hadMercenaryHelp ? " with the help of your mercenaries" : "");
+			}
+			else {
+				return `<span class="red">failed to acquire any slaves</span>`
+					 + (this.hadMercenaryHelp ? " even with the help of your mercenaries" : "");
+			}
+		}
+		endWeek_Slaves(divLedger) {
+			let slaves = shared.EndWeekProcessing_Slaves(this.developmentCount, this._const.acquiring);
+			this.heldSlaves += slaves.value;
+			return divLedger.slaves.apply(slaves);
+		}
+		//virtual overrides
+		get purchasedSlaveValue() {
+			return null;
+		}
+		get nextDivisions()	   { return this._const.nextDivisions; }
+		dissolve() {
+			App.Corporate.sellSlaves(this, this.heldSlaves);
+			super.dissolve();
+			delete V[`${this._const.corpId}Slaves`];
+		}
+		getAutoBuyFromMarket() {
+			return false;
+		}
+		setAutoBuyFromMarket(value) {
+			throw "Acquiring divisions cannot acquire from the market";
+		}
 
-        get availableRoom() { return 0; }
-        get maintenanceSlaves() { return this.developmentCount; }
-        get maintenanceCost() {
-            //If it makes sense to have mercenaries help with other types of divisions, this code and the mercenaryHelp property will need to be moved into the super class.
-            let baseCost = super.maintenanceCost;
+		get availableRoom() { return 0; }
+		get maintenanceSlaves() { return this.developmentCount; }
+		get maintenanceCost() {
+			//If it makes sense to have mercenaries help with other types of divisions, this code and the mercenaryHelp property will need to be moved into the super class.
+			let baseCost = super.maintenanceCost;
 
-            if(this.hadMercenaryHelp) {
-                const mercHelpCost = Math.trunc((V.mercenaries - this.mercenaryHelp.level) * this.mercenaryHelp.cost * 1000);
-                baseCost += mercHelpCost;
-            }
-            return baseCost;
-        }
+			if(this.hadMercenaryHelp) {
+				const mercHelpCost = Math.trunc((V.mercenaries - this.mercenaryHelp.level) * this.mercenaryHelp.cost * 1000);
+				baseCost += mercHelpCost;
+			}
+			return baseCost;
+		}
 
-        create() {
-            super.create();
-            this.heldSlaves = 0;
-            shared.FoundingSetupAutoSell(this);
-        }
+		create() {
+			super.create();
+			this.heldSlaves = 0;
+			shared.FoundingSetupAutoSell(this);
+		}
 
-        get hadMercenaryHelp() { return this.mercenaryHelp != null && V.mercenaries > this.mercenaryHelp.level;}
-    };
+		get hadMercenaryHelp() { return this.mercenaryHelp != null && V.mercenaries > this.mercenaryHelp.level;}
+	};
 }
diff --git a/src/Corporation/corporate-divisionBase.js b/src/Corporation/corporate-divisionBase.js
index 90de97fd5715b016bd0eccdc3e8aa1d621a13739..871978c60ae42dddb6c41583269ef8f65c6b7f3b 100644
--- a/src/Corporation/corporate-divisionBase.js
+++ b/src/Corporation/corporate-divisionBase.js
@@ -1,204 +1,204 @@
 App.Corporate.Init_DivisionBase = function(shared) {
 
-    App.Corporate.Division.Base = class {
-        constructor({id, name, focusDescription, sizeCost, maintenance, founding, merger}) {
-            this._const = {};
-            this._const.id = id;
-            this._const.corpId = `corpDiv${capFirstChar(id)}`;
-            this._const.cost = sizeCost;
-            this._const.name = name;
-            this._const.focusDescription = focusDescription;
-            this._const.maintenance = {
-                quadratic: maintenance.quadratic,
-                linear: maintenance.linear,
-                category: maintenance.category
-            };
-            if(founding != null) {
-                this._const.founding = new shared.FoundingType(this, founding);
-            }
-            if(merger != null && _.isObject(merger) || (Array.isArray(merger) && merger.length > 0)) {
-                if(!Array.isArray(merger)) {
-                    merger = [merger];
-                }
-                this._const.merger = merger;
-            }
-            this.relatedDivisions = new shared.RelatedDivisionType();
-        }
-        //initialized data
-        get id()                  { return this._const.id; }
-        get sizeCost()            { return this._const.cost; }
-        get name()                { return this._const.name; }
-        get focusDescription()    { return this._const.focusDescription; }
-        get founding()            { return this._const.founding; }
-        get nextDivisions()       { return null; }
-        get hasMergers()          { return this._const.merger != null; }
-        get mergerChoices()       { return this._const.merger; }
-        get maintenanceCategory() { return this._const.maintenance.category; }
+	App.Corporate.Division.Base = class {
+		constructor({id, name, focusDescription, sizeCost, maintenance, founding, merger}) {
+			this._const = {};
+			this._const.id = id;
+			this._const.corpId = `corpDiv${capFirstChar(id)}`;
+			this._const.cost = sizeCost;
+			this._const.name = name;
+			this._const.focusDescription = focusDescription;
+			this._const.maintenance = {
+				quadratic: maintenance.quadratic,
+				linear: maintenance.linear,
+				category: maintenance.category
+			};
+			if(founding != null) {
+				this._const.founding = new shared.FoundingType(this, founding);
+			}
+			if(merger != null && _.isObject(merger) || (Array.isArray(merger) && merger.length > 0)) {
+				if(!Array.isArray(merger)) {
+					merger = [merger];
+				}
+				this._const.merger = merger;
+			}
+			this.relatedDivisions = new shared.RelatedDivisionType();
+		}
+		//initialized data
+		get id()				  { return this._const.id; }
+		get sizeCost()			{ return this._const.cost; }
+		get name()				{ return this._const.name; }
+		get focusDescription()	{ return this._const.focusDescription; }
+		get founding()			{ return this._const.founding; }
+		get nextDivisions()	   { return null; }
+		get hasMergers()		  { return this._const.merger != null; }
+		get mergerChoices()	   { return this._const.merger; }
+		get maintenanceCategory() { return this._const.maintenance.category; }
 
-        //stored variables
-        get founded()               { return this.getStored('') == 1; }
-        get foundedDate()           { return this.getStored('Founded');}
-        get developmentCount()      { return this.getStored("Dev"); }
-        set developmentCount(value) {
-            if(value < 0) throw "Cannot set development count to less than 0";
-            //dissolve is the only function that sets founded to false.
-            if(value == 0 && this.founded) throw "Cannot set development count to 0; use dissolve instead.";
-            this.setStored("Dev", value);
-        }
+		//stored variables
+		get founded()			   { return this.getStored('') == 1; }
+		get foundedDate()		   { return this.getStored('Founded');}
+		get developmentCount()	  { return this.getStored("Dev"); }
+		set developmentCount(value) {
+			if(value < 0) throw "Cannot set development count to less than 0";
+			//dissolve is the only function that sets founded to false.
+			if(value == 0 && this.founded) throw "Cannot set development count to 0; use dissolve instead.";
+			this.setStored("Dev", value);
+		}
 
-        //calculated
-        get availableRoom()       { return Math.max(0, this.developmentCount - this.activeSlaves); }
-        get maintenanceCost() {
-            return Math.trunc( this._const.maintenance.linear    * 1000 * this.developmentCount
-                             + this._const.maintenance.quadratic * Math.pow(this.activeSlaves, 2));
-        }
-        get foundingCostDivision() { return this._const.founding.size * this.sizeCost; }
-        get foundingCost()         { return this.foundingCostDivision; }
-        get canFoundCorporation()  { return this._const.founding != null; }
-        get foundingCash() {
-            if(!this.canFoundCorporation) throw `${this.name} is not set up found a corporation`
-            return 1000 * this._const.founding.startingPrice;
-        }
-        get value() {
-            const developmentValue = this.developmentCount * this.sizeCost * 800;
-            let slaveProcValue = 0;
-            let slaveHeldValue = 0;
+		//calculated
+		get availableRoom()	   { return Math.max(0, this.developmentCount - this.activeSlaves); }
+		get maintenanceCost() {
+			return Math.trunc( this._const.maintenance.linear	* 1000 * this.developmentCount
+							 + this._const.maintenance.quadratic * Math.pow(this.activeSlaves, 2));
+		}
+		get foundingCostDivision() { return this._const.founding.size * this.sizeCost; }
+		get foundingCost()		 { return this.foundingCostDivision; }
+		get canFoundCorporation()  { return this._const.founding != null; }
+		get foundingCash() {
+			if(!this.canFoundCorporation) throw `${this.name} is not set up found a corporation`
+			return 1000 * this._const.founding.startingPrice;
+		}
+		get value() {
+			const developmentValue = this.developmentCount * this.sizeCost * 800;
+			let slaveProcValue = 0;
+			let slaveHeldValue = 0;
 
-            if(this.activeSlaves > 0)
-                slaveProcValue = this.activeSlaves * this.purchasedSlaveValue * 1000;
-            if(this.heldSlaves > 0)
-                slaveHeldValue = this.heldSlaves * this.soldSlaveValue * 1000;
+			if(this.activeSlaves > 0)
+				slaveProcValue = this.activeSlaves * this.purchasedSlaveValue * 1000;
+			if(this.heldSlaves > 0)
+				slaveHeldValue = this.heldSlaves * this.soldSlaveValue * 1000;
 
-            return developmentValue + slaveProcValue + slaveHeldValue;
-        }
+			return developmentValue + slaveProcValue + slaveHeldValue;
+		}
 
-        //abstract virtual
-        get fromMarket()                     { throw "Must be defined"; }
-        get toMarket()                       { throw "Must be defined"; }
-        get heldSlaves()                     { throw "Must be defined"; }
-        set heldSlaves(value)                { throw "Must be defined"; }
-        get activeSlaves()                   { throw "Must be defined"; }
-        set activeSlaves(value)              { throw "Must be defined"; }
-        get processRate()                    { throw "Must be defined"; }
-        get initialSlaveValue()              { throw "Must be defined"; }
-        get soldSlaveValue()                 { throw "Must be defined"; }
-        get slaveAction()                    { throw "Must be defined"; }
-        get nounFinishedSlave()              { throw "Must be defined"; }
-        get nounSlaveFromMarket()            { throw "Must be defined"; }
-        messageSlaveCount()                  { throw "Must be defined"; }
-        messageSlaveOutput()                 { throw "Must be defined"; }
-        message_endWeek_Slaves(divLedger)    { throw "Must be defined"; }
-        endWeek_Slaves(ledger, divLedger)    { throw "Must be defined"; }
+		//abstract virtual
+		get fromMarket()					 { throw "Must be defined"; }
+		get toMarket()					   { throw "Must be defined"; }
+		get heldSlaves()					 { throw "Must be defined"; }
+		set heldSlaves(value)				{ throw "Must be defined"; }
+		get activeSlaves()				   { throw "Must be defined"; }
+		set activeSlaves(value)			  { throw "Must be defined"; }
+		get processRate()					{ throw "Must be defined"; }
+		get initialSlaveValue()			  { throw "Must be defined"; }
+		get soldSlaveValue()				 { throw "Must be defined"; }
+		get slaveAction()					{ throw "Must be defined"; }
+		get nounFinishedSlave()			  { throw "Must be defined"; }
+		get nounSlaveFromMarket()			{ throw "Must be defined"; }
+		messageSlaveCount()				  { throw "Must be defined"; }
+		messageSlaveOutput()				 { throw "Must be defined"; }
+		message_endWeek_Slaves(divLedger)	{ throw "Must be defined"; }
+		endWeek_Slaves(ledger, divLedger)	{ throw "Must be defined"; }
 
-        //The value of a slave ignoring enhancements from founded divisions
-        //The actual value of a slave after all improvements
-        get purchasedSlaveValue() {
-            let cheapest  = { 'value':Number.MAX_VALUE, 'div': null};
-            let expensive = { 'value': 0              , 'div': null};
-            for(let fromDiv of this.relatedDivisions.from) {
-                let initialValue = fromDiv.initialSlaveValue;
-                if(initialValue < cheapest.value) {
-                    cheapest.value = initialValue;
-                    cheapest.div = fromDiv;
-                }
-                if(fromDiv.founded) {
-                    let soldValue = fromDiv.soldSlaveValue;
-                    if(soldValue > expensive.value) {
-                        expensive.value = soldValue;
-                        expensive.div = fromDiv;
-                    }
-                }
-            }
-            if(expensive.div != null && expensive.value != cheapest.value) {
-                //The added value of an owned intermediary takes time to work its way through this division to the next
-                let expensiveDiv = expensive.div;
-                let valueDiff = expensive.value - cheapest.value;
-                let weeksSinceFounding = V.week - (expensiveDiv.foundedDate || 0);
-                let weeksToProcess = 10 * expensiveDiv.processRate;
-                let multiplier = Math.min(weeksSinceFounding / weeksToProcess, 1);
-                let finalAddedValue = valueDiff * multiplier;
-                return cheapest.value + finalAddedValue;
-            }
-            else if(cheapest.div != null) {
-                return cheapest.value;
-            }
-            throw "No route to acquisition found.";
-        }
-        get maintenanceSlaves() { return this.activeSlaves * this.processRate; }
-        getDisplayMaintenanceCost() {
-            const cost    = this.maintenanceCost;
-            const processedCount = this.maintenanceSlaves;
+		//The value of a slave ignoring enhancements from founded divisions
+		//The actual value of a slave after all improvements
+		get purchasedSlaveValue() {
+			let cheapest  = { 'value':Number.MAX_VALUE, 'div': null};
+			let expensive = { 'value': 0			  , 'div': null};
+			for(let fromDiv of this.relatedDivisions.from) {
+				let initialValue = fromDiv.initialSlaveValue;
+				if(initialValue < cheapest.value) {
+					cheapest.value = initialValue;
+					cheapest.div = fromDiv;
+				}
+				if(fromDiv.founded) {
+					let soldValue = fromDiv.soldSlaveValue;
+					if(soldValue > expensive.value) {
+						expensive.value = soldValue;
+						expensive.div = fromDiv;
+					}
+				}
+			}
+			if(expensive.div != null && expensive.value != cheapest.value) {
+				//The added value of an owned intermediary takes time to work its way through this division to the next
+				let expensiveDiv = expensive.div;
+				let valueDiff = expensive.value - cheapest.value;
+				let weeksSinceFounding = V.week - (expensiveDiv.foundedDate || 0);
+				let weeksToProcess = 10 * expensiveDiv.processRate;
+				let multiplier = Math.min(weeksSinceFounding / weeksToProcess, 1);
+				let finalAddedValue = valueDiff * multiplier;
+				return cheapest.value + finalAddedValue;
+			}
+			else if(cheapest.div != null) {
+				return cheapest.value;
+			}
+			throw "No route to acquisition found.";
+		}
+		get maintenanceSlaves() { return this.activeSlaves * this.processRate; }
+		getDisplayMaintenanceCost() {
+			const cost	= this.maintenanceCost;
+			const processedCount = this.maintenanceSlaves;
 
-            return { cost, perUnit: cost / processedCount };
-        }
-        getAutoSendToDivision(division) {
-            return !App.Corporate.ownsIntermediaryDivision(this, division)
-                && this.getStored(`To${division.id}`) == 1;
-        }
-        setAutoSendToDivision(division, value) {
-            this.setStored(`To${division.id}`, value ? 1 : 0);
-        }
-        getAutoSendToMarket() {
-            return this.getStored("ToMarket") == 1;
-        }
-        setAutoSendToMarket(value) {
-            this.setStored("ToMarket", value ? 1 : 0);
-        }
-        getAutoBuyFromMarket() {
-            return this.getStored("FromMarket");
-        }
-        setAutoBuyFromMarket(value) {
-            this.setStored("FromMarket", value ? 1 : 0);
-        }
-        endweek_Revenue(divLedger) {
-            //Unless otherwise specified, divisions don't produce revenue directly.
-        }
-        endWeek_Transfer(divLedger) {
-            let transferRetval = { total:0 };
-            let divisions = [];
-            for(let otherDiv of this.relatedDivisions.to.filter(div=> div.founded && this.getAutoSendToDivision(div))) {
-                const otherLedger = divLedger.weekLedger.getDivision(otherDiv);
+			return { cost, perUnit: cost / processedCount };
+		}
+		getAutoSendToDivision(division) {
+			return !App.Corporate.ownsIntermediaryDivision(this, division)
+				&& this.getStored(`To${division.id}`) == 1;
+		}
+		setAutoSendToDivision(division, value) {
+			this.setStored(`To${division.id}`, value ? 1 : 0);
+		}
+		getAutoSendToMarket() {
+			return this.getStored("ToMarket") == 1;
+		}
+		setAutoSendToMarket(value) {
+			this.setStored("ToMarket", value ? 1 : 0);
+		}
+		getAutoBuyFromMarket() {
+			return this.getStored("FromMarket");
+		}
+		setAutoBuyFromMarket(value) {
+			this.setStored("FromMarket", value ? 1 : 0);
+		}
+		endweek_Revenue(divLedger) {
+			//Unless otherwise specified, divisions don't produce revenue directly.
+		}
+		endWeek_Transfer(divLedger) {
+			let transferRetval = { total:0 };
+			let divisions = [];
+			for(let otherDiv of this.relatedDivisions.to.filter(div=> div.founded && this.getAutoSendToDivision(div))) {
+				const otherLedger = divLedger.weekLedger.getDivision(otherDiv);
 
-                const room = otherDiv.availableRoom - otherLedger.transfer.in;
-                if(room == 0) continue;
-                divisions.push({division: otherDiv, room});
-            }
-            const fillDivisions = evenFillArray(divisions, this.heldSlaves, pair=>pair.room);
-            for(const filled of fillDivisions) {
-                const division = filled.item.division;
-                const value = filled.value;
-                divLedger.transfer.addDivision(division, value);
-            }
+				const room = otherDiv.availableRoom - otherLedger.transfer.in;
+				if(room == 0) continue;
+				divisions.push({division: otherDiv, room});
+			}
+			const fillDivisions = evenFillArray(divisions, this.heldSlaves, pair=>pair.room);
+			for(const filled of fillDivisions) {
+				const division = filled.item.division;
+				const value = filled.value;
+				divLedger.transfer.addDivision(division, value);
+			}
 
-        }
-        endWeek_Market(divLedger) {
-            if(this.getAutoSendToMarket()) {
-                divLedger.market.sell = this.heldSlaves - divLedger.transfer.total;
-            }
-            if(this.getAutoBuyFromMarket()) {
-                divLedger.market.buy = this.availableRoom - divLedger.transfer.in;
-            }
-            shared.SellUnhousedSlaves(this, divLedger, this.processRate);
-        }
+		}
+		endWeek_Market(divLedger) {
+			if(this.getAutoSendToMarket()) {
+				divLedger.market.sell = this.heldSlaves - divLedger.transfer.total;
+			}
+			if(this.getAutoBuyFromMarket()) {
+				divLedger.market.buy = this.availableRoom - divLedger.transfer.in;
+			}
+			shared.SellUnhousedSlaves(this, divLedger, this.processRate);
+		}
 
-        create() {
-            if(this.founded) throw `${this.name} has already been founded.`;
+		create() {
+			if(this.founded) throw `${this.name} has already been founded.`;
 
-            App.Corporate.expandedDivision();
-            App.Corporate.chargeAsset(this.foundingCostDivision * 1000, "development");
-            this.setStored('', 1);
-            this.developmentCount = this._const.founding.size;
-            this.setStored('Founded', V.week);
-        }
-        dissolve() {
-            this.setStored('', 0);
-            App.Corporate.sellDevelopment(this);
-            App.Corporate.dissolvedDivision();
-            this.relatedDivisions.to.forEach(nextDep => delete V[`${this._const.corpId}To${nextDep.id}`]);
-        }
+			App.Corporate.expandedDivision();
+			App.Corporate.chargeAsset(this.foundingCostDivision * 1000, "development");
+			this.setStored('', 1);
+			this.developmentCount = this._const.founding.size;
+			this.setStored('Founded', V.week);
+		}
+		dissolve() {
+			this.setStored('', 0);
+			App.Corporate.sellDevelopment(this);
+			App.Corporate.dissolvedDivision();
+			this.relatedDivisions.to.forEach(nextDep => delete V[`${this._const.corpId}To${nextDep.id}`]);
+		}
 
-        //private helpers
-        getStored(key       ) { return V[this._const.corpId + key];  }
-        setStored(key, value) { V[this._const.corpId + key] = value; }
-    };
+		//private helpers
+		getStored(key	   ) { return V[this._const.corpId + key];  }
+		setStored(key, value) { V[this._const.corpId + key] = value; }
+	};
 }
diff --git a/src/Corporation/corporate-divisionProcessing.js b/src/Corporation/corporate-divisionProcessing.js
index a5870ac1cb2d82c71067774ecc44a8ea783b16e6..28f72f12475f7fe720f57b83deda9652b9cd5a4f 100644
--- a/src/Corporation/corporate-divisionProcessing.js
+++ b/src/Corporation/corporate-divisionProcessing.js
@@ -1,93 +1,93 @@
 App.Corporate.Init_DivisionProcessing = function(shared) {
 
-    App.Corporate.Division.Processing = class extends App.Corporate.Division.Base {
-        constructor({founding, addedValue, processing, nextDivision, slaveProcessType, slaveProcessDescription}) {
-            super(arguments[0]);
-            this._const.addedValue = addedValue;
-            this._const.processing = new averageRange(processing);
-            this._const.nextDivisions = nextDivision;
-            this._const.slaveProcessType = slaveProcessType;
-            this._const.slaveProcessDescription = slaveProcessDescription;
-        }
+	App.Corporate.Division.Processing = class extends App.Corporate.Division.Base {
+		constructor({founding, addedValue, processing, nextDivision, slaveProcessType, slaveProcessDescription}) {
+			super(arguments[0]);
+			this._const.addedValue = addedValue;
+			this._const.processing = new averageRange(processing);
+			this._const.nextDivisions = nextDivision;
+			this._const.slaveProcessType = slaveProcessType;
+			this._const.slaveProcessDescription = slaveProcessDescription;
+		}
 
-        //abstract virtual definitions
-        get fromMarket()        { return true; }
-        get toMarket()          { return true; }
-        get heldSlaves()        { return this.getStored("Slaves2"       ); }
-        set heldSlaves(value)   {        this.setStored("Slaves2", Math.trunc(value)); }
-        get activeSlaves()      { return this.getStored("Slaves"        ); }
-        set activeSlaves(value) {        this.setStored("Slaves" , Math.trunc(value)); }
-        get processRate()       { return this._const.processing.center; }
-        get soldSlaveValue() {
-          //TODO: find a way to cache this.
-          return this.purchasedSlaveValue + this._const.addedValue;
-        }
-        get slaveAction() {
-            return this._const.slaveProcessDescription;
-        }
-        get nounFinishedSlave()   { return `${this._const.slaveProcessDescription.past} slave`; }
-        get nounSlaveFromMarket() { return this._const.slaveProcessDescription.market; }
-        messageSlaveCount() {
-            return shared.MessageProcessedSlaves(this, `can ${this._const.slaveProcessType.present}`, 'green');
-        }
-        messageSlaveOutput() {
-            return shared.MessageSlaveToMarket(this);
-        }
-        message_endWeek_Slaves(divLedger) {
-            let newSlaves = divLedger.slaves.value;
-            //The division
-            let retval = this._const.slaveProcessType.past; //exploited
-            if(newSlaves <= 0) {
-                retval += " <span class='red'>none of its slaves</span>";
-            }
-            else {
-                retval += ` <span class="green">${numberWithPlural(newSlaves, 'slave')}</span>`;
-            }
-            retval += ". The division ";
-            if(this.activeSlaves) {
-                retval += `is still ${this._const.slaveProcessDescription.present} ${numberWithPlural(this.activeSlaves, "slave")}`;
-            }
-            else {
-                retval += `doesn't have any slaves to ${this._const.slaveProcessDescription.future}`;
-            }
-            return retval;
-        }
-        endWeek_Slaves(divLedger) {
-            let slaves = shared.EndWeekProcessing_Slaves(this.activeSlaves, this._const.processing);
-            this.activeSlaves -= slaves.value;
-            this.heldSlaves += slaves.value;
-            return divLedger.slaves.apply(slaves);
-        }
-        get initialSlaveValue() {
-            const values = this.relatedDivisions.from
-                                                .map(fromDiv => fromDiv.initialSlaveValue);
-            if(values.length == 0) throw "No route to acquisition found.";
-            return Math.min(...values) + this._const.addedValue;
-        }
-        //virtual override
-        get nextDivisions() { return this._const.nextDivisions; }
-        get developmentCount() { return super.developmentCount; }
-        set developmentCount(value) {
-            super.developmentCount = value;
-            shared.SellOverflowSlaves(this);
-        }
-        dissolve() {
-            App.Corporate.sellSlaves(this, this.heldSlaves);
-            super.dissolve();
-            delete V[this._const.corpId + "Slaves"];
-            delete V[this._const.corpId + "Slaves2"];
-        }
+		//abstract virtual definitions
+		get fromMarket()		{ return true; }
+		get toMarket()		  { return true; }
+		get heldSlaves()		{ return this.getStored("Slaves2"	   ); }
+		set heldSlaves(value)   {		this.setStored("Slaves2", Math.trunc(value)); }
+		get activeSlaves()	  { return this.getStored("Slaves"		); }
+		set activeSlaves(value) {		this.setStored("Slaves" , Math.trunc(value)); }
+		get processRate()	   { return this._const.processing.center; }
+		get soldSlaveValue() {
+		  //TODO: find a way to cache this.
+		  return this.purchasedSlaveValue + this._const.addedValue;
+		}
+		get slaveAction() {
+			return this._const.slaveProcessDescription;
+		}
+		get nounFinishedSlave()   { return `${this._const.slaveProcessDescription.past} slave`; }
+		get nounSlaveFromMarket() { return this._const.slaveProcessDescription.market; }
+		messageSlaveCount() {
+			return shared.MessageProcessedSlaves(this, `can ${this._const.slaveProcessType.present}`, 'green');
+		}
+		messageSlaveOutput() {
+			return shared.MessageSlaveToMarket(this);
+		}
+		message_endWeek_Slaves(divLedger) {
+			let newSlaves = divLedger.slaves.value;
+			//The division
+			let retval = this._const.slaveProcessType.past; //exploited
+			if(newSlaves <= 0) {
+				retval += " <span class='red'>none of its slaves</span>";
+			}
+			else {
+				retval += ` <span class="green">${numberWithPlural(newSlaves, 'slave')}</span>`;
+			}
+			retval += ". The division ";
+			if(this.activeSlaves) {
+				retval += `is still ${this._const.slaveProcessDescription.present} ${numberWithPlural(this.activeSlaves, "slave")}`;
+			}
+			else {
+				retval += `doesn't have any slaves to ${this._const.slaveProcessDescription.future}`;
+			}
+			return retval;
+		}
+		endWeek_Slaves(divLedger) {
+			let slaves = shared.EndWeekProcessing_Slaves(this.activeSlaves, this._const.processing);
+			this.activeSlaves -= slaves.value;
+			this.heldSlaves += slaves.value;
+			return divLedger.slaves.apply(slaves);
+		}
+		get initialSlaveValue() {
+			const values = this.relatedDivisions.from
+												.map(fromDiv => fromDiv.initialSlaveValue);
+			if(values.length == 0) throw "No route to acquisition found.";
+			return Math.min(...values) + this._const.addedValue;
+		}
+		//virtual override
+		get nextDivisions() { return this._const.nextDivisions; }
+		get developmentCount() { return super.developmentCount; }
+		set developmentCount(value) {
+			super.developmentCount = value;
+			shared.SellOverflowSlaves(this);
+		}
+		dissolve() {
+			App.Corporate.sellSlaves(this, this.heldSlaves);
+			super.dissolve();
+			delete V[this._const.corpId + "Slaves"];
+			delete V[this._const.corpId + "Slaves2"];
+		}
 
 
-        get foundingCostSlaves() { return this._const.founding.size * this.purchasedSlaveValue; }
-        get foundingCost()       { return this.foundingCostDivision + this.foundingCostSlaves; }
-        create() {
-            super.create();
-            App.Corporate.chargeAsset(this.foundingCostSlaves * 1000, "slaves");
-            this.activeSlaves = this._const.founding.size;
-            this.heldSlaves = 0;
-            shared.FoundingSetupAutoBuy(this);
-            shared.FoundingSetupAutoSell(this);
-        }
-    };
+		get foundingCostSlaves() { return this._const.founding.size * this.purchasedSlaveValue; }
+		get foundingCost()	   { return this.foundingCostDivision + this.foundingCostSlaves; }
+		create() {
+			super.create();
+			App.Corporate.chargeAsset(this.foundingCostSlaves * 1000, "slaves");
+			this.activeSlaves = this._const.founding.size;
+			this.heldSlaves = 0;
+			shared.FoundingSetupAutoBuy(this);
+			shared.FoundingSetupAutoSell(this);
+		}
+	};
 }
diff --git a/src/Corporation/corporate-divisionWorking.js b/src/Corporation/corporate-divisionWorking.js
index 1cbd33e232a6621060f31696f41bf2d7034d1ffb..7059f8bcdb92cbc1db7cc26c1c0609fce7a5bb16 100644
--- a/src/Corporation/corporate-divisionWorking.js
+++ b/src/Corporation/corporate-divisionWorking.js
@@ -1,95 +1,95 @@
 App.Corporate.Init_DivisionWorking = function(shared) {
 
-    App.Corporate.Division.Working = class extends App.Corporate.Division.Base {
-        constructor({founding, attrition, revenue, slaveWorkDescription}) {
-            super(arguments[0]);
-            this._const.attrition = new averageRange(attrition);
-            this._const.revenue = new averageRange(revenue);
-            this._const.slaveWorkDescription = slaveWorkDescription;
-        }
+	App.Corporate.Division.Working = class extends App.Corporate.Division.Base {
+		constructor({founding, attrition, revenue, slaveWorkDescription}) {
+			super(arguments[0]);
+			this._const.attrition = new averageRange(attrition);
+			this._const.revenue = new averageRange(revenue);
+			this._const.slaveWorkDescription = slaveWorkDescription;
+		}
 
-        //abstract virtual definitions
-        get fromMarket() { return true; }
-        get toMarket() { return false; }
-        get heldSlaves() { return 0; }
-        set heldSlaves(value) { throw "Cannot set held slaves of working division"; }
-        get activeSlaves() { return this.getStored("Slaves"); }
-        set activeSlaves(value) { this.setStored("Slaves", Math.trunc(value)); }
-        get processRate() { return this._const.attrition.center; }
-        get initialSlaveValue()   { return null; }
-        get soldSlaveValue() { return null; }
-        get slaveAction() {
-            return this._const.slaveWorkDescription;
-        }
-        get nounFinishedSlave()   { throw "Cannot get finished slave in working division, since they don't produce finished slaves."; }
-        get nounSlaveFromMarket() { return this._const.slaveWorkDescription.market; }
-        messageSlaveCount() {
-            return shared.MessageProcessedSlaves(this, `has to replace`, 'red');
-        }
-        messageSlaveOutput() {
-            /* TODO: originally some divisions had a slight description for what the work was; ie, "the escorts generate" */
-            return `The division generates <span class="yellowgreen">${cashFormat(this.slaveRevenue)}</span> per slave on average.`;
-        }
-        endWeek_Slaves(divLedger) {
-            let slaves = shared.EndWeekProcessing_Slaves(this.activeSlaves, this._const.attrition);
-            this.activeSlaves -= slaves.value;
-            return divLedger.slaves.apply(slaves);
-        }
-        message_endWeek_Slaves(divLedger) {
-            let lostSlaves = divLedger.slaves.value;
-            let retval = '';//The division
-            if(this.activeSlaves <= 0) {
-                retval += `has <span class="red">no slaves</span> to ${this._const.slaveWorkDescription.future}`;
-            }
-            else {
-                retval += `is ${this._const.slaveWorkDescription.present} <span class="green">${numberWithPlural(this.activeSlaves, 'slave')}</span>`;
-            }
-            if(lostSlaves > 0) {
-                retval += `. During operations <span class="red">${numberWithPlural(lostSlaves, 'slave')}</span> ${this._const.slaveWorkDescription.past}`;
-            }
-            return retval;
-        }
+		//abstract virtual definitions
+		get fromMarket() { return true; }
+		get toMarket() { return false; }
+		get heldSlaves() { return 0; }
+		set heldSlaves(value) { throw "Cannot set held slaves of working division"; }
+		get activeSlaves() { return this.getStored("Slaves"); }
+		set activeSlaves(value) { this.setStored("Slaves", Math.trunc(value)); }
+		get processRate() { return this._const.attrition.center; }
+		get initialSlaveValue()   { return null; }
+		get soldSlaveValue() { return null; }
+		get slaveAction() {
+			return this._const.slaveWorkDescription;
+		}
+		get nounFinishedSlave()   { throw "Cannot get finished slave in working division, since they don't produce finished slaves."; }
+		get nounSlaveFromMarket() { return this._const.slaveWorkDescription.market; }
+		messageSlaveCount() {
+			return shared.MessageProcessedSlaves(this, `has to replace`, 'red');
+		}
+		messageSlaveOutput() {
+			/* TODO: originally some divisions had a slight description for what the work was; ie, "the escorts generate" */
+			return `The division generates <span class="yellowgreen">${cashFormat(this.slaveRevenue)}</span> per slave on average.`;
+		}
+		endWeek_Slaves(divLedger) {
+			let slaves = shared.EndWeekProcessing_Slaves(this.activeSlaves, this._const.attrition);
+			this.activeSlaves -= slaves.value;
+			return divLedger.slaves.apply(slaves);
+		}
+		message_endWeek_Slaves(divLedger) {
+			let lostSlaves = divLedger.slaves.value;
+			let retval = '';//The division
+			if(this.activeSlaves <= 0) {
+				retval += `has <span class="red">no slaves</span> to ${this._const.slaveWorkDescription.future}`;
+			}
+			else {
+				retval += `is ${this._const.slaveWorkDescription.present} <span class="green">${numberWithPlural(this.activeSlaves, 'slave')}</span>`;
+			}
+			if(lostSlaves > 0) {
+				retval += `. During operations <span class="red">${numberWithPlural(lostSlaves, 'slave')}</span> ${this._const.slaveWorkDescription.past}`;
+			}
+			return retval;
+		}
 
-        //virtual override
-        get developmentCount() { return super.developmentCount; }
-        set developmentCount(value) {
-            super.developmentCount = value;
-            shared.SellOverflowSlaves(this);
-        }
-        dissolve() {
-            super.dissolve();
-            delete V[this._const.corpId + "Slaves"];
-        }
-        getAutoSendToMarket() {
-            return false;
-        }
-        setAutoSendToMarket(value) {
-            throw "Working divisions cannot sell to market";
-        }
-        endweek_Revenue(divLedger) {
-            let {roll, value} = this._const.revenue.roll();
-            let revenue = Math.trunc(this.activeSlaves * value);
-            divLedger.revenue.apply({value: revenue, efficiency: roll });
-        }
-        endWeek_Transfer(divLedger) {
-            //Working divisions don't do transfers
-        }
+		//virtual override
+		get developmentCount() { return super.developmentCount; }
+		set developmentCount(value) {
+			super.developmentCount = value;
+			shared.SellOverflowSlaves(this);
+		}
+		dissolve() {
+			super.dissolve();
+			delete V[this._const.corpId + "Slaves"];
+		}
+		getAutoSendToMarket() {
+			return false;
+		}
+		setAutoSendToMarket(value) {
+			throw "Working divisions cannot sell to market";
+		}
+		endweek_Revenue(divLedger) {
+			let {roll, value} = this._const.revenue.roll();
+			let revenue = Math.trunc(this.activeSlaves * value);
+			divLedger.revenue.apply({value: revenue, efficiency: roll });
+		}
+		endWeek_Transfer(divLedger) {
+			//Working divisions don't do transfers
+		}
 
-        get slaveRevenue() {
-            return this._const.revenue.center;
-        }
-        get maintenanceSlaves() {
-            //maintenance is paid on working slaves, not worked slaves.
-            return this.activeSlaves;
-        }
+		get slaveRevenue() {
+			return this._const.revenue.center;
+		}
+		get maintenanceSlaves() {
+			//maintenance is paid on working slaves, not worked slaves.
+			return this.activeSlaves;
+		}
 
-        get foundingCostSlaves() { return this._const.founding.size * this.purchasedSlaveValue; }
-        get foundingCost()       { return this.foundingCostDivision + this.foundingCostSlaves; }
-        create() {
-            super.create();
-            App.Corporate.chargeAsset(this.foundingCostSlaves * 1000, "slaves");
-            this.activeSlaves = this._const.founding.size;
-            shared.FoundingSetupAutoBuy(this);
-        }
-    };
+		get foundingCostSlaves() { return this._const.founding.size * this.purchasedSlaveValue; }
+		get foundingCost()	   { return this.foundingCostDivision + this.foundingCostSlaves; }
+		create() {
+			super.create();
+			App.Corporate.chargeAsset(this.foundingCostSlaves * 1000, "slaves");
+			this.activeSlaves = this._const.founding.size;
+			shared.FoundingSetupAutoBuy(this);
+		}
+	};
 }
diff --git a/src/Corporation/corporate.js b/src/Corporation/corporate.js
index 2822a20d57dca1a57af28ad0c5596b63a649c984..2900cc9d8f0c8497002dcb452e9ff0262d507ad3 100644
--- a/src/Corporation/corporate.js
+++ b/src/Corporation/corporate.js
@@ -1,908 +1,908 @@
 
 window.averageRange = class {
-    constructor({center, range}) {
-        this._const = {
-            center,
-            range
-        };
-    }
-    get center() { return this._const.center; }
-    get range() { return this._const.range; }
-    roll() {
-        let roll = Math.clamp(gaussianPair(0, 0.2)[0], -0.5, 0.5);
-        return { roll, value: (roll * this.range) + this.center};
-    }
-    rollInt() {
-        let retval = this.roll();
-        retval.value = Math.trunc(retval.value);
-        return retval;
-    }
+	constructor({center, range}) {
+		this._const = {
+			center,
+			range
+		};
+	}
+	get center() { return this._const.center; }
+	get range() { return this._const.range; }
+	roll() {
+		let roll = Math.clamp(gaussianPair(0, 0.2)[0], -0.5, 0.5);
+		return { roll, value: (roll * this.range) + this.center};
+	}
+	rollInt() {
+		let retval = this.roll();
+		retval.value = Math.trunc(retval.value);
+		return retval;
+	}
 }
 window.evenFillArray = function(array, amount, lookupAmount) {
-    let perItem, changed;
-    let retval = [];
-    do {
-        let newArray = [];
-        changed = false;
-        perItem = Math.trunc(amount / array.length);
-        for(let item of array) {
-            let itemValue = lookupAmount(item);
-            if(itemValue >= perItem) {
-                newArray.push(item);
-                continue;
-            }
-
-            amount -= itemValue;
-            retval.push({item, value:itemValue});
-            changed = true;
-        }
-        array = newArray;
-    } while (changed);
-    let remainder = amount % array.length;
-    for(let item of array) {
-        let extra = 0;
-        if(remainder > 0) {
-            remainder--;
-            extra = 1;
-        }
-        retval.push({item, value: perItem + extra });
-    }
-    return retval;
+	let perItem, changed;
+	let retval = [];
+	do {
+		let newArray = [];
+		changed = false;
+		perItem = Math.trunc(amount / array.length);
+		for(let item of array) {
+			let itemValue = lookupAmount(item);
+			if(itemValue >= perItem) {
+				newArray.push(item);
+				continue;
+			}
+
+			amount -= itemValue;
+			retval.push({item, value:itemValue});
+			changed = true;
+		}
+		array = newArray;
+	} while (changed);
+	let remainder = amount % array.length;
+	for(let item of array) {
+		let extra = 0;
+		if(remainder > 0) {
+			remainder--;
+			extra = 1;
+		}
+		retval.push({item, value: perItem + extra });
+	}
+	return retval;
 }
 window.typeHiddenMembers = class {
-    constructor() {
-        this._const = {};
-        this._var   = {};
-        this._cache = {};
-    }
+	constructor() {
+		this._const = {};
+		this._var   = {};
+		this._cache = {};
+	}
 }
 App.Corporate.Init = function() {
-    const Ledger = class {
-        constructor(corp, suffix="") {
-            this.corp = corp;
-            this.suffix = suffix;
-            this.clear();
-        }
-        get operations(     )     { return this.getStored('OpCost'              ); }
-        set operations(value)     { return this.setStored('OpCost'       , value); }
-
-        get localRevenue(     )   { return this.getStored('Rev'                 ); }
-        set localRevenue(value)   { return this.setStored('Rev'          , value); }
-
-        get development(     )    { return this.getStored('AssetsDev'           ); }
-        set development(value)    { return this.setStored('AssetsDev'    , value); }
-
-        get slaves(     )         { return this.getStored('AssetsSlave'         ); }
-        set slaves(value)         { return this.setStored('AssetsSlave'  , value); }
-
-        get overhead(     )       { return this.getStored('Overhead'            ); }
-        set overhead(value)       { return this.setStored('Overhead'     , value); }
-
-        get economicBoost(     )  { return this.getStored('EconBonus'           ); }
-        set economicBoost(value)  { return this.setStored('EconBonus'    , value); }
-
-        get economy(     )        { return this.getStored('Econ'           ); }
-        set economy(value)        { return this.setStored('Econ'    , value); }
-
-        get foreignRevenue(     ) { return this.getStored('NeighborBonus'       ); }
-        set foreignRevenue(value) { return this.setStored('NeighborBonus', value); }
-
-        copy(ledger) {
-            this.operations     = ledger.operations;
-            this.localRevenue   = ledger.localRevenue;
-            this.foreignRevenue = ledger.foreignRevenue;
-            this.development    = ledger.development;
-            this.slaves         = ledger.slaves;
-            this.overhead       = ledger.overhead;
-            this.economicBoost  = ledger.economicBoost;
-            this.economy        = ledger.economy;
-        }
-        clear() {
-            this.operations     = 0;
-            this.localRevenue   = 0;
-            this.foreignRevenue = 0;
-            this.development    = 0;
-            this.slaves         = 0;
-            this.overhead       = 0;
-            this.economicBoost  = 0;
-            this.economy        = 0;
-        }
-        release() {
-            this.deleteStored('OpCost');
-            this.deleteStored('Rev');
-            this.deleteStored('AssetsDev');
-            this.deleteStored('AssetsSlave');
-            this.deleteStored('Overhead');
-            this.deleteStored('EconBonus');
-            this.deleteStored('Econ');
-            this.deleteStored('NeighborBonus');
-        }
-        get profit() {
-            return this.revenue + this.economicBoost
-                 - this.development - this.slaves - this.overhead - this.operations;
-        }
-        get revenue() {
-            return this.localRevenue + this.foreignRevenue;
-        }
-        setEconomy(economy) {
-            this.economy = economy;
-
-            //NOTE: Set economicBoost to 0 so it doesn't affect this.profit!
-            this.economicBoost = 0; // <-- DO NOT delete
-            this.economicBoost = Math.trunc(this.profit * (economy - 100) / 100);
-        }
-        //private access
-        getStored(key) {
-            return this.corp.getStored(key + this.suffix);
-        }
-        setStored(key, value) {
-            return this.corp.setStored(key + this.suffix, value);
-        }
-        deleteStored(key){
-            this.corp.deleteStored(key + this.suffix);
-        }
-    };
-    const WeekProcessingEffeciencyLine = class {
-        constructor() {
-            this.value = 0;
-            this.efficiency = 0;
-        }
-        apply(pair) {
-            this.value = pair.value;
-            this.efficiency = pair.efficiency;
-        }
-    };
-    const WeekProcessingTransfer = class extends typeHiddenMembers {
-        constructor(divLedger) {
-            super();
-            this._const.divLedger = divLedger;
-            this._var.divisions = [];
-            this._var.in = 0;
-            this._var.out = 0;
-        }
-        addDivision(division, fill) {
-            const otherLedger = this._const.divLedger.weekLedger.getDivision(division);
-
-            this._var.out += fill;
-            otherLedger.transfer.in += fill;
-
-            this._var.divisions.push({division, fill});
-        }
-        get in() {
-            return this._var.in;
-        }
-        set in(value) {
-            if(value == this._var.in) return;
-            if(this._const.divLedger.market.canBuy) {
-                this._const.divLedger.market.buy -= value - this._var.in;
-            }
-            this._var.in = value;
-        }
-        get total() {
-            return this._var.out;
-        }
-        get divisions() {
-            return this._var.divisions;
-        }
-    }
-    const WeekProcessingMarket = class extends typeHiddenMembers {
-        constructor(divLedger) {
-            super();
-
-            this._const.divLedger = divLedger;
-            this._var.canBuy = false;
-            this._var.buy = 0;
-            this._var.sell = 0;
-        }
-        get buy() {
-            return this._var.buy;
-        }
-        set buy(value) {
-            //Note: canBuy merely means we've set buy to some value, even 0.
-            //Setting to 0 after setting to another value happens when we tried to buy some number, but couldn't afford it.
-            this._var.canBuy = true;
-            this._var.buy = value;
-            this._cache.buyValue = null;
-        }
-        get sell() {
-            return this._var.sell;
-        }
-        set sell(value) {
-            this._var.sell = value;
-            this._cache.sellValue = null;
-        }
-        get sellValue() {
-            if(this._cache.sellValue == null)
-                this._cache.sellValue = App.Corporate.slaveMarketSellValue(this.division, this.sell);
-            return this._cache.sellValue;
-        }
-        get buyValue() {
-            if(this._cache.buyValue == null)
-                this._cache.buyValue = App.Corporate.slaveMarketPurchaseValue(this.division, this.buy);
-            return this._cache.buyValue;
-        }
-        get canBuy() {
-            return this._var.canBuy;
-        }
-
-        get divisionLedger() {
-            return this._const.divLedger;
-        }
-        get division() {
-            return this.divisionLedger.division;
-        }
-    };
-    const WeekProcessingDivision = class extends typeHiddenMembers {
-        constructor(division, weekLedger) {
-            super();
-
-            this._const.division = division;
-            this._const.ledger = weekLedger;
-            this._var.slaves   = new WeekProcessingEffeciencyLine();
-            this._var.revenue  = new WeekProcessingEffeciencyLine();
-            this._var.transfer = new WeekProcessingTransfer(this);
-            this._var.market   = new WeekProcessingMarket(this);
-        }
-        get slaves() {
-            return this._var.slaves;
-        }
-        get revenue() {
-            return this._var.revenue;
-        }
-        get transfer() {
-            return this._var.transfer;
-        }
-        get market() {
-            return this._var.market;
-        }
-        get division() {
-            return this._const.division;
-        }
-        get weekLedger() {
-            return this._const.ledger;
-        }
-    }
-    const WeekProcessingOverheadCategory = class extends typeHiddenMembers {
-        constructor(categoryId) {
-            super();
-
-            this._const.category = App.Corporate.maintenance.divisionCategories[categoryId];
-            if(this._const.category == null) { debugger; throw new "Invalid category id: " + categoryId; }
-            this._var.divisions = [];
-        }
-        addDivision(division) {
-            this._var.divisions.push(division);
-        }
-        get cost() {
-            const category = this._const.category;
-            const ownedDivisionCount = this._var.divisions.length - category.freeDivisions;
-            const developmentCount   = this._var.divisions.reduce((r, div) => r + div.developmentCount, 0) - category.freeDevelopment;
-
-            const divisionCost    = Math.trunc(Math.pow(Math.max(ownedDivisionCount, 0), 2) * category.divisionCost   );
-            const developmentCost = Math.trunc(Math.pow(Math.max(developmentCount  , 0), 2) * category.developmentCost);
-
-            return divisionCost + developmentCost;
-        }
-    };
-    const WeekProcessingLedger = class extends typeHiddenMembers {
-        constructor() {
-            super();
-
-            this._var.divisions = {};
-            this._var.maintenanceCategories = {};
-            this._var.operatingCost = 0;
-            this._var.canExpandNow = false;
-            this._var.canSpecializeNow = false;
-            this._var.dividend = 0;
-            this._var.payout = 0;
-        }
-
-        getDivision(division) {
-            if(!(division.id in this._var.divisions)) {
-                this._var.divisions[division.id] = new WeekProcessingDivision(division, this);
-            }
-            return this._var.divisions[division.id];
-        }
-        get divisionLedgers() {
-            return this._var.divisions;
-        }
-
-        registerMaintenanceForDivision(division) {
-            let categoryId = division.maintenanceCategory;
-            if(!(categoryId in this._var.maintenanceCategories)) {
-                this._var.maintenanceCategories[categoryId] = new WeekProcessingOverheadCategory(categoryId);
-            }
-            let category = this._var.maintenanceCategories[categoryId];
-            category.addDivision(division);
-        }
-        get maintenanceCategories() {
-            return this._var.maintenanceCategories;
-        }
-
-        get operatingCost() {
-            return this._var.operatingCost;
-        }
-        set operatingCost(value) {
-            if(!Number.isFinite(value)) { debugger; throw "Operating cost wasn't finite "; }
-            this._var.operatingCost = Math.trunc(value);
-        }
-        get overhead() {
-            const divCount = App.Corporate.numDivisions;
-            if(divCount <= 1) return 0;
-
-            const divisionOverhead = Object.values(this.maintenanceCategories).reduce((r, categoryLedger) => r + categoryLedger.cost, 0);
-            const corpMaintInfo = App.Corporate.maintenance.corporate;
-            let corpOverhead = Math.pow(Math.max(divCount - corpMaintInfo.freeDivisions, 0), 2) * corpMaintInfo.divisionCost;
-            let retval = (divisionOverhead + corpOverhead) * 1 - (5 - State.variables.baseDifficulty) / 8;
-            return Math.trunc(retval);
-        }
-        get canExpandNow() { return this._var.canExpandNow; }
-        set canExpandNow(value) { this._var.canExpandNow = value; }
-
-        get hasDividend() { return this._var.dividend > 0; }
-        get dividend() { return this._var.dividend; }
-        set dividend(value) { this._var.dividend = value; }
-
-        get hasPayout() { return this._var.payout > 0; }
-        get payout() { return this._var.payout; }
-        set payout(value) { this._var.payout = value; }
-
-        get canSpecializeNow() { return this._var.canSpecializeNow; }
-        set canSpecializeNow(value) { this._var.canSpecializeNow = value; }
-    }
-    App.Corporate.Division = {};
-    const shared = {
-        RelatedDivisionType: class {
-            constructor() {
-                this._var = {
-                    to:   [],
-                    from: [],
-                    all:  []
-                };
-            }
-            get to()   { return this._var.to  ; }
-            get from() { return this._var.from; }
-            get all()  { return this._var.all ; }
-            addTo(value) {
-                this._var.to.push(value);
-                this._var.all.push(value);
-            }
-            addFrom(value) {
-                this._var.from.push(value);
-                this._var.all.push(value);
-            }
-            get anyFounded() { return this.all.some(div=>div.founded); }
-        },
-        FoundingType: class {
-            constructor(division, {corporateCash, startingSize = 10}) {
-                this._const = {
-                    division,
-                    cash: corporateCash,
-                    size: startingSize
-                };
-            }
-            get cash() { return this._const.cash; }
-            get size() { return this._const.size; }
-            get startingPrice() {
-                let div = this._const.division;
-                return this._const.cash + div.foundingCost;
-            }
-        },
-        SellOverflowSlaves: function(division) {
-            const slavesToSell  = division.activeSlaves - division.developmentCount;
-            if(slavesToSell > 0) {
-                const slaveProcCost = Math.trunc(App.Corporate.slaveMarketPurchaseValue(division, -slavesToSell));
-                App.Corporate.chargeAsset(slaveProcCost, "slaves");
-                division.activeSlaves -= slavesToSell;
-                V.menialDemandFactor -= slavesToSell;
-            }
-        },
-        SellUnhousedSlaves: function(division, divLedger, rate) {
-            if(divLedger.market.sell != 0) return;
-
-            let housing = 2 * rate * division.developmentCount;
-            let unhoused = division.heldSlaves - housing;
-            if(unhoused <= 0) return;
-
-            divLedger.market.sell = unhoused;
-        },
-        MessageProcessedSlaves: function(division, verbPhrase, color) {
-            let procCount = Math.trunc(division.developmentCount * division.processRate);
-            let slaveCountedNoun = numberWithPluralNonZero(procCount, "slave");
-
-            return `It ${verbPhrase} approximately <span class="${color}">${slaveCountedNoun}</span> each week when operating at capacity (${division.developmentCount})`;
-        },
-        MessageSlaveToMarket: function(division) {
-            return `The slaves from this division can be sold for <span class='yellowgreen'>${cashFormat(Math.trunc(division.soldSlaveValue * menialSlaveCost()))}</span> each.`;
-        },
-        EndWeekProcessing_Slaves: function(processingCount, rate) {
-            const perDevPair = rate.roll();
-            let slaveIncrease = perDevPair.value * processingCount;
-            if(slaveIncrease < 1) {
-                slaveIncrease = (slaveIncrease > Math.random() ? 1 : 0);
-            }
-            return {efficiency: perDevPair.roll, value: Math.trunc(slaveIncrease) };
-        },
-        FoundingSetupAutoBuy: function(division) {
-            let foundedFrom = division.relatedDivisions.from.filter(div=>div.founded);
-            if(foundedFrom.length == 0) {
-                division.setAutoBuyFromMarket(true);
-            }
-            else {
-                for(let otherDiv of foundedFrom) {
-                    if(otherDiv.getAutoSendToMarket()) {
-                        otherDiv.setAutoSendToDivision(division, true);
-                    }
-                }
-            }
-
-        },
-        FoundingSetupAutoSell: function(division) {
-            let foundedTo = division.relatedDivisions.to.filter(div=>div.founded);
-            if(foundedTo.length == 0) {
-                division.setAutoSendToMarket(true);
-            }
-            else {
-                for(let otherDiv of foundedTo) {
-                    if(otherDiv.getAutoBuyFromMarket()) {
-                        division.setAutoSendToDivision(otherDiv, true);
-                    }
-                }
-            }
-        }
-    };
-    App.Corporate.Init_DivisionBase(shared);
-    App.Corporate.Init_DivisionAcquiring(shared);
-    App.Corporate.Init_DivisionProcessing(shared);
-    App.Corporate.Init_DivisionWorking(shared);
-
-    App.Corporate.InitConstants();
-    let divisions = App.Corporate.divisions = mapIdList(App.Corporate.divisionList);
-    App.Corporate.maintenance.divisionCategories = mapIdList(App.Corporate.maintenance.divisionCategoriesList);
-
-    for(const divInfo of App.Corporate.divisionList.filter(div=>div.nextDivisions != null)) {
-        const div = divisions[divInfo.id];
-        for(const nextDepId of divInfo.nextDivisions) {
-            let nextDiv = divisions[nextDepId];
-            div.relatedDivisions.addTo(nextDiv);
-            nextDiv.relatedDivisions.addFrom(div);
-        }
-    }
-    let asDivision = function(division) {
-        if(_.isObject(division)) return division;
-        return App.Corporate.divisions[division];
-    }
-    App.Corporate.getStored    = function(key       ) { return V[`corp${key}`];  }
-    App.Corporate.setStored    = function(key, value) { V[`corp${key}`] = value; }
-    App.Corporate.deleteStored = function(key       ) { delete V[`corp${key}`];  }
-
-    //Integer properties starting with corp
-    const propertyToStoryInt = {
-        cash: "Cash",
-        numDivisions: 'Div',
-        foundedDate: 'Founded',
-        dividend: "Dividend",
-        specializations: "Spec",
-        specializationTokens: "SpecToken",
-        specializationTimer: "SpecTimer",
-    }
-    for(const property in propertyToStoryInt) {
-        const key = propertyToStoryInt[property];
-        Object.defineProperty(App.Corporate, property, {
-        get: function(     ) { return this.getStored(key); },
-        set: function(value) {
-            if(!Number.isFinite(value)) throw "Unreal number " + key;
-            this.setStored(key, Math.trunc(value));
-        }
-        });
-    }
-
-    //Boolean properties starting with corp (true == 1, false == 0)
-    const propertyToStoryBool = {
-        founded: "Incorporated",
-        hasMarket: "Market",
-        payoutCash: "CashDividend",
-        canExpand: 'ExpandToken',
-    }
-    for(const property in propertyToStoryBool) {
-        const key = propertyToStoryBool[property];
-        Object.defineProperty(App.Corporate, property, {
-            get: function(     ) { return this.getStored(key) === 1; },
-            set: function(value) { this.setStored(key, value == true ? 1 : 0); }
-        });
-    }
-
-    //Abnormal properties
-    Object.defineProperty(App.Corporate, "value", {
-        get: function() {
-            if(!this.founded) return 0;
-            let corpAssets = App.Corporate.divisionList
-                                          .filter(div=>div.founded)
-                                          .reduce((v, div)=>v + div.value, 0);
-            return corpAssets + this.dividend + this.cash;
-        }
-    });
-    Object.defineProperty(App.Corporate, "dividendRatio", {
-        get: function(     ) { return V.dividendRatio ;        },
-        set: function(value) {        V.dividendRatio = value; }
-    });
-    Object.defineProperty(App.Corporate, "dividendTimer", {
-        get: function(     ) { return V.dividendTimer ;        },
-        set: function(value) {        V.dividendTimer = value; }
-    });
-    Object.defineProperty(App.Corporate, "payoutAfterCash", {
-        get: function() {
-            return Math.max(Math.trunc(this.payoutCorpValueMultiplier * this.value), this.payoutMinimumCash);
-        }
-    });
-
-    const SharesType = class {
-        get personal()      { return V.personalShares ;        }
-        set personal(value) {        V.personalShares = value; }
-        get public()        { return V.publicShares   ;        }
-        set public(value)   {        V.publicShares   = value; }
-        get total()         { return this.personal + this.public; }
-    };
-    App.Corporate.shares = new SharesType();
-    App.Corporate.ledger = {
-        current: new Ledger(App.Corporate),
-        old:     new Ledger(App.Corporate, "Old"),
-        swap: function() {
-            this.old.copy(this.current);
-            this.current.clear();
-        },
-        clear: function() {
-            this.old.clear();
-            this.current.clear();
-        },
-        release: function() {
-            this.old.release();
-            this.current.release();
-        }
-    };
-    App.Corporate.foundingCostToPlayer = function(division, personalShares, publicShares) {
-        division = asDivision(division);
-        let costToPlayer = Math.trunc((division.foundingCash / (personalShares + publicShares)) * personalShares);
-        return costToPlayer;
-    }
-    App.Corporate.create = function(division, personalShares, publicShares) {
-        this.shares.personal = personalShares;
-        this.shares.public   = publicShares;
-        V.dividendTimer = 13;
-        this.founded = true;
-        this.foundedDate = V.week;
-        this.dividend = 0;
-        this.dividendRatio = 0;
-        this.specializationTimer = 4;
-
-        this.ledger.clear();
-
-        //this will be updated by division.create
-        this.numDivisions = 0;
-        this.expansionTokens = 1;
-
-        division = asDivision(division);
-        cashX(forceNeg(App.Corporate.foundingCostToPlayer(division, personalShares, publicShares)), 'stocksTraded');
-        this.cash = division.foundingCash;
-
-        division.create(this);
-        App.Corporate.ledger.swap();
-    };
-    App.Corporate.dissolve = function() {
-        for(let division of this.divisionList.filter(x=>x.founded)) {
-            division.dissolve();
-        }
-        this.founded = false;
-        this.numDivisions = 0;
-        this.expansionTokens = 0;
-        this.setStored("Expand", 0);
-        this.specializations = 0;
-        this.specializationTokens = 0;
-        this.setStored("SpecRaces", []);
-        this.ledger.release();
-
-        // Some of these will need to be refactored into App.Corporate.Specialization
-        const toDelete = [
-            "corpCash",
-            "personalShares",
-            "publicShares",
-            "corpDividend",
-            "dividendTimer",
-            "corpSpecAccent",
-            "corpSpecAge",
-            "corpSpecAmputee",
-            "corpSpecBalls",
-            "corpSpecDevotion",
-            "corpSpecDick",
-            "corpSpecEducation",
-            "corpSpecGender",
-            "corpSpecGenitalia",
-            "corpSpecWeight",
-            "corpSpecHeight",
-            "corpSpecHormones",
-            "corpSpecImplants",
-            "corpSpecInjection",
-            "corpSpecIntelligence",
-            "corpSpecMilk",
-            "corpSpecMuscle",
-            "corpSpecPussy",
-            "corpSpecSexEd",
-            "corpSpecTrust",
-            "corpSpecVirgin"
-        ];
-        toDelete.forEach(id => delete V[id]);
-
-        if(this.hasMarket) {
-            let corporateMarketIndex = V.sectors.findIndex(sector => sector.type === "CorporateMarket");
-            V.sectors[corporateMarketIndex].type = "Markets";
-            this.hasMarket = false;
-        }
-    };
-    App.Corporate.expandedDivision = function() {
-        this.numDivisions += 1;
-        this.canExpand = false;
-    };
-    App.Corporate.dissolvedDivision = function() {
-        this.numDivisions -= 1;
-    };
-    App.Corporate.chargeAsset = function(cost, type) {
-        if(!Number.isFinite(cost)) throw "The cost provided was not a real number";
-        cost = Math.trunc(cost);
-        if(!(type in this.ledger.current)) throw `Ledger doesn't record '${type}' category.`;
-        if(cost == 0) return;
-
-        this.ledger.current[type] += cost;
-        this.cash -= cost;
-    };
-    App.Corporate.earnRevenue = function(cost, locality) {
-        if(!Number.isFinite(cost)) throw "The cost provided was not real";
-        cost = Math.trunc(cost);
-        let current = this.ledger.current;
-        let key = `${locality}Revenue`;
-        if(!(key in current)) throw `Unknown locality '${locality}'`;
-        current[key] += cost;
-        this.cash += cost;
-    };
-    App.Corporate.chargeDividend = function(cost, weekLedger) {
-        if(!Number.isFinite(cost)) throw "The cost provided was not real";
-        cost = Math.trunc(cost);
-        if(weekLedger == null) {
-            debugger;
-            throw "No weekLedger provided";
-        }
-        this.dividend += cost;
-        this.cash -= cost;
-        weekLedger.dividend += cost;
-    }
-    App.Corporate.creditEconomy = function() {
-        this.ledger.current.setEconomy(V.localEcon);
-        this.cash += this.ledger.current.economicBoost;
-    }
-    /* Need to prevent skipping intermediaries if they exist, ie break->surgery->train, you can skip surgery only if you don't have it.*/
-    App.Corporate.ownsIntermediaryDivision = function(fromDivision, toDivision) {
-        for(let intermediateDiv of toDivision.relatedDivisions
-                                             .from
-                                             .filter(iDep => iDep.id != fromDivision.id
-                                                          && fromDivision.relatedDivisions.to.includes(iDep))) {
-            if(intermediateDiv.founded) return true;
-        }
-        return false;
-    };
-    App.Corporate.slaveMarketPurchaseValue = function(division, count) {
-        division = asDivision(division);
-        let slaveValue = division.purchasedSlaveValue;
-        let totalValue = slaveValue * count * menialSlaveCost(count);
-        return Math.trunc(totalValue);
-    };
-    App.Corporate.slaveMarketSellValue = function(division, count) {
-        division = asDivision(division);
-        let slaveValue = division.soldSlaveValue;
-        let totalValue = slaveValue * count * menialSlaveCost(count);
-        return Math.trunc(totalValue);
-    };
-    App.Corporate.buySlaves = function(division, count) {
-        if(count <= 0) return 0;
-
-        division = asDivision(division);
-        let purchasePrice = this.slaveMarketPurchaseValue(division, count);
-        if(this.cash < purchasePrice) {
-            throw "Attempted purchase without enough money";
-        }
-
-        this.chargeAsset(purchasePrice, "slaves");
-        division.activeSlaves += count;
-        V.menialSupplyFactor  -= count;
-        return purchasePrice;
-    };
-    App.Corporate.sellSlaves = function(division, count) {
-        if(count <= 0) return 0;
-
-        division = asDivision(division);
-        if(division.heldSlaves < count) { throw "Attempted to sell more slaves than held."; }
-
-        let sellPrice = this.slaveMarketSellValue(division, count);
-        this.earnRevenue(sellPrice, "local");
-        division.heldSlaves -= count;
-        V.menialDemandFactor -= count;
-        return sellPrice;
-    };
-    App.Corporate.transferSlaves = function(fromDivision, toDivision, count) {
-        fromDivision = asDivision(fromDivision);
-        toDivision = asDivision(toDivision);
-        // TODO: validate the from and to departments are directly connected.
-
-        if(fromDivision.heldSlaves < count) throw `Tried to move ${count} slaves out of ${fromDivision.name}, but it only had ${fromDivision.heldSlaves}`;
-
-        fromDivision.heldSlaves -= count;
-        toDivision.activeSlaves += count;
-    };
-
-    App.Corporate.buyDevelopment = function(division, count) {
-        division = asDivision(division);
-
-        let cost = Math.trunc(division.sizeCost * count * 1000);
-
-        this.chargeAsset(cost, "development");
-        division.developmentCount += count;
-    };
-    App.Corporate.sellDevelopment = function(division, count) {
-        division = asDivision(division);
-
-        const devCount = division.developmentCount;
-        count = count || devCount;
-        if(count > devCount) throw `Attempted to sell more of a division ${division.id} than exists (${count} of ${devCount})`;
-        const developmentCost = Math.trunc(count * division.sizeCost * 800);
-        this.chargeAsset(-developmentCost, "development");
-        division.developmentCount -= count;
-    };
-    App.Corporate.setAutoSendToDivision = function(fromDivision, toDivision, value) {
-        fromDivision = asDivision(fromDivision);
-        toDivision = asDivision(toDivision);
-
-        fromDivision.setAutoSendToDivision(toDivision, value);
-    };
-    App.Corporate.setAutoSendToMarket = function(division, value) {
-        division = asDivision(division);
-        division.setAutoSendToMarket(value);
-    };
-    App.Corporate.setAutoBuyFromMarket = function(division, value) {
-        division = asDivision(division);
-        division.setAutoBuyFromMarket(value);
-    };
-    App.Corporate.calculateDividend = function(weekLedger)
-    {
-        let profit = this.ledger.current.profit;
-        if(this.dividendRatio > 0 && profit > 0)
-        {
-            this.chargeDividend(profit * this.dividendRatio, weekLedger);
-        }
-        //Payout leftover cash should be the last thing the corporation does
-        //in a week so that its cash will be at the payout amount.
-        if(this.payoutCash)
-        {
-            let payoutAfter = this.payoutAfterCash;
-            if(this.cash > payoutAfter)
-            {
-                this.chargeDividend(this.cash - payoutAfter, weekLedger);
-            }
-        }
-
-        if(this.dividendTimer <= 1)
-        {
-            weekLedger.payout = Math.trunc(this.dividend * this.shares.personal / this.shares.total);
-            cashX(weekLedger.payout, "stocks");
-            this.dividendTimer = 14;//13 for each quarter, but +1 because we're subtracting one below.
-            this.dividend = 0;
-        }
-
-        this.dividendTimer--;
-    };
-    App.Corporate.endWeek = function() {
-        let ledger = new WeekProcessingLedger();
-        //Prepare requests
-        for(let div of this.divisionList.filter(div=>div.founded)) {
-            let divLedger = ledger.getDivision(div)
-
-            ledger.operatingCost += div.maintenanceCost;
-            ledger.registerMaintenanceForDivision(div);
-
-            div.endweek_Revenue(divLedger);
-            div.endWeek_Slaves(divLedger);
-        }
-        for(let divLedger of Object.values(ledger.divisionLedgers)) {
-            let div = divLedger.division;
-            div.endWeek_Transfer(divLedger);
-            div.endWeek_Market(divLedger);
-        }
-        this.chargeAsset(ledger.operatingCost, "operations");
-        this.chargeAsset(ledger.overhead, "overhead");
-        //Execute sales requests, transfers, and earned revenue
-        for(let divLedger of Object.values(ledger.divisionLedgers)) {
-            let div = divLedger.division;
-            this.earnRevenue(divLedger.revenue.value, "local");
-            if(div.activeSlaves > 0)
-            {
-                shared.SellOverflowSlaves(div);
-            }
-
-            for(let otherDivPair of divLedger.transfer.divisions) {
-                let otherDiv = otherDivPair.division;
-                let count = otherDivPair.fill;
-                if(count == 0) continue;
-
-                this.transferSlaves(div, otherDiv, count);
-            }
-            if(divLedger.market.sell > 0) {
-                divLedger.market.finalSale = this.sellSlaves(div, divLedger.market.sell);
-            }
-        }
-
-        //Execute purchase requests
-        //todo: Make a switch to allow the user to control purchasing behavior.
-        //todo: Expensive first
-        //todo: Cheapest first
-        //Even purchase requsts:
-        let purchaseValues = evenFillArray(Object.values(ledger.divisionLedgers)
-                                                 .filter(divLedger=>divLedger.market.buy > 0)
-                                          , this.cash
-                                          , divLedger=>divLedger.market.buyValue);
-        for(let divLedgerPair of purchaseValues) {
-            let divLedger = divLedgerPair.item;
-            let purchaseCost = divLedgerPair.value;
-            let div = divLedger.division;
-
-            if(divLedger.market.buyValue > purchaseCost) {
-                //Estimate how many slaves we can afford within the purchase cost
-                let perSlaveEstimate = Math.trunc(divLedger.market.buyValue / divLedger.market.buy);
-                let numSlavesEstimate = Math.trunc(purchaseCost / perSlaveEstimate);
-
-                if(numSlavesEstimate < 1) {
-                    divLedger.market.originalBuy = divLedger.market.buy;
-                    divLedger.market.buyShortMoney = divLedger.market.buyValue;
-                    divLedger.market.buyShortSlaves = divLedger.market.buy;
-                    divLedger.market.buy = 0;
-                }
-                else {
-                    divLedger.market.originalBuy = divLedger.market.buy;
-                    divLedger.market.buyShortMoney = divLedger.market.buyValue - purchaseCost;
-                    divLedger.market.buyShortSlaves = divLedger.market.buy - numSlavesEstimate;
-                    divLedger.market.buy = numSlavesEstimate;
-                }
-            }
-            divLedger.market.finalPurchase = this.buySlaves(div, divLedger.market.buy);
-        }
-        this.creditEconomy();
-
-        if(this.numDivisions < this.divisionList.length && !this.canExpand)
-        {
-            let expansionValue = Math.trunc(Math.pow(this.numDivisions, 1.5) + (5 * this.numDivisions + 2) / 4);
-            if(this.value > expansionValue * 1000000)
-            {
-                ledger.canExpandNow = true;
-                this.canExpand = true;
-            }
-        }
-        let specializationExpansion = 1.6 * Math.pow(1.25, this.specializations) - 1.2;
-        if(this.value > specializationExpansion * 1000000){
-            this.specializationTokens++;
-            this.specializations++;
-            ledger.canSpecializeNow = true;
-        }
-        if(this.specializationTimer > 0)
-        {
-            this.specializationTimer--;
-        }
-        this.calculateDividend(ledger);
-
-        return ledger;
-    };
-    App.Corporate.cheatCash = function(userCash) {
-        userCash = Math.trunc(Number(userCash))
-        if(Number.isFinite(userCash)) {
-            this.cash = userCash;
-            V.cheater = 1
-        }
-    }
+	const Ledger = class {
+		constructor(corp, suffix="") {
+			this.corp = corp;
+			this.suffix = suffix;
+			this.clear();
+		}
+		get operations(	 )	 { return this.getStored('OpCost'			  ); }
+		set operations(value)	 { return this.setStored('OpCost'	   , value); }
+
+		get localRevenue(	 )   { return this.getStored('Rev'				 ); }
+		set localRevenue(value)   { return this.setStored('Rev'		  , value); }
+
+		get development(	 )	{ return this.getStored('AssetsDev'		   ); }
+		set development(value)	{ return this.setStored('AssetsDev'	, value); }
+
+		get slaves(	 )		 { return this.getStored('AssetsSlave'		 ); }
+		set slaves(value)		 { return this.setStored('AssetsSlave'  , value); }
+
+		get overhead(	 )	   { return this.getStored('Overhead'			); }
+		set overhead(value)	   { return this.setStored('Overhead'	 , value); }
+
+		get economicBoost(	 )  { return this.getStored('EconBonus'		   ); }
+		set economicBoost(value)  { return this.setStored('EconBonus'	, value); }
+
+		get economy(	 )		{ return this.getStored('Econ'		   ); }
+		set economy(value)		{ return this.setStored('Econ'	, value); }
+
+		get foreignRevenue(	 ) { return this.getStored('NeighborBonus'	   ); }
+		set foreignRevenue(value) { return this.setStored('NeighborBonus', value); }
+
+		copy(ledger) {
+			this.operations	 = ledger.operations;
+			this.localRevenue   = ledger.localRevenue;
+			this.foreignRevenue = ledger.foreignRevenue;
+			this.development	= ledger.development;
+			this.slaves		 = ledger.slaves;
+			this.overhead	   = ledger.overhead;
+			this.economicBoost  = ledger.economicBoost;
+			this.economy		= ledger.economy;
+		}
+		clear() {
+			this.operations	 = 0;
+			this.localRevenue   = 0;
+			this.foreignRevenue = 0;
+			this.development	= 0;
+			this.slaves		 = 0;
+			this.overhead	   = 0;
+			this.economicBoost  = 0;
+			this.economy		= 0;
+		}
+		release() {
+			this.deleteStored('OpCost');
+			this.deleteStored('Rev');
+			this.deleteStored('AssetsDev');
+			this.deleteStored('AssetsSlave');
+			this.deleteStored('Overhead');
+			this.deleteStored('EconBonus');
+			this.deleteStored('Econ');
+			this.deleteStored('NeighborBonus');
+		}
+		get profit() {
+			return this.revenue + this.economicBoost
+				 - this.development - this.slaves - this.overhead - this.operations;
+		}
+		get revenue() {
+			return this.localRevenue + this.foreignRevenue;
+		}
+		setEconomy(economy) {
+			this.economy = economy;
+
+			//NOTE: Set economicBoost to 0 so it doesn't affect this.profit!
+			this.economicBoost = 0; // <-- DO NOT delete
+			this.economicBoost = Math.trunc(this.profit * (economy - 100) / 100);
+		}
+		//private access
+		getStored(key) {
+			return this.corp.getStored(key + this.suffix);
+		}
+		setStored(key, value) {
+			return this.corp.setStored(key + this.suffix, value);
+		}
+		deleteStored(key){
+			this.corp.deleteStored(key + this.suffix);
+		}
+	};
+	const WeekProcessingEffeciencyLine = class {
+		constructor() {
+			this.value = 0;
+			this.efficiency = 0;
+		}
+		apply(pair) {
+			this.value = pair.value;
+			this.efficiency = pair.efficiency;
+		}
+	};
+	const WeekProcessingTransfer = class extends typeHiddenMembers {
+		constructor(divLedger) {
+			super();
+			this._const.divLedger = divLedger;
+			this._var.divisions = [];
+			this._var.in = 0;
+			this._var.out = 0;
+		}
+		addDivision(division, fill) {
+			const otherLedger = this._const.divLedger.weekLedger.getDivision(division);
+
+			this._var.out += fill;
+			otherLedger.transfer.in += fill;
+
+			this._var.divisions.push({division, fill});
+		}
+		get in() {
+			return this._var.in;
+		}
+		set in(value) {
+			if(value == this._var.in) return;
+			if(this._const.divLedger.market.canBuy) {
+				this._const.divLedger.market.buy -= value - this._var.in;
+			}
+			this._var.in = value;
+		}
+		get total() {
+			return this._var.out;
+		}
+		get divisions() {
+			return this._var.divisions;
+		}
+	}
+	const WeekProcessingMarket = class extends typeHiddenMembers {
+		constructor(divLedger) {
+			super();
+
+			this._const.divLedger = divLedger;
+			this._var.canBuy = false;
+			this._var.buy = 0;
+			this._var.sell = 0;
+		}
+		get buy() {
+			return this._var.buy;
+		}
+		set buy(value) {
+			//Note: canBuy merely means we've set buy to some value, even 0.
+			//Setting to 0 after setting to another value happens when we tried to buy some number, but couldn't afford it.
+			this._var.canBuy = true;
+			this._var.buy = value;
+			this._cache.buyValue = null;
+		}
+		get sell() {
+			return this._var.sell;
+		}
+		set sell(value) {
+			this._var.sell = value;
+			this._cache.sellValue = null;
+		}
+		get sellValue() {
+			if(this._cache.sellValue == null)
+				this._cache.sellValue = App.Corporate.slaveMarketSellValue(this.division, this.sell);
+			return this._cache.sellValue;
+		}
+		get buyValue() {
+			if(this._cache.buyValue == null)
+				this._cache.buyValue = App.Corporate.slaveMarketPurchaseValue(this.division, this.buy);
+			return this._cache.buyValue;
+		}
+		get canBuy() {
+			return this._var.canBuy;
+		}
+
+		get divisionLedger() {
+			return this._const.divLedger;
+		}
+		get division() {
+			return this.divisionLedger.division;
+		}
+	};
+	const WeekProcessingDivision = class extends typeHiddenMembers {
+		constructor(division, weekLedger) {
+			super();
+
+			this._const.division = division;
+			this._const.ledger = weekLedger;
+			this._var.slaves   = new WeekProcessingEffeciencyLine();
+			this._var.revenue  = new WeekProcessingEffeciencyLine();
+			this._var.transfer = new WeekProcessingTransfer(this);
+			this._var.market   = new WeekProcessingMarket(this);
+		}
+		get slaves() {
+			return this._var.slaves;
+		}
+		get revenue() {
+			return this._var.revenue;
+		}
+		get transfer() {
+			return this._var.transfer;
+		}
+		get market() {
+			return this._var.market;
+		}
+		get division() {
+			return this._const.division;
+		}
+		get weekLedger() {
+			return this._const.ledger;
+		}
+	}
+	const WeekProcessingOverheadCategory = class extends typeHiddenMembers {
+		constructor(categoryId) {
+			super();
+
+			this._const.category = App.Corporate.maintenance.divisionCategories[categoryId];
+			if(this._const.category == null) { debugger; throw new "Invalid category id: " + categoryId; }
+			this._var.divisions = [];
+		}
+		addDivision(division) {
+			this._var.divisions.push(division);
+		}
+		get cost() {
+			const category = this._const.category;
+			const ownedDivisionCount = this._var.divisions.length - category.freeDivisions;
+			const developmentCount   = this._var.divisions.reduce((r, div) => r + div.developmentCount, 0) - category.freeDevelopment;
+
+			const divisionCost	= Math.trunc(Math.pow(Math.max(ownedDivisionCount, 0), 2) * category.divisionCost   );
+			const developmentCost = Math.trunc(Math.pow(Math.max(developmentCount  , 0), 2) * category.developmentCost);
+
+			return divisionCost + developmentCost;
+		}
+	};
+	const WeekProcessingLedger = class extends typeHiddenMembers {
+		constructor() {
+			super();
+
+			this._var.divisions = {};
+			this._var.maintenanceCategories = {};
+			this._var.operatingCost = 0;
+			this._var.canExpandNow = false;
+			this._var.canSpecializeNow = false;
+			this._var.dividend = 0;
+			this._var.payout = 0;
+		}
+
+		getDivision(division) {
+			if(!(division.id in this._var.divisions)) {
+				this._var.divisions[division.id] = new WeekProcessingDivision(division, this);
+			}
+			return this._var.divisions[division.id];
+		}
+		get divisionLedgers() {
+			return this._var.divisions;
+		}
+
+		registerMaintenanceForDivision(division) {
+			let categoryId = division.maintenanceCategory;
+			if(!(categoryId in this._var.maintenanceCategories)) {
+				this._var.maintenanceCategories[categoryId] = new WeekProcessingOverheadCategory(categoryId);
+			}
+			let category = this._var.maintenanceCategories[categoryId];
+			category.addDivision(division);
+		}
+		get maintenanceCategories() {
+			return this._var.maintenanceCategories;
+		}
+
+		get operatingCost() {
+			return this._var.operatingCost;
+		}
+		set operatingCost(value) {
+			if(!Number.isFinite(value)) { debugger; throw "Operating cost wasn't finite "; }
+			this._var.operatingCost = Math.trunc(value);
+		}
+		get overhead() {
+			const divCount = App.Corporate.numDivisions;
+			if(divCount <= 1) return 0;
+
+			const divisionOverhead = Object.values(this.maintenanceCategories).reduce((r, categoryLedger) => r + categoryLedger.cost, 0);
+			const corpMaintInfo = App.Corporate.maintenance.corporate;
+			let corpOverhead = Math.pow(Math.max(divCount - corpMaintInfo.freeDivisions, 0), 2) * corpMaintInfo.divisionCost;
+			let retval = (divisionOverhead + corpOverhead) * 1 - (5 - State.variables.baseDifficulty) / 8;
+			return Math.trunc(retval);
+		}
+		get canExpandNow() { return this._var.canExpandNow; }
+		set canExpandNow(value) { this._var.canExpandNow = value; }
+
+		get hasDividend() { return this._var.dividend > 0; }
+		get dividend() { return this._var.dividend; }
+		set dividend(value) { this._var.dividend = value; }
+
+		get hasPayout() { return this._var.payout > 0; }
+		get payout() { return this._var.payout; }
+		set payout(value) { this._var.payout = value; }
+
+		get canSpecializeNow() { return this._var.canSpecializeNow; }
+		set canSpecializeNow(value) { this._var.canSpecializeNow = value; }
+	}
+	App.Corporate.Division = {};
+	const shared = {
+		RelatedDivisionType: class {
+			constructor() {
+				this._var = {
+					to:   [],
+					from: [],
+					all:  []
+				};
+			}
+			get to()   { return this._var.to  ; }
+			get from() { return this._var.from; }
+			get all()  { return this._var.all ; }
+			addTo(value) {
+				this._var.to.push(value);
+				this._var.all.push(value);
+			}
+			addFrom(value) {
+				this._var.from.push(value);
+				this._var.all.push(value);
+			}
+			get anyFounded() { return this.all.some(div=>div.founded); }
+		},
+		FoundingType: class {
+			constructor(division, {corporateCash, startingSize = 10}) {
+				this._const = {
+					division,
+					cash: corporateCash,
+					size: startingSize
+				};
+			}
+			get cash() { return this._const.cash; }
+			get size() { return this._const.size; }
+			get startingPrice() {
+				let div = this._const.division;
+				return this._const.cash + div.foundingCost;
+			}
+		},
+		SellOverflowSlaves: function(division) {
+			const slavesToSell  = division.activeSlaves - division.developmentCount;
+			if(slavesToSell > 0) {
+				const slaveProcCost = Math.trunc(App.Corporate.slaveMarketPurchaseValue(division, -slavesToSell));
+				App.Corporate.chargeAsset(slaveProcCost, "slaves");
+				division.activeSlaves -= slavesToSell;
+				V.menialDemandFactor -= slavesToSell;
+			}
+		},
+		SellUnhousedSlaves: function(division, divLedger, rate) {
+			if(divLedger.market.sell != 0) return;
+
+			let housing = 2 * rate * division.developmentCount;
+			let unhoused = division.heldSlaves - housing;
+			if(unhoused <= 0) return;
+
+			divLedger.market.sell = unhoused;
+		},
+		MessageProcessedSlaves: function(division, verbPhrase, color) {
+			let procCount = Math.trunc(division.developmentCount * division.processRate);
+			let slaveCountedNoun = numberWithPluralNonZero(procCount, "slave");
+
+			return `It ${verbPhrase} approximately <span class="${color}">${slaveCountedNoun}</span> each week when operating at capacity (${division.developmentCount})`;
+		},
+		MessageSlaveToMarket: function(division) {
+			return `The slaves from this division can be sold for <span class='yellowgreen'>${cashFormat(Math.trunc(division.soldSlaveValue * menialSlaveCost()))}</span> each.`;
+		},
+		EndWeekProcessing_Slaves: function(processingCount, rate) {
+			const perDevPair = rate.roll();
+			let slaveIncrease = perDevPair.value * processingCount;
+			if(slaveIncrease < 1) {
+				slaveIncrease = (slaveIncrease > Math.random() ? 1 : 0);
+			}
+			return {efficiency: perDevPair.roll, value: Math.trunc(slaveIncrease) };
+		},
+		FoundingSetupAutoBuy: function(division) {
+			let foundedFrom = division.relatedDivisions.from.filter(div=>div.founded);
+			if(foundedFrom.length == 0) {
+				division.setAutoBuyFromMarket(true);
+			}
+			else {
+				for(let otherDiv of foundedFrom) {
+					if(otherDiv.getAutoSendToMarket()) {
+						otherDiv.setAutoSendToDivision(division, true);
+					}
+				}
+			}
+
+		},
+		FoundingSetupAutoSell: function(division) {
+			let foundedTo = division.relatedDivisions.to.filter(div=>div.founded);
+			if(foundedTo.length == 0) {
+				division.setAutoSendToMarket(true);
+			}
+			else {
+				for(let otherDiv of foundedTo) {
+					if(otherDiv.getAutoBuyFromMarket()) {
+						division.setAutoSendToDivision(otherDiv, true);
+					}
+				}
+			}
+		}
+	};
+	App.Corporate.Init_DivisionBase(shared);
+	App.Corporate.Init_DivisionAcquiring(shared);
+	App.Corporate.Init_DivisionProcessing(shared);
+	App.Corporate.Init_DivisionWorking(shared);
+
+	App.Corporate.InitConstants();
+	let divisions = App.Corporate.divisions = mapIdList(App.Corporate.divisionList);
+	App.Corporate.maintenance.divisionCategories = mapIdList(App.Corporate.maintenance.divisionCategoriesList);
+
+	for(const divInfo of App.Corporate.divisionList.filter(div=>div.nextDivisions != null)) {
+		const div = divisions[divInfo.id];
+		for(const nextDepId of divInfo.nextDivisions) {
+			let nextDiv = divisions[nextDepId];
+			div.relatedDivisions.addTo(nextDiv);
+			nextDiv.relatedDivisions.addFrom(div);
+		}
+	}
+	let asDivision = function(division) {
+		if(_.isObject(division)) return division;
+		return App.Corporate.divisions[division];
+	}
+	App.Corporate.getStored	= function(key	   ) { return V[`corp${key}`];  }
+	App.Corporate.setStored	= function(key, value) { V[`corp${key}`] = value; }
+	App.Corporate.deleteStored = function(key	   ) { delete V[`corp${key}`];  }
+
+	//Integer properties starting with corp
+	const propertyToStoryInt = {
+		cash: "Cash",
+		numDivisions: 'Div',
+		foundedDate: 'Founded',
+		dividend: "Dividend",
+		specializations: "Spec",
+		specializationTokens: "SpecToken",
+		specializationTimer: "SpecTimer",
+	}
+	for(const property in propertyToStoryInt) {
+		const key = propertyToStoryInt[property];
+		Object.defineProperty(App.Corporate, property, {
+		get: function(	 ) { return this.getStored(key); },
+		set: function(value) {
+			if(!Number.isFinite(value)) throw "Unreal number " + key;
+			this.setStored(key, Math.trunc(value));
+		}
+		});
+	}
+
+	//Boolean properties starting with corp (true == 1, false == 0)
+	const propertyToStoryBool = {
+		founded: "Incorporated",
+		hasMarket: "Market",
+		payoutCash: "CashDividend",
+		canExpand: 'ExpandToken',
+	}
+	for(const property in propertyToStoryBool) {
+		const key = propertyToStoryBool[property];
+		Object.defineProperty(App.Corporate, property, {
+			get: function(	 ) { return this.getStored(key) === 1; },
+			set: function(value) { this.setStored(key, value == true ? 1 : 0); }
+		});
+	}
+
+	//Abnormal properties
+	Object.defineProperty(App.Corporate, "value", {
+		get: function() {
+			if(!this.founded) return 0;
+			let corpAssets = App.Corporate.divisionList
+										  .filter(div=>div.founded)
+										  .reduce((v, div)=>v + div.value, 0);
+			return corpAssets + this.dividend + this.cash;
+		}
+	});
+	Object.defineProperty(App.Corporate, "dividendRatio", {
+		get: function(	 ) { return V.dividendRatio ;		},
+		set: function(value) {		V.dividendRatio = value; }
+	});
+	Object.defineProperty(App.Corporate, "dividendTimer", {
+		get: function(	 ) { return V.dividendTimer ;		},
+		set: function(value) {		V.dividendTimer = value; }
+	});
+	Object.defineProperty(App.Corporate, "payoutAfterCash", {
+		get: function() {
+			return Math.max(Math.trunc(this.payoutCorpValueMultiplier * this.value), this.payoutMinimumCash);
+		}
+	});
+
+	const SharesType = class {
+		get personal()	  { return V.personalShares ;		}
+		set personal(value) {		V.personalShares = value; }
+		get public()		{ return V.publicShares   ;		}
+		set public(value)   {		V.publicShares   = value; }
+		get total()		 { return this.personal + this.public; }
+	};
+	App.Corporate.shares = new SharesType();
+	App.Corporate.ledger = {
+		current: new Ledger(App.Corporate),
+		old:	 new Ledger(App.Corporate, "Old"),
+		swap: function() {
+			this.old.copy(this.current);
+			this.current.clear();
+		},
+		clear: function() {
+			this.old.clear();
+			this.current.clear();
+		},
+		release: function() {
+			this.old.release();
+			this.current.release();
+		}
+	};
+	App.Corporate.foundingCostToPlayer = function(division, personalShares, publicShares) {
+		division = asDivision(division);
+		let costToPlayer = Math.trunc((division.foundingCash / (personalShares + publicShares)) * personalShares);
+		return costToPlayer;
+	}
+	App.Corporate.create = function(division, personalShares, publicShares) {
+		this.shares.personal = personalShares;
+		this.shares.public   = publicShares;
+		V.dividendTimer = 13;
+		this.founded = true;
+		this.foundedDate = V.week;
+		this.dividend = 0;
+		this.dividendRatio = 0;
+		this.specializationTimer = 4;
+
+		this.ledger.clear();
+
+		//this will be updated by division.create
+		this.numDivisions = 0;
+		this.expansionTokens = 1;
+
+		division = asDivision(division);
+		cashX(forceNeg(App.Corporate.foundingCostToPlayer(division, personalShares, publicShares)), 'stocksTraded');
+		this.cash = division.foundingCash;
+
+		division.create(this);
+		App.Corporate.ledger.swap();
+	};
+	App.Corporate.dissolve = function() {
+		for(let division of this.divisionList.filter(x=>x.founded)) {
+			division.dissolve();
+		}
+		this.founded = false;
+		this.numDivisions = 0;
+		this.expansionTokens = 0;
+		this.setStored("Expand", 0);
+		this.specializations = 0;
+		this.specializationTokens = 0;
+		this.setStored("SpecRaces", []);
+		this.ledger.release();
+
+		// Some of these will need to be refactored into App.Corporate.Specialization
+		const toDelete = [
+			"corpCash",
+			"personalShares",
+			"publicShares",
+			"corpDividend",
+			"dividendTimer",
+			"corpSpecAccent",
+			"corpSpecAge",
+			"corpSpecAmputee",
+			"corpSpecBalls",
+			"corpSpecDevotion",
+			"corpSpecDick",
+			"corpSpecEducation",
+			"corpSpecGender",
+			"corpSpecGenitalia",
+			"corpSpecWeight",
+			"corpSpecHeight",
+			"corpSpecHormones",
+			"corpSpecImplants",
+			"corpSpecInjection",
+			"corpSpecIntelligence",
+			"corpSpecMilk",
+			"corpSpecMuscle",
+			"corpSpecPussy",
+			"corpSpecSexEd",
+			"corpSpecTrust",
+			"corpSpecVirgin"
+		];
+		toDelete.forEach(id => delete V[id]);
+
+		if(this.hasMarket) {
+			let corporateMarketIndex = V.sectors.findIndex(sector => sector.type === "CorporateMarket");
+			V.sectors[corporateMarketIndex].type = "Markets";
+			this.hasMarket = false;
+		}
+	};
+	App.Corporate.expandedDivision = function() {
+		this.numDivisions += 1;
+		this.canExpand = false;
+	};
+	App.Corporate.dissolvedDivision = function() {
+		this.numDivisions -= 1;
+	};
+	App.Corporate.chargeAsset = function(cost, type) {
+		if(!Number.isFinite(cost)) throw "The cost provided was not a real number";
+		cost = Math.trunc(cost);
+		if(!(type in this.ledger.current)) throw `Ledger doesn't record '${type}' category.`;
+		if(cost == 0) return;
+
+		this.ledger.current[type] += cost;
+		this.cash -= cost;
+	};
+	App.Corporate.earnRevenue = function(cost, locality) {
+		if(!Number.isFinite(cost)) throw "The cost provided was not real";
+		cost = Math.trunc(cost);
+		let current = this.ledger.current;
+		let key = `${locality}Revenue`;
+		if(!(key in current)) throw `Unknown locality '${locality}'`;
+		current[key] += cost;
+		this.cash += cost;
+	};
+	App.Corporate.chargeDividend = function(cost, weekLedger) {
+		if(!Number.isFinite(cost)) throw "The cost provided was not real";
+		cost = Math.trunc(cost);
+		if(weekLedger == null) {
+			debugger;
+			throw "No weekLedger provided";
+		}
+		this.dividend += cost;
+		this.cash -= cost;
+		weekLedger.dividend += cost;
+	}
+	App.Corporate.creditEconomy = function() {
+		this.ledger.current.setEconomy(V.localEcon);
+		this.cash += this.ledger.current.economicBoost;
+	}
+	/* Need to prevent skipping intermediaries if they exist, ie break->surgery->train, you can skip surgery only if you don't have it.*/
+	App.Corporate.ownsIntermediaryDivision = function(fromDivision, toDivision) {
+		for(let intermediateDiv of toDivision.relatedDivisions
+											 .from
+											 .filter(iDep => iDep.id != fromDivision.id
+														  && fromDivision.relatedDivisions.to.includes(iDep))) {
+			if(intermediateDiv.founded) return true;
+		}
+		return false;
+	};
+	App.Corporate.slaveMarketPurchaseValue = function(division, count) {
+		division = asDivision(division);
+		let slaveValue = division.purchasedSlaveValue;
+		let totalValue = slaveValue * count * menialSlaveCost(count);
+		return Math.trunc(totalValue);
+	};
+	App.Corporate.slaveMarketSellValue = function(division, count) {
+		division = asDivision(division);
+		let slaveValue = division.soldSlaveValue;
+		let totalValue = slaveValue * count * menialSlaveCost(count);
+		return Math.trunc(totalValue);
+	};
+	App.Corporate.buySlaves = function(division, count) {
+		if(count <= 0) return 0;
+
+		division = asDivision(division);
+		let purchasePrice = this.slaveMarketPurchaseValue(division, count);
+		if(this.cash < purchasePrice) {
+			throw "Attempted purchase without enough money";
+		}
+
+		this.chargeAsset(purchasePrice, "slaves");
+		division.activeSlaves += count;
+		V.menialSupplyFactor  -= count;
+		return purchasePrice;
+	};
+	App.Corporate.sellSlaves = function(division, count) {
+		if(count <= 0) return 0;
+
+		division = asDivision(division);
+		if(division.heldSlaves < count) { throw "Attempted to sell more slaves than held."; }
+
+		let sellPrice = this.slaveMarketSellValue(division, count);
+		this.earnRevenue(sellPrice, "local");
+		division.heldSlaves -= count;
+		V.menialDemandFactor -= count;
+		return sellPrice;
+	};
+	App.Corporate.transferSlaves = function(fromDivision, toDivision, count) {
+		fromDivision = asDivision(fromDivision);
+		toDivision = asDivision(toDivision);
+		// TODO: validate the from and to departments are directly connected.
+
+		if(fromDivision.heldSlaves < count) throw `Tried to move ${count} slaves out of ${fromDivision.name}, but it only had ${fromDivision.heldSlaves}`;
+
+		fromDivision.heldSlaves -= count;
+		toDivision.activeSlaves += count;
+	};
+
+	App.Corporate.buyDevelopment = function(division, count) {
+		division = asDivision(division);
+
+		let cost = Math.trunc(division.sizeCost * count * 1000);
+
+		this.chargeAsset(cost, "development");
+		division.developmentCount += count;
+	};
+	App.Corporate.sellDevelopment = function(division, count) {
+		division = asDivision(division);
+
+		const devCount = division.developmentCount;
+		count = count || devCount;
+		if(count > devCount) throw `Attempted to sell more of a division ${division.id} than exists (${count} of ${devCount})`;
+		const developmentCost = Math.trunc(count * division.sizeCost * 800);
+		this.chargeAsset(-developmentCost, "development");
+		division.developmentCount -= count;
+	};
+	App.Corporate.setAutoSendToDivision = function(fromDivision, toDivision, value) {
+		fromDivision = asDivision(fromDivision);
+		toDivision = asDivision(toDivision);
+
+		fromDivision.setAutoSendToDivision(toDivision, value);
+	};
+	App.Corporate.setAutoSendToMarket = function(division, value) {
+		division = asDivision(division);
+		division.setAutoSendToMarket(value);
+	};
+	App.Corporate.setAutoBuyFromMarket = function(division, value) {
+		division = asDivision(division);
+		division.setAutoBuyFromMarket(value);
+	};
+	App.Corporate.calculateDividend = function(weekLedger)
+	{
+		let profit = this.ledger.current.profit;
+		if(this.dividendRatio > 0 && profit > 0)
+		{
+			this.chargeDividend(profit * this.dividendRatio, weekLedger);
+		}
+		//Payout leftover cash should be the last thing the corporation does
+		//in a week so that its cash will be at the payout amount.
+		if(this.payoutCash)
+		{
+			let payoutAfter = this.payoutAfterCash;
+			if(this.cash > payoutAfter)
+			{
+				this.chargeDividend(this.cash - payoutAfter, weekLedger);
+			}
+		}
+
+		if(this.dividendTimer <= 1)
+		{
+			weekLedger.payout = Math.trunc(this.dividend * this.shares.personal / this.shares.total);
+			cashX(weekLedger.payout, "stocks");
+			this.dividendTimer = 14;//13 for each quarter, but +1 because we're subtracting one below.
+			this.dividend = 0;
+		}
+
+		this.dividendTimer--;
+	};
+	App.Corporate.endWeek = function() {
+		let ledger = new WeekProcessingLedger();
+		//Prepare requests
+		for(let div of this.divisionList.filter(div=>div.founded)) {
+			let divLedger = ledger.getDivision(div)
+
+			ledger.operatingCost += div.maintenanceCost;
+			ledger.registerMaintenanceForDivision(div);
+
+			div.endweek_Revenue(divLedger);
+			div.endWeek_Slaves(divLedger);
+		}
+		for(let divLedger of Object.values(ledger.divisionLedgers)) {
+			let div = divLedger.division;
+			div.endWeek_Transfer(divLedger);
+			div.endWeek_Market(divLedger);
+		}
+		this.chargeAsset(ledger.operatingCost, "operations");
+		this.chargeAsset(ledger.overhead, "overhead");
+		//Execute sales requests, transfers, and earned revenue
+		for(let divLedger of Object.values(ledger.divisionLedgers)) {
+			let div = divLedger.division;
+			this.earnRevenue(divLedger.revenue.value, "local");
+			if(div.activeSlaves > 0)
+			{
+				shared.SellOverflowSlaves(div);
+			}
+
+			for(let otherDivPair of divLedger.transfer.divisions) {
+				let otherDiv = otherDivPair.division;
+				let count = otherDivPair.fill;
+				if(count == 0) continue;
+
+				this.transferSlaves(div, otherDiv, count);
+			}
+			if(divLedger.market.sell > 0) {
+				divLedger.market.finalSale = this.sellSlaves(div, divLedger.market.sell);
+			}
+		}
+
+		//Execute purchase requests
+		//todo: Make a switch to allow the user to control purchasing behavior.
+		//todo: Expensive first
+		//todo: Cheapest first
+		//Even purchase requsts:
+		let purchaseValues = evenFillArray(Object.values(ledger.divisionLedgers)
+												 .filter(divLedger=>divLedger.market.buy > 0)
+										  , this.cash
+										  , divLedger=>divLedger.market.buyValue);
+		for(let divLedgerPair of purchaseValues) {
+			let divLedger = divLedgerPair.item;
+			let purchaseCost = divLedgerPair.value;
+			let div = divLedger.division;
+
+			if(divLedger.market.buyValue > purchaseCost) {
+				//Estimate how many slaves we can afford within the purchase cost
+				let perSlaveEstimate = Math.trunc(divLedger.market.buyValue / divLedger.market.buy);
+				let numSlavesEstimate = Math.trunc(purchaseCost / perSlaveEstimate);
+
+				if(numSlavesEstimate < 1) {
+					divLedger.market.originalBuy = divLedger.market.buy;
+					divLedger.market.buyShortMoney = divLedger.market.buyValue;
+					divLedger.market.buyShortSlaves = divLedger.market.buy;
+					divLedger.market.buy = 0;
+				}
+				else {
+					divLedger.market.originalBuy = divLedger.market.buy;
+					divLedger.market.buyShortMoney = divLedger.market.buyValue - purchaseCost;
+					divLedger.market.buyShortSlaves = divLedger.market.buy - numSlavesEstimate;
+					divLedger.market.buy = numSlavesEstimate;
+				}
+			}
+			divLedger.market.finalPurchase = this.buySlaves(div, divLedger.market.buy);
+		}
+		this.creditEconomy();
+
+		if(this.numDivisions < this.divisionList.length && !this.canExpand)
+		{
+			let expansionValue = Math.trunc(Math.pow(this.numDivisions, 1.5) + (5 * this.numDivisions + 2) / 4);
+			if(this.value > expansionValue * 1000000)
+			{
+				ledger.canExpandNow = true;
+				this.canExpand = true;
+			}
+		}
+		let specializationExpansion = 1.6 * Math.pow(1.25, this.specializations) - 1.2;
+		if(this.value > specializationExpansion * 1000000){
+			this.specializationTokens++;
+			this.specializations++;
+			ledger.canSpecializeNow = true;
+		}
+		if(this.specializationTimer > 0)
+		{
+			this.specializationTimer--;
+		}
+		this.calculateDividend(ledger);
+
+		return ledger;
+	};
+	App.Corporate.cheatCash = function(userCash) {
+		userCash = Math.trunc(Number(userCash))
+		if(Number.isFinite(userCash)) {
+			this.cash = userCash;
+			V.cheater = 1
+		}
+	}
 
 	App.Corporate.Backcompat = function(){
 		//current foreignRevenue used to be used for old foreignRevenue
@@ -915,12 +915,12 @@ App.Corporate.Init = function() {
 		}
 	};
 
-    if(V.corpDivTrainSurgeryTimer !== undefined) {
-        let timer = V.corpDivTrainSurgeryTimer;
-        // Note: originally the timer was capped at 20, so the founding week isn't guaranteed to be correct.
-        V.corpDivSurgeryFounded = V.week - timer;
-        delete V.corpDivTrainSurgeryTimer;
-    }
+	if(V.corpDivTrainSurgeryTimer !== undefined) {
+		let timer = V.corpDivTrainSurgeryTimer;
+		// Note: originally the timer was capped at 20, so the founding week isn't guaranteed to be correct.
+		V.corpDivSurgeryFounded = V.week - timer;
+		delete V.corpDivTrainSurgeryTimer;
+	}
 };
 
 
@@ -928,24 +928,24 @@ App.Corporate.Init = function() {
 // A positive q means adding shares to the market, negative means removing them
 
 window.corpSharePrice = function(q = 0, personalShares = null, publicShares = null) {
-    if (V.corpIncorporated === 0) {
-        return 0;
-    }
-    personalShares = personalShares || V.personalShares;
-    publicShares   = publicShares   || V.publicShares;
-    return Math.trunc(1000 * (App.Corporate.value / (personalShares + publicShares + q)));
+	if (V.corpIncorporated === 0) {
+		return 0;
+	}
+	personalShares = personalShares || V.personalShares;
+	publicShares   = publicShares   || V.publicShares;
+	return Math.trunc(1000 * (App.Corporate.value / (personalShares + publicShares + q)));
 };
 
 // Corporation race blacklisting/whitelisting
 // race is the lowercase string representing the race, 'blacklist' is either 1 or 0. 1 means we are blacklisting and 0 means we are whitelisting said race
 window.corpBlacklistRace = function(race, blacklist) {
-    let raceArray = State.variables.corpSpecRaces;
-    if (raceArray.length > 0 && blacklist === 1) {
-        raceArray.delete(race);
-    } else if (blacklist === 1) {
-        raceArray = setup.filterRacesLowercase.filter(x => x !== race);
-    } else {
-        raceArray.push(race);
-    }
-    return raceArray;
+	let raceArray = State.variables.corpSpecRaces;
+	if (raceArray.length > 0 && blacklist === 1) {
+		raceArray.delete(race);
+	} else if (blacklist === 1) {
+		raceArray = setup.filterRacesLowercase.filter(x => x !== race);
+	} else {
+		raceArray.push(race);
+	}
+	return raceArray;
 };
diff --git a/src/Corporation/corporateWidgets.tw b/src/Corporation/corporateWidgets.tw
index 1cefcb6b16c09cdc8329eecdadc04a3ae98e8df5..01f0dae216ee19f71e5c081ca5e75048e97b1dca 100644
--- a/src/Corporation/corporateWidgets.tw
+++ b/src/Corporation/corporateWidgets.tw
@@ -4,44 +4,47 @@
 Usage:
 <<CorporateLedger _ledger $week>>
 
-    _ledger: One of the members of App.Corporate.ledger, such as .current or .old
-    $week: The current week or the previous week, depending on wether you used current or old.
+	_ledger: One of the members of App.Corporate.ledger, such as .current or .old
+	$week: The current week or the previous week, depending on whether you used current or old.
 */
 <<widget "CorporateLedger">>
+<<scope>>
+<<set _ledger = $args[0]>>
+<<set _week = $args[1]>>
 <table class="corporate">
 <thead>
-<tr><th colspan="2">Ledger for <<= asDateString($args[1]) >> - <<= asDateString($args[1] + 1, -1) >></th></tr>
+<tr><th colspan="2">Ledger for <<= asDateString(_week) >> - <<= asDateString(_week + 1, -1) >></th></tr>
 </thead>
 <tbody>
 /*Returns last week's revenue, gets calculated in corporationDevelopments, but slaves sold here also added to it for next week*/
-<tr><td>Revenue</td><td><<= cashFormatColor($args[0].revenue)>></td></tr>
+<tr><td>Revenue</td><td><<= cashFormatColor(_ledger.revenue)>></td></tr>
 <<if ($cheatMode) && ($cheatModeM) && App.Corporate.foreignRevenue > 0>>
-    <tr><td>Including Neighbor Bonus</td><td><<= cashFormatColor($args[0].foreignRevenue)>></td></tr>
+	<tr><td>Including Neighbor Bonus</td><td><<= cashFormatColor(_ledger.foreignRevenue)>></td></tr>
 <</if>>
 /*Just like revenue, except for operating expenses (all calculated in corporationDevelopments)*/
-<tr><td>Operating Expenses</td><td><<= cashFormatColor($args[0].operations, true)>></td></tr>
+<tr><td>Operating Expenses</td><td><<= cashFormatColor(_ledger.operations, true)>></td></tr>
 /*buying slaves to work on adds to this expense, works just like revenue*/
-<tr><td>Slave Expenses</td><td><<= cashFormatColor($args[0].slaves, true)>></td></tr>
+<tr><td>Slave Expenses</td><td><<= cashFormatColor(_ledger.slaves, true)>></td></tr>
 /*costs associated with expanding divisions end up here, reports costs from last week, not current*/
-<tr><td>Asset Expenses</td><td><<= cashFormatColor($args[0].development, true)>></td></tr>
+<tr><td>Asset Expenses</td><td><<= cashFormatColor(_ledger.development, true)>></td></tr>
 <<if ($cheatMode) && ($cheatModeM)>>
-    <tr>
-        <td>Economic <<if $args[0].economicBoost < 0>>Expenses<<else>>Windfall<</if>></td>
-        <td><<= cashFormatColor($args[0].economicBoost)>></td>
-    </tr>
+	<tr>
+		<td>Economic <<if _ledger.economicBoost < 0>>Expenses<<else>>Windfall<</if>></td>
+		<td><<= cashFormatColor(_ledger.economicBoost)>></td>
+	</tr>
 <</if>>
-<tr><td>Overhead</td><td><<= cashFormatColor($args[0].overhead, true)>></td></tr>
+<tr><td>Overhead</td><td><<= cashFormatColor(_ledger.overhead, true)>></td></tr>
 <tr><td>Profit</td><td>
-<div><<= cashFormatColor($args[0].profit)>></div>
-<<if $args[0].economicBoost > 0>>
+<div><<= cashFormatColor(_ledger.profit)>></div>
+<<if _ledger.economicBoost > 0>>
 <div class="note">
-    <<if $args[0].economy > 100>>
-        * Profits benefited from a strong economy.
-    <<elseif $args[0].economy > 60>>
-        * Profits were lowered by the weak economy.
-    <<else>>
-        * Profits were severely depressed by the failing economy.
-    <</if>>
+	<<if _ledger.economy > 100>>
+		* Profits benefited from a strong economy.
+	<<elseif _ledger.economy > 60>>
+		* Profits were lowered by the weak economy.
+	<<else>>
+		* Profits were severely depressed by the failing economy.
+	<</if>>
 </div>
 <</if>>
 </td></tr>
@@ -51,20 +54,20 @@ Usage:
 </thead>
 <tbody>
 <tr>
-    <td>Liquidity</td>
-    <td>
-    <<if ($cheatMode) && ($cheatModeM)>>
-        <span id="corpCash"><<= cashFormatColor(App.Corporate.cash)>></span>
-        <<set _TcorpCash = App.Corporate.cash>>
-        <<textbox "_TcorpCash" _TcorpCash>>
-        <<link "Apply">>
-        <<set App.Corporate.cheatCash(_TcorpCash)>>
-        <<replace "#corpCash">><<= cashFormatColor(App.Corporate.cash)>><</replace>>
-        <</link>>
-    <<else>>
-        <<= cashFormatColor(App.Corporate.cash)>>
-    <</if>>
-    </td>
+	<td>Liquidity</td>
+	<td>
+	<<if ($cheatMode) && ($cheatModeM)>>
+		<span id="corpCash"><<= cashFormatColor(App.Corporate.cash)>></span>
+		<<set _TcorpCash = App.Corporate.cash>>
+		<<textbox "_TcorpCash" _TcorpCash>>
+		<<link "Apply">>
+		<<set App.Corporate.cheatCash(_TcorpCash)>>
+		<<replace "#corpCash">><<= cashFormatColor(App.Corporate.cash)>><</replace>>
+		<</link>>
+	<<else>>
+		<<= cashFormatColor(App.Corporate.cash)>>
+	<</if>>
+	</td>
 </tr>
 <tr><td>Corporate Value</td><td><<= cashFormatColor(App.Corporate.value)>></td></tr>
 <tr>
@@ -72,13 +75,13 @@ Usage:
 <td>
 <div><<= cashFormatColor(App.Corporate.dividend)>></div>
 <div class="note">Pays out on <<=asDateString($args[1] + App.Corporate.dividendTimer, -1)>>, <<if App.Corporate.dividendTimer == 1>>
-    the end of this week
+	the end of this week
 <<else>>
-    in <<= App.Corporate.dividendTimer >> weeks
+	in <<= App.Corporate.dividendTimer >> weeks
 <</if>>
 </div>
 </td></tr>
 </tbody>
 </table>
-
+<</scope>>
 <</widget>>
diff --git a/src/Corporation/corporationDevelopments.tw b/src/Corporation/corporationDevelopments.tw
index a63df211aca26f3cc16527157db1c7762580bf1f..0403f009bc6769bb1194d467642e5bc9085caa02 100644
--- a/src/Corporation/corporationDevelopments.tw
+++ b/src/Corporation/corporationDevelopments.tw
@@ -3,7 +3,7 @@
 /*Main Corporation Pass*/
 
 <<if App.Corporate.cash < 0>>
-    <<set App.Corporate.cash = Math.trunc(App.Corporate.cash * 1.02)>> /*2% weekly interest rate on negative cash*/
+	<<set App.Corporate.cash = Math.trunc(App.Corporate.cash * 1.02)>> /*2% weekly interest rate on negative cash*/
 <</if>>
 
 <h1>Corporation Management</h1>
@@ -12,44 +12,44 @@
 <<set _weekLedger = App.Corporate.endWeek()>>
 /* TODO: I would like to move some of the following loop into a new loop. It should go Process -> Transfer -> Sell -> Buy (most expensive to least) to give the best chance of auto-buy having enough money to make purchases. */
 <<for _d range _weekLedger.divisionLedgers>>
-    <<set _div = _d.division>>
-    /* Reporting on number of slaves being processed or completed processing */
-    <br><<= _div.name>>: The division <<= _div.message_endWeek_Slaves(_d) >>.
-    <<if _d.market.originalBuy != null>>
-        <br>
-        <<if _d.market.buy == 0>>
-            It couldn't purchase <<= numberWithPlural(_d.market.originalBuy, "slave") >> to replenish its stock from the market because it couldn't afford to purchase price.
-        <<else>>
-            It needed to replenish its slave stock of <<= numberWithPlural(_d.market.originalBuy, "slave")>>, but couldn't afford to buy all of them. It bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)>> for <<= cashFormatColor(_d.market.finalPurchase, true) >>.
-        <</if>>
-    <<elseif _d.market.buy > 0>>
-        <br>It replenished its slave stock and bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket) >> from the market for  <<= cashFormatColor(_d.market.finalPurchase, true) >>.
-    <</if>>
-    <<if _d.transfer.total > 0>>
-        <<for _nextDivLedger range _d.transfer.divisions>>
-            <<set _nextDiv = _nextDivLedger.division>>
-            <<set _slavesToNext = _nextDivLedger.fill>>
+	<<set _div = _d.division>>
+	/* Reporting on number of slaves being processed or completed processing */
+	<br><<= _div.name>>: The division <<= _div.message_endWeek_Slaves(_d) >>.
+	<<if _d.market.originalBuy != null>>
+		<br>
+		<<if _d.market.buy == 0>>
+			It couldn't purchase <<= numberWithPlural(_d.market.originalBuy, "slave") >> to replenish its stock from the market because it couldn't afford to purchase price.
+		<<else>>
+			It needed to replenish its slave stock of <<= numberWithPlural(_d.market.originalBuy, "slave")>>, but couldn't afford to buy all of them. It bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)>> for <<= cashFormatColor(_d.market.finalPurchase, true) >>.
+		<</if>>
+	<<elseif _d.market.buy > 0>>
+		<br>It replenished its slave stock and bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket) >> from the market for <<= cashFormatColor(_d.market.finalPurchase, true) >>.
+	<</if>>
+	<<if _d.transfer.total > 0>>
+		<<for _nextDivLedger range _d.transfer.divisions>>
+			<<set _nextDiv = _nextDivLedger.division>>
+			<<set _slavesToNext = _nextDivLedger.fill>>
 
-            It moved <<= numberWithPlural(_slavesToNext, "slave")>> to the <<= _nextDiv.name>> Division.
-        <</for>>
-    <</if>>
-    <<if _div.toMarket>>
-        <<if _div.heldSlaves == 0>>
-            <<if _d.market.sell > 0>>
-                It immediately sold <<= numberWithPlural(_d.market.sell,  _div.nounFinishedSlave) >> to the market and made <<= cashFormatColor(_d.market.finalSale)>>.
-            <</if>>
-        <<else>>
-            It holds @@.green;<<= numberWithPlural(_div.heldSlaves, _div.nounFinishedSlave)>>@@ at the end of the
-            <<if _d.market.sell > 0>>
-                 week, but it ran out of storage space and had to sell @@.red;<<= numberWithPlural(_d.market.sell, "slave")>>@@ and made <<= cashFormatColor(_d.market.finalSale)>>.
-            <<else>>
-                 week.
-            <</if>>
-        <</if>>
-    <</if>>
-    <<if _d.revenue.value > 0>>
-        It earned <<= cashFormatColor(_d.revenue.value)>> in revenue.
-    <</if>>
+			It moved <<= numberWithPlural(_slavesToNext, "slave")>> to the <<= _nextDiv.name>> Division.
+		<</for>>
+	<</if>>
+	<<if _div.toMarket>>
+		<<if _div.heldSlaves == 0>>
+			<<if _d.market.sell > 0>>
+				It immediately sold <<= numberWithPlural(_d.market.sell, _div.nounFinishedSlave) >> to the market and made <<= cashFormatColor(_d.market.finalSale)>>.
+			<</if>>
+		<<else>>
+			It holds @@.green;<<= numberWithPlural(_div.heldSlaves, _div.nounFinishedSlave)>>@@ at the end of the
+			<<if _d.market.sell > 0>>
+				 week, but it ran out of storage space and had to sell @@.red;<<= numberWithPlural(_d.market.sell, "slave")>>@@ and made <<= cashFormatColor(_d.market.finalSale)>>.
+			<<else>>
+				 week.
+			<</if>>
+		<</if>>
+	<</if>>
+	<<if _d.revenue.value > 0>>
+		It earned <<= cashFormatColor(_d.revenue.value)>> in revenue.
+	<</if>>
 <</for>>
 
 /*Aggregate Corporation Results*/
@@ -58,42 +58,42 @@
 
 /*Division Expansion Tokens*/
 <<if _weekLedger.canExpandNow>>
-    <div class="majorText">Your corporation is ready to start an additional division!</div>
+	<div class="majorText">Your corporation is ready to start an additional division!</div>
 <</if>>
 
 /*Specializations tokens*/
 <<if _weekLedger.canSpecializeNow>>
-    <div class="majorText">Your corporation is ready to specialize its slaves further!</div>
+	<div class="majorText">Your corporation is ready to specialize its slaves further!</div>
 <</if>>
 
 /*Calculating cash set aside for dividend*/
 <h2>Dividend</h2>
 <div>
 <<if App.Corporate.dividendRatio > 0>>
-    The corporation is currently reserving <<= Math.floor(App.Corporate.dividendRatio * 100)>>% of its profit to be paid out as dividends.
+	The corporation is currently reserving <<= Math.floor(App.Corporate.dividendRatio * 100)>>% of its profit to be paid out as dividends.
 <<else>>
-    The corporation is currently not reserving a portion of its profit to be paid out as dividends.
+	The corporation is currently not reserving a portion of its profit to be paid out as dividends.
 <</if>>
 <<if App.Corporate.payoutCash>>
-    It is putting aside unused cash reserves to be paid out as dividends.
+	It is putting aside unused cash reserves to be paid out as dividends.
 <</if>>
 </div>
 <div>
 <<if App.Corporate.dividend > 0>>
-    <<if _weekLedger.hasDividend>>
-        It reserved <<print cashFormatColor(_weekLedger.dividend)>> this week.
-    <</if>>
-    A total of <<print cashFormatColor(App.Corporate.dividend)>> has been put aside for its shareholders.
+	<<if _weekLedger.hasDividend>>
+		It reserved <<print cashFormatColor(_weekLedger.dividend)>> this week.
+	<</if>>
+	A total of <<print cashFormatColor(App.Corporate.dividend)>> has been put aside for its shareholders.
 <</if>>
 </div>
 <<if _weekLedger.hasPayout>>
-    <div>This week the dividends were paid out, you received <<print cashFormatColor(_weekLedger.payout)>>.</div>
+	<div>This week the dividends were paid out, you received <<print cashFormatColor(_weekLedger.payout)>>.</div>
 <</if>>
 
 /*Bankrupted the Corporation*/
 <<if App.Corporate.value < 0>>
-    <<run App.Corporation.Dissolve()>>
-    <br>@@.red;Your corporation went bankrupt.@@
+	<<run App.Corporation.Dissolve()>>
+	<br>@@.red;Your corporation went bankrupt.@@
 <</if>>
 /*This needs to be at the very end of the financials*/
 <<run App.Corporate.ledger.swap()>>
diff --git a/src/Corporation/manageCorporation.tw b/src/Corporation/manageCorporation.tw
index 38676cea6023597f8ff17ea95af810128fbe7f0d..328e55d59aa059bdd7b4f5dcafb72de25a53cb58 100644
--- a/src/Corporation/manageCorporation.tw
+++ b/src/Corporation/manageCorporation.tw
@@ -16,43 +16,43 @@
 
  /*Picking a starting division*/
 <<if $vanillaShareSplit == 1>>
-    <<set _corpPerShares = 2000>>
-    <<set _corpPubShares = 1000>>
+	<<set _corpPerShares = 2000>>
+	<<set _corpPubShares = 1000>>
 <<else>>
-    <<set _corpPerShares = 8000>>
-    <<set _corpPubShares = 7000>>
+	<<set _corpPerShares = 8000>>
+	<<set _corpPubShares = 7000>>
 <</if>>
 
 <<for _index, _div range _divisionsByFoundingCost>>
-    <<set _divCost = App.Corporate.foundingCostToPlayer(_div, _corpPerShares, _corpPubShares)>>
-    <<if $cash >= _divCost>>
-        <<if _index == 0>>
-            You can lay the groundwork for a slave corporation and choose to start out with:
-        <</if>>
-        <div>
-        <<= "[[" + _div.name + "|Manage Corporation]"
-         +  "[App.Corporate.create( '"+ _div.id + "'"
-                                +", " + _corpPerShares
-                                +", " + _corpPubShares
-                                +")]]">> (<<=cashFormat(_divCost)>>): Focuses on <<= _div.focusDescription >>.
-        </div>
-    <<else>>
-        <br>You lack the funds <<= _optionsText[App.Utils.mapIndexBetweenLists(_index, _divisionsByFoundingCost, _optionsText)] >>. You need at least @@.yellowgreen;<<print cashFormat(_divCost)>>@@
-        <<if _index != 0>>
-            <<if _index < _divisionsByFoundingCost.length - 1>>
-                for the next option and at most @@.yellowgreen;<<print cashFormat(App.Corporate.foundingCostToPlayer(_divisionsByFoundingCost[_divisionsByFoundingCost.length - 1], _corpPerShares, _corpPubShares))>>@@.
-            <<else>>
-                for it.
-            <</if>>
-        <</if>>
-        <<break>>
-    <</if>>
+	<<set _divCost = App.Corporate.foundingCostToPlayer(_div, _corpPerShares, _corpPubShares)>>
+	<<if $cash >= _divCost>>
+		<<if _index == 0>>
+			You can lay the groundwork for a slave corporation and choose to start out with:
+		<</if>>
+		<div>
+		<<= "[[" + _div.name + "|Manage Corporation]"
+		 +  "[App.Corporate.create( '"+ _div.id + "'"
+								+", " + _corpPerShares
+								+", " + _corpPubShares
+								+")]]">> (<<=cashFormat(_divCost)>>): Focuses on <<= _div.focusDescription >>.
+		</div>
+	<<else>>
+		<br>You lack the funds <<= _optionsText[App.Utils.mapIndexBetweenLists(_index, _divisionsByFoundingCost, _optionsText)] >>. You need at least @@.yellowgreen;<<print cashFormat(_divCost)>>@@
+		<<if _index != 0>>
+			<<if _index < _divisionsByFoundingCost.length - 1>>
+				for the next option and at most @@.yellowgreen;<<print cashFormat(App.Corporate.foundingCostToPlayer(_divisionsByFoundingCost[_divisionsByFoundingCost.length - 1], _corpPerShares, _corpPubShares))>>@@.
+			<<else>>
+				for it.
+			<</if>>
+		<</if>>
+		<<break>>
+	<</if>>
 <</for>>
 
 <<if $vanillaShareSplit == 1>>
-    <br>[[8-7 Share Split|Manage Corporation][$vanillaShareSplit = 0]]
+	<br>[[8-7 Share Split|Manage Corporation][$vanillaShareSplit = 0]]
 <<else>>
-    <br>[[2-1 Share Split|Manage Corporation][$vanillaShareSplit = 1]]
+	<br>[[2-1 Share Split|Manage Corporation][$vanillaShareSplit = 1]]
 <</if>>
 
 <<else>> /*When the corporation exists*/
@@ -67,196 +67,196 @@
 
 <h1>Division Management</h1>
 <<for _div range App.Corporate.divisionList.filter(x => x.founded)>>
-    <h2><<= _div.name>> Division</h2>
-    <<if _div.foundedDate != 0>>
-    <div class="founding">Founded on <<= asDateString(_div.foundedDate)>></div>
-    <</if>>
-    This division focuses on <<= _div.focusDescription >>.
-    <br><<= _div.messageSlaveCount() >>
+	<h2><<= _div.name>> Division</h2>
+	<<if _div.foundedDate != 0>>
+	<div class="founding">Founded on <<= asDateString(_div.foundedDate)>></div>
+	<</if>>
+	This division focuses on <<= _div.focusDescription >>.
+	<br><<= _div.messageSlaveCount() >>
 
-    <<set _divMaint = _div.getDisplayMaintenanceCost()>>
-    <br>It costs @@.red;<<= cashFormat(Math.trunc(_divMaint.cost))>>@@ to run. On average that is @@.red;<<= cashFormat(Math.trunc(_divMaint.perUnit)) >>@@ per slave.
-    <br><<= _div.messageSlaveOutput() >>
-    <<set _divSentanceStart = ["Currently the division", "It also"]>>
-    <h3>Direct Control</h3>
-    <<if _div.fromMarket>>
-        <div>
-        <<= _divSentanceStart.shift() >> is <<= _div.slaveAction.present >> @@.green;<<= numberWithPlural(_div.activeSlaves, "slave") >>@@.
-        <<if _div.activeSlaves < _div.developmentCount>>
-            <<set _fillSlaveCount  = _div.availableRoom>>
-            <br>There is room to <<= _div.slaveAction.future >> <<= numberWithPluralOne(_fillSlaveCount, "more slave")>>.
-            <<set _buySlaveArray = [
-                { 'name': 'Buy Slave', 'count':1 },
-                { 'name': 'Buy x10'  , 'count':10}
-            ]>>
-            <<if !_buySlaveArray.some(function(x) { return x.count == _fillSlaveCount })>>
-                <<run _buySlaveArray.push({ 'name': 'Fill'  , 'count':_fillSlaveCount})>>
-            <</if>>
-            <<set _singleSlaveCost = App.Corporate.slaveMarketPurchaseValue(_div, 1)>>
-            <<if $corpCash > _singleSlaveCost>>
-                <div>
-                The corporation can purchase slaves directly from the market for about <<=cashFormatColor(_singleSlaveCost)>>
-                </div>
-                <div>
-                <<set _sepObj.need = false>>
-                <<for  _slaveNum range _buySlaveArray.filter(num => _div.availableRoom > num.count)>>
-                    <<set _slaveSetCost = App.Corporate.slaveMarketPurchaseValue(_div, _slaveNum.count)>>
-                    <<if $corpCash < _slaveSetCost>>
-                        <<continue>>
-                    <</if>>
-                    <<= Seperator(_sepObj) >>
-                    <<= "[[" + _slaveNum.name + "|Manage Corporation]"
-                      + "[App.Corporate.buySlaves('"+_div.id+"', "+_slaveNum.count+")]"
-                      + "]">>
-                <</for>>
-                </div>
-            <<else>>
-                <div>//The corporation cannot afford to purchase any slaves from the market.// It requires about @@.yellowgreen;<<= cashFormat(_singleSlaveCost)>>@@ to buy a <<= asSingular(_div.slaveAction.market)>>.</div>
-            <</if>>
-        <<else>>
-        <br>There is //no room// to <<= _div.slaveAction.future>> more slaves.
-        <</if>>
-        </div>
-    <</if>>
-    <<if _div.toMarket>>
-        <<set _finishedSlaveNoun = _div.nounFinishedSlave>>
-        <<if _div.heldSlaves > 0>>
-            <div>
-            <<= _divSentanceStart.shift() >> holds @@.green;<<= numberWithPlural(_div.heldSlaves, _finishedSlaveNoun) >>@@.
-            <<for _nextDiv range _div.relatedDivisions
-                                     .to
-                                     .filter(div => div.availableRoom > 0
-                                                 && !App.Corporate.ownsIntermediaryDivision(_div, div))>>
-                <div>
-                The <<= _nextDiv.name >> Division can accept up to @@.green;<<= numberWithPlural(_nextDiv.availableRoom, "slave") >>@@.
+	<<set _divMaint = _div.getDisplayMaintenanceCost()>>
+	<br>It costs @@.red;<<= cashFormat(Math.trunc(_divMaint.cost))>>@@ to run. On average that is @@.red;<<= cashFormat(Math.trunc(_divMaint.perUnit)) >>@@ per slave.
+	<br><<= _div.messageSlaveOutput() >>
+	<<set _divSentanceStart = ["Currently the division", "It also"]>>
+	<h3>Direct Control</h3>
+	<<if _div.fromMarket>>
+		<div>
+		<<= _divSentanceStart.shift() >> is <<= _div.slaveAction.present >> @@.green;<<= numberWithPlural(_div.activeSlaves, "slave") >>@@.
+		<<if _div.activeSlaves < _div.developmentCount>>
+			<<set _fillSlaveCount  = _div.availableRoom>>
+			<br>There is room to <<= _div.slaveAction.future >> <<= numberWithPluralOne(_fillSlaveCount, "more slave")>>.
+			<<set _buySlaveArray = [
+				{ 'name': 'Buy Slave', 'count':1 },
+				{ 'name': 'Buy x10'  , 'count':10}
+			]>>
+			<<if !_buySlaveArray.some(function(x) { return x.count == _fillSlaveCount })>>
+				<<run _buySlaveArray.push({ 'name': 'Fill'  , 'count':_fillSlaveCount})>>
+			<</if>>
+			<<set _singleSlaveCost = App.Corporate.slaveMarketPurchaseValue(_div, 1)>>
+			<<if $corpCash > _singleSlaveCost>>
+				<div>
+				The corporation can purchase slaves directly from the market for about <<=cashFormatColor(_singleSlaveCost)>>
+				</div>
+				<div>
+				<<set _sepObj.need = false>>
+				<<for  _slaveNum range _buySlaveArray.filter(num => _div.availableRoom > num.count)>>
+					<<set _slaveSetCost = App.Corporate.slaveMarketPurchaseValue(_div, _slaveNum.count)>>
+					<<if $corpCash < _slaveSetCost>>
+						<<continue>>
+					<</if>>
+					<<= Seperator(_sepObj) >>
+					<<= "[[" + _slaveNum.name + "|Manage Corporation]"
+					  + "[App.Corporate.buySlaves('"+_div.id+"', "+_slaveNum.count+")]"
+					  + "]">>
+				<</for>>
+				</div>
+			<<else>>
+				<div>//The corporation cannot afford to purchase any slaves from the market.// It requires about @@.yellowgreen;<<= cashFormat(_singleSlaveCost)>>@@ to buy a <<= asSingular(_div.slaveAction.market)>>.</div>
+			<</if>>
+		<<else>>
+		<br>There is //no room// to <<= _div.slaveAction.future>> more slaves.
+		<</if>>
+		</div>
+	<</if>>
+	<<if _div.toMarket>>
+		<<set _finishedSlaveNoun = _div.nounFinishedSlave>>
+		<<if _div.heldSlaves > 0>>
+			<div>
+			<<= _divSentanceStart.shift() >> holds @@.green;<<= numberWithPlural(_div.heldSlaves, _finishedSlaveNoun) >>@@.
+			<<for _nextDiv range _div.relatedDivisions
+									 .to
+									 .filter(div => div.availableRoom > 0
+												 && !App.Corporate.ownsIntermediaryDivision(_div, div))>>
+				<div>
+				The <<= _nextDiv.name >> Division can accept up to @@.green;<<= numberWithPlural(_nextDiv.availableRoom, "slave") >>@@.
 
-                <<set _sendSlaveArray = [
-                    {'name': 'Send Slave', 'count':1  },
-                    {'name': 'Send x10'   , 'count':10 }
-                ]>>
-                <<if _div.heldSlaves >= _nextDiv.availableRoom>>
-                    <<run _sendSlaveArray.push({'name':`Fill  ${_nextDiv.name} Division`, 'count':_nextDiv.availableRoom})>>
-                <<else>>
-                    <<run _sendSlaveArray.push({'name':'Send All', 'count':_div.heldSlaves})>>
-                <</if>>
-                <<set _sepObj.need = false>>
-                <<for _index, _slaveNum range _sendSlaveArray.filter(slaveNum => slaveNum.count <= _nextDiv.availableRoom && slaveNum.count <= _div.heldSlaves)>>
-                    <<= Seperator(_sepObj)>>
-                    <<= "[[" + _slaveNum.name + "|Manage Corporation]"
-                      + "[App.Corporate.transferSlaves('"+_div.id+"', '"+_nextDiv.id+"', "+_slaveNum.count+")"
-                      + "]]">>
-                <</for>>
-                </div>
-            <</for>>
-            </div>
+				<<set _sendSlaveArray = [
+					{'name': 'Send Slave', 'count':1  },
+					{'name': 'Send x10'   , 'count':10 }
+				]>>
+				<<if _div.heldSlaves >= _nextDiv.availableRoom>>
+					<<run _sendSlaveArray.push({'name':`Fill  ${_nextDiv.name} Division`, 'count':_nextDiv.availableRoom})>>
+				<<else>>
+					<<run _sendSlaveArray.push({'name':'Send All', 'count':_div.heldSlaves})>>
+				<</if>>
+				<<set _sepObj.need = false>>
+				<<for _index, _slaveNum range _sendSlaveArray.filter(slaveNum => slaveNum.count <= _nextDiv.availableRoom && slaveNum.count <= _div.heldSlaves)>>
+					<<= Seperator(_sepObj)>>
+					<<= "[[" + _slaveNum.name + "|Manage Corporation]"
+					  + "[App.Corporate.transferSlaves('"+_div.id+"', '"+_nextDiv.id+"', "+_slaveNum.count+")"
+					  + "]]">>
+				<</for>>
+				</div>
+			<</for>>
+			</div>
 
-            <div>The corporation can sell these slaves to the market.
+			<div>The corporation can sell these slaves to the market.
 
-            <<set _sellSlaveArray = [
-                {'name':'Sell Slave', 'count':1   },
-                {'name':'Sell x10'  , 'count':10  },
-                {'name':'Sell x100' , 'count':100 },
-                {'name':'Sell All'  , 'count':_div.heldSlaves }
-            ]>>
+			<<set _sellSlaveArray = [
+				{'name':'Sell Slave', 'count':1   },
+				{'name':'Sell x10'  , 'count':10  },
+				{'name':'Sell x100' , 'count':100 },
+				{'name':'Sell All'  , 'count':_div.heldSlaves }
+			]>>
 
-            <<set _sepObj.need = false>>
-            <<for _index, _slaveNum range _sellSlaveArray.filter(slaveNum => _div.heldSlaves >= slaveNum.count)>>
-                <<= Seperator(_sepObj)>>
-                <<= "[[" + _slaveNum.name + "|Manage Corporation]"
-                  + "[App.Corporate.sellSlaves('"+_div.id+"',"+_slaveNum.count+")]"
-                  + "]">>
-            <</for>>
-            </div>
-        <<else>>
-            <div>The division is not holding any <<= asPlural(_finishedSlaveNoun)>>.</div>
-        <</if>>
-    <</if>>
+			<<set _sepObj.need = false>>
+			<<for _index, _slaveNum range _sellSlaveArray.filter(slaveNum => _div.heldSlaves >= slaveNum.count)>>
+				<<= Seperator(_sepObj)>>
+				<<= "[[" + _slaveNum.name + "|Manage Corporation]"
+				  + "[App.Corporate.sellSlaves('"+_div.id+"',"+_slaveNum.count+")]"
+				  + "]">>
+			<</for>>
+			</div>
+		<<else>>
+			<div>The division is not holding any <<= asPlural(_finishedSlaveNoun)>>.</div>
+		<</if>>
+	<</if>>
 
-    /* Expanding the division*/
-    <<set _depExpandCost = _div.sizeCost * 1000>>
-    <div>Expanding the division costs <span class="red"><<print cashFormat(_depExpandCost)>></span>. Downsizing recoups 80% of the investment; slaves will be sold at the going rate.</div>
-    <div>
-    <<set _buyDevArray = [
-                { 'name': 'Expand Division' , 'count':1},
-                { 'name': 'Expand x10', 'count':10}
-            ]>>
-    <<set _sepObj.need = false>>
-    <<for _buySet range _buyDevArray.filter(buySet => App.Corporate.cash >= buySet.count * _depExpandCost)>>
-        <<= Seperator(_sepObj) >>
-        <<= "[["+_buySet.name+"|Manage Corporation]"
-          + "[App.Corporate.buyDevelopment('" + _div.id + "', " + _buySet.count + ")]"
-          + "]">>
-    <</for>>
+	/* Expanding the division*/
+	<<set _depExpandCost = _div.sizeCost * 1000>>
+	<div>Expanding the division costs <span class="red"><<print cashFormat(_depExpandCost)>></span>. Downsizing recoups 80% of the investment; slaves will be sold at the going rate.</div>
+	<div>
+	<<set _buyDevArray = [
+				{ 'name': 'Expand Division' , 'count':1},
+				{ 'name': 'Expand x10', 'count':10}
+			]>>
+	<<set _sepObj.need = false>>
+	<<for _buySet range _buyDevArray.filter(buySet => App.Corporate.cash >= buySet.count * _depExpandCost)>>
+		<<= Seperator(_sepObj) >>
+		<<= "[["+_buySet.name+"|Manage Corporation]"
+		  + "[App.Corporate.buyDevelopment('" + _div.id + "', " + _buySet.count + ")]"
+		  + "]">>
+	<</for>>
 
-    /* Downsize the division*/
-    <<set _depDownsizeCost = _depExpandCost * 0.8>>
-    <<set _sellDevArray = [
-                { 'name': 'Downsize Division', 'count':1 },
-                { 'name': 'Downsize x10'     , 'count':10}
-            ]>>
-    <<for _sellSet range _sellDevArray.filter(divNum => _div.developmentCount > divNum.count)>>
-        <<= Seperator(_sepObj) >>
-        <<= "[["+_sellSet.name+"|Manage Corporation]"
-          + "[App.Corporate.sellDevelopment('"+_div.id+"', "+_sellSet.count+")]"
-          + "]">>
-    <</for>>
-    </div>
-    <h3>Rules</h3>
-    <<for _nextDiv range _div.relatedDivisions.to.filter(nextDiv => nextDiv.founded && !App.Corporate.ownsIntermediaryDivision(_div, nextDiv))>>
-        /* TODO: Originally this had a bit of flavor per nextDep. ie, Surgery said "to undergo surgery"*/
-        <div>
-        <<if _div.getAutoSendToDivision(_nextDiv)>>
-            Auto send slaves to <<= _nextDiv.name >> Division <<= "[[Stop Auto Send|Manage Corporation][App.Corporate.setAutoSendToDivision('"+_div.id+"', '"+_nextDiv.id+"', false)]]">>
-        <<else>>
-            Do not send slaves to <<= _nextDiv.name >> Division <<= "[[Auto Send|Manage Corporation][App.Corporate.setAutoSendToDivision('"+_div.id+"', '"+_nextDiv.id+"', true)]]">>
-        <</if>>
-        </div>
-    <</for>>
-    <<if _div.toMarket>>
-        <div>
-        <<if _div.getAutoSendToMarket()>>
-            Auto sell slaves to the market <<= "[[Stop Auto Sell|Manage Corporation][App.Corporate.setAutoSendToMarket('"+_div.id+"', false)]]" >>
-        <<else>>
-            Do not sell slaves to the market <<= "[[Auto Sell|Manage Corporation][App.Corporate.setAutoSendToMarket('"+_div.id+"', true)]]" >>
-        <</if>>
-        </div>
-    <</if>>
-    <<if _div.fromMarket>>
-        <div>
-        <<if _div.getAutoBuyFromMarket()>>
-            Auto buy slaves from the market <<= "[[Stop Auto Buy|Manage Corporation][App.Corporate.setAutoBuyFromMarket('"+ _div.id +"', false)]]" >>
-        <<else>>
-            Do not buy slaves from the market <<= "[[Auto Buy|Manage Corporation][App.Corporate.setAutoBuyFromMarket('"+ _div.id +"', true)]]" >>
-        <</if>>
-        </div>
-    <</if>>
-    <<if App.Corporate.numDivisions > 1>> /* Cannot dissolve the last division */
-        <div>Dissolve the division @@.orange;//Think before you click//@@ /* TODO: Add a confirmation button. Probably use replace?*/
-        <<= "[[Dissolve|Manage Corporation]"
-          + "[App.Corporate.divisions['" + _div.id + "'].dissolve()]"
-          + "]">>
-        </div>
-    <</if>>
+	/* Downsize the division*/
+	<<set _depDownsizeCost = _depExpandCost * 0.8>>
+	<<set _sellDevArray = [
+				{ 'name': 'Downsize Division', 'count':1 },
+				{ 'name': 'Downsize x10'	 , 'count':10}
+			]>>
+	<<for _sellSet range _sellDevArray.filter(divNum => _div.developmentCount > divNum.count)>>
+		<<= Seperator(_sepObj) >>
+		<<= "[["+_sellSet.name+"|Manage Corporation]"
+		  + "[App.Corporate.sellDevelopment('"+_div.id+"', "+_sellSet.count+")]"
+		  + "]">>
+	<</for>>
+	</div>
+	<h3>Rules</h3>
+	<<for _nextDiv range _div.relatedDivisions.to.filter(nextDiv => nextDiv.founded && !App.Corporate.ownsIntermediaryDivision(_div, nextDiv))>>
+		/* TODO: Originally this had a bit of flavor per nextDep. ie, Surgery said "to undergo surgery"*/
+		<div>
+		<<if _div.getAutoSendToDivision(_nextDiv)>>
+			Auto send slaves to <<= _nextDiv.name >> Division <<= "[[Stop Auto Send|Manage Corporation][App.Corporate.setAutoSendToDivision('"+_div.id+"', '"+_nextDiv.id+"', false)]]">>
+		<<else>>
+			Do not send slaves to <<= _nextDiv.name >> Division <<= "[[Auto Send|Manage Corporation][App.Corporate.setAutoSendToDivision('"+_div.id+"', '"+_nextDiv.id+"', true)]]">>
+		<</if>>
+		</div>
+	<</for>>
+	<<if _div.toMarket>>
+		<div>
+		<<if _div.getAutoSendToMarket()>>
+			Auto sell slaves to the market <<= "[[Stop Auto Sell|Manage Corporation][App.Corporate.setAutoSendToMarket('"+_div.id+"', false)]]" >>
+		<<else>>
+			Do not sell slaves to the market <<= "[[Auto Sell|Manage Corporation][App.Corporate.setAutoSendToMarket('"+_div.id+"', true)]]" >>
+		<</if>>
+		</div>
+	<</if>>
+	<<if _div.fromMarket>>
+		<div>
+		<<if _div.getAutoBuyFromMarket()>>
+			Auto buy slaves from the market <<= "[[Stop Auto Buy|Manage Corporation][App.Corporate.setAutoBuyFromMarket('"+ _div.id +"', false)]]" >>
+		<<else>>
+			Do not buy slaves from the market <<= "[[Auto Buy|Manage Corporation][App.Corporate.setAutoBuyFromMarket('"+ _div.id +"', true)]]" >>
+		<</if>>
+		</div>
+	<</if>>
+	<<if App.Corporate.numDivisions > 1>> /* Cannot dissolve the last division */
+		<div>Dissolve the division @@.orange;//Think before you click//@@ /* TODO: Add a confirmation button. Probably use replace?*/
+		<<= "[[Dissolve|Manage Corporation]"
+		  + "[App.Corporate.divisions['" + _div.id + "'].dissolve()]"
+		  + "]">>
+		</div>
+	<</if>>
 <</for>>
 
 
 <<if App.Corporate.canExpand>> /*is the corporation large enough to expand into another division?*/
 <h1>Found New Division</h1>
 <div>The corporation can expand by founding a new division related to its current <<= onlyPlural(App.Corporate.divisionList.filter(div => div.founded).length, "division") >>.</div>
-    <<for _div range App.Corporate.divisionList.filter(x => !x.founded && x.relatedDivisions.anyFounded)>>
-        <<set _depCost = _div.foundingCost * 1000>>
-        <div>
-        <<if App.Corporate.cash >= _depCost>>
-            <<= "[[Add " + _div.name + " Division|Manage Corporation]"
-              + "[App.Corporate.divisions['"+_div.id+"'].create(App.Corporate)]]">>
-            (@@.yellowgreen;<<print cashFormat(_depCost)>>@@): A division focusing on <<= _div.focusDescription >>.
-        <<else>>
-            <<=  _div.name >>
-            (@@.red;<<print cashFormat(_depCost)>>@@):
-            The corporation cannot afford to start a division focusing on <<= _div.focusDescription >>.
-        <</if>>
-        </div>
-    <</for>>
+	<<for _div range App.Corporate.divisionList.filter(x => !x.founded && x.relatedDivisions.anyFounded)>>
+		<<set _depCost = _div.foundingCost * 1000>>
+		<div>
+		<<if App.Corporate.cash >= _depCost>>
+			<<= "[[Add " + _div.name + " Division|Manage Corporation]"
+			  + "[App.Corporate.divisions['"+_div.id+"'].create(App.Corporate)]]">>
+			(@@.yellowgreen;<<print cashFormat(_depCost)>>@@): A division focusing on <<= _div.focusDescription >>.
+		<<else>>
+			<<=  _div.name >>
+			(@@.red;<<print cashFormat(_depCost)>>@@):
+			The corporation cannot afford to start a division focusing on <<= _div.focusDescription >>.
+		<</if>>
+		</div>
+	<</for>>
 <</if>>
 <h1>Financials</h1>
 <h2>Dividend</h2>
@@ -266,32 +266,32 @@
 <<set _index = _dividends.findIndex(element => App.Corporate.dividendRatio >= element ) >>
 <<set _dividend = _dividends[_index] >>
 <<if _index >= 0>>
-    <<set _nextIndex = _index + 1>>
-    <<set App.Corporate.dividendRatio = _dividend>>/* Normalize */
-    The corporation is currently reserving <<= Math.trunc(_dividend * 100)>>% of its profit to be paid out as dividends.
-    <<set _sepObj.need = false>>
-    <<if _index > 0>>
-        <<= Seperator(_sepObj)>>
-        <<= "[[Increase Ratio|Manage Corporation][App.Corporate.dividendRatio = " + _dividends[_index - 1] + "]]">>
-    <</if>>
-    <<if _nextIndex != _dividends.length>>
-        <<= Seperator(_sepObj)>>
-        <<= "[[Reduce Ratio|Manage Corporation][App.Corporate.dividendRatio = " + _dividends[_nextIndex] + "]]">>
-    <<else>>
-        <<= Seperator(_sepObj)>>
-        <<= "[[None|Manage Corporation][App.Corporate.dividendRatio = 0]]">>
-    <</if>>
+	<<set _nextIndex = _index + 1>>
+	<<set App.Corporate.dividendRatio = _dividend>>/* Normalize */
+	The corporation is currently reserving <<= Math.trunc(_dividend * 100)>>% of its profit to be paid out as dividends.
+	<<set _sepObj.need = false>>
+	<<if _index > 0>>
+		<<= Seperator(_sepObj)>>
+		<<= "[[Increase Ratio|Manage Corporation][App.Corporate.dividendRatio = " + _dividends[_index - 1] + "]]">>
+	<</if>>
+	<<if _nextIndex != _dividends.length>>
+		<<= Seperator(_sepObj)>>
+		<<= "[[Reduce Ratio|Manage Corporation][App.Corporate.dividendRatio = " + _dividends[_nextIndex] + "]]">>
+	<<else>>
+		<<= Seperator(_sepObj)>>
+		<<= "[[None|Manage Corporation][App.Corporate.dividendRatio = 0]]">>
+	<</if>>
 <<else>>
-    The corporation is currently not reserving a portion of its profit to be paid out as dividends.
-    <<= "[[Increase Ratio|Manage Corporation][App.Corporate.dividendRatio = "+_dividends[_dividends.length - 1]+"]]" >>
+	The corporation is currently not reserving a portion of its profit to be paid out as dividends.
+	<<= "[[Increase Ratio|Manage Corporation][App.Corporate.dividendRatio = "+_dividends[_dividends.length - 1]+"]]" >>
 <</if>>
 </div>
 
 <div>
 <<if App.Corporate.payoutCash>>
-    The corporation will payout unused cash reserves over @@.yellowgreen;<<print cashFormat(App.Corporate.payoutAfterCash)>>@@ as dividends [[Stop|Manage Corporation][App.Corporate.payoutCash = false]]
+	The corporation will payout unused cash reserves over @@.yellowgreen;<<print cashFormat(App.Corporate.payoutAfterCash)>>@@ as dividends [[Stop|Manage Corporation][App.Corporate.payoutCash = false]]
 <<else>>
-    You can direct the corporation to reserve cash over @@.yellowgreen;<<print cashFormat(App.Corporate.payoutAfterCash)>>@@ to be paid out as dividends as well. [[Payout Cash Reserves|Manage Corporation][App.Corporate.payoutCash = true]]
+	You can direct the corporation to reserve cash over @@.yellowgreen;<<print cashFormat(App.Corporate.payoutAfterCash)>>@@ to be paid out as dividends as well. [[Payout Cash Reserves|Manage Corporation][App.Corporate.payoutCash = true]]
 <</if>>
 </div>
 
@@ -300,33 +300,33 @@
 You own <<print num($personalShares)>> shares while another <<print num($publicShares)>> shares are traded publicly. The going rate on the market for 1000 shares is currently @@.yellowgreen;<<print cashFormat(corpSharePrice())>>.@@
 <br>The corporation can buyback 1000 shares for @@.red;<<print cashFormat(corpSharePrice(-1000))>>@@ or issue 1000 shares and net @@.yellowgreen;<<print cashFormat(corpSharePrice(1000))>>.@@ The corporation will prefer to round shares to the nearest 1000 and will issue or buy shares toward that goal first.
 <<if $corpCash > corpSharePrice(-1000)>>
-    <<if $publicShares <= $personalShares - 2000 && $publicShares > 0>> /*It won't buy back player shares if the corporation is entirely owned by the player*/
-        <<set _persExtraShares = $personalShares % 1000 || 1000>>
-        <br>The corporation can buyback some of your shares.
-        <<= "[[Buyback "+ _persExtraShares + "|Manage Corporation][cashX(corpSharePrice(-"+_persExtraShares+"), 'stocksTraded'), $corpCash -= corpSharePrice(-"+_persExtraShares+"), $personalShares -= "+_persExtraShares+"]]">>
-    <</if>>
-    <<if $publicShares >= 1000>>
-        <<set _pubExtraShares = $publicShares % 1000 || 1000>>
-        <br>The corporation can buyback some of the public shares.
-        <<= "[[Buyback "+ _pubExtraShares + "|Manage Corporation][$corpCash -= corpSharePrice(-"+_pubExtraShares+"), $publicShares -= "+_pubExtraShares+"]]">>
-    <</if>>
+	<<if $publicShares <= $personalShares - 2000 && $publicShares > 0>> /*It won't buy back player shares if the corporation is entirely owned by the player*/
+		<<set _persExtraShares = $personalShares % 1000 || 1000>>
+		<br>The corporation can buyback some of your shares.
+		<<= "[[Buyback "+ _persExtraShares + "|Manage Corporation][cashX(corpSharePrice(-"+_persExtraShares+"), 'stocksTraded'), $corpCash -= corpSharePrice(-"+_persExtraShares+"), $personalShares -= "+_persExtraShares+"]]">>
+	<</if>>
+	<<if $publicShares >= 1000>>
+		<<set _pubExtraShares = $publicShares % 1000 || 1000>>
+		<br>The corporation can buyback some of the public shares.
+		<<= "[[Buyback "+ _pubExtraShares + "|Manage Corporation][$corpCash -= corpSharePrice(-"+_pubExtraShares+"), $publicShares -= "+_pubExtraShares+"]]">>
+	<</if>>
 <</if>>
 
 <<set _persLeftoverShares = 1000 - ($personalShares % 1000)>>
 <<if $cash > corpSharePrice(_persLeftoverShares)>>
-    <br>The corporation can issue <<=_persLeftoverShares>> shares to you.
-    <<= "[[Issue " + _persLeftoverShares + "|Manage Corporation][cashX(forceNeg(corpSharePrice("+_persLeftoverShares+")), 'stocksTraded'), $corpCash += corpSharePrice("+_persLeftoverShares+"), $personalShares += "+_persLeftoverShares+"]]">>
+	<br>The corporation can issue <<=_persLeftoverShares>> shares to you.
+	<<= "[[Issue " + _persLeftoverShares + "|Manage Corporation][cashX(forceNeg(corpSharePrice("+_persLeftoverShares+")), 'stocksTraded'), $corpCash += corpSharePrice("+_persLeftoverShares+"), $personalShares += "+_persLeftoverShares+"]]">>
 <</if>>
 <<set _pubLeftoverShares = 1000 - ($publicShares % 1000)>>
 <<if $publicShares <= $personalShares - 2000>>
-    <br>The corporation can issue <<=_pubLeftoverShares>> shares onto the stock market.
-    <<= "[[Issue " + _pubLeftoverShares + "|Manage Corporation][$corpCash += corpSharePrice("+_pubLeftoverShares+"), $publicShares += "+_pubLeftoverShares+"]]">>
+	<br>The corporation can issue <<=_pubLeftoverShares>> shares onto the stock market.
+	<<= "[[Issue " + _pubLeftoverShares + "|Manage Corporation][$corpCash += corpSharePrice("+_pubLeftoverShares+"), $publicShares += "+_pubLeftoverShares+"]]">>
 <</if>>
 <<if $publicShares <= $personalShares - 3000>>
-    <br>You can sell some of your shares on the stock market. [[Sell 1000|Manage Corporation][cashX(corpSharePrice(), "stocksTraded"), $personalShares -= 1000, $publicShares += 1000]]
+	<br>You can sell some of your shares on the stock market. [[Sell 1000|Manage Corporation][cashX(corpSharePrice(), "stocksTraded"), $personalShares -= 1000, $publicShares += 1000]]
 <</if>>
 <<if $cash > corpSharePrice() && $publicShares >= 1000>>
-    <br>You can buy some shares from the stock market [[Buy 1000|Manage Corporation][cashX(forceNeg(corpSharePrice()), "stocksTraded"), $personalShares += 1000, $publicShares -= 1000]]
+	<br>You can buy some shares from the stock market [[Buy 1000|Manage Corporation][cashX(forceNeg(corpSharePrice()), "stocksTraded"), $personalShares += 1000, $publicShares -= 1000]]
 <</if>>
 <h3>Stock Split</h3>
 
@@ -335,809 +335,809 @@ You own <<print num($personalShares)>> shares while another <<print num($publicS
 <<set _splitFeeValue = _splitFeeInitial - Math.floor((_splitFeeInitial * ($PC.skill.trading / 100.0) / 2.0) / 1000) * 1000>>
 <<set _splitStockConstants = App.Corporate.stockSplits >>
 
-    The corporation can perform a stock split to increase the number of stocks while maintaining the same owned value. This requires paying a market fee of @@.red;<<= cashFormat(_splitFeeValue)>>@@ plus a per-share fee depending on the type of split being done.
-    <<if _splitFeeValue < _splitFeeInitial>>
-        //You negotiated lower fees due to your @@.springgreen;business acumen@@.//
-    <</if>>
+	The corporation can perform a stock split to increase the number of stocks while maintaining the same owned value. This requires paying a market fee of @@.red;<<= cashFormat(_splitFeeValue)>>@@ plus a per-share fee depending on the type of split being done.
+	<<if _splitFeeValue < _splitFeeInitial>>
+		//You negotiated lower fees due to your @@.springgreen;business acumen@@.//
+	<</if>>
 <<if $corpSpecTimer > 0>>
-    <br>//The corporation has restructured too recently.//
+	<br>//The corporation has restructured too recently.//
 <</if>>
 <ul>
 <<for _stockType range _splitStockConstants>>
-    <<set _splitInitial    = _stockType['cost']>>
-    <<set _splitValue      = _splitInitial>>
-    <<set _splitDenom      = _stockType['oldStocks'] || 1>>
-    <<set _splitNumerator  = _stockType['newStocks'] || 1>>
-    <<set _splitMultiplier = _splitNumerator / _splitDenom>>
-    <<set _splitTotal      = _splitValue * ($publicShares + $personalShares) + _splitFeeValue>>
-    <<set _splitWeek       = _stockType['weeks']>>
-    <li><<= _splitNumerator >>-for-<<= _splitDenom>> <<if _splitDenom > _splitNumerator>>inverse<</if>> stock split at @@.red;<<= cashFormat(_splitValue) >>@@ per share.
-        Including market fees, this will cost the corporation a total of @@.red;<<= cashFormat(_splitTotal)>>@@,
-        leaving the going rate for stock at @@.yellowgreen;<<= cashFormat(Math.floor(corpSharePrice(0, $personalShares * _splitMultiplier, $publicShares * _splitMultiplier))) >>@@ per 1000 shares.
-    <<if $corpSpecTimer == 0>>
-        <<if $publicShares % _splitDenom != 0 || $personalShares % _splitDenom != 0>>
-        //The number of shares cannot be evenly split//
-        <<elseif $corpCash > _splitTotal>>
-        <<= "[[Split Shares|Manage Corporation][$corpCash -= " + _splitTotal + ", $publicShares *= " + _splitMultiplier + ", $personalShares *= " + _splitMultiplier + ", $corpSpecTimer="+_splitWeek+"]]" >>
-        <<else>>
-        //The corporation cannot afford the fees.//
-        <</if>>
-    <</if>>
-    </li>
+	<<set _splitInitial	= _stockType['cost']>>
+	<<set _splitValue	  = _splitInitial>>
+	<<set _splitDenom	  = _stockType['oldStocks'] || 1>>
+	<<set _splitNumerator  = _stockType['newStocks'] || 1>>
+	<<set _splitMultiplier = _splitNumerator / _splitDenom>>
+	<<set _splitTotal	  = _splitValue * ($publicShares + $personalShares) + _splitFeeValue>>
+	<<set _splitWeek	   = _stockType['weeks']>>
+	<li><<= _splitNumerator >>-for-<<= _splitDenom>> <<if _splitDenom > _splitNumerator>>inverse<</if>> stock split at @@.red;<<= cashFormat(_splitValue) >>@@ per share.
+		Including market fees, this will cost the corporation a total of @@.red;<<= cashFormat(_splitTotal)>>@@,
+		leaving the going rate for stock at @@.yellowgreen;<<= cashFormat(Math.floor(corpSharePrice(0, $personalShares * _splitMultiplier, $publicShares * _splitMultiplier))) >>@@ per 1000 shares.
+	<<if $corpSpecTimer == 0>>
+		<<if $publicShares % _splitDenom != 0 || $personalShares % _splitDenom != 0>>
+		//The number of shares cannot be evenly split//
+		<<elseif $corpCash > _splitTotal>>
+		<<= "[[Split Shares|Manage Corporation][$corpCash -= " + _splitTotal + ", $publicShares *= " + _splitMultiplier + ", $personalShares *= " + _splitMultiplier + ", $corpSpecTimer="+_splitWeek+"]]" >>
+		<<else>>
+		//The corporation cannot afford the fees.//
+		<</if>>
+	<</if>>
+	</li>
 <</for>>
 </ul>
 
 <h2>Slave specialization</h2>
 <<if $corpSpecToken > 0>> /*Spending tokens on new specializations*/
-    <<if $corpSpecToken > 1>>
-        Your corporation has $corpSpecToken specializations left.
-    <<else>>
-        Your corporation has one specialization left.
-    <</if>>
-    <<if $corpSpecTimer > 0>>
-        You have recently changed specializations and the corporation needs <<if $corpSpecTimer > 1>>$corpSpecTimer more weeks<<else>>another week<</if>> before it can comply with another directive.
-    <<else>>
-        <br>Choosing to specialize your corporation uses a specialization. The corporation can be directed to focus on the following:
-        <<if $corpSpecRaces.length == 0 && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This used to be $captureUpgradeRace, it is a general acquisition specialization*/
-            <br>Slaves who are not
-            <<if $arcologies[0].FSSubjugationistRace != "amerindian" || $arcologies[0].FSSubjugationist == "unset">>[[Amerindian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "asian" || $arcologies[0].FSSubjugationist == "unset">>[[Asian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "black" || $arcologies[0].FSSubjugationist == "unset">>[[Black|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "indo-aryan" || $arcologies[0].FSSubjugationist == "unset">>[[Indo-aryan|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "latina" || $arcologies[0].FSSubjugationist == "unset">>[[Latina|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "malay" || $arcologies[0].FSSubjugationist == "unset">>[[Malay|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "middle eastern" || $arcologies[0].FSSubjugationist == "unset">>[[Middle Eastern|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "mixed race" || $arcologies[0].FSSubjugationist == "unset">>[[Mixed Race|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "pacific islander" || $arcologies[0].FSSubjugationist == "unset">>[[Pacific Islander|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "semitic" || $arcologies[0].FSSubjugationist == "unset">>[[Semitic|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "southern european" || $arcologies[0].FSSubjugationist == "unset">>[[Southern European|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
-            <<if $arcologies[0].FSSubjugationistRace != "white" || $arcologies[0].FSSubjugationist == "unset">>[[White|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]]<</if>>
-            — //additional races can be excluded. 4 races per token.//
-            <<if $corpSpecToken >= 3>>
-                <br>Only slaves who are
-                <<if $arcologies[0].FSSupremacistRace != "amerindian" || $arcologies[0].FSSubjugationist == "unset">>[[Amerindian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "asian" || $arcologies[0].FSSubjugationist == "unset">>[[Asian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "black" || $arcologies[0].FSSubjugationist == "unset">>[[Black|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "indo-aryan" || $arcologies[0].FSSubjugationist == "unset">>[[Indo-aryan|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "latina" || $arcologies[0].FSSubjugationist == "unset">>[[Latina|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "malay" || $arcologies[0].FSSubjugationist == "unset">>[[Malay|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "middle eastern" || $arcologies[0].FSSubjugationist == "unset">>[[Middle Eastern|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "mixed race" || $arcologies[0].FSSubjugationist == "unset">>[[Mixed Race|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "pacific islander" || $arcologies[0].FSSubjugationist == "unset">>[[Pacific Islander|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "semitic" || $arcologies[0].FSSubjugationist == "unset">>[[Semitic|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "southern european" || $arcologies[0].FSSubjugationist == "unset">>[[Southern European|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
-                <<if $arcologies[0].FSSupremacistRace != "white" || $arcologies[0].FSSubjugationist == "unset">>[[White|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]]<</if>>
-            <<else>>
-                <br>Only slaves of a particular race requires 3 tokens.
-            <</if>>
-        <</if>>
-        <<if $seeDicks != 0 && ndef $corpSpecGender && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This used to be $captureUpgradeGender, it is a general acquisition specialization*/
-            <br>Train only slaves with [[Pussies|Manage Corporation][$corpSpecGender = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Dicks|Manage Corporation][$corpSpecGender = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecHeight && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This is a general acquisition specialization*/
-            <br>Slaves that are [[Short|Manage Corporation][$corpSpecHeight = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Tall|Manage Corporation][$corpSpecHeight = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecVirgin && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This is a general acquisition specialization*/
-            <br>Slaves that are [[Virgins|Manage Corporation][$corpSpecVirgin = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecIntelligence && $corpDivLegal > 0 >> /*This used to be $entrapmentUpgradeIntelligence, it is a legal enslavement specialization*/
-            <br>Slaves who are [[Stupid|Manage Corporation][$corpSpecIntelligence = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Intelligent|Manage Corporation][$corpSpecIntelligence = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] --//Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecAge && $corpDivExtra > 0>> /*This used to be $captureUpgradeAge, it is the extralegal enslavement specialization*/
-            <br>Slaves who are [[Younger|Manage Corporation][$corpSpecAge = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Older|Manage Corporation][$corpSpecAge = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecWeight && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $generalUpgradeWeight, it is a general improvement specialization*/
-            <br>Managing slaves' diets to achieve [[Thin Slaves|Manage Corporation][$corpSpecWeight = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Fat nor Thin Slaves|Manage Corporation][$corpSpecWeight = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Fat Slaves|Manage Corporation][$corpSpecWeight = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecDevotion && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $entrapmentUpgradeDevotionOne/Two, it is a general improvement specialization*/
-            <br>Slaves who are [[Reluctant|Manage Corporation][$corpSpecDevotion = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Obedient|Manage Corporation][$corpSpecDevotion = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecAccent && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $trainingUpgradeAccent, it is a general improvement specialization*/
-            <br>Slaves are taught to [[Speak the Language|Manage Corporation][$corpSpecAccent = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Speak without Accent|Manage Corporation][$corpSpecAccent = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecHormones && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $drugUpgradeHormones, it is a general improvement specialization*/
-            <br>Slaves are given hormones to [[Feminize|Manage Corporation][$corpSpecHormones = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Masculinize|Manage Corporation][$corpSpecHormones = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecInjection && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $drugUpgradeInjectionOne, it is a general improvement specialization*/
-            <br>Slave assets are made to be [[Petite|Manage Corporation][$corpSpecInjection = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Tasteful|Manage Corporation][$corpSpecInjection = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Huge|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecCosmetics && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $surgicalUpgradeCosmetics, it is a general improvement specialization*/
-            <br>Straightforward cosmetic procedures are [[Applied|Manage Corporation][$corpSpecCosmetics = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Not Applied|Manage Corporation][$corpSpecCosmetics = 0, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecEducation && $corpDivTrain > 0>> /*This used to be $trainingUpgradeEducation, it is the training specialization*/
-            <br>Slaves are given [[No Education|Manage Corporation][$corpSpecEducation == 0, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecImplants && $corpDivSurgery > 0>> /*This used to be $surgicalUpgradeImplants, it is the surgery specialization*/
-            <br>Slave implants are [[Applied|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Not Applied|Manage Corporation][$corpSpecImplants = 0, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecGenitalia && $corpDivSurgeryDev > 100>> /*This used to be $surgicalUpgradeGenitalia, it is the surgery specialization*/
-            <br>Slaves get their genitalia reconfigured [[Add Pussy|Manage Corporation][$corpSpecPussy = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Pussy|Manage Corporation][$corpSpecPussy = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Add Dick|Manage Corporation][$corpSpecDick = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Dick|Manage Corporation][$corpSpecDick = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Add Balls|Manage Corporation][$corpSpecBalls = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Balls|Manage Corporation][$corpSpecBalls = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecTrust && $corpDivBreak > 0>> /*This used to be $generalUpgradeBreaking, it is the slave breaking specific specialization*/
-            <br>Breaking slaves with [[Brutality|Manage Corporation][$corpSpecTrust = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Care|Manage Corporation][$corpSpecTrust = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecAmputee && $corpDivArcade > 0 && $corpDivSurgeryDev > 100>> /*This is the arcade specialization*/
-            <br>Slave limbs are categorically [[Removed|Manage Corporation][$corpSpecAmputee = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecMuscle && $corpDivMenial > 0>> /*This used to be $generalUpgradeMuscle, it is the Menial division's specialization*/
-            <br>Slaves with muscles that are <<if $arcologies[0].FSPhysicalIdealist == "unset">> [[Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | <</if>>[[Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-        <<if ndef $corpSpecMilk && $corpDivDairy > 0>> /*This is the dairy specialization*/
-            <br>Slaves are made to be lactating [[Naturally|Manage Corporation][$corpSpecMilk = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Through Implant|Manage Corporation][$corpSpecMilk = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-        <</if>>
-        <<if ndef $corpSpecSexEd && $corpDivWhore > 0>> /*This used to be $trainingUpgradeSexEd, it is the escort division specialization*/
-            <br>Slaves are sexually [[Clueless|Manage Corporation][$corpSpecSexEd = 0, $corpSpecToken -= 0, $corpSpecTimer = 2]] | [[Competent|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
-        <</if>>
-    <</if>>
+	<<if $corpSpecToken > 1>>
+		Your corporation has $corpSpecToken specializations left.
+	<<else>>
+		Your corporation has one specialization left.
+	<</if>>
+	<<if $corpSpecTimer > 0>>
+		You have recently changed specializations and the corporation needs <<if $corpSpecTimer > 1>>$corpSpecTimer more weeks<<else>>another week<</if>> before it can comply with another directive.
+	<<else>>
+		<br>Choosing to specialize your corporation uses a specialization. The corporation can be directed to focus on the following:
+		<<if $corpSpecRaces.length == 0 && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This used to be $captureUpgradeRace, it is a general acquisition specialization*/
+			<br>Slaves who are not
+			<<if $arcologies[0].FSSubjugationistRace != "amerindian" || $arcologies[0].FSSubjugationist == "unset">>[[Amerindian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "asian" || $arcologies[0].FSSubjugationist == "unset">>[[Asian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "black" || $arcologies[0].FSSubjugationist == "unset">>[[Black|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "indo-aryan" || $arcologies[0].FSSubjugationist == "unset">>[[Indo-aryan|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "latina" || $arcologies[0].FSSubjugationist == "unset">>[[Latina|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "malay" || $arcologies[0].FSSubjugationist == "unset">>[[Malay|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "middle eastern" || $arcologies[0].FSSubjugationist == "unset">>[[Middle Eastern|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "mixed race" || $arcologies[0].FSSubjugationist == "unset">>[[Mixed Race|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "pacific islander" || $arcologies[0].FSSubjugationist == "unset">>[[Pacific Islander|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "semitic" || $arcologies[0].FSSubjugationist == "unset">>[[Semitic|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "southern european" || $arcologies[0].FSSubjugationist == "unset">>[[Southern European|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]] | <</if>>
+			<<if $arcologies[0].FSSubjugationistRace != "white" || $arcologies[0].FSSubjugationist == "unset">>[[White|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white", 1), $corpSpecToken -= 1, $corpSpecTimer = 1]]<</if>>
+			— //additional races can be excluded. 4 races per token.//
+			<<if $corpSpecToken >= 3>>
+				<br>Only slaves who are
+				<<if $arcologies[0].FSSupremacistRace != "amerindian" || $arcologies[0].FSSubjugationist == "unset">>[[Amerindian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "asian" || $arcologies[0].FSSubjugationist == "unset">>[[Asian|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "black" || $arcologies[0].FSSubjugationist == "unset">>[[Black|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "indo-aryan" || $arcologies[0].FSSubjugationist == "unset">>[[Indo-aryan|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "latina" || $arcologies[0].FSSubjugationist == "unset">>[[Latina|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "malay" || $arcologies[0].FSSubjugationist == "unset">>[[Malay|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "middle eastern" || $arcologies[0].FSSubjugationist == "unset">>[[Middle Eastern|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "mixed race" || $arcologies[0].FSSubjugationist == "unset">>[[Mixed Race|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "pacific islander" || $arcologies[0].FSSubjugationist == "unset">>[[Pacific Islander|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "semitic" || $arcologies[0].FSSubjugationist == "unset">>[[Semitic|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "southern european" || $arcologies[0].FSSubjugationist == "unset">>[[Southern European|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]] | <</if>>
+				<<if $arcologies[0].FSSupremacistRace != "white" || $arcologies[0].FSSubjugationist == "unset">>[[White|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white", 0), $corpSpecToken -= 3, $corpSpecTimer = 2]]<</if>>
+			<<else>>
+				<br>Only slaves of a particular race requires 3 tokens.
+			<</if>>
+		<</if>>
+		<<if $seeDicks != 0 && ndef $corpSpecGender && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This used to be $captureUpgradeGender, it is a general acquisition specialization*/
+			<br>Train only slaves with [[Pussies|Manage Corporation][$corpSpecGender = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Dicks|Manage Corporation][$corpSpecGender = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecHeight && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This is a general acquisition specialization*/
+			<br>Slaves that are [[Short|Manage Corporation][$corpSpecHeight = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Tall|Manage Corporation][$corpSpecHeight = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecVirgin && ($corpDivExtra > 0 || $corpDivLegal > 0)>> /*This is a general acquisition specialization*/
+			<br>Slaves that are [[Virgins|Manage Corporation][$corpSpecVirgin = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecIntelligence && $corpDivLegal > 0 >> /*This used to be $entrapmentUpgradeIntelligence, it is a legal enslavement specialization*/
+			<br>Slaves who are [[Stupid|Manage Corporation][$corpSpecIntelligence = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Intelligent|Manage Corporation][$corpSpecIntelligence = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] --//Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecAge && $corpDivExtra > 0>> /*This used to be $captureUpgradeAge, it is the extralegal enslavement specialization*/
+			<br>Slaves who are [[Younger|Manage Corporation][$corpSpecAge = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Older|Manage Corporation][$corpSpecAge = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecWeight && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $generalUpgradeWeight, it is a general improvement specialization*/
+			<br>Managing slaves' diets to achieve [[Thin Slaves|Manage Corporation][$corpSpecWeight = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Fat nor Thin Slaves|Manage Corporation][$corpSpecWeight = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Fat Slaves|Manage Corporation][$corpSpecWeight = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecDevotion && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $entrapmentUpgradeDevotionOne/Two, it is a general improvement specialization*/
+			<br>Slaves who are [[Reluctant|Manage Corporation][$corpSpecDevotion = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Obedient|Manage Corporation][$corpSpecDevotion = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecAccent && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $trainingUpgradeAccent, it is a general improvement specialization*/
+			<br>Slaves are taught to [[Speak the Language|Manage Corporation][$corpSpecAccent = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Speak without Accent|Manage Corporation][$corpSpecAccent = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecHormones && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $drugUpgradeHormones, it is a general improvement specialization*/
+			<br>Slaves are given hormones to [[Feminize|Manage Corporation][$corpSpecHormones = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Masculinize|Manage Corporation][$corpSpecHormones = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecInjection && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $drugUpgradeInjectionOne, it is a general improvement specialization*/
+			<br>Slave assets are made to be [[Petite|Manage Corporation][$corpSpecInjection = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Tasteful|Manage Corporation][$corpSpecInjection = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Huge|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecCosmetics && ($corpDivBreak > 0 || $corpDivSurgery > 0 || $corpDivTrain > 0)>> /*This used to be $surgicalUpgradeCosmetics, it is a general improvement specialization*/
+			<br>Straightforward cosmetic procedures are [[Applied|Manage Corporation][$corpSpecCosmetics = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Not Applied|Manage Corporation][$corpSpecCosmetics = 0, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecEducation && $corpDivTrain > 0>> /*This used to be $trainingUpgradeEducation, it is the training specialization*/
+			<br>Slaves are given [[No Education|Manage Corporation][$corpSpecEducation == 0, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecImplants && $corpDivSurgery > 0>> /*This used to be $surgicalUpgradeImplants, it is the surgery specialization*/
+			<br>Slave implants are [[Applied|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Not Applied|Manage Corporation][$corpSpecImplants = 0, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecGenitalia && $corpDivSurgeryDev > 100>> /*This used to be $surgicalUpgradeGenitalia, it is the surgery specialization*/
+			<br>Slaves get their genitalia reconfigured [[Add Pussy|Manage Corporation][$corpSpecPussy = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Pussy|Manage Corporation][$corpSpecPussy = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Add Dick|Manage Corporation][$corpSpecDick = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Dick|Manage Corporation][$corpSpecDick = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Add Balls|Manage Corporation][$corpSpecBalls = 1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Remove Balls|Manage Corporation][$corpSpecBalls = -1, $corpSpecGenitalia = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecTrust && $corpDivBreak > 0>> /*This used to be $generalUpgradeBreaking, it is the slave breaking specific specialization*/
+			<br>Breaking slaves with [[Brutality|Manage Corporation][$corpSpecTrust = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Care|Manage Corporation][$corpSpecTrust = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecAmputee && $corpDivArcade > 0 && $corpDivSurgeryDev > 100>> /*This is the arcade specialization*/
+			<br>Slave limbs are categorically [[Removed|Manage Corporation][$corpSpecAmputee = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecMuscle && $corpDivMenial > 0>> /*This used to be $generalUpgradeMuscle, it is the Menial division's specialization*/
+			<br>Slaves with muscles that are <<if $arcologies[0].FSPhysicalIdealist == "unset">> [[Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] | <</if>>[[Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+		<<if ndef $corpSpecMilk && $corpDivDairy > 0>> /*This is the dairy specialization*/
+			<br>Slaves are made to be lactating [[Naturally|Manage Corporation][$corpSpecMilk = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Through Implant|Manage Corporation][$corpSpecMilk = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+		<</if>>
+		<<if ndef $corpSpecSexEd && $corpDivWhore > 0>> /*This used to be $trainingUpgradeSexEd, it is the escort division specialization*/
+			<br>Slaves are sexually [[Clueless|Manage Corporation][$corpSpecSexEd = 0, $corpSpecToken -= 0, $corpSpecTimer = 2]] | [[Competent|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+		<</if>>
+	<</if>>
 <<else>>
-    <br>Your corporation cannot pick a new specialization at this time.
+	<br>Your corporation cannot pick a new specialization at this time.
 <</if>>
 
 <<if $corpSpec > $corpSpecToken>> /*Modifying specializations*/
-    <br><br>You have chosen the following specializations;
-    <br>//You can choose to specialize further with additional tokens, specialize less, end the specialization or sometimes tweak them for free.//
-    <<if $corpSpecRaces.length == 12>>
-        <<set $corpSpecRaces = []>>
-    <</if>>
-    <<if $corpSpecRaces.length > 0>>
-        <br>The corporation enslaves people of the following race(s);
-        <<if $corpSpecRaces.includes("amerindian")>>
-            <br>Amerindian
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "amerindian")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Amerindian==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("asian")>>
-            <br>Asian
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "asian")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Asian==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("black")>>
-            <br>Black
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "black")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Black==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("indo-aryan")>>
-            <br>Indo-Aryan
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "indo-aryan")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Indo-Aryan==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("latina")>>
-            <br>Latina
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "latina")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Latina==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("malay")>>
-            <br>Malay
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "malay")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Malay==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("middle eastern")>>
-            <br>Middle Eastern
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "middle eastern")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Middle Eastern==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("mixed race")>>
-            <br>Mixed Race
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "mixed race")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Mixed Race==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("pacific islander")>>
-            <br>Pacific Islander
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "pacific islander")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Pacific Islander==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("semitic")>>
-            <br>Semitic
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "semitic")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Semitic==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("southern european")>>
-            <br>Southern European
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "southern european")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==Southern European==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-        <<if $corpSpecRaces.includes("white")>>
-            <br>White
-            <<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "white")>>
-                <<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
-                    <<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
-                    <<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
-                        [[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",1)]]
-                    <</if>>
-                <</if>>
-            <</if>>
-        <<else>>
-            <br>==White==
-            <<if $corpSpecTimer == 0>>
-                <<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
-                <<else>>
-                    [[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",0)]]
-                <</if>>
-            <</if>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecGender == 1>>
-        <br>The corporation trains slaves with pussies.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecGender>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecGender == 2>>
-        <br>The corporation trains slaves with dicks.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecGender>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecHeight == 1>>
-        <br>The corporation is targeting tiny slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Short Slaves|Manage Corporation][$corpSpecHeight = 2, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecHeight == 2>>
-        <br>The corporation is targeting short slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && ($corpDivExtraDev + $corpDivLegalDev) > 50>>
-                [[Tiny Slaves|Manage Corporation][$corpSpecHeight = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecHeight == 4>>
-        <br>The corporation is targeting tall slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && ($corpDivExtraDev + $corpDivLegalDev) > 50>>
-                [[Giant Slaves|Manage Corporation][$corpSpecHeight = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecHeight == 5>>
-        <br>The corporation is targeting giant slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Tall Slaves|Manage Corporation][$corpSpecHeight = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecVirgin == 1>>
-        <br>The corporation is ensuring slaves remain virgins.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecVirgin>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecTrust == 1>>
-        <br>The corporation is breaking slaves with extreme brutality.
-        <<if $corpSpecTimer == 0>>
-            [[Apply Less Brutality|Manage Corporation][$corpSpecTrust = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>> /*Don't think this deserves the added cost of a token, unlike the 'utmost care' one*/
-    <<elseif $corpSpecTrust == 2>>
-        <br>The corporation is breaking slaves with brutality.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $arcologies[0].FSDegradationist > 20 && $corpDivBreakDev > 50>>
-                [[Apply Extreme Brutality|Manage Corporation][$corpSpecTrust = 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecTrust == 4>>
-        <br>The corporation is breaking slaves with care.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $arcologies[0].FSPaternalist > 20 && $corpDivBreakDev > 50>>
-                [[Use the Utmost Care|Manage Corporation][$corpSpecTrust = 5, $corpSpecToken += 1, $corpSpecTimer == 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecTrust == 5>>
-        <br>The corporation is breaking slaves with the utmost care.
-        <<if $corpSpecTimer == 0>>
-            [[Use Less Care|Manage Corporation][$corpSpecTrust = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecWeight == 1>>
-        <br>The corporation makes slaves follow incredibly strict diets.
-        <<if $corpSpecTimer == 0>>
-            [[Apply Looser Diet|Manage Corporation][$corpSpecWeight = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecWeight == 2>>
-        <br>The corporation makes slaves diet.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $arcologies[0].FSHedonisticDecadence == "unset">>
-                [[Apply Strict Diet|Manage Corporation][$corpSpecWeight = 1, $corpSpecTimer = 2]] |
-            <</if>>
-            [[Aim for Healthy Weight|Manage Corporation][$corpSpecWeight = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecWeight == 3>>
-        <br>The corporation is aiming for slaves with a healthy weight.
-        <<if $corpSpecTimer == 0>>
-            [[Apply Diet|Manage Corporation][$corpSpecWeight = 2, $corpSpecTimer = 2]] | [[Plump up Slaves|Manage Corporation][$corpSpecWeight = 5, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>> /*Perhaps 'plump up' is not the right phrase*/
-    <<elseif $corpSpecWeight == 5>>
-        <br>The corporation aims for plump slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $arcologies[0].FSPhysicalIdealist == "unset">>
-                [[Fatten Slaves|Manage Corporation][$corpSpecWeight = 6, $corpSpecTimer = 2]] |
-            <</if>>
-            [[Aim for Healthy Weight|Manage Corporation][$corpSpecWeight = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecWeight == 6>>
-        <br>The corporation aims for fat slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Settle for Plump|Manage Corporation][$corpSpecWeight = 5, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecMuscle == 1>>
-        <br>The corporation aims to have frail slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Aim for Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMuscle>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecMuscle == 2>> /*Don't think this deserves the added cost of a token, unlike slaves getting ripped*/
-        <br>The corporation aims to have weak slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $arcologies[0].FSPhysicalIdealist == "unset">>
-                [[Aim for Frail|Manage Corporation][$corpSpecMuscle = 1, $corpSpecTimer = 2]] |
-            <</if>>
-            [[Aim for Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecMuscle == 3>>
-        <br>The corporation is aiming for slaves with soft muscles.
-        <<if $corpSpecTimer == 0>>
-            <<if $arcologies[0].FSPhysicalIdealist == "unset">>
-                [[Aim for Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecTimer = 2]] |
-            <</if>>
-            [[Aim for Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecMuscle == 4>>
-        <br>The corporation aims for toned muscles.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && ($corpDivBreakDev + $corpDivSurgeryDev + $corpDivTrainDev > 100)>>
-                [[Aim for Ripped|Manage Corporation][$corpSpecMuscle = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            [[Aim for Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecMuscle == 5>>
-        <br>The corporation aims for ripped slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Aim for Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-        <<if $corpSpecDevotion == 1>>
-        <br>The corporation keeps slaves extremely defiant.
-        <<if $corpSpecTimer == 0>>
-            [[Less Defiant|Manage Corporation][$corpSpecDevotion = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>> /*Don't think this deserves the added cost of a token, unlike the 'devoted' one*/
-    <<elseif $corpSpecDevotion == 2>>
-        <br>The corporation keeps slaves reluctant.
-        <<if $corpSpecTimer == 0>>
-            [[Make them Defiant|Manage Corporation][$corpSpecDevotion = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecDevotion == 4>>
-        <br>The corporation is fostering obedience.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $corpDivTrainDev > 100>>
-                [[Foster Devotion|Manage Corporation][$corpSpecDevotion = 5, $corpSpecToken += 1, $corpSpecTimer = 2]] |
-            <</if>>
-        <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecDevotion == 5>>
-        <br>The corporation is fostering devotion.
-        <<if $corpSpecTimer == 0>>
-            [[Settle for Obedience|Manage Corporation][$corpSpecDevotion = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecIntelligence == 1>>
-        <br>The corporation keeps stupid slaves.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecIntelligence>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecIntelligence == 3>>
-        <br>The corporation keeps intelligent slaves.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecIntelligence>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecAge == 1>>
-        <br>The corporation focuses on young slaves.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecAge>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecAge == 3>>
-        <br>The corporation focuses on older slaves.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecAge>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecAccent == 1>>
-        <br>The corporation teaches slaves to speak the lingua franca.
-        <<if $corpSpecTimer == 0>>
-            [[Eliminate Accents|Manage Corporation][$corpSpecAccent = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecAccent>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecAccent == 2>>
-        <br>The corporation teaches slaves to speak the lingua franca without an accent.
-        <<if $corpSpecTimer == 0>>
-            [[Just Teach Language|Manage Corporation][$corpSpecAccent = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecAccent>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecEducation == 0>>
-        <br>The corporation focuses on uneducated slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0>>
-                [[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecTimer = 2]] |
-            <</if>>
-        <<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecEducation == 1>>
-        <br>The corporation makes sure all slaves have a basic education.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpDivTrainDev > 200 && $corpSpecToken > 0>>
-                [[Advanced Education|Manage Corporation][$corpSpecEducation = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            [[No Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecEducation == 2>>
-        <br>The corporation makes sure all slaves have an advanced education.
-        <<if $corpSpecTimer == 0>>
-            [[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecCosmetics == 1>>
-        <br>The corporation applies straightforward cosmetic procedures.
-        <<if $corpSpecTimer == 0>>
-            <<link "No Focus">><<unset $corpSpecCosmetics>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecCosmetics == 0>>
-        <br>The corporation doesn't apply cosmetic procedures.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0>>
-                [[Applied|Manage Corporation][$corpSpecCosmetics = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecCosmetics>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecImplants == 1>>
-        <br>The corporation applies tasteful implants to all slaves.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpDivSurgeryDev > 100 && $corpSpecToken > 0>>
-                [[Absurd Implants|Manage Corporation][$corpSpecImplants = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecImplants == 2>>
-        <br>The corporation applies absurd implants to all slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Tasteful Implants|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecImplants == 0>>
-        <br>The corporation keeps their slaves entirely implant free.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0>>
-                [[Tasteful Implants|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if ndef $corpSpecPussy && ndef $corpSpecDick && ndef $corpSpecBalls && $corpSpecGenitalia == 1>>
-        <<set ndef $corpSpecGenitalia,
-        $corpSpecToken += 1>>
-    <</if>>
-    <<if $corpSpecGenitalia == 1>>
-        <<if $corpSpecPussy == 1>>
-            <br>The corporation adds a pussy to all slaves.
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecPussy>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<elseif $corpSpecPussy == -1>>
-            <br>The corporation removes pussies from all slaves.
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecPussy>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<else>>
-            <br>The corporation has no plans for pussies.
-            <<if $corpSpecTimer == 0>>
-                [[Add Pussy|Manage Corporation][$corpSpecPussy = 1, $corpSpecTimer = 2]] | [[Remove Pussy|Manage Corporation][$corpSpecPussy = -1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-            <</if>>
-        <</if>>
-        <<if $corpSpecDick == 1>>
-            <br>The corporation adds a dick to all slaves.
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecDick>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<elseif $corpSpecDick == -1>>
-            <br>The corporation removes dicks from all slaves.
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecDick>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<else>>
-            <br>The corporation has no plans for dicks.
-            <<if $corpSpecTimer == 0>>
-                [[Add Dick|Manage Corporation][$corpSpecDick = 1, $corpSpecTimer = 2]] | [[Remove Dick|Manage Corporation][$corpSpecDick = -1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-            <</if>>
-        <</if>>
-        <<if $corpSpecBalls == 1>>
-            <br>The corporation adds balls to all slaves (penis required).
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecBalls>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<elseif $corpSpecBalls == -1>>
-            <br>The corporation removes balls from all slaves.
-            <<if $corpSpecTimer == 0>>
-                <<link "Stop">><<unset $corpSpecBalls>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-            <</if>>
-        <<else>>
-            <br>The corporation has no plans for balls.
-            <<if $corpSpecTimer == 0>>
-                [[Add Balls|Manage Corporation][$corpSpecBalls = 1, $corpSpecTimer = 2]] | [[Remove Balls|Manage Corporation][$corpSpecBalls = -1, $corpSpecTimer = 2]]
-            <</if>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecInjection == 1>>
-        <br>The corporation aims for petite assets.
-        <<if $corpSpecTimer == 0>>
-            [[Tasteful Size|Manage Corporation][$corpSpecInjection = 2, $corpSpecTimer = 2]] | [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecInjection == 2>>
-        <br>The corporation aims for tasteful assets.
-        <<if $corpSpecTimer == 0>>
-            [[Small Size|Manage Corporation][$corpSpecInjection = 1, $corpSpecTimer = 2]] | [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecInjection == 3>>
-        <br>The corporation aims for huge assets.
-        <<if $corpSpecTimer == 0>>
-            [[Small Size|Manage Corporation][$corpSpecInjection = 1, $corpSpecTimer = 2]] | [[Tasteful Size|Manage Corporation][$corpSpecInjection = 2, $corpSpecTimer = 2]] |
-            <<if $corpDivSurgeryDev > 100 && $corpSpecToken > 0>>
-                [[Supermassive Size|Manage Corporation][$corpSpecInjection = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]]
-            <</if>>
-            <<if $corpDivDairyDev > 200 && $corpSpecToken > 0>> |
-                [[Pastoral Size|Manage Corporation][$corpSpecInjection = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecInjection == 4>>
-        <br>The corporation aims for supermassive assets.
-        <<if $corpSpecTimer == 0>>
-            [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken += 1, $corpSpecTimer = 2]] |
-            <<if $corpDivDairyDev > 200>>
-                [[Pastoral Size|Manage Corporation][$corpSpecInjection = 5, $corpSpecTimer = 2]] |
-            <</if>>
-        <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecInjection == 5>>
-        <br>The corporation aims for pastoral assets.
-        <<if $corpSpecTimer == 0>>
-            [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken += 1, $corpSpecTimer = 2]] |
-            <<if $corpDivSurgeryDev > 50>>
-                [[Supermassive Size|Manage Corporation][$corpSpecInjection = 4, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecHormones == 1>>
-        <br>The corporation feminizes slaves with hormones.
-        <<if $corpSpecTimer == 0>>
-            [[Masculinize|Manage Corporation][$corpSpecHormones = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHormones>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecHormones == 2>>
-        <br>The corporation masculinize slaves with hormones.
-        <<if $corpSpecTimer == 0>>
-            [[Feminize|Manage Corporation][$corpSpecHormones = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHormones>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecAmputee == 1>>
-        <br>The corporation removes all limbs from its slaves.
-        <<if $corpSpecTimer == 0>>
-            <<link "Stop">><<unset $corpSpecAmputee>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecMilk == 1>>
-        <br>The corporation makes sure all slaves are naturally lactating.
-        <<if $corpSpecTimer == 0>>
-            [[Lactation Implant|Manage Corporation][$corpSpecMilk = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMilk>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecMilk == 2>>
-        <br>The corporation equips all slaves with lactation implants.
-        <<if $corpSpecTimer == 0>>
-            [[Natural Lactation|Manage Corporation][$corpSpecMilk = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMilk>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
-    <<if $corpSpecSexEd == 1>>
-        <br>The corporation familiarizes slaves with sexual service.
-        <<if $corpSpecTimer == 0>>
-            <<if $corpSpecToken > 0 && $corpDivWhoreDev > 200>>
-                [[Advanced Training|Manage Corporation][$corpSpecSexEd = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
-            <</if>>
-            <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecSexEd == 2>>
-        <br>The corporation teaches advanced sexual techniques to its slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken +=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <<elseif $corpSpecSexEd == 0>>
-        <br>The corporation teaches no sexual techniques to its slaves.
-        <<if $corpSpecTimer == 0>>
-            [[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
-        <</if>>
-    <</if>>
+	<br><br>You have chosen the following specializations;
+	<br>//You can choose to specialize further with additional tokens, specialize less, end the specialization or sometimes tweak them for free.//
+	<<if $corpSpecRaces.length == 12>>
+		<<set $corpSpecRaces = []>>
+	<</if>>
+	<<if $corpSpecRaces.length > 0>>
+		<br>The corporation enslaves people of the following race(s);
+		<<if $corpSpecRaces.includes("amerindian")>>
+			<br>Amerindian
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "amerindian")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Amerindian==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("amerindian",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("asian")>>
+			<br>Asian
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "asian")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Asian==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("asian",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("black")>>
+			<br>Black
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "black")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Black==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("black",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("indo-aryan")>>
+			<br>Indo-Aryan
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "indo-aryan")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Indo-Aryan==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("indo-aryan",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("latina")>>
+			<br>Latina
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "latina")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Latina==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("latina",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("malay")>>
+			<br>Malay
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "malay")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Malay==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("malay",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("middle eastern")>>
+			<br>Middle Eastern
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "middle eastern")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Middle Eastern==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("middle eastern",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("mixed race")>>
+			<br>Mixed Race
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "mixed race")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Mixed Race==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("mixed race",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("pacific islander")>>
+			<br>Pacific Islander
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "pacific islander")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Pacific Islander==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("pacific islander",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("semitic")>>
+			<br>Semitic
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "semitic")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Semitic==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("semitic",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("southern european")>>
+			<br>Southern European
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace != "southern european")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==Southern European==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("southern european",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+		<<if $corpSpecRaces.includes("white")>>
+			<br>White
+			<<if !($arcologies[0].FSSubjugationist != "unset" && $arcologies[0].FSSubjugationistRace == "white")>>
+				<<if $corpSpecRaces.length > 1 && $corpSpecTimer == 0>>
+					<<if ($corpSpecRaces.length == 4 || $corpSpecRaces.length == 8) && $corpSpecToken > 0>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",1), $corpSpecToken -= 1, $corpSpecTimer = 1]]
+					<<elseif ($corpSpecRaces.length != 4 || $corpSpecRaces.length != 8)>>
+						[[Blacklist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",1)]]
+					<</if>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<br>==White==
+			<<if $corpSpecTimer == 0>>
+				<<if $corpSpecRaces.length == 3 || $corpSpecRaces.length == 7 || $corpSpecRaces.length == 11>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",0), $corpSpecToken += 1, $corpSpecTimer = 1]]
+				<<else>>
+					[[Whitelist|Manage Corporation][$corpSpecRaces = corpBlacklistRace("white",0)]]
+				<</if>>
+			<</if>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecGender == 1>>
+		<br>The corporation trains slaves with pussies.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecGender>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecGender == 2>>
+		<br>The corporation trains slaves with dicks.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecGender>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecHeight == 1>>
+		<br>The corporation is targeting tiny slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Short Slaves|Manage Corporation][$corpSpecHeight = 2, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecHeight == 2>>
+		<br>The corporation is targeting short slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && ($corpDivExtraDev + $corpDivLegalDev) > 50>>
+				[[Tiny Slaves|Manage Corporation][$corpSpecHeight = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecHeight == 4>>
+		<br>The corporation is targeting tall slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && ($corpDivExtraDev + $corpDivLegalDev) > 50>>
+				[[Giant Slaves|Manage Corporation][$corpSpecHeight = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecHeight == 5>>
+		<br>The corporation is targeting giant slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Tall Slaves|Manage Corporation][$corpSpecHeight = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecVirgin == 1>>
+		<br>The corporation is ensuring slaves remain virgins.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecVirgin>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecTrust == 1>>
+		<br>The corporation is breaking slaves with extreme brutality.
+		<<if $corpSpecTimer == 0>>
+			[[Apply Less Brutality|Manage Corporation][$corpSpecTrust = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>> /*Don't think this deserves the added cost of a token, unlike the 'utmost care' one*/
+	<<elseif $corpSpecTrust == 2>>
+		<br>The corporation is breaking slaves with brutality.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $arcologies[0].FSDegradationist > 20 && $corpDivBreakDev > 50>>
+				[[Apply Extreme Brutality|Manage Corporation][$corpSpecTrust = 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecTrust == 4>>
+		<br>The corporation is breaking slaves with care.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $arcologies[0].FSPaternalist > 20 && $corpDivBreakDev > 50>>
+				[[Use the Utmost Care|Manage Corporation][$corpSpecTrust = 5, $corpSpecToken += 1, $corpSpecTimer == 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecTrust == 5>>
+		<br>The corporation is breaking slaves with the utmost care.
+		<<if $corpSpecTimer == 0>>
+			[[Use Less Care|Manage Corporation][$corpSpecTrust = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecTrust>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecWeight == 1>>
+		<br>The corporation makes slaves follow incredibly strict diets.
+		<<if $corpSpecTimer == 0>>
+			[[Apply Looser Diet|Manage Corporation][$corpSpecWeight = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecWeight == 2>>
+		<br>The corporation makes slaves diet.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $arcologies[0].FSHedonisticDecadence == "unset">>
+				[[Apply Strict Diet|Manage Corporation][$corpSpecWeight = 1, $corpSpecTimer = 2]] |
+			<</if>>
+			[[Aim for Healthy Weight|Manage Corporation][$corpSpecWeight = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecWeight == 3>>
+		<br>The corporation is aiming for slaves with a healthy weight.
+		<<if $corpSpecTimer == 0>>
+			[[Apply Diet|Manage Corporation][$corpSpecWeight = 2, $corpSpecTimer = 2]] | [[Plump up Slaves|Manage Corporation][$corpSpecWeight = 5, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>> /*Perhaps 'plump up' is not the right phrase*/
+	<<elseif $corpSpecWeight == 5>>
+		<br>The corporation aims for plump slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $arcologies[0].FSPhysicalIdealist == "unset">>
+				[[Fatten Slaves|Manage Corporation][$corpSpecWeight = 6, $corpSpecTimer = 2]] |
+			<</if>>
+			[[Aim for Healthy Weight|Manage Corporation][$corpSpecWeight = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecWeight == 6>>
+		<br>The corporation aims for fat slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Settle for Plump|Manage Corporation][$corpSpecWeight = 5, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecMuscle == 1>>
+		<br>The corporation aims to have frail slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Aim for Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMuscle>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecMuscle == 2>> /*Don't think this deserves the added cost of a token, unlike slaves getting ripped*/
+		<br>The corporation aims to have weak slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $arcologies[0].FSPhysicalIdealist == "unset">>
+				[[Aim for Frail|Manage Corporation][$corpSpecMuscle = 1, $corpSpecTimer = 2]] |
+			<</if>>
+			[[Aim for Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecMuscle == 3>>
+		<br>The corporation is aiming for slaves with soft muscles.
+		<<if $corpSpecTimer == 0>>
+			<<if $arcologies[0].FSPhysicalIdealist == "unset">>
+				[[Aim for Weak|Manage Corporation][$corpSpecMuscle = 2, $corpSpecTimer = 2]] |
+			<</if>>
+			[[Aim for Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecMuscle == 4>>
+		<br>The corporation aims for toned muscles.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && ($corpDivBreakDev + $corpDivSurgeryDev + $corpDivTrainDev > 100)>>
+				[[Aim for Ripped|Manage Corporation][$corpSpecMuscle = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			[[Aim for Soft|Manage Corporation][$corpSpecMuscle = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecMuscle == 5>>
+		<br>The corporation aims for ripped slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Aim for Toned|Manage Corporation][$corpSpecMuscle = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecWeight>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+		<<if $corpSpecDevotion == 1>>
+		<br>The corporation keeps slaves extremely defiant.
+		<<if $corpSpecTimer == 0>>
+			[[Less Defiant|Manage Corporation][$corpSpecDevotion = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>> /*Don't think this deserves the added cost of a token, unlike the 'devoted' one*/
+	<<elseif $corpSpecDevotion == 2>>
+		<br>The corporation keeps slaves reluctant.
+		<<if $corpSpecTimer == 0>>
+			[[Make them Defiant|Manage Corporation][$corpSpecDevotion = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecDevotion == 4>>
+		<br>The corporation is fostering obedience.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $corpDivTrainDev > 100>>
+				[[Foster Devotion|Manage Corporation][$corpSpecDevotion = 5, $corpSpecToken += 1, $corpSpecTimer = 2]] |
+			<</if>>
+		<<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecDevotion == 5>>
+		<br>The corporation is fostering devotion.
+		<<if $corpSpecTimer == 0>>
+			[[Settle for Obedience|Manage Corporation][$corpSpecDevotion = 4, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecDevotion>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecIntelligence == 1>>
+		<br>The corporation keeps stupid slaves.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecIntelligence>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecIntelligence == 3>>
+		<br>The corporation keeps intelligent slaves.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecIntelligence>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecAge == 1>>
+		<br>The corporation focuses on young slaves.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecAge>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecAge == 3>>
+		<br>The corporation focuses on older slaves.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecAge>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecAccent == 1>>
+		<br>The corporation teaches slaves to speak the lingua franca.
+		<<if $corpSpecTimer == 0>>
+			[[Eliminate Accents|Manage Corporation][$corpSpecAccent = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecAccent>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecAccent == 2>>
+		<br>The corporation teaches slaves to speak the lingua franca without an accent.
+		<<if $corpSpecTimer == 0>>
+			[[Just Teach Language|Manage Corporation][$corpSpecAccent = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecAccent>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecEducation == 0>>
+		<br>The corporation focuses on uneducated slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0>>
+				[[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecTimer = 2]] |
+			<</if>>
+		<<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecEducation == 1>>
+		<br>The corporation makes sure all slaves have a basic education.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpDivTrainDev > 200 && $corpSpecToken > 0>>
+				[[Advanced Education|Manage Corporation][$corpSpecEducation = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			[[No Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecEducation == 2>>
+		<br>The corporation makes sure all slaves have an advanced education.
+		<<if $corpSpecTimer == 0>>
+			[[Basic Education|Manage Corporation][$corpSpecEducation = 1, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecEducation>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecCosmetics == 1>>
+		<br>The corporation applies straightforward cosmetic procedures.
+		<<if $corpSpecTimer == 0>>
+			<<link "No Focus">><<unset $corpSpecCosmetics>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecCosmetics == 0>>
+		<br>The corporation doesn't apply cosmetic procedures.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0>>
+				[[Applied|Manage Corporation][$corpSpecCosmetics = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecCosmetics>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecImplants == 1>>
+		<br>The corporation applies tasteful implants to all slaves.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpDivSurgeryDev > 100 && $corpSpecToken > 0>>
+				[[Absurd Implants|Manage Corporation][$corpSpecImplants = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecImplants == 2>>
+		<br>The corporation applies absurd implants to all slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Tasteful Implants|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken += 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecImplants == 0>>
+		<br>The corporation keeps their slaves entirely implant free.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0>>
+				[[Tasteful Implants|Manage Corporation][$corpSpecImplants = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecImplants>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if ndef $corpSpecPussy && ndef $corpSpecDick && ndef $corpSpecBalls && $corpSpecGenitalia == 1>>
+		<<set ndef $corpSpecGenitalia,
+		$corpSpecToken += 1>>
+	<</if>>
+	<<if $corpSpecGenitalia == 1>>
+		<<if $corpSpecPussy == 1>>
+			<br>The corporation adds a pussy to all slaves.
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecPussy>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<elseif $corpSpecPussy == -1>>
+			<br>The corporation removes pussies from all slaves.
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecPussy>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<else>>
+			<br>The corporation has no plans for pussies.
+			<<if $corpSpecTimer == 0>>
+				[[Add Pussy|Manage Corporation][$corpSpecPussy = 1, $corpSpecTimer = 2]] | [[Remove Pussy|Manage Corporation][$corpSpecPussy = -1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+			<</if>>
+		<</if>>
+		<<if $corpSpecDick == 1>>
+			<br>The corporation adds a dick to all slaves.
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecDick>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<elseif $corpSpecDick == -1>>
+			<br>The corporation removes dicks from all slaves.
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecDick>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<else>>
+			<br>The corporation has no plans for dicks.
+			<<if $corpSpecTimer == 0>>
+				[[Add Dick|Manage Corporation][$corpSpecDick = 1, $corpSpecTimer = 2]] | [[Remove Dick|Manage Corporation][$corpSpecDick = -1, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+			<</if>>
+		<</if>>
+		<<if $corpSpecBalls == 1>>
+			<br>The corporation adds balls to all slaves (penis required).
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecBalls>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<elseif $corpSpecBalls == -1>>
+			<br>The corporation removes balls from all slaves.
+			<<if $corpSpecTimer == 0>>
+				<<link "Stop">><<unset $corpSpecBalls>><<set $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+			<</if>>
+		<<else>>
+			<br>The corporation has no plans for balls.
+			<<if $corpSpecTimer == 0>>
+				[[Add Balls|Manage Corporation][$corpSpecBalls = 1, $corpSpecTimer = 2]] | [[Remove Balls|Manage Corporation][$corpSpecBalls = -1, $corpSpecTimer = 2]]
+			<</if>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecInjection == 1>>
+		<br>The corporation aims for petite assets.
+		<<if $corpSpecTimer == 0>>
+			[[Tasteful Size|Manage Corporation][$corpSpecInjection = 2, $corpSpecTimer = 2]] | [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecInjection == 2>>
+		<br>The corporation aims for tasteful assets.
+		<<if $corpSpecTimer == 0>>
+			[[Small Size|Manage Corporation][$corpSpecInjection = 1, $corpSpecTimer = 2]] | [[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecInjection == 3>>
+		<br>The corporation aims for huge assets.
+		<<if $corpSpecTimer == 0>>
+			[[Small Size|Manage Corporation][$corpSpecInjection = 1, $corpSpecTimer = 2]] | [[Tasteful Size|Manage Corporation][$corpSpecInjection = 2, $corpSpecTimer = 2]] |
+			<<if $corpDivSurgeryDev > 100 && $corpSpecToken > 0>>
+				[[Supermassive Size|Manage Corporation][$corpSpecInjection = 4, $corpSpecToken -= 1, $corpSpecTimer = 2]]
+			<</if>>
+			<<if $corpDivDairyDev > 200 && $corpSpecToken > 0>> |
+				[[Pastoral Size|Manage Corporation][$corpSpecInjection = 5, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecInjection == 4>>
+		<br>The corporation aims for supermassive assets.
+		<<if $corpSpecTimer == 0>>
+			[[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken += 1, $corpSpecTimer = 2]] |
+			<<if $corpDivDairyDev > 200>>
+				[[Pastoral Size|Manage Corporation][$corpSpecInjection = 5, $corpSpecTimer = 2]] |
+			<</if>>
+		<<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecInjection == 5>>
+		<br>The corporation aims for pastoral assets.
+		<<if $corpSpecTimer == 0>>
+			[[Huge Size|Manage Corporation][$corpSpecInjection = 3, $corpSpecToken += 1, $corpSpecTimer = 2]] |
+			<<if $corpDivSurgeryDev > 50>>
+				[[Supermassive Size|Manage Corporation][$corpSpecInjection = 4, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecInjection>><<set $corpSpecToken += 2, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecHormones == 1>>
+		<br>The corporation feminizes slaves with hormones.
+		<<if $corpSpecTimer == 0>>
+			[[Masculinize|Manage Corporation][$corpSpecHormones = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHormones>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecHormones == 2>>
+		<br>The corporation masculinize slaves with hormones.
+		<<if $corpSpecTimer == 0>>
+			[[Feminize|Manage Corporation][$corpSpecHormones = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecHormones>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecAmputee == 1>>
+		<br>The corporation removes all limbs from its slaves.
+		<<if $corpSpecTimer == 0>>
+			<<link "Stop">><<unset $corpSpecAmputee>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecMilk == 1>>
+		<br>The corporation makes sure all slaves are naturally lactating.
+		<<if $corpSpecTimer == 0>>
+			[[Lactation Implant|Manage Corporation][$corpSpecMilk = 2, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMilk>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecMilk == 2>>
+		<br>The corporation equips all slaves with lactation implants.
+		<<if $corpSpecTimer == 0>>
+			[[Natural Lactation|Manage Corporation][$corpSpecMilk = 1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecMilk>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
+	<<if $corpSpecSexEd == 1>>
+		<br>The corporation familiarizes slaves with sexual service.
+		<<if $corpSpecTimer == 0>>
+			<<if $corpSpecToken > 0 && $corpDivWhoreDev > 200>>
+				[[Advanced Training|Manage Corporation][$corpSpecSexEd = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]] |
+			<</if>>
+			<<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecSexEd == 2>>
+		<br>The corporation teaches advanced sexual techniques to its slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken +=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<<elseif $corpSpecSexEd == 0>>
+		<br>The corporation teaches no sexual techniques to its slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
+	<</if>>
 <</if>> /*End of activated specializations*/
 
 <br><br>
 
 @@.orange;//Warning: Think TWICE before you click this!//@@
 <<link "Dissolve the corporation">>
-    <<set cashX(Math.min(corpSharePrice() * $personalShares / 1000, 1000000), "stocksTraded")>>
-    <<run App.Corporate.dissolve()>>
-    <<goto "Manage Corporation">>
+	<<set cashX(Math.min(corpSharePrice() * $personalShares / 1000, 1000000), "stocksTraded")>>
+	<<run App.Corporate.dissolve()>>
+	<<goto "Manage Corporation">>
 <</link>>
 @@.orange;//Warning!//@@
 
diff --git a/src/Mods/DinnerParty/dinnerPartyPreparations.tw b/src/Mods/DinnerParty/dinnerPartyPreparations.tw
index 9efe06087134070782919b5bc93b1278d0b1d58b..230af2a44118a6fc4c9067db603abf9ee5facda3 100644
--- a/src/Mods/DinnerParty/dinnerPartyPreparations.tw
+++ b/src/Mods/DinnerParty/dinnerPartyPreparations.tw
@@ -30,7 +30,7 @@ Your assistant will take care of the invitations and all the arrangements; all y
 __Select Your Meat:__
 <br><br>
 <<= App.UI.SlaveList.slaveSelectionList(
-		s => s.assignmentVisible === 1 && s.fuckdoll === 0,
+		s => assignmentVisible(s) && s.fuckdoll === 0,
 		App.UI.SlaveList.SlaveInteract.stdInteract,
 		null,
 		(s, i) => {
diff --git a/src/Mods/SpecialForce/WeeklyChoices.tw b/src/Mods/SpecialForce/WeeklyChoices.tw
index 3e34127269199890b4f665a1d412515335e04c59..f8b5da01c0303b32c580480fc9efe3c2ae6eb02b 100644
--- a/src/Mods/SpecialForce/WeeklyChoices.tw
+++ b/src/Mods/SpecialForce/WeeklyChoices.tw
@@ -133,7 +133,7 @@
 					<<run repX(5, "specialForces")>>
 				<<elseif $PC.skill.medicine >= 60>>
 					Your proficiency in surgery allows you to properly close their wound with minimal trauma to the patient.
-				<<elseif $PC.medicine >= 30>>
+				<<elseif $PC.skill.medicine >= 30>>
 					Your moderate surgical skill ensures that you can close the citizen's wound, though not without likely scarring.
 				<<elseif $PC.skill.medicine >= 10>>
 					Your basic surgical skill in medicine is sufficient only to stabilize the citizen's wounds before medical assistance arrives.
diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw
index 470fd99e5cd1548a2b5212748fc962db96c71af3..57d263a0b836cb1116b257cc4dbfdaebbe00ada2 100644
--- a/src/SecExp/attackHandler.tw
+++ b/src/SecExp/attackHandler.tw
@@ -126,7 +126,7 @@
 		<<elseif $PC.career == "gang" || $PC.career == "escort">>
 			<<set _militiaMod -= 0.10>>
 		<</if>>
-		<<if $PC.career == "mercenary" || $PC.warfare > 75>>
+		<<if $PC.career == "mercenary" || $PC.skill.warfare > 75>>
 			<<set _mercMod += 0.10>>
 			<<set _SFMod += 0.10>>
 		<<elseif $PC.career == "wealth" || $PC.career == "servant">>
diff --git a/src/SecExp/js/secExp.js b/src/SecExp/js/secExp.js
index e656e4f042c08cdedfcdabe9ce7ded14e7f1fa46..84d38a2d3054f47db10bddc2575f0ba63ae68715 100644
--- a/src/SecExp/js/secExp.js
+++ b/src/SecExp/js/secExp.js
@@ -311,7 +311,7 @@ App.SecExp.battle = (function() {
 			}
 		}
 
-		const Slaves = V.slaveUnits;
+		const Slaves = V.slaveUnits.length;
 		for(let i = 0; i < Slaves; i++) {
 			if(V.slaveUnits[i].isDeployed > 0) {
 				init--;
diff --git a/src/SecExp/secBarracks.tw b/src/SecExp/secBarracks.tw
index 2da530ea9ae0c600c422a22dc835edc9fbcb191f..ada03c5458f4fe44f7ee34c8c3b2db0276cb0ebe 100644
--- a/src/SecExp/secBarracks.tw
+++ b/src/SecExp/secBarracks.tw
@@ -168,7 +168,7 @@ Your current maximum number of units is <<print App.SecExp.battle.maxUnits()>> (
 <<else>>
 	You have not yet installed a drone security system in your arcology, you will not be able to form a unit of drones.
 <</if>>
-	
+
 <br><br>__Slaves__
 <br>/* slaves */
 You are free to organize your menial slaves into fighting units. Currently you have <<print num($menials)>> slaves available, while <<print num($slavesEmployedManpower)>> are already employed as soldiers. During all your battles you lost a total of <<print num($slavesTotalCasualties)>>.
diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js
new file mode 100644
index 0000000000000000000000000000000000000000..b681d2450e8e38683ce90e31fa006461c23df48f
--- /dev/null
+++ b/src/endWeek/saGetMilked.js
@@ -0,0 +1,1001 @@
+window.saGetMilked = (function saGetMilked() {
+	"use strict";
+
+	let T;
+	let r;
+	let arcology;
+
+	// If these are moved out of the file, they must be set in it as well!
+	let milk;
+	let milkSale;
+	let cum;
+	let cumSale;
+	let fluid;
+	let fluidSale;
+
+	// could probably move these back or something
+	let hormones;
+	let cumHormones;
+	let implantEffect;
+
+	let he, him, his, hers, himself, girl, loli, He, His;
+
+	return saGetMilked;
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
+	function saGetMilked(slave) {
+		T = State.temporary;
+		arcology = V.arcologies[0];
+		milk = 0;
+		cum = 0;
+		fluid = 0;
+		r = ` `;
+		({
+			he, him, his, hers, himself, girl, He, His, loli
+		} = getPronouns(slave));
+
+		gatherStatistics(slave);
+		jobPreface(slave);
+		if (slave.lactation > 0) {
+			milkStatistics(slave);
+			harvestMilk(slave);
+			milkingEffects(slave);
+		}
+		// Limits penthouse milkers to milk only.
+		if (["be confined in the arcade", "get milked", "work in the dairy"].includes(slave.assignment)) {
+			if (slave.balls > 0) {
+				cumStatistics(slave);
+				harvestCum(slave);
+				cumEffects(slave);
+			}
+			if (slave.genes === "XX" && slave.prostate > 0 && slave.balls === 0) {
+				girlCumStatistics(slave);
+				harvestGirlCum(slave);
+			}
+		}
+		mentalEffects(slave);
+		if (V.showVignettes === 1 && (slave.assignment === "get milked" || slave.assignment === "work in the dairy")) {
+			assignmentVignette(slave);
+		}
+		if (slave.assignment === "work in the dairy") {
+			applyFSDecoration();
+		}
+
+		// These are a pain. They are usually called immediately after this function. Could possibly return an object instead.
+		V.cum = cum;
+		V.milk = milk;
+		V.milkSale = milkSale;
+		V.cumSale = cumSale;
+		V.fluid = fluid;
+		V.fluidSale = fluidSale;
+
+		return r;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function gatherStatistics(slave) {
+		/* Statistics gathering */
+		let facility;
+		if (slave.assignment === Job.DAIRY) {
+			facility = V.facility.dairy;
+		}
+		T.incomeStats = getSlaveStatisticData(slave, facility);
+		T.incomeStats.milk = 0;
+		T.incomeStats.cum = 0;
+		T.incomeStats.fluid = 0;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function jobPreface(slave) {
+		r += `gets milked this week.`;
+		if (V.dairy > 0 && V.dairyRestraintsSetting < 2) {
+			if ((V.universalRulesFacilityWork === 1 && slave.assignment === "get milked" && V.dairySpots > 0) || (slave.assignment === "work in the dairy")) {
+				if (slave.assignment === "get milked") {
+					r += ` Since there's extra space in ${V.dairyName}, ${he} spends most of ${his} milkings there.`;
+					V.dairySpots -= 1; // Would this need to be pulled for statistics gathering?
+				}
+				if (V.Milkmaid !== 0) {
+					r += ` While there, ${he} gets the benefit of ${V.Milkmaid.slaveName}'s `;
+					if (V.Milkmaid.physicalAge < 21) {
+						r += `youthful energy`;
+					} else {
+						r += `care`;
+					}
+					if (V.Milkmaid.skill.oral >= 100) {
+						r += ` and talented tongue`;
+					}
+					r += `.`;
+					if (slave.devotion < V.milkmaidDevotionThreshold) {
+						slave.devotion += V.milkmaidDevotionBonus;
+					}
+					if (slave.trust < V.milkmaidTrustThreshold) {
+						slave.trust += V.milkmaidTrustBonus;
+					}
+					if (slave.health < 100) {
+						slave.health += V.milkmaidHealthBonus;
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function harvestMilk(slave) {
+		 /* milk = milkAmount(slave); // Set it or else! */
+
+		r += ` ${He} produces from ${his} ${jsEither(["boobs", "breasts", "mammaries", "tits", "udders"])}, which have a combined volume of ${(slave.boobs * 2)} CCs; `;
+		if (slave.lactation === 1) {
+			r += `${he} is lactating naturally and produces `;
+			if (implantEffect >= .90) {
+				r += `a weak trickle of milk.`;
+			} else if (implantEffect >= .75) {
+				r += `a weak stream of milk.`;
+			} else {
+				r += `a healthy stream of milk.`;
+			}
+		} else if (slave.lactation === 2) {
+			r += `${he} is on lactation drugs and produces `;
+			if (implantEffect >= .90) {
+				r += `a steady flow of milk.`;
+			} else if (implantEffect >= .75) {
+				r += `strong bursts of milk.`;
+			} else {
+				r += `a river of milk.`;
+			}
+			if (slave.lactationAdaptation < 100) {
+				r += ` ${His} udders are forced to adapt to this unnatural productivity.`;
+				slave.lactationAdaptation += 1;
+			}
+			if (slave.curatives === 0 && slave.inflationType !== "curative") {
+				r += ` The stress of extreme milk production <span class="red">damages ${his} health.</span>`;
+				slave.health -= 3;
+			}
+		}
+
+		if (slave.boobsMilk > 0) {
+			r += ` ${He} was in need of a good milking, too.`;
+		}
+
+		if (slave.devotion > 50) {
+			r += ` ${He}'s such a happy cow that ${his} mental state has a positive impact on ${his} production.`;
+		} else if (slave.devotion < -50) {
+			r += ` ${He}'s such an unhappy cow that ${his} mental state has a negative impact on ${his} production.`;
+		}
+
+		if (slave.boobsImplant > 0) {
+			implantEffect = (slave.boobsImplant / slave.boobs);
+		}
+		if (slave.boobsImplant > 0) {
+			r += ` However, ${his} `;
+			if (implantEffect >= .90) {
+				r += `breast implants are ill-suited for`;
+			} else if (implantEffect >= .75) {
+				r += `breasts are almost entirely implant, greatly restricting ${his}`;
+			} else if (implantEffect >= .60) {
+				r += `breasts are mostly implant, restricting ${his}`;
+			} else if (implantEffect >= .45) {
+				r += `implants make up a considerable amount of ${his} breasts and greatly impede`;
+			} else if (implantEffect >= .30) {
+				r += `breast implants take up enough space to impede`;
+			} else if (implantEffect >= .10) {
+				r += `breast implants slightly impede`;
+			} else {
+				r += `breast implants cause a minor decrease in`;
+			}
+			r += ` milk production`;
+			if (implantEffect >= .90) {
+				r += `, given the lack of actual breast flesh`;
+			}
+			r += `.`;
+		}
+
+		hormones = (slave.hormoneBalance / 100);
+		if (slave.balls !== 0) {
+			hormones -= 1;
+		}
+		if (slave.ovaries !== 0 || slave.mpreg !== 0) {
+			hormones += 1;
+		}
+		if (hormones > 1) {
+			r += ` ${His} internal chemistry is perfectly suited to milk production.`;
+		} else if (hormones > 0) {
+			r += ` ${His} hormonal balance favors milk production.`;
+		} else if (hormones < 0) {
+			r += ` ${His} hormonal balance impedes milk production.`;
+		} else if (hormones < -1) {
+			r += ` ${His} internal chemistry is poorly suited to milk production.`;
+		}
+
+		if (slave.lactationAdaptation < 100) {
+			if (slave.assignment === "get milked" || slave.assignment === "work in the dairy") {
+				r += ` Living as a cow helps ${his} body and mind adapt to producing milk.`;
+				slave.lactationAdaptation += 1;
+			}
+		}
+
+		if (slave.preg > (slave.pregData.normalBirth / 8) && slave.pregKnown === 1) {
+			r += ` ${His} pregnancy helps ${his} body produce more milk naturally`;
+			if (slave.lactationAdaptation < 100) {
+				r += `, and also helps it adapt to milk production`;
+				slave.lactationAdaptation += 1;
+			}
+			r += `.`;
+		}
+
+		if (slave.health > 50) {
+			r += ` ${His} shining health helps ${him} really produce.`;
+		} else if (slave.health < -50) {
+			r += ` ${His} poor health impedes milk production.`;
+		}
+
+		if (slave.weight > 10) {
+			r += ` ${His} extra weight supports ${his} productivity.`;
+		} else if (slave.weight < -10) {
+			r += ` ${His} thinness hinders ${his} productivity.`;
+		}
+
+		if (slave.lactationAdaptation > 10) {
+			if (slave.lactationAdaptation > 50) {
+				r += ` ${His} body has adapted heavily to milk production, making ${him} extremely productive.`;
+			} else {
+				r += ` ${His} body has gotten used to producing milk, making ${him} very productive.`;
+			}
+		}
+
+		if (V.dairySlimMaintainUpgrade === 1) {
+			if (V.dairySlimMaintain === 1) {
+				if (slave.boobs <= 700) {
+					if (arcology.FSSlimnessEnthusiast > 80) {
+						r += ` Your arcology's milkers are optimized to extract maximum output from small breasted slaves, which substantially increases ${his} otherwise modest productivity.`;
+					} else if (arcology.FSSlimnessEnthusiast > 20) {
+						r += ` Your arcology's milkers have been carefully modified to more readily accommodate slaves with tiny breasts, which slightly mitigates ${his} less than ideal physiology for milk production.`;
+					}
+				}
+			}
+		}
+
+		r += ` As a result, $he produces ${milk} liters of milk over the week.`;
+
+		/*
+		slaves.counter.milk += milk;
+		V.milkTotal += milk;
+		T.incomeStats.milk = milk;
+		*/
+
+		// make sure milkSale is set here
+		if (arcology.FSPastoralistLaw === 1) {
+			r += ` Since breast milk is ${arcology.name}'s only legal dairy product, ${he} can scarcely be milked fast enough, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+		} else if (arcology.FSPastoralist !== "unset") {
+			r += ` Since milk is fast becoming a major part of the ${arcology.name}'s dietary culture, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+		} else if (arcology.FSRepopulationFocusLaw === 1) {
+			r += ` Since the number of hungry babies outweighs the supply of available breasts in ${arcology.name}, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+		} else {
+			r += ` ${His} milk is sold for <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+		}
+
+		/*
+		if (slave.assignment === "work in the dairy") {
+			cashX(milkSale, "milkedDairy", slave);
+		} else if (slave.assignment == "get milked") {
+			cashX(milkSale, "milked", slave);
+		} else {
+			cashX(milkSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += milkSale;
+		*/
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function milkStatistics(slave) {
+		milk = milkAmount(slave);
+
+		if (V.dairySlimMaintainUpgrade === 1) {
+			if (V.dairySlimMaintain === 1) {
+				if (slave.boobs <= 700) {
+					if (arcology.FSSlimnessEnthusiast > 80) {
+						milk *= 1.5;
+					} else if (arcology.FSSlimnessEnthusiast > 20) {
+						milk *= 1.1;
+					}
+				}
+			}
+		}
+
+		if (slave.assignment === "work in the dairy") {
+			if (V.dairyFeedersUpgrade === 1) {
+				if (V.dairyFeedersSetting > 0) {
+					milk += (milk * (0.1 * (V.dairyFeedersUpgrade + V.dairyRestraintsSetting + ((50 - slave.physicalAge) / 20))));
+					if (slave.chem > 360) {
+						milk *= 0.6;
+					} else if (slave.chem > 100) {
+						milk *= ((600 - slave.chem) / 600);
+					}
+				}
+			}
+		} else if (slave.assignment === "be confined in the arcade") {
+			milk *= 0.5;
+		}
+
+		milk *= V.servantMilkersMultiplier;
+		milk = Math.trunc(milk);
+		if (milk < 1) {
+			milk = 1;
+		}
+
+		// Consider returning these if this function gets gutted
+		slave.counter.milk += milk;
+		V.milkTotal += milk;
+		T.incomeStats.milk = milk;
+
+		if (arcology.FSPastoralistLaw === 1) {
+			milkSale = (milk * (8 + Math.trunc(arcology.FSPastoralist / 30)));
+		} else if (arcology.FSPastoralist !== "unset") {
+			milkSale = (milk * (6 + Math.trunc(arcology.FSPastoralist / 30)));
+		} else if (arcology.FSRepopulationFocusLaw === 1) {
+			milkSale = (milk * (6 + Math.trunc(arcology.FSRepopulationFocus / 50)));
+		} else {
+			milkSale = (milk * 6);
+		}
+
+		// Consider returning these if this function gets gutted
+		if (slave.assignment === "work in the dairy") {
+			cashX(milkSale, "milkedDairy", slave);
+		} else if (slave.assignment === "get milked") {
+			cashX(milkSale, "milked", slave);
+		} else {
+			cashX(milkSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += milkSale;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function milkingEffects(slave) {
+		if (slave.fetishKnown) {
+			if (slave.fetish === "boobs" || slave.energy > 95) {
+				r += ` Getting constantly milked is as good as sex, as far as ${he}'s concerned. <span class="hotpink">$He is happy</span> to have ${his} breasts receive so much attention.`;
+				slave.devotion += 1;
+				if (slave.need > 0) {
+					slave.need = 0;
+				}
+			}
+		}
+
+		if (slave.career === "a dairy cow" && slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
+			r += ` ${He} feels like <span class="hotpink">${he} was made to be milked,</span> <span class="mediumaquamarine">not that ${he}'d complain about such a good feeling.</span>`;
+			slave.devotion++;
+			slave.trust++;
+			if (slave.need > 0) {
+				slave.need = 0;
+			}
+		}
+
+		if (slave.nipples !== "huge") {
+			if (slave.nipples === "inverted") {
+				if (slave.fetish === "masochist" && slave.fetishKnown === 1) {
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">extremely uncomfortable; ${he} loves it.</span>`;
+					slave.devotion += 3;
+				} else {
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">extremely uncomfortable.</span>`;
+					slave.devotion -= 3;
+				}
+				if (jsRandom(1, 100) > 50) {
+					r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `;
+					if (jsRandom(1, 2) === 1) {
+						r += `it turns out they're absolutely massive.`;
+						slave.nipples = "huge";
+					} else {
+						r += `it turns out they're nice and puffy.`;
+						slave.nipples = "puffy";
+					}
+				}
+			} else if (slave.nipples === "partially inverted") {
+				if (slave.fetish === "masochist" && slave.fetishKnown === 1) {
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">quite uncomfortable; ${he} loves it.</span>`;
+					slave.devotion += 1;
+				} else {
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">quite uncomfortable.</span>`;
+					slave.devotion -= 1;
+				}
+				if (jsRandom(1, 100) > 30) {
+					r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `;
+					if (jsRandom(1, 2) === 1) {
+						r += `it turns out they're pretty cute.`;
+						slave.nipples = "cute";
+					} else {
+						r += `it turns out they're nice and puffy.`;
+						slave.nipples = "puffy";
+					}
+				}
+			} else if (slave.nipples === "puffy" && jsRandom(1, 100) > 90) {
+				r += ` Producing this river of milk <span class="lime">enlarges ${his} nipples:</span> they're now enormous.`;
+				slave.nipples = "huge";
+			} else if (slave.nipples === "cute" && jsRandom(1, 100) > 80) {
+				r += ` Producing this river of milk <span class="lime">makes ${his} nipples nice and puffy.</span>`;
+				slave.nipples = "puffy";
+			} else if (slave.nipples === "tiny") {
+				r += ` Producing this river of milk <span class="lime">makes ${his} nipples grow to a nice size.</span>`;
+				slave.nipples = "cute";
+			} else if (slave.areolae < 4 && jsRandom(1, 100) > (30 + (slave.areolae * 20))) {
+				if (slave.nipples === "fuckable") {
+					r += ` The constant suction around of $his nipples as their depths are drained of milk`;
+				} else {
+					r += ` Producing this river of milk`;
+				}
+				r += ` <span class="lime">broadens ${his} areolae.</span>`;
+				slave.areolae += 1;
+			}
+		}
+		slave.lactationDuration = 2;
+		if (slave.boobsMilk > 0) {
+			slave.boobs -= slave.boobsMilk;
+			slave.boobsMilk = 0;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function harvestCum(slave) {
+		V.cumSlaves += 1;
+		/* cum = cumAmount(slave); // Set it or else */
+
+		if (slave.lactation > 0) {
+			r += ` ${His} `;
+		} else {
+			r += ` ${slave.slaveName}'s `;
+		}
+
+		if (slave.dick > 0) {
+			if (slave.dick > 6) {
+				r += `inhuman`;
+			} else if (slave.dick > 5) {
+				r += `massive`;
+			} else if (slave.dick > 4) {
+				r += `big`;
+			} else if (slave.dick > 3) {
+				r += `sizable`;
+			} else if (slave.dick > 2) {
+				r += `moderate`;
+			} else if (slave.dick > 1) {
+				r += `little`;
+			} else {
+				r += `tiny`;
+			}
+			r += ` prick is`;
+			if (slave.lactation > 0) {
+				r += ` also`;
+			}
+			r += ` machine-milked`;
+		} else {
+			r += `butt is machine-fucked`;
+		}
+		r += ` to extract the cum from $his `;
+		if (slave.scrotum === 0) {
+			r += `invisible`;
+		} else {
+			if (slave.balls > 10) {
+				r += `hypertrophied`;
+			} else if (slave.balls >= 10) {
+				r += `inhuman`;
+			} else if (slave.balls >= 9) {
+				r += `titanic`;
+			} else if (slave.balls >= 8) {
+				r += `gigantic`;
+			} else if (slave.balls >= 7) {
+				r += `monstrous`;
+			} else if (slave.balls >= 6) {
+				r += `pendulous`;
+			} else if (slave.balls >= 5) {
+				r += `huge`;
+			} else if (slave.balls >= 4) {
+				r += `swinging`;
+			} else if (slave.balls >= 4) {
+				r += `big`;
+			} else if (slave.balls >= 3) {
+				r += `average`;
+			} else {
+				r += `pathetic`;
+			}
+		}
+		if (slave.drugs === "testicle enhancement") {
+			r += ` balls, relieving them of the excessive cum production caused by the testicle enhancement drugs.`;
+		} else if (slave.drugs === "hyper testicle enhancement") {
+			r += ` balls, relieving them of the excessive cum production caused by the hyper testicle enhancement drugs.`;
+		} else {
+			r += ` balls.`;
+		}
+
+		if (slave.diet === "cum production") {
+			r += ` ${His} diet is designed for cum production.`;
+		}
+
+		cumHormones = (slave.hormoneBalance / 50);
+		if (cumHormones < -1) {
+			r += ` ${His} internal chemistry is perfectly suited to cum production.`;
+		} else if (cumHormones < 0) {
+			r += ` ${His} hormonal balance favors cum production.`;
+		} else if (cumHormones > 0) {
+			r += ` ${His} hormonal balance impedes cum production.`;
+		} else if (cumHormones > 1) {
+			r += ` ${His} internal chemistry is poorly suited to cum production.`;
+		}
+
+		if (slave.scrotum === 0) {
+			r += ` ${He} does produce cum despite ${his} apparent ballslessness, but less than ${he} would if they weren't hidden inside ${him}.`;
+		}
+
+		if (slave.prostate > 0) {
+			if (slave.prostate > 2) {
+				r += ` ${His} heavily altered prostate greatly increases the volume of ${his} ejaculations and promotes excessive, watery semen production. This dilute ejaculate<span class="red">sells poorly</span> compared to normal cum.`;
+			} else if (slave.prostate > 1) {
+				r += ` ${His} hyperactive prostate increases the volume of ${his} ejaculations and promotes good semen production.`;
+			}
+		} else {
+			r += ` ${His} lack of a prostate reduces the health and volume of ${his} ejaculations.`;
+		}
+
+		if (slave.devotion > 50) {
+			r += ` ${He}'s so happy that ${his} mental state has a positive impact on ${his} semen production.`;
+		} else if (slave.devotion < -50) {
+			r += ` ${He}'s so unhappy that ${his} mental state has a negative impact on ${his} semen production.`;
+		}
+
+		if (slave.health > 50) {
+			r += ` ${His} shining health helps ${him} really produce.`;
+		} else if (slave.health < -50) {
+			r += ` ${His} poor health impedes semen production.`;
+		}
+
+		if (slave.vasectomy === 1) {
+			r += ` ${His} cum lacks the primary ingredient, sperm, thanks to ${his} vasectomy, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`;
+		} else if (slave.ballType === "sterile") {
+			r += ` ${His} cum lacks vigor entirely, thanks to ${his} chemical castration, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`;
+		}
+
+		/* Dairy rework cum half here */
+		if (slave.assignment === "work in the dairy") {
+			if (V.dairyStimulatorsUpgrade !== 1) {
+				if (V.Milkmaid !== 0) {
+					if (V.Milkmaid.dick > 4 && canAchieveErection(V.Milkmaid)) {
+						const milkmaidPronouns = getPronouns(V.Milkmaid);
+						r += ` ${V.Milkmaid.slaveName} sometimes stands in for the machines, which is a polite way of saying ${milkmaidPronouns.he} sometimes fucks ${slave.slaveName}'s ass to help ${him} cum.`;
+					}
+				}
+			}
+		}
+
+		/*
+		slave.counter.cum += cum;
+		V.cumTotal += cum;
+		T.incomeStats.cum = cum;
+		*/
+
+		if (arcology.FSPastoralist === "unset") {
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+		} else if (arcology.FSPastoralistLaw === 1) {
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of ${arcology.name}'s few legal sources of animal protein, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+		} else {
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+		}
+
+		/*
+		if (slave.assignment === "work in the dairy") {
+			cashX(cumSale, "milkedDairy", slave);
+		} else if (slave.assignment === "get milked") {
+			cashX(cumSale, "milked", slave);
+		} else {
+			cashX(cumSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += cumSale;
+		*/
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function cumStatistics(slave) {
+		cum = cumAmount(slave);
+
+		/* Dairy rework cum half here */
+		if (slave.assignment === "work in the dairy") {
+			if (V.dairyStimulatorsUpgrade === 1) {
+				if (V.dairyStimulatorsSetting > 0) {
+					cum += (cum * (0.2 * (V.dairyStimulatorsSetting + V.dairyRestraintsSetting + Math.trunc((50 - slave.physicalAge) / 20))));
+				}
+				if (slave.chem > 360) {
+					cum *= 0.6;
+				} else if (slave.chem > 100) {
+					cum *= ((600 - slave.chem) / 600);
+				}
+			} else if (V.Milkmaid !== 0) {
+				if (V.Milkmaid.dick > 4 && canAchieveErection(V.Milkmaid)) {
+					cum *= 1.2;
+				}
+			}
+		} else if (slave.assignment === "be confined in the arcade") {
+			cum *= 0.5;
+		}
+
+		cum = Math.trunc(cum);
+		if (cum < 1) {
+			cum = 1;
+		}
+
+		// Consider returning these if this function gets gutted
+		slave.counter.cum += cum;
+		V.cumTotal += cum;
+		T.incomeStats.cum = cum;
+
+		if (arcology.FSPastoralist === "unset") {
+			cumSale = (cum * jsRandom(15, 25));
+		} else if (arcology.FSPastoralistLaw === 1) {
+			cumSale = (cum * (jsRandom(20, 40)));
+		} else {
+			cumSale = (cum * (jsRandom(10, 20) + Math.trunc(arcology.FSPastoralist / 10)));
+		}
+		if (slave.vasectomy === 1 || slave.ballType === "sterile") {
+			cumSale *= 0.2;
+		}
+		if (slave.prostate === 3) {
+			cumSale *= 0.5;
+		}
+
+		// Consider returning these if this function gets gutted
+		if (slave.assignment === "work in the dairy") {
+			cashX(cumSale, "milkedDairy", slave);
+		} else if (slave.assignment === "get milked") {
+			cashX(cumSale, "milked", slave);
+		} else {
+			cashX(cumSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += cumSale;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function cumEffects(slave) {
+		if (slave.energy > 95) {
+			r += ` Getting ${his} dick constantly milked is almost as good as getting constant blowjobs as far as ${he}'s concerned. <span class="hotpink">${He} is happy</span> to have ${his} member receive so much attention.`;
+			slave.devotion += 1;
+		}
+
+		if (slave.need > 0) {
+			r += ` ${His} cock and balls are milked so thoroughly that ${he}'s involuntarily sexually sated, regardless of ${his} feelings and tastes.`;
+			slave.need = 0;
+		}
+
+		if (!canAchieveErection(slave)) {
+			r += ` Since ${he} cannot maintain an erection, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`;
+			slave.devotion -= 2;
+			slave.trust -= 2;
+			if (slave.anus === 0) {
+				r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`;
+				slave.anus = 1;
+			}
+		} else if (slave.devotion <= 20) {
+			r += ` Since ${he}'s unaroused by ${his} situation, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`;
+			slave.devotion -= 2;
+			slave.trust -= 2;
+			if (slave.anus === 0) {
+				r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`;
+				slave.anus = 1;
+			}
+		}
+
+		if (slave.balls < 3 && slave.ballType !== "sterile") {
+			if (slave.balls < 2) {
+				if (jsRandom(1, 100) > (70 + (slave.geneMods.NCS * 15))) {
+					r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} tiny testicles.</span>`;
+					slave.balls += 1;
+				}
+			} else if (jsRandom(1, 100) > (90 + (slave.geneMods.NCS * 5))) {
+				r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} small testicles.</span>`;
+				slave.balls += 1;
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function harvestGirlCum(slave) {
+		/* fluid = ((slave.prostate * (slave.energy / 5)) + 1); // Set it or else! */
+		r += ` ${His} female prostate fluid is considered an exotic delicacy.`;
+		if (slave.vagina >= 0) {
+			if (slave.vaginaLube === 2) {
+				r += ` ${His} excessive vaginal secretions bolster the mix.`;
+			} else if (slave.vaginaLube === 1) {
+				r += ` ${His} natural vaginal secretions add to the mix.`;
+			}
+		}
+		if (slave.energy > 10) {
+			if (slave.health > 50) {
+				if (slave.energy > 90) {
+					r += ` As a nympho, ${he} has no trouble orgasming almost constantly.`;
+				}
+				r += ` ${His} shining health keeps ${his} juices flowing.`;
+			} else if (slave.health < -50) {
+				r += ` ${He} is so unwell, ${he} produces less than normal.`;
+			}
+		} else {
+			/* slave.energy <= 10 */
+			r += ` Unfortunately, ${he} is frigid and rarely reaches orgasm in spite of the intense automatic stimulation.`;
+		}
+
+		/*
+		T.incomeStats.fluid = fluid;
+		*/
+
+		// make sure fluidSale is set here
+		r += ` ${fluid} deciliters of uncommon ejaculate is gathered during ${his} milkings.`;
+		if (arcology.FSPastoralist !== "unset" && arcology.FSPastoralist > 30) {
+			r += ` Because of your arcology's cultural preferences, it comes with extra value.`;
+		}
+		r += ` It is sold for <span class="yellowgreen">${cashFormat(fluidSale)}.</span>`;
+
+		/*
+		if (slave.assignment === "work in the dairy") {
+			cashX(fluidSale, "milkedDairy", slave);
+		} else if (slave.assignment === "get milked") {
+			cashX(fluidSale, "milked", slave);
+		} else {
+			cashX(fluidSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += fluidSale;
+		*/
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function girlCumStatistics(slave) {
+		fluid = ((slave.prostate * (slave.energy / 5)) + 1);
+		if (slave.vagina >= 0) {
+			if (slave.vaginaLube === 2) {
+				fluid *= 1.3;
+			} else if (slave.vaginaLube === 1) {
+				fluid *= 1.1;
+			}
+		}
+		if (slave.energy > 10) {
+			if (slave.health > 50) {
+				fluid *= (slave.health / 50);
+			} else if (slave.health < -50) {
+				fluid *= (1 + (slave.health / 50));
+			}
+		}
+		fluid = Math.trunc(fluid);
+		if (fluid < 1) {
+			fluid = 1;
+		}
+
+		// Consider returning these if this function gets gutted
+		T.incomeStats.fluid = fluid;
+
+		fluidSale = (fluid * jsRandom(40, 50));
+		if (arcology.FSPastoralist !== "unset" && arcology.FSPastoralist > 30) {
+			fluidSale = (Math.trunc(fluidSale*(1 + (arcology.FSPastoralist - 30) / 140))); /* fully accepted pastoralism gives +50% on the price*/
+		}
+
+		// Consider returning these if this function gets gutted
+		if (slave.assignment === "work in the dairy") {
+			cashX(fluidSale, "milkedDairy", slave);
+		} else if (slave.assignment === "get milked") {
+			cashX(fluidSale, "milked", slave);
+		} else {
+			cashX(fluidSale, "extraMilk", slave);
+		}
+		T.incomeStats.income += fluidSale;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function mentalEffects(slave) {
+		if (slave.assignment === "get milked" || (slave.assignment === "work in the dairy" && V.dairyRestraintsSetting < 2)) {
+			if (slave.behavioralQuirk === "fitness") {
+				r += ` ${slave.slaveName} <span class="hotpink">privately enjoys</span> the focus on ${his} health and fitness that comes with being a cow.`;
+				slave.devotion += 1;
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * */
+	function assignmentVignette(slave) {
+		const vignette = GetVignette(slave);
+		const FuckResult = FResult(slave); // Got to be something better than this
+		r += ` __This week__ ${vignette.text} `;
+		if (vignette.type === "cash") {
+			const cashVign = Math.trunc(FuckResult * vignette.effect);
+			if (vignette.effect > 0) {
+				r += `<span class="yellowgreen">making you an extra ${cashFormat(cashVign)}.</span>`;
+			} else if (vignette.effect < 0) {
+				r += `<span class="red">losing you ${cashFormat(Math.abs(cashVign))}.</span>`;
+			} else {
+				r += `an incident without lasting effect.`;
+			}
+			if (slave.assignment === "work in the dairy") {
+				cashX(cashVign, "milkedDairy", slave);
+			} else if (slave.assignment === "get milked") {
+				cashX(cashVign, "milked", slave);
+			} else {
+				cashX(cashVign, "extraMilk", slave);
+			}
+			T.incomeStats.income += cashVign;
+		} else if (vignette.type === "devotion") {
+			if (vignette.effect > 0) {
+				if (slave.devotion > 50) {
+					r += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					r += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion >= -50) {
+					r += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+				} else {
+					r += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+				}
+			} else if (vignette.effect < 0) {
+				if (slave.devotion > 50) {
+					r += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					r += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion >= -50) {
+					r += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+				} else {
+					r += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+				}
+			} else {
+				r += `an incident without lasting effect.`;
+			}
+			slave.devotion += (1 * vignette.effect);
+		} else if (vignette.type === "trust") {
+			if (vignette.effect > 0) {
+				if (slave.trust > 20) {
+					r += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+				} else if (slave.trust >= -50) {
+					r += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+				} else {
+					r += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+				}
+			} else if (vignette.effect < 0) {
+				if (slave.trust > 20) {
+					r += `<span class="gold">reducing ${his} trust in you.</span>`;
+				} else if (slave.trust >= -20) {
+					r += `<span class="gold">increasing ${his} fear of you.</span>`;
+				} else {
+					r += `<span class="gold">increasing ${his} terror of you.</span>`;
+				}
+			} else {
+				r += `an incident without lasting effect.`;
+			}
+			slave.trust += (1 * vignette.effect);
+		} else if (vignette.type === "health") {
+			if (vignette.effect > 0) {
+				r += `<span class="green">improving ${his} health.</span>`;
+			} else if (vignette.effect < 0) {
+				r += `<span class="red">affecting ${his} health.</span>`;
+			} else {
+				r += `an incident without lasting effect.`;
+			}
+			slave.health += (2 * vignette.effect);
+		} else {
+			if (vignette.effect > 0) {
+				r += `<span class="green">gaining you a bit of reputation.</span>`;
+			} else if (vignette.effect < 0) {
+				r += `<span class="red">losing you a bit of reputation.</span>`;
+			} else {
+				r += `an incident without lasting effect.`;
+			}
+			repX(Math.trunc(FuckResult * vignette.effect * 0.1), "vignette", slave);
+			T.incomeStats.rep += Math.trunc(FuckResult * vignette.effect * 0.1);
+		}
+	}
+
+	// FACILITY DECORATION IMPACTS
+	function applyFSDecoration() {
+		if (V.dairyDecoration !== "standard") {
+			let fsGain = Math.min(0.0001 * V.FSSingleSlaveRep * (milk + (5 * cum)), 1);
+			switch (V.dairyDecoration) {
+				case "Roman Revivalist":
+					arcology.FSRomanRevivalist = Math.clamp(arcology.FSRomanRevivalist += fsGain, 0, 100);
+					break;
+				case "Aztec Revivalist":
+					arcology.FSAztecRevivalist = Math.clamp(arcology.FSAztecRevivalist += fsGain, 0, 100);
+					break;
+				case "Egyptian Revivalist":
+					arcology.FSEgyptianRevivalist = Math.clamp(arcology.FSEgyptianRevivalist += fsGain, 0, 100);
+					break;
+				case "Edo Revivalist":
+					arcology.FSEdoRevivalist = Math.clamp(arcology.FSEdoRevivalist += fsGain, 0, 100);
+					break;
+				case "Arabian Revivalist":
+					arcology.FSArabianRevivalist = Math.clamp(arcology.FSArabianRevivalist += fsGain, 0, 100);
+					break;
+				case "Chinese Revivalist":
+					arcology.FSChineseRevivalist = Math.clamp(arcology.FSChineseRevivalist += fsGain, 0, 100);
+					break;
+				case "Chattel Religionist":
+					arcology.FSChattelReligionist = Math.clamp(arcology.FSChattelReligionist += fsGain, 0, 100);
+					break;
+				case "Degradationist":
+					arcology.FSDegradationist = Math.clamp(arcology.FSDegradationist += fsGain, 0, 100);
+					break;
+				case "Repopulation Focus":
+					arcology.FSRepopulationFocus = Math.clamp(arcology.FSRepopulationFocus += fsGain, 0, 100);
+					break;
+				case "Eugenics":
+					arcology.FSRestart = Math.clamp(arcology.FSRestart += fsGain, 0, 100);
+					break;
+				case "Asset Expansionist":
+					arcology.FSAssetExpansionist = Math.clamp(arcology.FSAssetExpansionist += fsGain, 0, 100);
+					break;
+				case "Transformation Fetishist":
+					arcology.FSTransformationFetishist = Math.clamp(arcology.FSTransformationFetishist += fsGain, 0, 100);
+					break;
+				case "Gender Radicalist":
+					arcology.FSGenderRadicalist = Math.clamp(arcology.FSGenderRadicalist += fsGain, 0, 100);
+					break;
+				case "Gender Fundamentalist":
+					arcology.FSGenderFundamentalist = Math.clamp(arcology.FSGenderFundamentalist += fsGain, 0, 100);
+					break;
+				case "Physical Idealist":
+					arcology.FSPhysicalIdealist = Math.clamp(arcology.FSPhysicalIdealist += fsGain, 0, 100);
+					break;
+				case "Hedonistic":
+					arcology.FSHedonisticDecadence = Math.clamp(arcology.FSHedonisticDecadence += fsGain, 0, 100);
+					break;
+				case "Supremacist":
+					arcology.FSSupremacist = Math.clamp(arcology.FSSupremacist += fsGain, 0, 100);
+					break;
+				case "Subjugationist":
+					arcology.FSSubjugationist = Math.clamp(arcology.FSSubjugationist += fsGain, 0, 100);
+					break;
+				case "Paternalist":
+					arcology.FSPaternalist = Math.clamp(arcology.FSPaternalist += fsGain, 0, 100);
+					break;
+				case "Pastoralist":
+					arcology.FSPastoralist = Math.clamp(arcology.FSPastoralist += fsGain, 0, 100);
+					break;
+				case "Maturity Preferentialist":
+					arcology.FSMaturityPreferentialist = Math.clamp(arcology.FSMaturityPreferentialist += fsGain, 0, 100);
+					break;
+				case "Youth Preferentialist":
+					arcology.FSYouthPreferentialist = Math.clamp(arcology.FSYouthPreferentialist += fsGain, 0, 100);
+					break;
+				case "Body Purist":
+					arcology.FSBodyPurist = Math.clamp(arcology.FSBodyPurist += fsGain, 0, 100);
+					break;
+				case "Slimness Enthusiast":
+					arcology.FSSlimnessEnthusiast = Math.clamp(arcology.FSSlimnessEnthusiast += fsGain, 0, 100);
+					break;
+				case "Slave Professionalism":
+					arcology.FSSlaveProfessionalism = Math.clamp(arcology.FSSlaveProfessionalism += fsGain, 0, 100);
+					break;
+				case "Intellectual Dependency":
+					arcology.FSIntellectualDependency = Math.clamp(arcology.FSIntellectualDependency += fsGain, 0, 100);
+					break;
+				case "Petite Admiration":
+					arcology.FSPetiteAdmiration = Math.clamp(arcology.FSPetiteAdmiration += fsGain, 0, 100);
+					break;
+				case "Statuesque Glorification":
+					arcology.FSStatuesqueGlorification = Math.clamp(arcology.FSStatuesqueGlorification += fsGain, 0, 100);
+					break;
+			}
+		}
+	}
+})();
diff --git a/src/endWeek/saRules_old.js b/src/endWeek/saRules_old.js
index 384ca2a373871b6bb3747a941463c79e6edce34f..8d16716be1aaccd7f49dc5235a9989b1588ede8c 100644
--- a/src/endWeek/saRules_old.js
+++ b/src/endWeek/saRules_old.js
@@ -1006,7 +1006,7 @@
 					break;
 				case "humiliation":
 					r += `demand that other slaves let ${him} fuck them in public. `;
-					if (slave.assignmentVisible) {
+					if (assignmentVisible(slave)) {
 						if (!slave.rivalry) {
 							SlaveSort.IDs(V.RapeableIDs);
 							for (let dI = 0; dI < V.RapeableIDs.length; dI++) {
@@ -1015,7 +1015,7 @@
 									rival = slaves[j];
 
 								if (!rival.rivalry) {
-									if (rival.assignmentVisible || rival.assignment === slave.assignment) {
+									if (assignmentVisible(rival) || rival.assignment === slave.assignment) {
 										if (rival.devotion <= 20 && rival.trust < -20) {
 											r += `Craving a rush, ${he} repeatedly forces a reluctant <<= SlaveFullName($slaves[_j])>> to have sex with ${him} in public. $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `;
 											slave.rivalry = 1;
@@ -1070,7 +1070,7 @@
 					break;
 				case "sadist":
 					r += `force the most reluctant slaves to let ${him} fuck them. `;
-					if (slave.assignmentVisible) {
+					if (assignmentVisible(slave)) {
 						if (!slave.rivalry) {
 							SlaveSort.IDs(V.RapeableIDs);
 							for (let dI = 0; dI < V.RapeableIDs.length; dI++) {
@@ -1084,7 +1084,7 @@
 								} = getPronouns(rival).appendSuffix('2');
 
 								if (!rival.rivalry) {
-									if (rival.assignmentVisible || rival.assignment === slave.assignment) {
+									if (assignmentVisible(rival) || rival.assignment === slave.assignment) {
 										if (rival.devotion <= 50) {
 											if (rival.sexualFlaw !== "none") {
 												r += `${He} focuses on ${SlaveFullName(rival)}, who has a sexual flaw ${slave.slaveName} can exploit. ${He} sadistically`;
@@ -1162,7 +1162,7 @@
 					break;
 				case "dom":
 					r += `force other slaves to submit to ${him}. `;
-					if (slave.assignmentVisible) {
+					if (assignmentVisible(slave)) {
 						if (!slave.rivalry) {
 							SlaveSort.IDs(V.RapeableIDs);
 							for (let dI = 0; dI < V.RapeableIDs.length; dI++) {
@@ -1171,7 +1171,7 @@
 									rival = slaves[j];
 
 								if (!rival.rivalry) {
-									if (rival.assignmentVisible || rival.assignment === slave.assignment) {
+									if (assignmentVisible(rival) || rival.assignment === slave.assignment) {
 										if (rival.devotion <= 20 && rival.trust < -20) {
 											r += `${He} repeatedly rapes a reluctant <<= SlaveFullName($slaves[_j])>>; ${he} can't seem to keep ${his} hands off the poor slave, who can't avoid ${him}. Not surprisingly, $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse <span class="lightsalmon">starts a rivalry</span> between them. `;
 											slave.rivalry = 1;
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 014f099e87f8928771470b4804c6abafb48a2470..89e786b7648b148f489bce234b587961a9285f92 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -308,17 +308,19 @@ window.saTakeClasses = (function saServeThePublic() {
 	 *
 	 */
 	function generalLessons(slave) {
-		if (slave.intelligenceImplant > -15 && V.schoolroomRemodelBimbo === 1 && slave.assignment === "learn in the schoolroom") {
-			r += ` ${He} makes some progress `;
-			if (slave.intelligenceImplant < 0) {
-				r += `towards ${his} special education.`;
-			} else {
-				r += `in undoing ${his} education.`;
-			}
-			slave.intelligenceImplant -= Math.max(1, learning);
-			if (slave.intelligenceImplant <= -15) {
-				slave.intelligenceImplant = -15;
-				r += ` ${He} has completed ${his} special education, and for most purposes ${he} has become <span class="orangered">less intelligent.</span>`;
+		if (V.schoolroomRemodelBimbo === 1 && slave.assignment === "learn in the schoolroom") {
+			if (slave.intelligenceImplant > -15) {
+				r += ` ${He} makes some progress `;
+				if (slave.intelligenceImplant < 0) {
+					r += `towards ${his} special education.`;
+				} else {
+					r += `in undoing ${his} education.`;
+				}
+				slave.intelligenceImplant -= Math.max(1, learning);
+				if (slave.intelligenceImplant <= -15) {
+					slave.intelligenceImplant = -15;
+					r += ` ${He} has completed ${his} special education, and for most purposes ${he} has become <span class="orangered">less intelligent.</span>`;
+				}
 			}
 		} else if (slave.intelligenceImplant < 30 && slave.assignment === "learn in the schoolroom") {
 			r += ` ${He} makes some progress `;
diff --git a/src/events/gameover.tw b/src/events/gameover.tw
index 07b959a0faf05c7b9edc19bce11811a871fbffda..0d22c663d97fbba4c76b1fad9499f027dc895b7b 100644
--- a/src/events/gameover.tw
+++ b/src/events/gameover.tw
@@ -15,6 +15,7 @@
 
 	<<case "debt">>
 		You have fallen so far into debt that it is mere child's play for another slaveowner to purchase your debt, call it in, and enslave you. The story of your remaining years may be worth telling, but it must be told elsewhere.
+		<<set $slavePC = convertPlayerToSlave($PC)>>
 
 	<<case "birth complications">>
 		Again and again, you keep bearing down. As you grow more exhausted and are no closer to giving birth, you let out a feeble cry for help.
@@ -57,6 +58,11 @@
 	<<case "Idiot Ball 2 The Dumbassening">>
 	<<case "Idiot Ball 3 Totally Not Idiot Ball 2 Again">>
 		As you leave your penthouse to conduct your daily rounds, you promptly get <<if $arcologyUpgrade.drones == 1>>tased by the nearest drone<<else>>tackled hard against the wall<</if>>. When you awake, it hits you like a truck; you idiotically enslaved your $PC.race ass by decreeing all <<if $gameover == "Idiot Ball 2 The Dumbassening">>non-<<print $arcologies[0].FSSupremacistRace>><<else>><<print $arcologies[0].FSSubjugationistRace>><</if>><<if $PC.race != "mixed race">>s<<else>> individuals<</if>> slaves, and since you are now a slave, lack the authority to revert the policy. The story of your remaining years may be worth telling, as is your legendary blunder, but it must be told elsewhere.
+		<<if $gameover == "Idiot Ball 2 The Dumbassening">>
+			<<set $slavePC = convertPlayerToSlave($PC, "notSupreme")>>
+		<<else>>
+			<<set $slavePC = convertPlayerToSlave($PC, "subjugated")>>
+		<</if>>
 
 	<<default>>
 		Since you are without slaves, Free Cities society no longer considers you a citizen of the first rank. Your personal story may continue, but that part of it worthy of retelling has now ended.
diff --git a/src/events/intro/economyIntro.tw b/src/events/intro/economyIntro.tw
index 379dba00764be73fce98b23f8dcc5b6eb1decf1d..ad8f14f63cbf3d7999119702a33c9eec8dc33cf0 100644
--- a/src/events/intro/economyIntro.tw
+++ b/src/events/intro/economyIntro.tw
@@ -12,7 +12,7 @@
 		<br>''Getting a touch dire.'' //Easy//
 		<br>[[Harder|Economy Intro][$economy = 100, $baseDifficulty = 3]] | [[Easier|Economy Intro][$economy = 200, $baseDifficulty = 1]]
 	<<elseif $baseDifficulty == 3>>
-		<br>''Very serious.'' //Default baseDifficulty//
+		<br>''Very serious.'' //Default Difficulty//
 		<br>[[Harder|Economy Intro][$economy = 80, $baseDifficulty = 4]] | [[Easier|Economy Intro][$economy = 125, $baseDifficulty = 2]]
 	<<elseif $baseDifficulty == 4>>
 		<br>''It won't be pretty.'' //Hard//
diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw
index e13a464b4a93587af7ac5a1611e20c2d5c4f95ca..d2b55a7126fdf3f954b1f37241a88bde6b45e417 100644
--- a/src/events/intro/initNationalities.tw
+++ b/src/events/intro/initNationalities.tw
@@ -26,7 +26,7 @@
 	<<set $trinkets.push("an artist's impression of an early arcology design")>>
 	<<set $arcologyUpgrade.drones = 1, $arcologyUpgrade.hydro = 1>>
 	<<if $secExpEnabled > 0>>
-	    <<set $secBots.active = 1, $secBots.troops = 30, $secBots.maxTroops = 30>>
+		<<set $secBots.active = 1, $secBots.troops = 30, $secBots.maxTroops = 30>>
 	<</if>>
 <<elseif $PC.career == "medicine">>
 	<<set $trinkets.push("a framed postsurgical x-ray")>>
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index ee0d37dfe8a183a50291cd9d622efc0fc0a1364f..e7aacfb75b0e090dd3c613ccaa2ad7ac4f6b8ad8 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -256,7 +256,7 @@ __''General slave settings''__
 <<options $disableLisping>>
  <<option 0 "Enable Lisping">>
 		Lisping: ''slaves with fat lips or heavy oral piercings will lisp''.
- <<option 1  "Disable Lisping">>
+ <<option 1 "Disable Lisping">>
 		Lisping: ''slaves will not lisp''.
 <</options>>
 
@@ -1366,7 +1366,7 @@ __''Mods''__
 			<<set $PC.anus = 1>>
 			<<set $PC.clothes = "a slutty outfit">>
 			<<set $PC.education = 15>>
-			<<set $PC.skill.trading = 50, $PC.skill.warfare = -100, $PC.skill.slaving = -100, $PC.skill.engineering = -100, $PC.medicine = 10, $PC.hacking = 10>>
+			<<set $PC.skill.trading = 50, $PC.skill.warfare = -100, $PC.skill.slaving = -100, $PC.skill.engineering = -100, $PC.skill.medicine = 10, $PC.skill.hacking = 10>>
 		<<case "servant">>
 			<<set $PC.clothes = "a nice maid outfit">>
 			<<set $PC.education = 0>>
diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw
index 5e516713c9acd17c8b836d1ca93aa98d6c72d1b2..b860288de259908e8cbe259198fbb1b9cee9ad6f 100644
--- a/src/facilities/nursery/childInteract.tw
+++ b/src/facilities/nursery/childInteract.tw
@@ -347,41 +347,28 @@ FIXME:
 	<</link>>
 	<<if $seeIncest == 1>>
 		<<if $familyTesting == 1>>
-			<<for $i = 0; $i < _SL; $i++>>
-				<<if $activeChild.mother == $slaves[$i].ID>>
-					<<if isSlaveAvailable($slaves[$i])>>
-					|	<<link "Fuck $him with $his mother">>
-							<<replace "#miniscene">>
-								<<set $partner = "mother">>
-								<<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>>
-						<</link>>
-					<<else>>
-						//$His mother, $slaves[$i].slaveName, is unavailable//
-					<</if>>
-				<</if>>
-				/*
-				<<if $activeChild.father == $slaves[$i].ID>>
-					<<if isSlaveAvailable($slaves[$i])>>
-					|	<<link "Fuck $him with $his father">>
-						<<replace "#miniscene">>
-						<<set $partner = "father">>
-						<<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>>
-						<</link>>
-					<<else>>
-						//$His father, $slaves[$i].slaveName, is unavailable//
-					<</if>>
-				<</if>>
-				*/
-			<</for>>
+			<<set _availRelatives = availableRelatives($activeChild)>>
+			<<if _availRelatives.mother>>
+			|	<<link "Fuck $him with $his mother">>
+				<<replace "#miniscene">>
+				<<set $partner = "mother">>
+				<<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>>
+				<</link>>
+			<<elseif _availRelatives.motherName !== null>>
+				//$His mother, _availRelatives.motherName, is unavailable//
+			<</if>>
+			/*
+			<<if _availRelatives.father>>
+			|	<<link "Fuck $him with $his father">>
+				<<replace "#miniscene">><<set $partner = "father">>
+				<<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>>
+				<</link>>
+			<<elseif _availRelatives.fatherName !== null>>
+				//$His father, _availRelatives.fatherName, is unavailable//
+			<</if>>
+			*/
 			<<if $activeChild.sisters > 0>>
-				<<set $relation = 0>>
-				<<for $i = 0; $i < _SL; $i++>>
-					<<setLocalPronouns $slaves[$i] 2>>
-					<<if areSisters($activeChild, $slaves[$i]) > 0 && !isSlaveAvailable($slaves[$i])>>
-						<<set $relation++>>
-					<</if>>
-				<</for>>
-				<<if $relation == $activeChild.sisters>>
+				<<if _availRelatives.sisters == 0>>
 					<<if $activeChild.sisters == 1>>
 						//$His _sister2 is unavailable//
 					<<else>>
@@ -1538,21 +1525,6 @@ Hormones: <b><span id="hormones">$activeChild.hormones</span>.</b>
 <</link>>
 
 <br><br>__Behavior__:<br>
-<<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
-<<for $i = 0; $i < _SL; $i++>>
-	<<if $slaves[$i].assignmentVisible && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-		<<if $slaves[$i].rules.living == "luxurious">>
-			<<if $slaves[$i].relationship >= 4>>
-				<<set $roomsPopulation += 0.5>>
-			<<else>>
-				<<set $roomsPopulation++>>
-			<</if>>
-		<<else>>
-			<<set $dormitoryPopulation++>>
-		<</if>>
-	<</if>>
-<</for>>
-
 Living standard: <b><span id="livingRules">$activeChild.rules.living</span>.</b>
 //$His living conditions are managed by $nurseryName's décor.//
 
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index a49ba5b916aca5f8ff7c57bdb101fde7dd193af8..40d76c17aa211db97a40427d83981f65b88747e2 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -2165,133 +2165,80 @@ App.Facilities.Nursery.LongInfantDescription = function(child) {
 			}
 		}
 
-		// aunts
-		for (let i = 0; i < V.slaves.length; i++) {
-			if (V.slaves[i] === mother || V.slaves[i] === father) {
-				for (let j = 0; j < V.slaves.length; j++) {
-					if (V.slaves[j].genes === "XX") {
-						if (areSisters(V.slaves[i], V.slaves[j]) === 1 || areSisters(V.slaves[i], V.slaves[j] === 2)) {
-							V.children.push(V.slaves[j]);
-						}
-					}
-				}
+		// aunts and uncles
+		let aunts = [], uncles = [];
+		let momsiblings = V.slaves.filter((s) => { const sis = areSisters(s, child.mother); return sis === 1 || sis === 2; });
+		let dadsiblings = V.slaves.filter((s) => { const sis = areSisters(s, child.father); return sis === 1 || sis === 2; });
+		for (let i = 0; i < momsiblings.length; i++) {
+			if (momsiblings[i].genes === "XX") {
+				aunts.push(momsiblings[i]);
+			} else {
+				uncles.push(momsiblings[i]);
 			}
 		}
-
-		if (V.children.length > 0) {
-			r += `${He} `;
-			if (V.children.length > 2) {
-				r += `has <span class="lightgreen">many aunts, `;
-				for (j = 0; j < V.children.length; j++) {
-					if (j < V.children.length - 1) {
-						r += `${V.children[j].slaveName}, `;
-					} else {
-						r += `and ${V.children[j].slaveName}.</span> `;
-					}
-				}
-			} else if (V.children.length === 2) {
-				r += `has <span class="lightgreen">two aunts, ${V.children[0].slaveName}, and ${V.children[1].slaveName}.</span> `;
+		for (let i = 0; i < dadsiblings.length; i++) {
+			if (dadsiblings[i].genes === "XX") {
+				aunts.push(dadsiblings[i]);
 			} else {
-				r += `has <span class="lightgreen">an aunt, ${V.children[0].slaveName}.</span> `;
+				uncles.push(dadsiblings[i]);
 			}
 		}
-		V.children = [];
 
-		// uncles
-		for (let i = 0; i < V.slaves.length; i++) {
-			if (V.slaves[i] === mother || V.slaves[i] === father) {
-				for (let j = 0; j < V.slaves.length; j++) {
-					if (V.slaves[j].genes === "XY") {
-						if (areSisters(V.slaves[i], V.slaves[j]) === 1 || areSisters(V.slaves[i], V.slaves[j] === 2)) {
-							V.children.push(V.slaves[j]);
-						}
-					}
-				}
+		if (aunts.length > 0) {
+			r += `${He} `;
+			if (aunts.length > 2) {
+				r += `has <span class="lightgreen">many aunts, ${aunts.reduce(function(res, ch, i, arr) {
+					return (res.slaveName || res) + (i === arr.length - 1 ? ` and ` : `, `) + ch.slaveName;
+				})}</span> `;
+			} else if (aunts.length === 2) {
+				r += `has <span class="lightgreen">two aunts, ${aunts[0].slaveName}, and ${aunts[1].slaveName}.</span> `;
+			} else {
+				r += `has <span class="lightgreen">an aunt, ${aunts[0].slaveName}.</span> `;
 			}
 		}
 
-		if (V.children.length > 0) {
+		if (uncles.length > 0) {
 			r += `${He} `;
-			if (V.children.length > 2) {
-				r += `has <span class="lightgreen">many uncles, `;
-				for (j = 0; j < V.children.length; j++) {
-					if (j < V.children.length - 1) {
-						r += `${V.children[j].slaveName}, `;
-					} else {
-						r += `and ${V.children[j].slaveName}.</span> `;
-					}
-				}
-			} else if (V.children.length === 2) {
-				r += `has <span class="lightgreen">two uncles, ${V.children[0].slaveName}, and ${V.children[1].slaveName}.</span> `;
+			if (uncles.length > 2) {
+				r += `has <span class="lightgreen">many uncles, ${uncles.reduce(function(res, ch, i, arr) {
+					return (res.slaveName || res) + (i === arr.length - 1 ? ` and ` : `, `) + ch.slaveName;
+				})}</span> `;
+			} else if (uncles.length === 2) {
+				r += `has <span class="lightgreen">two uncles, ${uncles[0].slaveName}, and ${uncles[1].slaveName}.</span> `;
 			} else {
-				r += `has <span class="lightgreen">an uncle, ${V.children[0].slaveName}.</span> `;
+				r += `has <span class="lightgreen">an uncle, ${uncles[0].slaveName}.</span> `;
 			}
 		}
-		V.children = [];
 
-		// nieces
-		for (let i = 0; i < V.slaves.length; i++) {
-			if (areSisters(V.slaves[i], child) === 1 || areSisters(V.slaves[i], child) === 2) {
-				for (let j = 0; j < V.slaves.length; j++) {
-					if (V.slaves[i].ID !== V.slaves[j].ID && V.slaves[j].genes === "XX") {
-						if (V.slaves[i].ID === V.slaves[j].mother || V.slaves[i].ID === V.slaves[j].father) {
-							V.children.push(V.slaves[j]);
-						}
-					}
-				}
-			}
-		}
+		// nieces and nephews
+		let nieces = $slaves.filter((s) => { return (isAunt(s, $activeSlave) && (s.genes === "XX")); });
+		let nephews = $slaves.filter((s) => { return (isAunt(s, $activeSlave) && (s.genes === "XY")); });
 
-		if (V.children.length > 0) {
+		if (nieces.length > 0) {
 			r += `${He} `;
-			if (V.children.length > 2) {
-				r += `has <span class="lightgreen">many nieces, `;
-				for (j = 0; j < V.children.length; j++) {
-					if (j < V.children.length - 1) {
-						r += `${V.children[j].slaveName}, `;
-					} else {
-						r += `and ${V.children[j].slaveName}.</span> `;
-					}
-				}
-			} else if (V.children.length === 2) {
-				r += `has <span class="lightgreen">two nieces, ${V.children[0].slaveName}, and ${V.children[1].slaveName}.</span> `;
+			if (nieces.length > 2) {
+				r += `has <span class="lightgreen">many nieces, ${nieces.reduce(function(res, ch, i, arr) {
+					return (res.slaveName || res) + (i === arr.length - 1 ? ` and ` : `, `) + ch.slaveName;
+				})}</span> `;
+			} else if (nieces.length === 2) {
+				r += `has <span class="lightgreen">two nieces, ${nieces[0].slaveName}, and ${nieces[1].slaveName}.</span> `;
 			} else {
-				r += `has <span class="lightgreen">a niece, ${V.children[0].slaveName}.</span> `;
+				r += `has <span class="lightgreen">a niece, ${nieces[0].slaveName}.</span> `;
 			}
 		}
-		V.children = [];
 
-		// nephews
-		for (let i = 0; i < V.slaves.length; i++) {
-			if (areSisters(V.slaves[i], child) === 1 || areSisters(V.slaves[i], child) === 2) {
-				for (let j = 0; j < V.slaves.length; j++) {
-					if (V.slaves[i].ID !== V.slaves[j].ID && V.slaves[j].genes === "XY") {
-						if (V.slaves[i].ID === V.slaves[j].mother || V.slaves[i].ID === V.slaves[j].father) {
-							V.children.push(V.slaves[j]);
-						}
-					}
-				}
-			}
-		}
-
-		if (V.children.length > 0) {
+		if (nephews.length > 0) {
 			r += `${He} `;
-			if (V.children.length > 2) {
-				r += `has <span class="lightgreen">many nephews, `;
-				for (j = 0; j < V.children.length; j++) {
-					if (j < V.children.length - 1) {
-						r += `${V.children[j].slaveName}, `;
-					} else {
-						r += `and ${V.children[j].slaveName}.</span> `;
-					}
-				}
-			} else if (V.children.length === 2) {
-				r += `has <span class="lightgreen">two nephews, ${V.children[0].slaveName}, and ${V.children[1].slaveName}.</span> `;
+			if (nephews.length > 2) {
+				r += `has <span class="lightgreen">many nephews, ${nephews.reduce(function(res, ch, i, arr) {
+					return (res.slaveName || res) + (i === arr.length - 1 ? ` and ` : `, `) + ch.slaveName;
+				})}</span> `;
+			} else if (nephews.length === 2) {
+				r += `has <span class="lightgreen">two nephews, ${nephews[0].slaveName}, and ${nephews[1].slaveName}.</span> `;
 			} else {
-				r += `has <span class="lightgreen">a nephew, ${V.children[0].slaveName}.</span> `;
+				r += `has <span class="lightgreen">a nephew, ${nephews[0].slaveName}.</span> `;
 			}
 		}
-		V.children = [];
 
 		let
 			twins = [],
@@ -8094,22 +8041,22 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					r += `larger than a dick can grow naturally, `;
 					break;
 				case 6:
-					r += `${showDickCMs ? `${His} enormous${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has an enormous${V.seeCircumcision ? `, uncut,` : `, circumcised,`} penis`}, a rival to the world's largest natural dicks, `;
+					r += `${showDickCMs ? `${His} enormous${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has an enormous${V.seeCircumcision ? `, uncut,` : `, circumcised,`} penis`}, a rival to the world's largest natural dicks, `;
 					break;
 				case 5:
-					r += `${showDickCMs ? `${His} huge${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis ${canAchieveErection(child) ? `is more than${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a huge${V.seeCircumcision ? `, uncut,` : `, circumcised,`} penis`}, large enough to be sexually inconvenient, `;
+					r += `${showDickCMs ? `${His} huge${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis ${canAchieveErection(child) ? `is more than${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a huge${V.seeCircumcision ? `, uncut,` : `, circumcised,`} penis`}, large enough to be sexually inconvenient, `;
 					break;
 				case 4:
-					r += `${showDickCMs ? `${His} large${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a large${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis`}, big enough to be a source of pride on a male, `;
+					r += `${showDickCMs ? `${His} large${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a large${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis`}, big enough to be a source of pride on a male, `;
 					break;
 				case 3:
-					r += `${showDickCMs ? `${His} average-sized${V.seeCircumcision ? `, uncut` : ` circumcised`},  peni ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`}s erect` : `${He} has an average-sized${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis`}, `;
+					r += `${showDickCMs ? `${His} average-sized${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`}s erect` : `${He} has an average-sized${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis`}, `;
 					break;
 				case 2:
-					r += `${showDickCMs ? `${His} small${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a small${V.seeCircumcision ? `, uncut` : ` circumcised`},  penis`}, little enough to be a source of embarrassment on a male, `;
+					r += `${showDickCMs ? `${His} small${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis ${canAchieveErection(child) ? `is around${dickToEitherUnit(child.dick)} long when` : `would be around${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has a small${V.seeCircumcision ? `, uncut` : ` circumcised`}, penis`}, little enough to be a source of embarrassment on a male, `;
 					break;
 				case 1:
-					r += `${showDickCMs ? `${His}${V.seeCircumcision ? `, uncut` : ` circumcised`}  micropenis ${canAchieveErection(child) ? `is less than${dickToEitherUnit(child.dick)} long when` : `would be less than${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has ${V.seeCircumcision ? `an uncut` : `a circumcised`} micropenis`}, `;
+					r += `${showDickCMs ? `${His}${V.seeCircumcision ? `, uncut` : ` circumcised`} micropenis ${canAchieveErection(child) ? `is less than${dickToEitherUnit(child.dick)} long when` : `would be less than${dickToEitherUnit(child.dick)} long if it could become`} erect` : `${He} has ${V.seeCircumcision ? `an uncut` : `a circumcised`} micropenis`}, `;
 					break;
 				default:
 					if (V.showDickCMs) {
@@ -8810,7 +8757,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 			}
 
 			if (child.aphrodisiacs > 0 || child.inflationType === "aphrodisiac") {
-				r += `The aphrodisiacs have ${him} so horny that there's a  ${child.prostate > 1 ? `constant flow of precum leaking from` : `little precum beading at`} the hole. `;
+				r += `The aphrodisiacs have ${him} so horny that there's a ${child.prostate > 1 ? `constant flow of precum leaking from` : `little precum beading at`} the hole. `;
 			} else if (child.energy > 95) {
 				r += `As a nympho, ${he}'s almost always got a ${child.prostate > 1 ? `constant flow of precum leaking from` : `little precum forming at`} the hole. `;
 			} else if (child.fetishKnown) {
@@ -12700,7 +12647,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 						if (child.dick !== 0 && child.hormoneBalance >= 100 && isAmputee(child)) {
 							r += `The aphrodisiacs combined with the hormones that keep ${him} flaccid have ${him} sexually frustrated; ${he}'s ${(child.fetish === "buttslut" || child.sexualFlaw !== "hates anal") && child.counter.anal > 9 ? ` unconsciously humping ${his} ass against whatever's next to ${him} for anal stimulation and` : ``} humping ${his} dick against whatever ${he} can manage to mount without limbs. ${child.inflationType === "aphrodisiac" ? `${His} efforts force ${his} distended middle to jiggle around, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. ` : ``}`;
 						} else if (child.dick !== 0 && child.balls > 0 && child.ballType === "sterile" && isAmputee(child)) {
-							r += `The aphrodisiacs combined with the chemical castration that keeps ${him} flaccid have ${him} sexually frustrated; ${he}'s ${(child.fetish === "buttslut" || child.sexualFlaw !== "hates anal") && child.counter.anal > 9 ? ` unconsciously humping ${his} ass against whatever's next to ${him} for anal stimulation and` : ``}  humping ${his} dick against whatever ${he} can manage to mount without limbs. ${child.inflationType === "aphrodisiac" ? `${His} efforts force ${his} distended middle to jiggle around, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. ` : ``}`;
+							r += `The aphrodisiacs combined with the chemical castration that keeps ${him} flaccid have ${him} sexually frustrated; ${he}'s ${(child.fetish === "buttslut" || child.sexualFlaw !== "hates anal") && child.counter.anal > 9 ? ` unconsciously humping ${his} ass against whatever's next to ${him} for anal stimulation and` : ``} humping ${his} dick against whatever ${he} can manage to mount without limbs. ${child.inflationType === "aphrodisiac" ? `${His} efforts force ${his} distended middle to jiggle around, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. ` : ``}`;
 						} else if (child.dick !== 0 && !child.balls && isAmputee(child)) {
 							r += `The aphrodisiacs combined with the lack of balls that keeps ${him} flaccid have ${him} sexually frustrated; ${he}'s ${(child.fetish === "buttslut" || child.sexualFlaw !== "hates anal") && child.counter.anal > 9 ? ` unconsciously humping ${his} ass against whatever's next to ${him} for anal stimulation and` : ``} humping ${his} dick against whatever ${he} can manage to mount without limbs. ${child.inflationType === "aphrodisiac" ? `${His} efforts force ${his} distended middle to jiggle around, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. ` : ``}`;
 						} else if (child.dick !== 0 && child.hormoneBalance >= 100) {
@@ -16535,7 +16482,7 @@ App.Facilities.Nursery.InfantState = class InfantState {
 		this.pubicHColor = "brown";
 		/** armpit hair style */
 		this.underArmHColor = "brown";
-		/**  eyebrowHColor*/
+		/** eyebrowHColor*/
 		this.eyebrowHColor = "brown";
 		/** skin color */
 		this.skin = "light";
@@ -16752,8 +16699,6 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		 * TODO:
 		*/
 		this.assignment = "rest";
-		/** Shows assignment in descriptions */
-		this.assignmentVisible = 1;
 		/** How far along slave is with being trained (skills, flaws, quirks)
 		 * TODO:
 		*/
@@ -16936,7 +16881,7 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		this.pubicHColor = "brown";
 		/** Armpit hair style */
 		this.underArmHColor = "brown";
-		/**  eyebrowHColor*/
+		/** eyebrowHColor*/
 		this.eyebrowHColor = "brown";
 		/** Child's original skin color. */
 		this.origSkin = "light";
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index 25c49c1bb56bf1cee04cad37b6db6387cb386a48..7b06d4880fd57a1f168bef2ffe6ae9ccad0dcac5 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -201,7 +201,7 @@ App.Entity.Facilities.Penthouse = class extends App.Entity.Facilities.Facility {
 	 * @returns {boolean}
 	 */
 	isHosted(slave) {
-		return slave.assignmentVisible === 1;
+		return assignmentVisible(slave);
 	}
 
 	/**
@@ -209,7 +209,7 @@ App.Entity.Facilities.Penthouse = class extends App.Entity.Facilities.Facility {
 	 * @returns {App.Entity.SlaveState[]}
 	 */
 	employees() {
-		return State.variables.slaves.filter( s => s.assignmentVisible === 1);
+		return State.variables.slaves.filter( s => assignmentVisible(s));
 	}
 
 	/**
@@ -218,7 +218,7 @@ App.Entity.Facilities.Penthouse = class extends App.Entity.Facilities.Facility {
 	 */
 	employeesIndices() {
 		return State.variables.slaves.reduce(
-			(acc, cur, idx) => { if (cur.assignmentVisible === 1) { acc.push(idx); } return acc; }, []);
+			(acc, cur, idx) => { if (assignmentVisible(cur)) { acc.push(idx); } return acc; }, []);
 	}
 
 	_createJob() {
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index d991fda6a561df736d180c7e75006c1ea412d097..4185ebc7d89f184eabe7635975df5701fd18af90 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2562,7 +2562,7 @@ LORE: INTERVIEWS
 	<br>''Wahn'' wrote numerous generic recruitment events.
 	<br>''PregModder'' has modded extensively, including descriptive embellishments for pregnant slaves, various asset descriptions, Master Suite reporting, the Wardrobe, a pack of facility leader interactions, options for Personal Assistant appearances, birthing scenes, fake pregnancy accessories, many other preg mechanics, blind content, expanded chubby belly descriptions, several new surgeries, neon and metallic makeup, better descriptive support for different refreshments, work on choosesOwnJob, many bugfixes, an expansion to the hostage corruption event chain, slave specific player titles, gagging and several basic gags, extended family mode, oversized sex toys, buttplug attachment system, and other, likely forgotten, things. (And that's just the vanilla added stuff!)
 	<br>''Lolimodder'' your loli expertise will be missed.
-	<br>''pregmodfan'' for tremendous amounts of work with compilers, decompilers, etc. Single-handedly kicked this mod into its new git home. Contributed lots of bugfixes as well as fixed the RA considerably. Revamped pregnancy tracking as well then further expanded it. Also for ppmod, ramod, implmod, cfpmod and psmod (preg speed).
+	<br>''pregmodfan'' for tremendous amounts of work with compilers, decompilers, etc. Single-handedly kicked this mod into its new git home. Contributed lots of bugfixes as well as fixed the RA considerably. Revamped pregnancy tracking as well then further expanded it — and then expanding it more with superfetation. Also for ppmod, ramod, implmod, cfpmod and psmod (preg speed).
 	<br>''FCGudder'' for advanced economy reports, image improvements, cleaning and fixing extended-extended family mode, extending building widgets, anaphrodisiacs, name cleaning, height overhauling, proper slave summary caching, new shelter slaves, some crazy ass shit with vector art, fixing seDeath, coding jQuery in ui support and likely one to two of these other anon credits.
 	<br>''family mod anon'' for extending extended family mode.
 	<br>''anon'' for lolimod content, new slave careers, new pubestyles, and general improvements.
@@ -2605,7 +2605,7 @@ LORE: INTERVIEWS
 	<br>''hexall90'' for height growth drugs, incubator organ farm support and detailing, the dispensary cleanup, the joint Eugenics bad end rework with ''SFanon (blank)'', the Hippolyta Academy, and the Security Expansion Mod.
 	<br>''sensei'' for coding in support for commas and an excellent family tree rework.
 	<br>''laziestman'' for sexy spats.
-	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''.
+	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''. Cleanup up the sidebar. Now for maintaining and expanding secEx.
 	<br>''anon'' for extending FCGudder's economy reports to the other facilities.
 	<br>''MilkAnon'' for his contributions to FCTV and the FC world in general.
 	<br>''valen102938'' for dealing with vector art, both creating new art and utilizing unused art.
@@ -2616,7 +2616,7 @@ LORE: INTERVIEWS
 	<br>''anon'' for master slaving's multi slave training.
 	<br>''Faraen'' for a full vector art variant.
 	<br>''anon'' for more hair vectors for the external art.
-	<br>''Vas'' for massive JS work and completely redoing the RA.
+	<br>''Vas'' for massive JS work and completely redoing the RA. Set up the 'make' compiler. Gave nulls some nicknames.
 	<br>''deepmurk'' for a massive expansion in conjunction with Nox to the original embedded vector art. Also more hairs, clothes, shoes, clothes, descriptions and clothes. Overhauled skin colors too.
 	<br>''Channel8'' for FCTV content (and likely giving the spellCheck an aneurysm).
 	<br>''Channel13'' for FCTV content.
@@ -2629,11 +2629,18 @@ LORE: INTERVIEWS
 	<br>''DCoded'' for creating the favicon and adding animals to the Pit, as well as nursery and bestiality content, scenes, facilities and fixes. Also added a pussy licking scene and created and fixed a number of bugs.
 	<br>''HiveBro'' for giving hyperpregnant slaves some serious loving.
 	<br>''Quin2k'' for overwriting save function and expired tweak via Vrelnir & co.
-	<br>''ezsh'' for bugfixing and creating a tool to build twineJS for me. Has contributed massive revisions to the game's structure.
-	<br>''Sonofrevvan'' for fDance and fBeg.
-	<br>''skriv'' for fixes and endless code cleaning.
-	<br>''Arkerthan'' for various additions including merging cybermod and vanilla prosthetics.
+	<br>''ezsh'' for bugfixing and creating a tool to build twineJS and twineCSS for me. Set up a revised SC update process as well. Has contributed massive revisions to the game's structure. Keeps the RA in line.
 	<br>''Sonofrevvan'' for making slaves beg and dance.
+	<br>''skriv'' for fixes and endless code cleaning.
+	<br>''Arkerthan'' for various additions including merging cybermod and vanilla prosthetics. JS sanity check. Limbs and reworked amputation. Eye rework work.
+	<br>''MouseOfLight'' for overhauling the corporation. V proxy, nuff said. Added better safeguards to the RA.
+	<br>''svornost'': A great asset. Various fixes and tools, including FCHost. Gave players the ability to find that one slave they are looking for. The 'Scope' macro.
+	<br>''Trashman1138'' for various tweaks and fixes.
+	<br>''maxd569'' for adding .mp4 and .webm support to custom images.
+	<br>''Anu'' for various fixes.
+	<br>''Cayleth'' for various fixes and support.
+	<br>''Jones'' for major overhauling of the economy/population systems.
+	<br>''PandemoniumPenguin'' for giving players a choice in FS names.
 	<br>''git contributors lost to time'' for their submissions and work through pregmod's git.
 	<br>''Bane70'' optimized huge swaths of code with notable professionalism.
 	<br>''Circle Tritagonist'' provided several new collars and outfits.
@@ -2652,8 +2659,8 @@ LORE: INTERVIEWS
 	<br>''freecitiesbandit'' wrote a number of recruitment, future society, mercenary and random events, provided tailed buttplugs, new eyes and tattoos, and contributed the code for the mercenary raiders policy.
 	<br>''DrNoOne'' wrote the bulk slave purchase and persistent summary code.
 	<br>''Mauve'' provided vector art for chastity belts and limp dicks.
-	<br>''Klorpa'' for dozens of new nationalities and boundless new names and nicknames. Also monokinis, middle eastern clothing, overalls and aprons. Also the hearing overhaul. Has declared war on bad spelling, grammar and formatting.
-	<br>''lowercasedonkey'' for various additions, not limited to the budget overhaul. Set up all the tabs too.
+	<br>''Klorpa'' for dozens of new nationalities and boundless new names and nicknames. Also monokinis, middle eastern clothing, overalls and aprons. Also the hearing, taste, and smell overhauls. Added basic support for waterpsorts. Has declared war on bad spelling, grammar and formatting. Added eyebrows too. Dug up ancient abandoned vanilla vignettes and implemented them. Toiled in the depths to extend limb support.
+	<br>''lowercasedonkey'' for various additions, not limited to the budget overhauls. Set up all the tabs too. Gave events dynamic vector art. Hammered the scarring and branding systems into place. Been a real boon writing events and other things as well. Used ezsh's facility framework to enhance slave summaries.
 	<br>''amomynous0'' for bug reports and testing in addition to SFmod unit descriptions.
 	<br>''wepsrd'' for QOL (hormonal balance cheat and lactation adaptation to new menu) fixes.
 
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
index 269a6c106604d81e519f9a3aedfeb5fdac7922e2..cb02e8e193a2078669c3b8f70cb1467f3e354b6b 100644
--- a/src/gui/css/mainStyleSheet.css
+++ b/src/gui/css/mainStyleSheet.css
@@ -284,11 +284,19 @@ white-space: normal;
 	color: #68D;
 	margin-right: 1em;
 }
+.rajs-listitem.selected {
+	color: gray;
+	text-decoration: none;
+}
 .rajs-listitem:last-of-type { margin-right: 0; }
 .rajs-listitem:hover {
 	cursor: pointer;
 	text-decoration: underline;
 }
+.rajs-listitem.selected:hover {
+	cursor: default;
+	text-decoration: none;
+}
 .rajs-list strong:first-of-type, .rajs-list input {
 	margin-right: 2em;
 }
@@ -306,34 +314,34 @@ white-space: normal;
 }
 
 h1, h2, h3 {
-    margin-bottom: 0;
-    margin-top: 0.25em;
+	margin-bottom: 0;
+	margin-top: 0.25em;
 }
 .founding {
-    font-size: 0.8em;
-    margin-top: -0.8em;
-    margin-left: 0.5em;
-    font-style: italic;
+	font-size: 0.8em;
+	margin-top: -0.8em;
+	margin-left: 0.5em;
+	font-style: italic;
 }
 table.corporate {
-    border: 3px darkgreen double;
-    border-collapse: collapse;
-    min-width: 33%;
+	border: 3px darkgreen double;
+	border-collapse: collapse;
+	min-width: 33%;
 }
 table.corporate tbody tr:nth-child(even) {
-    background-color: rgb(0, 30, 0);
+	background-color: rgb(0, 30, 0);
 }
 table.corporate tbody tr:nth-child(odd) {
-    background-color: rgb(15, 40, 15);
+	background-color: rgb(15, 40, 15);
 }
 table.corporate td {
-    vertical-align: top;
+	vertical-align: top;
 }
 .note {
-    font-size: 0.75em;
-    font-style: italic;
+	font-size: 0.75em;
+	font-style: italic;
 }
 .majorText {
-    margin-top: 0.5em;
-    margin-bottom: 1.5em;
+	margin-top: 0.5em;
+	margin-bottom: 1.5em;
 }
diff --git a/src/gui/mainMenu/AlphaDisclaimer.tw b/src/gui/mainMenu/AlphaDisclaimer.tw
index 59d65b44464bf73fc34aa3579e371ca343c3ef03..755263505a451062790a4dfd285510a5a4df6436 100644
--- a/src/gui/mainMenu/AlphaDisclaimer.tw
+++ b/src/gui/mainMenu/AlphaDisclaimer.tw
@@ -1,19 +1,17 @@
 :: Alpha disclaimer
 
-//version $ver mod version $pmodVer build $releaseID commit 1f8996d09//
+//version: $ver, mod version: $pmodVer, build: $releaseID//
 @@.green;//Mod: expanded age ranges and other tweaks 2016-08-30//@@ @@.darkred;+SV@@
 @@.green;//Mod: extra preg content and other crap//@@
 
-''This is an alpha.'' That means the game is missing content, is full of bugs, is imbalanced, and is generally in an incomplete state. The game will keep a start of turn autosave. If you encounter a bug, we strongly recommend you reload your start of turn autosave immediately. Please submit your feedback and bug reports at https://gitgud.io/pregmodfan/fc-pregmod/issues/. Consider attaching a save file and screenshot of the problem. This Pregmod is a modification of the original <i>Free Cities</i> created by FCdev, which can be seen at https://freecitiesblog.blogspot.com/.
+@@.yellow;This is a text-based game that includes descriptions of sexual activity, graphic violence, drug use, and other subjects not suitable for persons under the age of 18. This is a work of fiction; any resemblance to actual persons, places, or events is unintended.@@
+
+''This is an alpha.'' That means the game is missing content, is full of bugs, is imbalanced, and is generally in an incomplete state. The game will keep a start of turn autosave. If you encounter a bug, we strongly recommend you reload your start of turn autosave immediately. Please submit your feedback and bug reports at https://gitgud.io/pregmodfan/fc-pregmod/issues/. Consider attaching a save file and screenshot of the problem. Pregmod is a modification of the original <i>Free Cities</i> created by FCdev, which can be seen at https://freecitiesblog.blogspot.com/.
 
 An in-game encyclopedia is available from the sidebar, with answers to most basic gameplay questions.
 
 __Important note for new players, and a reminder for FC veterans:__ when the player is offered a set of choices, the ''Continue'' button at the top of the left sidebar will almost always remain available. Using this to decline all the options presented is //not cheating.// If it's available, it's supposed to be available. It represents the player character politely bowing out of the situation.
 
-If you enjoy FC and feel like using your real-life ¤ to express gratitude, you can do so at https://www.patreon.com/freecitiesdev?ty=h. It's a tip jar, not support for more content. I'm doing this for fun; let's keep it that way.
-
 ''Saves from versions prior to 0.6 are not compatible.''
 
-@@.yellow;This is a text-based game that includes descriptions of sexual activity, graphic violence, drug use, and other subjects not suitable for persons under the age of 18. This is a work of fiction; any resemblance to actual persons, places, or events is unintended.@@
-
-[[I am 18 or more years of age, I understand, and I wish to continue|Economy Intro]]
+[[I am 18 or more years of age, I understand, and I wish to continue|Economy Intro]]
\ No newline at end of file
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index dd729bd8ab4313a0b4a310bf0197f18099c1ae03..fc2c5944818499eb74180c964ac56aca6982cd17 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -31,7 +31,6 @@ You should have received a copy of the GNU General Public License along with thi
 		<<if $slaves[_i].assignment == "be imported">>
 			<<set $slaves[_i].ID += _NGPOffset>>
 			<<set $slaves[_i].assignment = "rest">>
-			<<set $slaves[_i].assignmentVisible = 1>>
 			<<set $slaves[_i].weekAcquired = 0>>
 			<<set $slaves[_i].newGamePlus = 1>>
 			<<PMODinit $slaves[_i]>>
@@ -266,6 +265,7 @@ You should have received a copy of the GNU General Public License along with thi
 	<<set $showImplantEffects = 1>>
 	<<set $showClothing = 1>>
 	<<set $showWardrobe = 1>>
+	<<set $showMainClothing = 1>>
 	<<set $showAgeDetail = 1>>
 	<<set $showBoobCCs = 1>>
 	<<set $showHeightCMs = 1>>
@@ -1492,7 +1492,6 @@ You should have received a copy of the GNU General Public License along with thi
 
 /* Security Expansion */
 <<set $wasToggledBefore = 0>>
-<<set $PC.majorInjury = 0>>
 /* moved first build to post toggle */
 <<set $secExpEnabled = $secExpEnabled || 0>>
 
diff --git a/src/interaction/main/toychest.js b/src/interaction/main/toychest.js
index a38fde936e4709897a89eaecccb6543d9d2cdb5e..b739399f525b4307a1c87e00c2898581dc598bfe 100644
--- a/src/interaction/main/toychest.js
+++ b/src/interaction/main/toychest.js
@@ -12,7 +12,7 @@ App.Interact.ToyChest = function(slave) {
 	if (slave.fuckdoll) {
 		r += `is waiting for use nearby. `;
 	} else if (slave.fetish === "mindbroken") {
-		if (canSmell(slave) && slave.career === "a breeding bull" && isPlayerFertile(V.PC) && canPenetrate(slave)) {
+		if (canSmell(slave) && slave.career === "a breeding bull" && isFertile(V.PC) && V.PC.preg === 0 && canPenetrate(slave)) {
 			r += `is rock hard and sniffing the air. `;
 		} else {
 			r += `is waiting dumbly nearby. `;
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index cd5fd6efe7a120ac3f2aa55da62c1579d685e8b8..8443fa745d2952ee15f40a1d3013b6100c68c809 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -16,9 +16,10 @@ window.DefaultRules = (function() {
 		if (slave.useRulesAssistant === 0) { return r; } // exempted
 		r = "";
 		({he, him, his} = getPronouns(slave));
-		let slaveReadOnly = createReadonlyProxy(slave);
-		let rule = runWithReadonlyProxy(()=>MergeRules(slaveReadOnly));
-		if (Object.keys(rule).length === 0) { return r; } // no rules apply
+		const slaveReadOnly = createReadonlyProxy(slave);
+		const {rule, ruleIds} = runWithReadonlyProxy(()=>ProcessSlaveRules(slaveReadOnly));
+		slave.currentRules = ruleIds;
+		if (ruleIds.length === 0) { return r; } // no rules apply
 
 		AssignJobToSlave(slave, rule);
 		if (slave.fuckdoll === 0) {
@@ -80,12 +81,16 @@ window.DefaultRules = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 * @returns {map}
 	 */
-	function MergeRules(slave) {
+	function ProcessSlaveRules(slave) {
 		// merge all rules applying on a slave into one big rule
 		/** @type {App.RA.Rule[]} */
 		const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave));
-		slave.currentRules = rules.map((x) => x.ID);
-		return mergeRules(rules.map((x) => ProcessAssignments(slave, Object.assign({}, x.set))));
+		const ruleIds = [], assignments = [];
+		for(const rule of rules) {
+			ruleIds.push(rule.ID);
+			assignments.push(ProcessAssignments(slave, Object.assign({}, rule.set)));
+		}
+		return {ruleIds, rule: mergeRules(assignments)};
 	}
 
 	/**
@@ -1328,12 +1333,12 @@ window.DefaultRules = (function() {
 					}
 					break;
 
-				case "psychostimulants":
+				case "psychostimulants": {
 					let origIntel = V.genePool.find(s => s.ID === slave.ID).intelligence;
 					if (!((slave.intelligence < 100) && (slave.intelligence < origIntel + 15))) {
 						flag = false;
 					}
-					break;
+				}	break;
 
 				case "breast injections":
 					if (slave.boobs >= 48000) {
@@ -2898,19 +2903,19 @@ window.DefaultRules = (function() {
 	 * @param {App.RA.RuleSetters} rule
 	 */
 	function ProcessLabel(slave, rule) {
-		//mass removal of old tags, variant from '*' mask.
+		// mass removal of old tags, variant from '*' mask.
 		if (rule.removeLabel !== null && rule.removeLabel !== '' && rule.removeLabel === '*') {
 			slave.custom.label = slave.custom.label.replace(/(?:\[.+\])+/, "");
 			r += `<br>All ${slave.slaveName}'s tags is removed.`;
 		}
 
-		//mass removal of old tags, variant from GUI swith.
+		// mass removal of old tags, variant from GUI swith.
 		if (rule.labelTagsClear === true) {
 			slave.custom.label = slave.custom.label.replace(/(?:\[.+\])+/, "");
 			r += `<br>All ${slave.slaveName}'s tags is removed.`;
 		}
 
-		//removing tags selected for removal.
+		// removing tags selected for removal.
 		let tags = [], i;
 		if (rule.removeLabel != null && rule.removeLabel !== '') {
 			tags = rule.removeLabel.split("|");
@@ -2923,7 +2928,7 @@ window.DefaultRules = (function() {
 			}
 		}
 
-		//finally adding new tags.
+		// finally adding new tags.
 		tags = [];
 		if (rule.label != null && rule.label !== '') {
 			tags = rule.label.split("|");
@@ -2940,17 +2945,16 @@ window.DefaultRules = (function() {
 	const rxCheckEqual = /[^!=<>]=[^=<>]/gi;
 	const compileCheck = function(code) {
 		try {
-			//TODO: This should use a cached Function, which should be the same as below.
+			// TODO: This should use a cached Function, which should be the same as below.
 			new Function(`return ${code}`);
-		}
-		catch(e) {
+		} catch(e) {
 			return false;
 		}
 		return true;
-	}
+	};
 	window.RuleHasError = (rule) => rule.condition.function === "custom"
-	                             &&(rule.condition.data.match(rxCheckEqual)
-	                             || !compileCheck(rule.condition.data));
+								 &&(rule.condition.data.match(rxCheckEqual)
+								 || !compileCheck(rule.condition.data));
 	window.DefaultRulesError = () => V.defaultRules.some(r => RuleHasError(r));
 	return DefaultRules;
 })();
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index cbd187932c6070f00886683dd02968f689159224..5fa48a24a0374198dfbf45af261f05992d3ade1f 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -559,8 +559,6 @@ App.Entity.SlaveState = class SlaveState {
 		this.choosesOwnAssignment = 0;
 		/** slave's assignment */
 		this.assignment = "rest";
-		/** shows assignment in descriptions */
-		this.assignmentVisible = 1;
 		/** how many weeks a slave is sentenced to work a job */
 		this.sentence = 0;
 		/** how far along slave is with being trained (skills, flaws, quirks) */
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 50a984d67850267cf4869cdb037a9a93210e7e81..de981d76cdbeb19c028af6533740ae40178f3f27 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -439,8 +439,14 @@ window.Enunciate = function Enunciate(slave) {
 				}
 			}
 		}
-		if (slave.custom.titleLisp && slave.custom.titleLisp !== "") {
-			V.titleEnunciate = slave.custom.titleLisp;
+		if (slave.custom.titleLisp !== undefined && slave.custom.titleLisp !== "") {
+			if (slave.rudeTitle === 1) {
+				if (slave.trust > 20) {
+					V.titleEnunciate = slave.custom.titleLisp;
+				}
+			} else {
+				V.titleEnunciate = slave.custom.titleLisp;
+			}
 		}
 		V.sayEnunciate = "lisp";
 		V.sEnunciate = "th";
@@ -512,7 +518,13 @@ window.Enunciate = function Enunciate(slave) {
 			}
 		}
 		if (slave.custom.title !== undefined && slave.custom.title !== "") {
-			V.titleEnunciate = slave.custom.title;
+			if (slave.rudeTitle === 1) {
+				if (slave.trust > 20) {
+					V.titleEnunciate = slave.custom.title;
+				}
+			} else {
+				V.titleEnunciate = slave.custom.title;
+			}
 		}
 		V.sayEnunciate = "say";
 		V.sEnunciate = "s";
@@ -628,9 +640,9 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) {
 		} else if (slave.intelligence + slave.intelligenceImplant > 50) {
 			r += (PC.title > 0 ? `Ma${s}ter` : `Mi${s}tre${ss}`);
 		} else if (slave.trust > 0) {
-			r += PC.name;
+			r += PC.slaveName;
 		} else {
-			r += (PC.slaveName ? PC.slaveName : PC.slaveName);
+			r += (PC.slaveSurname ? PC.slaveSurname : PC.slaveName);
 		}
 	}
 	return r;
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index c58a4b82045b4947672f99112e7d766ef8367736..6a7cfa5bf44b804a23fe6250efe447b50411357c 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -13,7 +13,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "be confined in the arcade":
 		case "arcade":
 			slave.assignment = "be confined in the arcade";
-			slave.assignmentVisible = 0;
 			V.ArcadeiIDs.push(slave.ID);
 			slave.clothes = "no clothing";
 			slave.shoes = "none";
@@ -24,7 +23,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "work in the brothel":
 		case "brothel":
 			slave.assignment = "work in the brothel";
-			slave.assignmentVisible = 0;
 			V.BrothiIDs.push(slave.ID);
 			switch (V.brothelDecoration) {
 				case "Degradationist":
@@ -40,7 +38,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "be confined in the cellblock":
 		case "cellblock":
 			slave.assignment = "be confined in the cellblock";
-			slave.assignmentVisible = 0;
 			V.CellBiIDs.push(slave.ID);
 			switch (V.cellblockDecoration) {
 				case "Paternalist":
@@ -55,7 +52,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "get treatment in the clinic":
 		case "clinic":
 			slave.assignment = "get treatment in the clinic";
-			slave.assignmentVisible = 0;
 			V.CliniciIDs.push(slave.ID);
 			switch (V.clinicDecoration) {
 				case "Repopulation Focus":
@@ -92,7 +88,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "serve in the club":
 		case "club":
 			slave.assignment = "serve in the club";
-			slave.assignmentVisible = 0;
 			V.ClubiIDs.push(slave.ID);
 			slave.rules.living = "normal";
 			break;
@@ -100,7 +95,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "work in the dairy":
 		case "dairy":
 			slave.assignment = "work in the dairy";
-			slave.assignmentVisible = 0;
 			V.DairyiIDs.push(slave.ID);
 			switch (V.dairyDecoration) {
 				case "Roman Revivalist":
@@ -124,7 +118,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "work as a farmhand":
 		case "farmyard":
 			slave.assignment = "work as a farmhand";
-			slave.assignmentVisible = 0;
 			V.FarmyardiIDs.push(slave.ID);
 			switch (V.farmyardDecoration) {
 				case "Aztec Revivalist":
@@ -151,7 +144,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "head girl suite":
 		case "hgsuite":
 			slave.assignment = "live with your Head Girl";
-			slave.assignmentVisible = 0;
 			V.HGSuiteiIDs.push(slave.ID);
 			slave.rules.living = "luxurious";
 			break;
@@ -160,7 +152,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "master suite":
 		case "mastersuite":
 			slave.assignment = "serve in the master suite";
-			slave.assignmentVisible = 0;
 			V.MastSiIDs.push(slave.ID);
 			if (V.masterSuiteUpgradeLuxury > 0) {
 				slave.rules.living = "luxurious";
@@ -172,7 +163,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "learn in the schoolroom":
 		case "schoolroom":
 			slave.assignment = "learn in the schoolroom";
-			slave.assignmentVisible = 0;
 			V.SchlRiIDs.push(slave.ID);
 			slave.rules.living = "normal";
 			break;
@@ -181,7 +171,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "servants' quarters":
 		case "servantsquarters":
 			slave.assignment = "work as a servant";
-			slave.assignmentVisible = 0;
 			V.ServQiIDs.push(slave.ID);
 			switch (V.servantsQuartersDecoration) {
 				case "Roman Revivalist":
@@ -226,7 +215,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "rest in the spa":
 		case "spa":
 			slave.assignment = "rest in the spa";
-			slave.assignmentVisible = 0;
 			V.SpaiIDs.push(slave.ID);
 			switch (V.spaDecoration) {
 				case "Chattel Religionist":
@@ -245,7 +233,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "work as a nanny":
 		case "nursery":
 			slave.assignment = "work as a nanny";
-			slave.assignmentVisible = 0;
 			V.NurseryiIDs.push(slave.ID);
 			slave.rules.living = "normal";
 			break;
@@ -261,13 +248,11 @@ window.assignJob = function assignJob(slave, job) {
 		case "be the stewardess":
 		case "be the wardeness":
 			slave.assignment = job;
-			slave.assignmentVisible = 0; /* non-visible leadership roles */
 			slave.rules.living = "luxurious";
 			break;
 
 		case "be your concubine":
 			slave.assignment = job;
-			slave.assignmentVisible = 0; /* non-visible leadership roles */
 			if (V.masterSuiteUpgradeLuxury > 0) {
 				slave.rules.living = "luxurious";
 			} else {
@@ -293,7 +278,6 @@ window.assignJob = function assignJob(slave, job) {
 		case "be your agent":
 		case "live with your agent":
 			slave.assignment = job;
-			slave.assignmentVisible = 0;
 			slave.useRulesAssistant = 0; /* non-visible roles exempt from Rules Assistant */
 			WombCleanGenericReserve(slave, 'incubator', 9999);
 			WombCleanGenericReserve(slave, 'nursery', 9999);
@@ -306,15 +290,15 @@ window.assignJob = function assignJob(slave, job) {
 
 		case "choose her own job":
 			slave.assignment = job;
-			slave.choosesOwnAssignment = 1; /* removeJob already set assignmentVisible = 1 */
+			slave.choosesOwnAssignment = 1;
 			break;
 
 		default:
-			slave.assignment = job; /* removeJob already set assignmentVisible = 1 and choosesOwnAssignment = 0 */
+			slave.assignment = job; /* removeJob already set choosesOwnAssignment = 0 */
 			break;
 	}
 
-	if (slave.assignmentVisible === 0 && Array.isArray(V.personalAttention)) {
+	if (!assignmentVisible(slave) && Array.isArray(V.personalAttention)) {
 		if (V.personalAttention.deleteWith(s => s.ID === slave.ID).length > 0) {
 			if (V.personalAttention.length === 0) {
 				if (V.PC.career === "escort") {
@@ -513,7 +497,6 @@ window.removeJob = function removeJob(slave, assignment) {
 					const _lover = V.slaves.findIndex(s => haveRelationshipP(s, slave) && s.assignment === "live with your agent");
 					if (_lover !== -1) {
 						V.slaves[_lover].assignment = "rest";
-						V.slaves[_lover].assignmentVisible = 1;
 					}
 				}
 				break;
@@ -523,11 +506,10 @@ window.removeJob = function removeJob(slave, assignment) {
 				break;
 		}
 
-		if (slave.rules.living === "luxurious" && slave.assignmentVisible !== 1) {
+		if (slave.rules.living === "luxurious" && !assignmentVisible(slave)) {
 			slave.rules.living = "normal";
 		}
 
-		slave.assignmentVisible = 1;
 		slave.choosesOwnAssignment = 0;
 		slave.sentence = 0;
 	}
@@ -539,6 +521,58 @@ window.removeJob = function removeJob(slave, assignment) {
 	return r;
 };
 
+/**
+ * Indicate whether a slave's current assignment is shown in Main
+ * Often used as a proxy for "penthouse slave"
+ * @param {App.Entity.SlaveState} slave
+ * @return {boolean}
+ */
+window.assignmentVisible = function assignmentVisible(slave) {
+	switch (slave.assignment) {
+		/* normal out-of-penthouse jobs */
+		case "be confined in the arcade":
+		case "work in the brothel":
+		case "be confined in the cellblock":
+		case "get treatment in the clinic":
+		case "serve in the club":
+		case "work in the dairy":
+		case "work as a farmhand":
+		case "live with your Head Girl":
+		case "serve in the master suite":
+		case "learn in the schoolroom":
+		case "work as a servant":
+		case "rest in the spa":
+		case "work as a nanny":
+			return 0;
+
+		/* outside leadership jobs */
+		case "be the Attendant":
+		case "be the Matron":
+		case "be the DJ":
+		case "be the Madam":
+		case "be the Milkmaid":
+		case "be the Farmer":
+		case "be the Nurse":
+		case "be the Schoolteacher":
+		case "be the Stewardess":
+		case "be the Wardeness":
+		case "be your Concubine":
+			return 0;
+
+		/* agents are not in the arcology at all */
+		case "be your agent":
+		case "live with your agent":
+			return 0;
+
+		/* transition state */
+		case "choose her own job":
+			return 1; // show
+	}
+
+	/* all other jobs are shown in penthouse */
+	return 1;
+};
+
 window.resetJobIDArray = function resetJobIDArray() {
 	/* todo: expand to all assignments */
 	const slaves = State.variables.slaves;
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 6545021cee0979ab38bcf8ff3b992447b84d8ea8..d94ae4e8eb1ba8cd61804c0b33bb2db5c41a9334 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -21,6 +21,10 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 		migrateBrand(slave);
 		migrateScars(slave);
 		App.Entity.Utils.migratePronouns(slave);
+
+		if (slave.hasOwnProperty("assignmentVisible")) {
+			delete slave.assignmentVisible;
+		}
 	}
 
 	/**
@@ -2165,7 +2169,7 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() {
 			"weekAcquired", "HGExclude",
 			"daughters", "origin",
 			"canRecruit",
-			"choosesOwnAssignment", "assignment", "assignmentVisible",
+			"choosesOwnAssignment", "assignment",
 			"sentence", "training", "toyHole",
 			"indenture", "indentureRestrictions",
 			"minorInjury",
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index dd42512f64612c5344a81bc20b386d57763b3820..b8511cfc2452489cb5d5d970031154abf3cb3c29 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -840,7 +840,7 @@ window.getSlaveCost = function(s) {
 			cost += drugsCost * 2;
 			break;
 	}
-	if (s.curatives > 0 && s.assignmentVisible === 1) {
+	if (s.curatives > 0 && assignmentVisible(s)) {
 		cost += drugsCost * s.curatives;
 	}
 	if (s.aphrodisiacs !== 0) {
@@ -1166,6 +1166,9 @@ window.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDemandRef
 				}
 			}
 		}
+
+		// The Madam adding to 'brothel'
+		SJVBrothel(V.slaves[V.slaveIndices[V.Madam.ID]]);
 	}
 
 
@@ -1550,14 +1553,7 @@ window.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDemandRef
 		}
 
 		// The amount of sexual acts
-		s.sexAmount = Beauty(s);
-
-		if (s.assignment === "be the Madam") {
-			if ((BL + toTheBrothelTotal > 0) && (CL + toTheBrothelTotal < 10)) {
-				s.sexAmount *= ((10 - CL - toTheBrothelTotal) / 10) * 1.5;
-			}
-		}
-		s.sexAmount = Math.trunc(s.sexAmount * beautyMultiplier * (1 + (0.002 * s.skill.whoring)));
+		s.sexAmount = Math.trunc(Beauty(s) * beautyMultiplier * (1 + (0.002 * s.skill.whoring)));
 
 		// The quality/value of each sexual act
 		s.sexQuality = FResult(s);
@@ -1641,6 +1637,13 @@ window.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDemandRef
 			s.whoreClass = 0;
 		}
 		whoreScore(s, lowerClassSexDemandRef, middleClassSexDemandRef, upperClassSexDemandRef, topClassSexDemandRef);
+
+		if (s.assignment === "be the Madam") {
+			if ((BL + toTheBrothelTotal > 0) && (BL + toTheBrothelTotal < 10)) {
+				s.sexAmount = Math.trunc(s.sexAmount * ((10 - BL - toTheBrothelTotal) / 10));
+				s.sexQuality = Math.trunc(s.sexQuality * 1.2);
+			}
+		}
 	}
 
 	return slaveJobValues;
diff --git a/src/js/extendedFamilyModeJS.js b/src/js/extendedFamilyModeJS.js
index b9000e4042ce64623f8a4d034fd33311557ef59d..44f1bb4c4c128f8f068fac442ca46c596b339fe0 100644
--- a/src/js/extendedFamilyModeJS.js
+++ b/src/js/extendedFamilyModeJS.js
@@ -31,7 +31,7 @@ window.isGrandfatherP = function isGrandfatherP(granddaughter, grandfather) {
 };
 
 window.isGrandparentP = function isGrandparentP(granddaughter, grandparent) {
-	return isGrandmotherP(daughter, parent) || isGrandfatherP(daughter, parent);
+	return isGrandmotherP(granddaughter, grandparent) || isGrandfatherP(granddaughter, grandparent);
 };
 
 window.sameDad = function(slave1, slave2) {
@@ -369,6 +369,41 @@ window.randomAvailableParent = function(slave) {
 	});
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {Object}
+ */
+window.availableRelatives = function(slave) {
+	let avail = {
+		mother: false, motherName: null, father: false, fatherName: null, sisters: 0, daughters: 0
+	};
+
+	V.slaves.forEach((other) => {
+		if (slave.mother === other.ID) {
+			avail.motherName = other.slaveName;
+		}
+		if (slave.father === other.ID) {
+			avail.fatherName = other.slaveName;
+		}
+		if (isSlaveAvailable(other)) {
+			if (slave.mother === other.ID) {
+				avail.mother = true;
+			}
+			if (slave.father === other.ID) {
+				avail.father = true;
+			}
+			if (slave.ID === other.mother || slave.ID === other.father) {
+				avail.daughters++;
+			}
+			if (areSisters(slave, other) > 0) {
+				avail.sisters++;
+			}
+		}
+	});
+
+	return avail;
+};
+
 window.totalPlayerRelatives = function(pc) {
 	let relatives = 0;
 	if (pc.mother > 0) {
diff --git a/src/js/findSlave.js b/src/js/findSlave.js
new file mode 100644
index 0000000000000000000000000000000000000000..84450f192f6f012ab8038f70fb89acb0518d7159
--- /dev/null
+++ b/src/js/findSlave.js
@@ -0,0 +1,59 @@
+App.FindSlave = {};
+
+/**
+ * Fragment searching: See if every needle can found somewhere in the field of haystacks
+ * @param {string[]} haystacks
+ * @param {RegExp[]} needles
+ * @returns {boolean}
+ */
+App.FindSlave._fragmentSearch = function(haystacks, needles) {
+	const hs = haystacks.join(" ");
+	return needles.every((needle) => { return needle.test(hs); });
+};
+
+/**
+ * Get slave indices which match a predicate
+ * @param {function} predicate
+ * @returns {number[]}
+ */
+App.FindSlave._slaveIndices = function(predicate) {
+	return V.slaves.reduce((acc, slave, ind) => {
+		if (predicate(createReadonlyProxy(slave))) {
+			acc.push(ind);
+		}
+		return acc;
+	}, []);
+};
+
+/**
+ * Generate a slave list as the result of fragment searching all the name-type fields
+ * @param {string} query
+ * @returns {DocumentFragment}
+ */
+App.FindSlave.searchByName = function(query) {
+	const needles = query.split(" ").map((needle) => { return new RegExp(needle, "i"); });
+	const indices = this._slaveIndices((slave) => { return this._fragmentSearch([slave.slaveName, slave.slaveSurname, slave.birthName, slave.birthSurname], needles); });
+	return App.UI.SlaveList.render.listDOM(indices, [], App.UI.SlaveList.SlaveInteract.stdInteract);
+};
+
+/**
+ * Generate a slave list as the result of fragment searching profession and origin
+ * @param {string} query
+ * @returns {DocumentFragment}
+ */
+App.FindSlave.searchByBackground = function(query) {
+	const needles = query.split(" ").map((needle) => { return new RegExp(needle, "i"); });
+	const indices = this._slaveIndices((slave) => { return this._fragmentSearch([slave.career, slave.origin], needles); });
+	return App.UI.SlaveList.render.listDOM(indices, [], App.UI.SlaveList.SlaveInteract.stdInteract);
+};
+
+/**
+ * Generate a slave list as the result of evaluating an expression
+ * @param {string} query
+ * @returns {DocumentFragment}
+ */
+App.FindSlave.searchByExpression = function(query) {
+	const pred = new Function("slave", "return (" + query + ");");
+	const indices = runWithReadonlyProxy(() => { return this._slaveIndices(pred); });
+	return App.UI.SlaveList.render.listDOM(indices, [], App.UI.SlaveList.SlaveInteract.stdInteract);
+};
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index 4f4a1da41b2dd0cf2a7389476262dfa3873cdcb0..f45609aaedef7d50bc708b16e4c61c38fcedf335 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -209,7 +209,7 @@ window.ruleAppliesP = function ruleAppliesP(cond, slave) {
 			flag = cond.data.value.includes(slave[cond.data.attribute]);
 			break;
 		case "custom": // user provided JS function
-			//TODO: This should use a cached Function instead of 'eval'ing 
+			//TODO: This should use a cached Function instead of 'eval'ing
 			flag = eval(cond.data)(slave);
 			break;
 	}
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 7ada7683e3e2835ecb7b4db1cda8b278c30a8d86..098c47ce5ab3b28caa6fa6ff6288f6b9159b45e7 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -243,7 +243,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-
+	let _blockCallback=Symbol("Block Callback");
 	// list of clickable elements
 	// has a short explanation (the prefix) and a value display
 	// value display can optionally be an editable text input field
@@ -260,6 +260,7 @@ window.rulesAssistantOptions = (function() {
 		 */
 		constructor(prefix, data = [], allowNullValue = true, editor = false, capitalizeShortcuts = false, ...args) {
 			super(prefix, editor, ...args);
+			this[_blockCallback] = false;
 			this.selectedItem = null;
 			/** @protected */
 			this._allowNullValue = allowNullValue;
@@ -288,17 +289,40 @@ window.rulesAssistantOptions = (function() {
 
 		inputEdited() {
 			if (this.selectedItem) { this.selectedItem.deselect(); }
+			this.setValue(this.getTextData());
 			this.propagateChange();
 		}
 
 		selectItem(item) {
 			if (this.selectedItem) { this.selectedItem.deselect(); }
-			this.selectedItem = item;
 			this.setValue(item.data);
 			this.propagateChange();
 		}
-
+		trySetValue(what) {
+			if(what == null && this._allowNullValue) {
+				this.setValue(what);
+				return;
+			}
+			const selected = this.children.filter(listItem => _.isEqual(listItem.data, what));
+			if(selected != null && selected.length === 1) {
+				this.selectItem(selected[0]);
+			} else if(this._allowNullValue) {
+				this.setValue(null);
+			}
+		}
 		setValue(what) {
+			if(what == null && !this._allowNullValue) { what = ""; }
+			this.realValue = what;
+			if(this[_blockCallback]) { return; }
+			try {
+				this[_blockCallback] = true;
+				this.setTextValue(what);
+				this.updateSelected();
+			} finally {
+				this[_blockCallback] = false;
+			}
+		}
+		setTextValue(what) {
 			const str = what === null ? "no default setting" : `${what}`;
 			if (this.value) {
 				if (this.value.tagName === "INPUT") {
@@ -310,6 +334,9 @@ window.rulesAssistantOptions = (function() {
 		}
 
 		getData() {
+			return this.realValue;
+		}
+		getTextData() {
 			return (this.value.tagName === "INPUT" ? this.parse(this.value.value) : this.selectedItem.data);
 		}
 
@@ -321,6 +348,28 @@ window.rulesAssistantOptions = (function() {
 				this.onchange(this.getData());
 			}
 		}
+		dataEqual(left, right) {
+			return _.isEqual(left, right);
+		}
+		updateSelected() {
+			const dataValue = this.getData();
+			let selected;
+			if(dataValue == null) {
+				selected = this.children.filter(listItem => listItem.data == null);
+			} else {
+				selected = this.children.filter(listItem => this.dataEqual(listItem.data, dataValue));
+			}
+			if (selected.length > 1) { debugger; throw Error(`Multiple shortcuts matched ${JSON.stringify(dataValue)}`); }
+			if (selected.length === 1) {
+				const listItem = selected[0];
+				listItem.select(false);
+				if(this.selectedItem != null
+				&& !_.isEqual(this.selectedItem, listItem)) {
+					this.selectedItem.deselect();
+				}
+				this.selectedItem = listItem;
+			}
+		}
 
 		/**
 		 * @private
@@ -360,11 +409,11 @@ window.rulesAssistantOptions = (function() {
 			return elem;
 		}
 
-		select() {
+		select(notify = true) {
 			if (this.selected) { return false; }
-			this.parent.selectItem(this);
-			this.element.classList.add("selected");
 			this.selected = true;
+			this.element.classList.add("selected");
+			if(notify) { this.parent.selectItem(this); }
 			return true;
 		}
 
@@ -524,16 +573,16 @@ window.rulesAssistantOptions = (function() {
 			return res;
 		}
 
-		getData() {
+		getTextData() {
 			return this.selectedValue;
 		}
 
-		setValue(what) {
+		setTextValue(what) {
 			this.selectedValue = what;
 			if (this.values.has(what)) {
-				super.setValue(this.values.get(what));
+				super.setTextValue(this.values.get(what));
 			} else {
-				super.setValue(what);
+				super.setTextValue(what);
 			}
 		}
 	}
@@ -546,7 +595,7 @@ window.rulesAssistantOptions = (function() {
 		createEditor() {
 			let res = document.createElement("input");
 			res.setAttribute("type", "text");
-			res.classList.add("rajs-value"); //
+			res.classList.add("rajs-value");
 			// call the variable binding when the input field is no longer being edited, and when the enter key is pressed
 			res.onblur = () => {
 				this.inputEdited();
@@ -554,14 +603,21 @@ window.rulesAssistantOptions = (function() {
 			res.onkeypress = (e) => {
 				if (returnP(e)) { this.inputEdited(); }
 			};
+			$(res).click(()=>res.setAttribute("placeholder", ""));
 			return res;
 		}
+		setValue(what) {
+			super.setValue(what);
+			this.value.setAttribute("placeholder", what == null
+												 ? `(${capFirstChar(noDefaultSetting.text)})`
+												 : '');
+		}
 
-		getData() {
+		getTextData() {
 			return this.value.value;
 		}
 
-		setValue(what) {
+		setTextValue(what) {
 			this.value.value = what;
 		}
 	}
@@ -677,7 +733,7 @@ window.rulesAssistantOptions = (function() {
 			return what === "" ? null : parseInt(what);
 		}
 
-		setValue(what) {
+		setTextValue(what) {
 			if (typeof what === 'number') { // comes from a pre-set
 				this.numEditor.value = what.toString();
 			} else if (what === null) {
@@ -689,10 +745,19 @@ window.rulesAssistantOptions = (function() {
 			}
 		}
 
-		getData() {
+		getTextData() {
 			const v = this.parse(this.numEditor.value);
 			return v === null ? null : App.RA.makeTarget(this.opSelector.value, v);
 		}
+
+		dataEqual(left, right) {
+			if (left == null && right == null) { return true; }
+			if (left == null || right == null) { return false; }
+			// ignore the operator
+			if(_.isObject(left )) { left = left .val; }
+			if(_.isObject(right)) { right = right.val; }
+			return left === right;
+		}
 	}
 
 	class NumericRangeEditor extends EditorWithShortcuts {
@@ -757,7 +822,7 @@ window.rulesAssistantOptions = (function() {
 			return res;
 		}
 
-		getData() {
+		getTextData() {
 			function parse(what) {
 				return what === "" ? null : parseInt(what);
 			}
@@ -768,7 +833,7 @@ window.rulesAssistantOptions = (function() {
 				App.RA.makeRange(vMin !== null ? vMin : this._min, vMax !== null ? vMax : this._max);
 		}
 
-		setValue(what) {
+		setTextValue(what) {
 			if (what === null) {
 				this._minEditor.value = null;
 				this._maxEditor.value = null;
@@ -986,7 +1051,7 @@ window.rulesAssistantOptions = (function() {
 	// buttons for selecting the current rule
 	class RuleSelector extends List {
 		constructor() {
-			super("Current rule", V.defaultRules.map(i => [(i.name + (!!RuleHasError(i) ? " <span class='yellow'>[!]</span>" : "")), i]), false);
+			super("Current rule", V.defaultRules.map(i => [(i.name + (RuleHasError(i) ? " <span class='yellow'>[!]</span>" : "")), i]), false);
 			this.setValue(current_rule.name);
 			this.onchange = function(rule) {
 				V.currentRule = rule.ID;
@@ -1090,7 +1155,7 @@ window.rulesAssistantOptions = (function() {
 				["Amputation", "amp"],
 			];
 			this.fnlist = new List("Activation function", items);
-			this.fnlist.setValue(current_rule.condition.function === "between" ? current_rule.condition.data.attribute : current_rule.condition.function);
+			this.fnlist.setValue(["between", "belongs"].includes(current_rule.condition.function) ? current_rule.condition.data.attribute : current_rule.condition.function);
 			this.fnlist.onchange = (value) => this.fnchanged(value);
 			this.appendChild(this.fnlist);
 			this.fneditor = null;
@@ -1197,16 +1262,15 @@ window.rulesAssistantOptions = (function() {
 			textarea.innerHTML = data;
 			$(textarea).blur(() => {
 				current_rule.condition.data = textarea.value;
-				//TODO: this would be a good place to cache the Function object that will be used by RuleHasError and ruleAppliesP
+				// TODO: this would be a good place to cache the Function object that will be used by RuleHasError and ruleAppliesP
 				reload();
 			});
 			elem.appendChild(textarea);
 
-			if(RuleHasError(current_rule))
-			{
+			if(RuleHasError(current_rule)) {
 				const errorMessage = document.createElement("div");
 				$(errorMessage).addClass("yellow");
-				errorMessage.innerText =  "WARNING: There are errors in this condition. Please ensure the syntax is correct and equality is either '==' or '===', not '='";
+				errorMessage.innerText = "WARNING: There are errors in this condition. Please ensure the syntax is correct and equality is either '==' or '===', not '='";
 				elem.appendChild(errorMessage);
 			}
 
@@ -1217,6 +1281,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+
 	class RangeEditor extends Element {
 		render(fn, data) {
 			const elem = document.createElement("div");
@@ -1564,7 +1629,7 @@ window.rulesAssistantOptions = (function() {
 
 	class ClearLabelSwitch extends BooleanSwitch {
 		constructor() {
-			super("Remove all tags (Gobal swith)", [false, true]);
+			super("Remove all tags (Global switch)", [false, true]);
 			this.setValue(current_rule.set.labelTagsClear);
 			this.onchange = (value) => current_rule.set.labelTagsClear = value;
 		}
@@ -2587,6 +2652,18 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	const dietAddedText = function(value) {
+		switch(value) {
+			case 0:
+				return "None";
+			case 1:
+				return "Added";
+			case 2:
+				return "Based";
+			default:
+				return value;
+		}
+	};
 	class DietBaseList extends List {
 		constructor() {
 			// TODO: better data structure?
@@ -2600,16 +2677,19 @@ window.rulesAssistantOptions = (function() {
 				["Milk-Based", {cum: 0, milk: 2}],
 			];
 			super("Diet base", pairs, false);
-			this.setValue(this.value2string(current_rule.set.dietCum, current_rule.set.dietMilk));
+			this.setValue({cum: current_rule.set.dietCum, milk: current_rule.set.dietMilk});
 			this.onchange = (value) => {
 				current_rule.set.dietCum = value.cum;
 				current_rule.set.dietMilk = value.milk;
-				this.setValue(this.value2string(current_rule.set.dietCum, current_rule.set.dietMilk));
+				this.setValue(value);
 			};
 		}
-
-		value2string(cum, milk) {
-			return `cum: ${cum}, milk: ${milk}`;
+		setTextValue(what) {
+			if(what.cum == null && what.milk == null) {
+				super.setTextValue(capFirstChar(noDefaultSetting.text));
+			} else {
+				super.setTextValue(`Cum: ${dietAddedText(what.cum)}, Milk: ${dietAddedText(what.milk)}`);
+			}
 		}
 	}
 
@@ -2888,11 +2968,18 @@ window.rulesAssistantOptions = (function() {
 			if (val === undefined) {
 				val = this.combine();
 			} else {
-				if (val === noDefaultSetting.value) {
+				if (val === noDefaultSetting.value || val === null) {
 					this.colorlist.setValue(val);
 					this.shapelist.setValue(val);
 				} else {
-					//
+					let list = val.split(' ');
+					if(list.length === 2) {
+						this.colorlist.setValue(list[0]);
+						this.shapelist.setValue(list[1]);
+					} else if(list.length === 1) {
+						this.colorlist.trySetValue(list[0]);
+						this.shapelist.trySetValue(list[0]);
+					}
 				}
 			}
 			super.setValue(val);
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 81a61235889206b915ec08bf90b0d4111dffb371..7c78afebe6e5a0f591b5b766fab47597f5921b47 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -312,7 +312,7 @@ window.Beauty = (function() {
 			} else if (slave.intelligenceImplant > 15) {
 				beauty -= (slave.intelligenceImplant * 3);
 			} else {
-				beauty -= (slave.intelligenceImplant * 1.5);
+				beauty -= Math.abs(slave.intelligenceImplant * 1.5);
 			}
 		} else if (arcology.FSSlaveProfessionalism !== "unset") {
 			if (slave.intelligenceImplant >= 30) {
@@ -320,7 +320,7 @@ window.Beauty = (function() {
 			} else if (slave.intelligenceImplant >= 15) {
 				beauty += (arcology.FSSlaveProfessionalism / 20); /* 5 */
 			} else {
-				beauty -= ((arcology.FSSlaveProfessionalism / 10) * 3) - (slave.intelligenceImplant); /* -30 */
+				beauty -= ((arcology.FSSlaveProfessionalism / 10) * 3) - slave.intelligenceImplant; /* -30 */
 			}
 		} else if (arcology.FSIntellectualDependency !== "unset") {
 			if (slave.intelligenceImplant > 15) {
diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js
index 72953069750d063321340b2ddf3b494801d0fe49..73e978efcb392495f24fba7183b76d71bfa49fdb 100644
--- a/src/js/slaveGenerationJS.js
+++ b/src/js/slaveGenerationJS.js
@@ -91,48 +91,48 @@ window.nationalityToName = function nationalityToName(slave) {
 	}
 	slave.slaveSurname = slave.birthSurname;
 	if (V.useFSNames === 1) {
-	    if (V.FSNamePref === 0) {
-	        if (V.arcologies[0].FSChattelReligionist > 20) {
-	            slave.slaveName = jsEither(setup.chattelReligionistSlaveNames);
-	            slave.slaveSurname = 0;
-	        } else if (V.arcologies[0].FSRomanRevivalist > 20) {
-	            slave.slaveName = jsEither(setup.romanSlaveNames);
-	            slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
-	        } else if (V.arcologies[0].FSAztecRevivalist > 20) {
-	            slave.slaveName = jsEither(setup.aztecSlaveNames);
-	            slave.slaveSurname = 0;
-	        } else if (V.arcologies[0].FSEgyptianRevivalist > 20) {
-	            slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames);
-	            slave.slaveSurname = 0;
-	        } else if (V.arcologies[0].FSEdoRevivalist > 20) {
-	            slave.slaveName = jsEither(setup.edoSlaveNames);
-	            slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
-	        } else if (V.arcologies[0].FSDegradationist !== "unset") {
-	            DegradingName(slave);
-	        }
-	    } else if (V.FSNamePref === 1) {
-	        slave.slaveName = jsEither(setup.chattelReligionistSlaveNames);
-	        slave.slaveSurname = 0;
-	    } else if (V.FSNamePref === 2) {
-	        slave.slaveName = jsEither(setup.romanSlaveNames);
-	        slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
-	    } else if (V.FSNamePref === 3) {
-	        slave.slaveName = jsEither(setup.aztecSlaveNames);
-	        slave.slaveSurname = 0;
-	    } else if (V.FSNamePref === 4) {
-	        slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames);
-	        slave.slaveSurname = 0;
-	    } else if (V.FSNamePref === 5) {
-	        slave.slaveName = jsEither(setup.edoSlaveNames);
-	        slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
-	    } else if (V.FSNamePref === 6) {
-	        DegradingName(slave);
-	    } else if (V.FSNamePref === 7) {
-	        PaternalistName(slave);
-	    } else if (V.FSNamePref === 8) {
-	        slave.slaveName = jsEither(setup.bimboSlaveNames);
-	        slave.slaveSurname = 0;
-	    }
+		if (V.FSNamePref === 0) {
+			if (V.arcologies[0].FSChattelReligionist > 20) {
+				slave.slaveName = jsEither(setup.chattelReligionistSlaveNames);
+				slave.slaveSurname = 0;
+			} else if (V.arcologies[0].FSRomanRevivalist > 20) {
+				slave.slaveName = jsEither(setup.romanSlaveNames);
+				slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
+			} else if (V.arcologies[0].FSAztecRevivalist > 20) {
+				slave.slaveName = jsEither(setup.aztecSlaveNames);
+				slave.slaveSurname = 0;
+			} else if (V.arcologies[0].FSEgyptianRevivalist > 20) {
+				slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames);
+				slave.slaveSurname = 0;
+			} else if (V.arcologies[0].FSEdoRevivalist > 20) {
+				slave.slaveName = jsEither(setup.edoSlaveNames);
+				slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
+			} else if (V.arcologies[0].FSDegradationist !== "unset") {
+				DegradingName(slave);
+			}
+		} else if (V.FSNamePref === 1) {
+			slave.slaveName = jsEither(setup.chattelReligionistSlaveNames);
+			slave.slaveSurname = 0;
+		} else if (V.FSNamePref === 2) {
+			slave.slaveName = jsEither(setup.romanSlaveNames);
+			slave.slaveSurname = jsEither(setup.romanSlaveSurnames);
+		} else if (V.FSNamePref === 3) {
+			slave.slaveName = jsEither(setup.aztecSlaveNames);
+			slave.slaveSurname = 0;
+		} else if (V.FSNamePref === 4) {
+			slave.slaveName = jsEither(setup.ancientEgyptianSlaveNames);
+			slave.slaveSurname = 0;
+		} else if (V.FSNamePref === 5) {
+			slave.slaveName = jsEither(setup.edoSlaveNames);
+			slave.slaveSurname = jsEither(setup.edoSlaveSurnames);
+		} else if (V.FSNamePref === 6) {
+			DegradingName(slave);
+		} else if (V.FSNamePref === 7) {
+			PaternalistName(slave);
+		} else if (V.FSNamePref === 8) {
+			slave.slaveName = jsEither(setup.bimboSlaveNames);
+			slave.slaveSurname = 0;
+		}
 	}
 };
 
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 98c4333ebc809575cb22a58e6a2d2cc140d1808a..ca8b29aa9a976456c9e51b6eb8a9081740dfc094 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -617,7 +617,7 @@ App.UI.SlaveList.listSJFacilitySlaves = function(facility, facilityPassage, show
 		if (facility.hasFreeSpace) {
 			// slaves from other facilities can be transferred here
 			const transferableIndices = V.slaves.reduce((acc, slave, ind) => {
-				if (slave.assignmentVisible === 0 && !facility.isHosted(slave)) {
+				if (!assignmentVisible(slave) && !facility.isHosted(slave)) {
 					acc.push(ind);
 				}
 				return acc;
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index b576a0afb403df94032c5838ff77154631197311..4707f0b6d1e3f70c4f1c68a7f511f40886b2a5a0 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -4486,7 +4486,7 @@ window.SlaveSummaryUncached = (function() {
 		if (slave.useRulesAssistant === 0) {
 			makeSpan(c, "RA-Exempt", "lightgreen");
 		} else if (V.abbreviateRulesets === 2 && (slave.currentRules !== undefined) && (slave.currentRules.length > 0)) {
-			c.appendChild(document.createTextNode(`Rules: ${V.defaultRules.filter(x => ruleApplied(slave, x)).map(x => x.name).join(", ")}`));
+			c.innerHTML = `Rules: ${V.defaultRules.filter(x => ruleApplied(slave, x)).map(x => x.name).join(", ")}`;
 		}
 	}
 
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index b9ee7848a2e7fe82b9ba05a42898ac0262412fc6..6eabe3a4e57b0a2bcafd2051d03eb08781a8fce5 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -92,15 +92,6 @@ window.canImpreg = function(slave1, slave2) {
 		return null;
 	} else if (slave2.dick < 1) {
 		return false;
-	} else if (slave2.ID === -1) {
-		if (slave1.eggType !== "human") {
-			return false;
-		} else if (!canGetPregnant(slave1)) {
-			/* includes chastity checks */
-			return false;
-		} else {
-			return true;
-		}
 	} else if (slave2.balls < 1) {
 		return false;
 	} else if (slave2.chastityPenis === 1) {
@@ -110,14 +101,6 @@ window.canImpreg = function(slave1, slave2) {
 		return false;
 	} else if (slave2.vasectomy === 1) {
 		return false;
-	} else if (slave1.ID === -1) {
-		if (slave2.ballType !== "human") {
-			return false;
-		} else if (!isPlayerFertile(slave1)) {
-			return false;
-		} else {
-			return true;
-		}
 	} else if (!canBreed(slave1, slave2)) {
 		return false; /* pregmod end */
 	} else if (!canGetPregnant(slave1)) {
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index 38ff41e3ce1ffd6e1666cf804aaa2ab9e466fef3..9a3386042faceb86b1e88084db40440a42d6f3ff 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -2879,34 +2879,6 @@ window.resyncSlaveToAge = function(slave) {
 	slave.career = randomCareer(slave);
 };
 
-/**
- * @param {string} input
- * @param {number} [increase=1]
- * @returns {string}
- */
-window.IncreasePCSkills = function(input, increase = 1) {
-	const player = State.variables.PC;
-	const oldSkill = player.skill[input];
-	player.skill[input] += increase;
-	if (oldSkill <= 10) {
-		if (player.skill[input] >= 10) {
-			return `<span class="green"> <br>You have gained basic knowledge in ${input}.</span>`;
-		}
-	} else if (oldSkill <= 30) {
-		if (player.skill[input] >= 30) {
-			return `<span class="green"> <br>You have gained some knowledge in ${input}.</span>`;
-		}
-	} else if (oldSkill <= 60) {
-		if (player.skill[input] >= 60) {
-			return `<span class="green"> <br>You have become an expert in ${input}.</span>`;
-		}
-	} else if (oldSkill < 100) {
-		if (player.skill[input] >= 100) {
-			return `<span class="green"> <br>You have mastered ${input}.</span>`;
-		}
-	}
-};
-
 /**
  * @param {string} raceName
  * @returns {string}
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index ec593ad42e2e8007b7ea661d4072d9229db387ff..729de669a662fc81d02e2cf5c459f1290322b959 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -807,7 +807,7 @@ The previous owner seems to have left in something of a hurry.
 	<<set $slaves[$i].oldDevotion = $slaves[$i].devotion>>
 	<<set $slaves[$i].oldTrust = $slaves[$i].trust>>
 	/* AVERAGE VALUES UPDATE */
-	<<if $slaves[$i].assignmentVisible == 1>>
+	<<if assignmentVisible($slaves[$i])>>
 		<<set $averageTrust += $slaves[$i].trust, $averageDevotion += $slaves[$i].devotion, _slavesContributing += 1>>
 	<<else>>
 		<<if $slaves[$i].assignment != "be confined in the cellblock">>
diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js
index 0b77e71508aeef9f363ea404547c4ac9515edf3e..f0e3d2c8375e26ab798e58b083b33d951d9033cc 100644
--- a/src/npc/descriptions/boobs/boobs.js
+++ b/src/npc/descriptions/boobs/boobs.js
@@ -213,7 +213,7 @@ App.Desc.boobBits = function() {
 
 App.Desc.boobs = function() {
 	'use strict';
-	
+
 	/** @type {App.Utils.Pronouns} */
 	let pr;
 	/** @type {string} */
@@ -1566,7 +1566,7 @@ App.Desc.nipples = function(slave, pronouns) {
 				r += `huge ${nipColor} nipples fill the milkers completely.`;
 				break;
 			case "fuckable":
-				r += `fuckable ${nipColor} nipples leave nothing for the milkers, and the suction is drawing a lot of boob in with them.`;
+				r += `fuckable ${nipColor} nipples are filled by special milkers that extend into ${his} breasts.`;
 				break;
 			default:
 				r += `${nipColor} nipples are being tugged at by the milkers' powerful suction.`;
diff --git a/src/npc/findSlave.tw b/src/npc/findSlave.tw
new file mode 100644
index 0000000000000000000000000000000000000000..e61fae8de3c45bc1ef640553f4193ed36566e61f
--- /dev/null
+++ b/src/npc/findSlave.tw
@@ -0,0 +1,32 @@
+:: Find Slave [nobr]
+
+<<set $nextButton = "Back to Main", $nextLink = "Main", $showEncyclopedia = 0>>
+
+After spending a minute trying to remember some details about one of your slaves, you sit down behind your desk and tell $assistantName that you need to locate a particular slave's records.<br><br>
+
+"Certainly, <<= properMaster()>>. What can you tell me about them?"<br><br>
+
+"They're called something like:
+<<textbox "_nameSearch" "" autofocus>>
+<<link "Locate">>
+	<<script>>$('#slaveList').empty().append(App.FindSlave.searchByName(State.temporary.nameSearch));<</script>>
+<</link>>
+<br>//(Enter a fragment of their nickname, name, surname, birth name, or birth surname)//<br><br>
+
+"In the past, they were:
+<<textbox "_backgroundSearch" "">>
+<<link "Locate">>
+	<<script>>$('#slaveList').empty().append(App.FindSlave.searchByBackground(State.temporary.backgroundSearch));<</script>>
+<</link>>
+<br>//(Enter a fragment of their origin or past job, for example, "shelter" or "lawyer")//<br><br>
+
+"Their data should meet this condition:
+<<textbox "_dataSearch" "">>
+<<link "Locate">>
+	<<script>>$('#slaveList').empty().append(App.FindSlave.searchByExpression(State.temporary.dataSearch));<</script>>
+<</link>>
+<br>//(Enter a conditional expression which evaluates to true for the slave you want to find, such as "slave.physicalAge >= 18 && slave.physicalAge < 21")// <br><br>
+
+<span id="slaveList">
+	/* results list gets populated here by jQuery */
+</span>
diff --git a/src/uncategorized/slaveStats.tw b/src/npc/slaveStats.tw
similarity index 77%
rename from src/uncategorized/slaveStats.tw
rename to src/npc/slaveStats.tw
index 94bcf449df526a8dad9fc690c4670bca1399358e..697fa3a58dc13d5122264600a24dddc1d899e598 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/npc/slaveStats.tw
@@ -14,63 +14,62 @@
 Surname: $activeSlave.slaveSurname
 <br>Nationality: $activeSlave.nationality
 <br>Cost: $activeSlave.slaveCost
-<br>Week: 
-Acquired: $activeSlave.weekAcquired, 
+<br>Week:
+Acquired: $activeSlave.weekAcquired,
 Birth: $activeSlave.birthWeek
 <br>Pronoun: $activeSlave.pronoun
 <br>Career: $activeSlave.career
 <br>Origin: $activeSlave.origin
 <br>ID: $activeSlave.ID
-<br>Prestige: $activeSlave.prestige, 
+<br>Prestige: $activeSlave.prestige,
 Desc: $activeSlave.prestigeDesc
 <br>CustomDesc: $activeSlave.custom.desc
 
-<br>Indenture: $activeSlave.indenture, 
+<br>Indenture: $activeSlave.indenture,
 Restrictions: $activeSlave.indentureRestrictions
 
-<br>Sentence: $activeSlave.sentence, 
+<br>Sentence: $activeSlave.sentence,
 Training: $activeSlave.training
 
 <br>BreedingMark: $activeSlave.breedingMark
 <br>Assignment: $activeSlave.assignment,
-Visible: $activeSlave.assignmentVisible, 
 choosesOwn: $activeSlave.choosesOwnAssignment
 
-<br>Title: 
-Custom: $activeSlave.custom.title, 
-Lisp: $activeSlave.custom.titleLisp, 
+<br>Title:
+Custom: $activeSlave.custom.title,
+Lisp: $activeSlave.custom.titleLisp,
 Rude: $activeSlave.rudeTitle
 <br>Custom.label: $activeSlave.custom.label
 
-<br><br>Drugs: $activeSlave.drugs, 
-Curatives: $activeSlave.curatives, 
-Chem: $activeSlave.chem, 
+<br><br>Drugs: $activeSlave.drugs,
+Curatives: $activeSlave.curatives,
+Chem: $activeSlave.chem,
 Aphrodisiacs: $activeSlave.aphrodisiacs
 <br>Induce: $activeSlave.induce
 
-<br><br>Rules: 
-Current: $activeSlave.currentRules, 
-Living: $activeSlave.rules.living, 
-Speech: $activeSlave.rules.speech, 
+<br><br>Rules:
+Current: $activeSlave.currentRules,
+Living: $activeSlave.rules.living,
+Speech: $activeSlave.rules.speech,
 Release: $activeSlave.rules.release
 
-<br>Standard: 
-Punishment: $activeSlave.rules.punishment, 
+<br>Standard:
+Punishment: $activeSlave.rules.punishment,
 Reward: $activeSlave.rules.reward
-<br>UseRulesAssistant: $activeSlave.useRulesAssistant, 
+<br>UseRulesAssistant: $activeSlave.useRulesAssistant,
 ChoosesOwnChastity: $activeSlave.choosesOwnChastity
 
-<br><br>Lifetime: 
-<br>&nbsp;Cash: 
-Expenses: <<= num($activeSlave.lifetimeCashExpenses)>>, 
+<br><br>Lifetime:
+<br>&nbsp;Cash:
+Expenses: <<= num($activeSlave.lifetimeCashExpenses)>>,
 Income: <<= num($activeSlave.lifetimeCashIncome)>>
-<br>&nbsp;Rep: 
-Expenses: <<= num($activeSlave.lifetimeRepExpenses)>>, 
+<br>&nbsp;Rep:
+Expenses: <<= num($activeSlave.lifetimeRepExpenses)>>,
 Income: <<= num($activeSlave.lifetimeRepIncome)>>
-<br>LastWeeks: 
+<br>LastWeeks:
 <br>&nbsp;CashIncome: <<= num($activeSlave.lastWeeksCashIncome)>>
-<br>&nbsp;Rep: 
-Expenses: <<= num($activeSlave.lastWeeksRepExpenses)>>, 
+<br>&nbsp;Rep:
+Expenses: <<= num($activeSlave.lastWeeksRepExpenses)>>,
 Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 
 <br>
@@ -118,30 +117,30 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 <div id="Mental" class="tabcontent">
 	<div class="content">
 		Intelligence: $activeSlave.intelligence
-		<br>Attraction: 
-		XX: $activeSlave.attrXX, 
+		<br>Attraction:
+		XX: $activeSlave.attrXX,
 		XY: $activeSlave.attrXY
 
-		<br>Fetish: 
-		Strength: $activeSlave.fetishStrength, 
+		<br>Fetish:
+		Strength: $activeSlave.fetishStrength,
 		Known: $activeSlave.fetishKnown
-		<br>Behavioral: 
-		Flaw: $activeSlave.behavioralFlaw, 
+		<br>Behavioral:
+		Flaw: $activeSlave.behavioralFlaw,
 		Quirk: $activeSlave.behavioralQuirk
-		<br>Sexual: 
-		Flaw: $activeSlave.sexualFlaw, 
+		<br>Sexual:
+		Flaw: $activeSlave.sexualFlaw,
 		Quirk: $activeSlave.sexualQuirk
-		
-		<br>Energy: $activeSlave.energy, 
+
+		<br>Energy: $activeSlave.energy,
 		Tired: $activeSlave.tired
-		<br>Need: $activeSlave.need, 
+		<br>Need: $activeSlave.need,
 		Cap: $activeSlave.needCap
 		<br>Addict: $activeSlave.addict
-		<br>Hormones: $activeSlave.hormones, 
+		<br>Hormones: $activeSlave.hormones,
 		Balance: $activeSlave.hormoneBalance
-		<br>Trust: $activeSlave.trust, 
-		Previous: $activeSlave.oldTrust 
-		<br>Devotion: $activeSlave.devotion, 
+		<br>Trust: $activeSlave.trust,
+		Previous: $activeSlave.oldTrust
+		<br>Devotion: $activeSlave.devotion,
 		Previous: $activeSlave.oldDevotion
 	</div>
 </div>
@@ -155,20 +154,20 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>Fuckdoll: $activeSlave.fuckdoll
 		<br>ToyHole: $activeSlave.toyHole
 		<br>PLimb: $activeSlave.PLimb
-		
+
 		<br><br>BodySwap: $activeSlave.bodySwap
-		<br>origBodyOwner: $activeSlave.origBodyOwner, 
+		<br>origBodyOwner: $activeSlave.origBodyOwner,
 		ID: $activeSlave.origBodyOwnerID
-		
-		<br><br>Age: 
+
+		<br><br>Age:
 		Actual: $activeSlave.actualAge,
 		Visual: $activeSlave.visualAge,
-		PhysicalAge: $activeSlave.physicalAge, 
+		PhysicalAge: $activeSlave.physicalAge,
 		Adjust: $activeSlave.ageAdjust
-		<br>PubertyAge: 
-		XX: $activeSlave.pubertyAgeXX, 
+		<br>PubertyAge:
+		XX: $activeSlave.pubertyAgeXX,
 		XY: $activeSlave.pubertyAgeXY
-		
+
 		<br><br>Brand:
 		<<for _brandName, _brand range $activeSlave.brand>>
 			_brandName: _brand,
@@ -177,91 +176,91 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<<for _scarName, _scar range $activeSlave.scar>>
 			_scarName: _scar,
 		<</for>>
-		
-		<br><br>Broodmother: 
-		Fetuses: $activeSlave.broodmotherFetuses, 
+
+		<br><br>Broodmother:
+		Fetuses: $activeSlave.broodmotherFetuses,
 		CountDown: $activeSlave.broodmotherCountDown
-		
-		<br>Diet: 
-		Current: $activeSlave.diet, 
-		Cum: $activeSlave.dietCum, 
+
+		<br>Diet:
+		Current: $activeSlave.diet,
+		Cum: $activeSlave.dietCum,
 		Milk: $activeSlave.dietMilk
-		
+
 		<br><br>
 		<h2>Upper</h2>
-		
-		Hair:	
-		Length: $activeSlave.hLength, 
-		Style: $activeSlave.hStyle, 
-		<br>Color: $activeSlave.hColor, 
-		Orig: $activeSlave.origHColor, 
+
+		Hair:
+		Length: $activeSlave.hLength,
+		Style: $activeSlave.hStyle,
+		<br>Color: $activeSlave.hColor,
+		Orig: $activeSlave.origHColor,
 		Override: $activeSlave.override_H_Color
-		
-		<br>Pubic Hair: 
-		Style: $activeSlave.pubicHStyle, 
+
+		<br>Pubic Hair:
+		Style: $activeSlave.pubicHStyle,
 		Color: $activeSlave.pubicHColor,
 		Override: $activeSlave.override_Pubic_H_Color
 
 		<br><br>Eyes:
 		<br>Eyes: $activeSlave.eyes,
 		Color: $activeSlave.eyeColor,
-		Orig: $activeSlave.origEye, 
+		Orig: $activeSlave.origEye,
 		Override: $activeSlave.override_Eye_Color
 		<br>eyewear: $activeSlave.eyewear
 		<br>pupil: $activeSlave.pupil
 		<br>sclerae: $activeSlave.sclerae
-		
-		<br><br>Ears: 
-		Hearing: $activeSlave.hears, 
+
+		<br><br>Ears:
+		Hearing: $activeSlave.hears,
 		Wear: $activeSlave.earwear
-		
+
 		<br><br>Face:
-		<br>Face: $activeSlave.face, 
+		<br>Face: $activeSlave.face,
 		Shape: $activeSlave.faceShape
 		<br>Lips: $activeSlave.lips
 		<br>Oral count: $activeSlave.counter.oral
 		<br>Teeth: $activeSlave.teeth
-		
+
 		<br>Voice: $activeSlave.voice
 		<br>Accent: $activeSlave.accent
 		<br>Eyebrow:
-		<br>Fullness: $activeSlave.eyebrowFullness, 
-		Color: $activeSlave.eyebrowHColor, 
+		<br>Fullness: $activeSlave.eyebrowFullness,
+		Color: $activeSlave.eyebrowHColor,
 		Style: $activeSlave.eyebrowHStyle,
 		Override: $activeSlave.override_Brow_H_Color
 		<br>Smells: $activeSlave.smells
 		<br>Tastes: $activeSlave.tastes
 		<br>Makeup: $activeSlave.makeup
- 
+
 		<br>Race: $activeSlave.race,
-		Orig: $activeSlave.origRace, 
+		Orig: $activeSlave.origRace,
 		Override: $activeSlave.override_Race
 		<br>Skin: $activeSlave.skin,
-		Orig: $activeSlave.origSkin, 
+		Orig: $activeSlave.origSkin,
 		Override: $activeSlave.override_Skin
- 
+
 		<br>Haircuts: $activeSlave.haircuts,
 		Bald: $activeSlave.bald
-		
+
 		<br>Collar: $activeSlave.collar
 		<br>Height: $activeSlave.height
 		<br>Clothes: $activeSlave.clothes,
 		ChoosesOwn: $activeSlave.choosesOwnClothes
- 
+
 		<br>Shoulders: $activeSlave.shoulders
 		<br>ArmAccessory: $activeSlave.armAccessory
 		<br>Muscles: $activeSlave.muscles
-		<br>Arms: $activeSlave.arms, 
-		<br>UnderArm: 
-		HColor: $activeSlave.underArmHColor, 
-		Style: $activeSlave.underArmHStyle, 
+		<br>Arms: $activeSlave.arms,
+		<br>UnderArm:
+		HColor: $activeSlave.underArmHColor,
+		Style: $activeSlave.underArmHStyle,
 		Override H Colour: $activeSlave.override_Arm_H_Color
-		
+
 		<br>Nails: $activeSlave.nails
-		
+
 		<br><br>Boobs: $activeSlave.boobs,
-		<br>Milk: $activeSlave.boobsMilk, 
-		Type: $activeSlave.boobsImplantType, 
+		<br>Milk: $activeSlave.boobsMilk,
+		Type: $activeSlave.boobsImplantType,
 		Qunantity: $activeSlave.counter.milk
 		<br>Shape: $activeSlave.boobShape
 		<br>nipples: $activeSlave.nipples,
@@ -275,38 +274,38 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>MammaryCount: $activeSlave.counter.mammary
 		<br>LactationRules: $activeSlave.rules.lactation
 		<br>BreastMesh: $activeSlave.breastMesh
-		
+
 		<br><br>
 		<h2>Lower</h2>
-		
+
 		Weight: $activeSlave.weight
 		<br>Waist: $activeSlave.waist
 		<br>Hips: $activeSlave.hips
-		
+
 		<br><br>Belly: $activeSlave.belly,
 		Preg: $activeSlave.bellyPreg,
 		Fluid: $activeSlave.bellyFluid,
 		Sag: $activeSlave.bellySag,
 		SagPreg: $activeSlave.bellySagPreg,
-		Pain: $activeSlave.bellyPain, 
+		Pain: $activeSlave.bellyPain,
 		Accessory: $activeSlave.bellyAccessory
 		<br>Burst: $activeSlave.burst
-		<br>Inflation: $activeSlave.inflation, 
-		Type: $activeSlave.inflationType, 
+		<br>Inflation: $activeSlave.inflation,
+		Type: $activeSlave.inflationType,
 		Method: $activeSlave.inflationMethod
-		<br>Source: 
-		Milk: $activeSlave.milkSource, 
+		<br>Source:
+		Milk: $activeSlave.milkSource,
 		Cum: $activeSlave.cumSource
- 
+
 		<br><br>Anus: $activeSlave.anus,
 		Area: $activeSlave.analArea,
 		Count: $activeSlave.counter.anal
 		<br>Butt: $activeSlave.butt,
 		Type: $activeSlave.buttImplantType,
-		Plug: $activeSlave.buttplug, 
+		Plug: $activeSlave.buttplug,
 		PlugAttachment: $activeSlave.buttplugAttachment
 		<br>Mpreg: $activeSlave.mpreg
- 
+
 		<br><br>Foreskin: $activeSlave.foreskin,
 		<br>Dick: $activeSlave.dick,
 		Accessory: $activeSlave.dickAccessory
@@ -316,7 +315,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		Type: $activeSlave.ballType
 		<br>Scrotum: $activeSlave.scrotum
 		<br>Cum released: $activeSlave.counter.cum
-		
+
 		<br><br>Vagina: $activeSlave.vagina,
 		Lube: $activeSlave.vaginaLube,
 		Accessory: $activeSlave.vaginalAccessory,
@@ -325,12 +324,12 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>EggType: $activeSlave.eggType
 		<br>Ovaries: $activeSlave.ovaries
 		<br>OvaryAge: $activeSlave.ovaryAge
- 
+
 		<br><br>Labia: $activeSlave.labia,
 		<br>Clit: $activeSlave.clit,
 		Setting: $activeSlave.clitSetting
-		
-		<br>LeftLeg: $activeSlave.leg.left.type, 
+
+		<br>LeftLeg: $activeSlave.leg.left.type,
 		RightLeg: $activeSlave.leg.right.type
 		Accessory: $activeSlave.legAccessory
 		<br>Heels: $activeSlave.heels
@@ -347,50 +346,50 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>WeeklySpending: $activeSlave.porn.spending
 		<br>Prestige: $activeSlave.porn.prestige
 		PrestigeDesc: $activeSlave.porn.prestigeDesc
- 
+
 		<br><br>
 		<h2>Type</h2>
 		General: $activeSlave.porn.fame.general
 		<br>Fuckdoll: $activeSlave.porn.fame.fuckdoll
 		<br>Rape: $activeSlave.porn.fame.rape,
 		Unflinching: $activeSlave.porn.fame.unflinching
-		
-		<br>Preggo: $activeSlave.porn.fame.preggo, 
-		Pregnancy: $activeSlave.porn.fame.pregnancy, 
+
+		<br>Preggo: $activeSlave.porn.fame.preggo,
+		Pregnancy: $activeSlave.porn.fame.pregnancy,
 		Breeder: $activeSlave.porn.fame.breeder
-		
-		<br>BBW: $activeSlave.porn.fame.BBW, 
+
+		<br>BBW: $activeSlave.porn.fame.BBW,
 		Gainer: $activeSlave.porn.fame.gainer
 		<br>Stud: $activeSlave.porn.fame.stud
 		<br>Loli: $activeSlave.porn.fame.loli
-		<br>DeepThroat: $activeSlave.porn.fame.deepThroat, 
+		<br>DeepThroat: $activeSlave.porn.fame.deepThroat,
 		StruggleFuck: $activeSlave.porn.fame.struggleFuck
 		<br>Painal: $activeSlave.porn.fame.painal
 		<br>Tease: $activeSlave.porn.fame.tease
-		<br>Romantic: $activeSlave.porn.fame.romantic, 
+		<br>Romantic: $activeSlave.porn.fame.romantic,
 		Caring: $activeSlave.porn.fame.caring
 		<br>Pervert: $activeSlave.porn.fame.pervert
-		
+
 		<br>SizeQueen: $activeSlave.porn.fame.sizeQueen
-		
-		<br>CumSlut: $activeSlave.porn.fame.cumSlut, 
+
+		<br>CumSlut: $activeSlave.porn.fame.cumSlut,
 		<br>CumAddict: $activeSlave.porn.fame.cumAddict
-		<br>Anal: $activeSlave.porn.fame.anal, 
+		<br>Anal: $activeSlave.porn.fame.anal,
 		AnalAddict: $activeSlave.porn.fame.analAddict
 		<br>AttentionWhore: $activeSlave.porn.fame.attentionWhore
-		
-		<br>Abusive: $activeSlave.porn.fame.abusive, 
-		Malicious: $activeSlave.porn.fame.malicious, 
-		<br>Neglectful: $activeSlave.porn.fame.neglectful, 
+
+		<br>Abusive: $activeSlave.porn.fame.abusive,
+		Malicious: $activeSlave.porn.fame.malicious,
+		<br>Neglectful: $activeSlave.porn.fame.neglectful,
 		SelfHating: $activeSlave.porn.fame.selfHating
-		
-		<br>BreastGrowth: $activeSlave.porn.fame.breastGrowth, 
+
+		<br>BreastGrowth: $activeSlave.porn.fame.breastGrowth,
 		Boobs: $activeSlave.porn.fame.boobs
 		<br>Humiliation: $activeSlave.porn.fame.humiliation
-		
-		<br>Dom: $activeSlave.porn.fame.dom, 
+
+		<br>Dom: $activeSlave.porn.fame.dom,
 		Sub: $activeSlave.porn.fame.sub
-		<br>Sadist: $activeSlave.porn.fame.sadist, 
+		<br>Sadist: $activeSlave.porn.fame.sadist,
 		Masochist: $activeSlave.porn.fame.masochist
 		<br>
 	</div>
@@ -398,7 +397,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 
 <div id="Impants_Piercings_Tattoos" class="tabcontent">
 	<div class="content">
-	
+
 		<h2>Impants</h2>
 		Height: $activeSlave.heightImplant
 		<br>Ears: $activeSlave.earImplant
@@ -415,7 +414,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>Intelligence: $activeSlave.intelligenceImplant
 		<br>Cervix: $activeSlave.cervixImplant
 		<br>Butt: $activeSlave.buttImplant
-		
+
 		<br><br> <h2>Piercings</h2>
 		Ears: $activeSlave.earPiercing
 		<br>Face: $activeSlave.lipsPiercing
@@ -430,7 +429,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>Vagina: $activeSlave.vaginaPiercing
 		<br>Dick: $activeSlave.dickPiercing
 		<br>Anus: $activeSlave.anusPiercing
-		
+
 		<br><br> <h2>Tattoos</h2>
 		Custom: $activeSlave.custom.tattoo
 		<br>Shoulders: $activeSlave.shouldersTat
@@ -458,20 +457,20 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		Mother: $activeSlave.mother
 		<br>Daughters: $activeSlave.daughters,
 		Sisters: $activeSlave.sisters
-		<br>Fathered: slaves: $activeSlave.counter.slavesFathered, 
+		<br>Fathered: slaves: $activeSlave.counter.slavesFathered,
 		PCChildren: $activeSlave.counter.PCChildrenFathered
-		<br>KnockedUp: slaves: $activeSlave.counter.slavesKnockedUp, 
+		<br>KnockedUp: slaves: $activeSlave.counter.slavesKnockedUp,
 		<br>PC: $activeSlave.counter.PCKnockedUp
 		<br>labor: $activeSlave.labor,
 		Count: $activeSlave.counter.laborCount
 		<br>Births: $activeSlave.counter.births,
 		Total: $activeSlave.counter.birthsTotal
 		<br>PrematureBirth: $activeSlave.prematureBirth
-		
-		<br> <h2>Mods</h2> 
-		NCS: $activeSlave.geneMods.NCS, 
-		RapidCellGrowth: $activeSlave.geneMods.rapidCellGrowth, 
-		
+
+		<br> <h2>Mods</h2>
+		NCS: $activeSlave.geneMods.NCS,
+		RapidCellGrowth: $activeSlave.geneMods.rapidCellGrowth,
+
 		<br><br> <h2>Relationships</h2>
 		<br>Rules: $activeSlave.rules.relationship
 		<br>Relation: $activeSlave.relation,
@@ -481,7 +480,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>Rivalry: $activeSlave.rivalry,
 		Target: $activeSlave.rivalryTarget
 		<br>SubTarget: $activeSlave.subTarget
-		
+
 		<br><br>
 		<h2>Genetic Quirks</h2>
 		Gigantism: $activeSlave.geneticQuirks.gigantism,
@@ -489,24 +488,24 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		<br>Fertility: $activeSlave.geneticQuirks.fertility,
 		Hyper: $activeSlave.geneticQuirks.hyperFertility
 		<br>Superfetation: $activeSlave.geneticQuirks.superfetation
-		
+
 		<br>Dwarfism: $activeSlave.geneticQuirks.dwarfism
 		<br>Pface: $activeSlave.geneticQuirks.pFace
 		<br>Uface: $activeSlave.geneticQuirks.uFace
 		<br>Albinism: $activeSlave.geneticQuirks.albinism
 		<br>RearLipedema: $activeSlave.geneticQuirks.rearLipedema
 		<br>WellHung: $activeSlave.geneticQuirks.wellHung
-		<br>Weight: 
-		Gain: $activeSlave.geneticQuirks.wGain, 
+		<br>Weight:
+		Gain: $activeSlave.geneticQuirks.wGain,
 		Loss: $activeSlave.geneticQuirks.wLoss
 		<br>Androgyny: $activeSlave.geneticQuirks.androgyny
-		
+
 		<br><br>
 		<h2>Pregmancy</h2>
-		<br>Week: $activeSlave.pregWeek, 
-		isPreg: $activeSlave.preg, 
-		Source: $activeSlave.pregSource, 
-		Type: $activeSlave.pregType, 
+		<br>Week: $activeSlave.pregWeek,
+		isPreg: $activeSlave.preg,
+		Source: $activeSlave.pregSource,
+		Type: $activeSlave.pregType,
 		Adaptation: $activeSlave.pregAdaptation
 		<br>Control: $activeSlave.pregControl
 		<br>PeakFertility: $activeSlave.fertPeak
@@ -517,7 +516,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 	<div class="content">
 		<br>Recruiter: $activeSlave.recruiter
 		<br>Deadliness <<print Deadliness($activeSlave)>>
-		<br>Count: Penetrative: $activeSlave.counter.penetrative, 
+		<br>Count: Penetrative: $activeSlave.counter.penetrative,
 		Public: $activeSlave.counter.publicUse
 		<br>pitKills: $activeSlave.counter.pitKills
 	</div>
diff --git a/src/player/js/enslavePlayer.js b/src/player/js/enslavePlayer.js
index 03b3d443f14b04a2b15046f656df50e899d66159..2fba484bc0048b868b95928d95b541ba75c9089b 100644
--- a/src/player/js/enslavePlayer.js
+++ b/src/player/js/enslavePlayer.js
@@ -1,5 +1,6 @@
 /* This function adds the missing slave object variables to the player object and prunes player exclusive variables. You can only imagine what this is used for. */
-window.convertPlayerToSlave = function(slave, badEnd) {
+/* This needs to find some way to survive refresh/newgame without showing up on all saves */
+window.convertPlayerToSlave = function(slave, badEnd = "boring") {
 	/* add slave variables */
 	slave.skill.vaginal = 100;
 	slave.skill.oral = 100;
@@ -71,7 +72,6 @@ window.convertPlayerToSlave = function(slave, badEnd) {
 	slave.canRecruit = 0;
 	slave.choosesOwnAssignment = 0;
 	slave.assignment = "rest";
-	slave.assignmentVisible = 1;
 	slave.sentence = 0;
 	slave.training = 0;
 	slave.toyHole = "all her holes";
@@ -158,5 +158,16 @@ window.convertPlayerToSlave = function(slave, badEnd) {
 
 	/* badEnd will be used here to apply unique effects depending on the ending */
 
+	switch (badEnd) {
+		case "notSupreme":
+			slave.boobsTat = `'Subhuman ${capFirstChar(slave.race)}' is printed across $his chest.`;
+			break;
+		case "subjugated":
+			slave.stampTat = `'${capFirstChar(slave.race)} Fuckmeat' is printed above $his butt.`;
+			break;
+		default:
+			slave.buttTat = `'Product of ${V.arcologies[0].name}.' is stamped on $his left buttock.`;
+	}
+
 	return slave;
 };
diff --git a/src/player/js/playerJS.js b/src/player/js/playerJS.js
index f6791de45121185ea1e9833a23f1afd5b0c996f4..494c16b95e70fa4e98e4e26792a4f8b72c8fbf57 100644
--- a/src/player/js/playerJS.js
+++ b/src/player/js/playerJS.js
@@ -624,3 +624,31 @@ window.PCTitle = function PCTitle() {
 		V.PCTitle += titles.join(", ");
 	}
 };
+
+/**
+ * @param {string} input
+ * @param {number} [increase=1]
+ * @returns {string}
+ */
+window.IncreasePCSkills = function(input, increase = 1) {
+	const player = State.variables.PC;
+	const oldSkill = player.skill[input];
+	player.skill[input] += increase;
+	if (oldSkill <= 10) {
+		if (player.skill[input] >= 10) {
+			return `<span class="green"> <br>You have gained basic knowledge in ${input}.</span>`;
+		}
+	} else if (oldSkill <= 30) {
+		if (player.skill[input] >= 30) {
+			return `<span class="green"> <br>You have gained some knowledge in ${input}.</span>`;
+		}
+	} else if (oldSkill <= 60) {
+		if (player.skill[input] >= 60) {
+			return `<span class="green"> <br>You have become an expert in ${input}.</span>`;
+		}
+	} else if (oldSkill < 100) {
+		if (player.skill[input] >= 100) {
+			return `<span class="green"> <br>You have mastered ${input}.</span>`;
+		}
+	}
+};
diff --git a/src/player/pcSurgeryDegradation.tw b/src/player/pcSurgeryDegradation.tw
index dbd422059b67ee39d4f50d3123b5784657a78946..4dc627cad3034dc0615f9548977d99be9226e428 100644
--- a/src/player/pcSurgeryDegradation.tw
+++ b/src/player/pcSurgeryDegradation.tw
@@ -27,7 +27,7 @@
 	After a few hours, you awaken in the recovery wing with a sore chest. <<if $PC.belly >= 10000>>Struggling to sit<<else>>Sitting<</if>> up, you immediately notice how much lighter your breasts are. Pulling the covers off yourself, you observe your implant free boobs in the mirror-covered wall across from your bed. "So do you like them?", asks the surgeon's assistant, seating _himselfU behind you and wrapping _hisU hands around to your natural breasts. "We made sure to tighten them up a bit, get rid of that sag from not having the silicone pouch in them anymore." _HeU begins groping your breasts, feeling for any oddities. "I know you're still a little sore, but bear with it." _HeU moves on to your nipples and begins teasing them. <<if $PC.lactation > 0>>_HeU lets out a surprised squeak when a gush of milk escapes your breasts and a moan escapes your lips. "<<if $PC.pregKnown == 1>>Should have expected that with the pregnancy and all.<<else>>You did recently have a child didn't you? Or have you just been enjoying your nipples too much?<</if>> Either way, this is a good thing. Your breasts work."<</if>> You can't help but moan under your building arousal as _heU massages and teases your breasts. "Enjoying yourself are we? Let me finish you off." _HeU sneaks a hand down to your <<if $PC.dick != 0>>stiff prick and begins stroking its length, quickly bringing you to orgasm and relieving you of your built up tension.<<else>>stiff clit and begins teasing it as well, quickly bringing you to orgasm and relieving you of your built up tension.<</if>> _HeU states, while licking _hisU fingers, "I always did enjoy the way you taste. Feel free to rest as long as you need before departing. If you need, or want, me, I'll be around." Satisfied, you lie back down to sleep off the rest of the anesthesia before returning to your arcology.
 
 <<case "breastShrinkage">>
-	After a few hours, you awaken in the recovery wing with a sore chest. <<if $PC.belly >= 10000>>Struggling to sit<<else>>Sitting<</if>> up, you immediately notice how much lighter your breasts are. Pulling the covers off yourself, you observe your 
+	After a few hours, you awaken in the recovery wing with a sore chest. <<if $PC.belly >= 10000>>Struggling to sit<<else>>Sitting<</if>> up, you immediately notice how much lighter your breasts are. Pulling the covers off yourself, you observe your
 	<<if $PC.boobs >= 1400>>
 		smaller, but still ridiculously huge,
 	<<elseif $PC.boobs >= 1200>>
diff --git a/src/pregmod/analyzePlayerPregnancy.tw b/src/pregmod/analyzePlayerPregnancy.tw
index 5fe117839806a79222848748dfac99d369624b65..4e34c0ea273083d9068855f7df913e1dbecdbcf3 100644
--- a/src/pregmod/analyzePlayerPregnancy.tw
+++ b/src/pregmod/analyzePlayerPregnancy.tw
@@ -81,11 +81,21 @@
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Father ID: $PC.womb[_ap].genetics.father
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				Father Name: $PC.womb[_ap].genetics.fatherName
+				Father Name:
+				<<if ndef $PC.womb[_ap].genetics.fatherName>>
+					name not registered
+				<<else>>
+					$PC.womb[_ap].genetics.fatherName
+				<</if>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Mother ID: $PC.womb[_ap].genetics.mother
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				Mother Name: $PC.womb[_ap].genetics.motherName
+				Mother Name:
+				<<if ndef $PC.womb[_ap].genetics.motherName>>
+					name not registered
+				<<else>>
+					$PC.womb[_ap].genetics.motherName
+				<</if>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Nationality: $PC.womb[_ap].genetics.nationality
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw
index 133b7ad07bf4704b09da1e5bce2e92544985ab68..e7eef95b97f76f070718685f4bed526deb7145c6 100644
--- a/src/pregmod/analyzePregnancy.tw
+++ b/src/pregmod/analyzePregnancy.tw
@@ -93,11 +93,21 @@
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Father ID: $activeSlave.womb[_ap].genetics.father
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				Father Name: $activeSlave.womb[_ap].genetics.fatherName
+				Father Name:
+				<<if ndef $activeSlave.womb[_ap].genetics.fatherName>>
+					name not registered
+				<<else>>
+					$activeSlave.womb[_ap].genetics.fatherName
+				<</if>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Mother ID: $activeSlave.womb[_ap].genetics.mother
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				Mother Name: $activeSlave.womb[_ap].genetics.motherName
+				Mother Name:
+				<<if ndef $activeSlave.womb[_ap].genetics.motherName>>
+					name not registered
+				<<else>>
+					$activeSlave.womb[_ap].genetics.motherName
+				<</if>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				Nationality: $activeSlave.womb[_ap].genetics.nationality
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/pregmod/cloningWorkaround.tw b/src/pregmod/cloningWorkaround.tw
index c306b063c884ea9adfc95abc2bacf8677526a52f..fc24e429285003b89b71fdab416e6773eebf4ef5 100644
--- a/src/pregmod/cloningWorkaround.tw
+++ b/src/pregmod/cloningWorkaround.tw
@@ -13,11 +13,11 @@
 <<for _cw = 0; _cw < $slaves.length; _cw++>>
 	<<capture _cw>>
 		<<set _name = SlaveFullName($slaves[_cw])>>
-        <<if $donatrix !=  "Undecided" && $donatrix.ID == $slaves[_cw].ID>>
-        <div>//_name//</div>
-        <<else>>
+		<<if $donatrix != "Undecided" && $donatrix.ID == $slaves[_cw].ID>>
+		<div>//_name//</div>
+		<<else>>
 		<div>[[_name|Cloning Workaround][$donatrix = $slaves[_cw]]]</div>
-        <</if>>
+		<</if>>
 	<</capture>>
 <</for>>
 </div>
@@ -28,13 +28,13 @@
 	<<capture _cw1>>
 		<<if ($slaves[_cw1].ovaries > 0 || $slaves[_cw1].mpreg > 0) && isSlaveAvailable($slaves[_cw1]) && $slaves[_cw1].preg >= 0 && $slaves[_cw1].preg < 4 && $slaves[_cw1].pregWeek >= 0 && $slaves[_cw1].pubertyXX == 1 && $slaves[_cw1].pregType < 12 && $slaves[_cw1].bellyImplant == -1 && $slaves[_cw1].broodmother == 0 && $slaves[_cw1].inflation <= 2 && $slaves[_cw1].physicalAge < 70>>
 			<<set _name2 = SlaveFullName($slaves[_cw1])>>
-            <div>
-            <<if $receptrix !=  "Undecided" && $receptrix.ID == $slaves[_cw1].ID>>
-            //_name2//
-            <<else>>
-			[[_name2|Cloning Workaround][$receptrix = $slaves[_cw1]]] <<if $slaves[_cw1].pregType >= 4>>//Using a slave carrying multiples is unadvisable//<</if>>
-            <</if>>
-            </div>
+			<div>
+			<<if $receptrix != "Undecided" && $receptrix.ID == $slaves[_cw1].ID>>
+				//_name2//
+			<<else>>
+				[[_name2|Cloning Workaround][$receptrix = $slaves[_cw1]]] <<if $slaves[_cw1].pregType >= 4>>//Using a slave carrying multiples is inadvisable//<</if>>
+			<</if>>
+			</div>
 			<<set _eligibility = 1>>
 		<</if>>
 	<</capture>>
@@ -45,12 +45,12 @@
 
 <<if $PC.vagina != -1 && $PC.preg >= 0 && $PC.preg < 4 && $PC.pregType < 8 && $PC.physicalAge < 70>>
 	<div>
-    <<if $receptrix !=  "Undecided" && $receptrix.ID == $PC.ID>>
-    //Yourself//
-    <<else>>
+	<<if $receptrix != "Undecided" && $receptrix.ID == $PC.ID>>
+	//Yourself//
+	<<else>>
 	[[Use your own womb|Cloning Workaround][$receptrix = $PC]]
-    <</if>>
-    </div>
+	<</if>>
+	</div>
 <</if>>
 </div>
 <h2>Implantation</h2>
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index 0ca9c6c8b7d5db41c77337329aa3a044ad6f5669..201ca748aa308d61e59ad406d14a8093dd67c4c2 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -10,7 +10,7 @@
 <</if>>
 
 You pause for a moment from your busy day to day life to return to <<if $masterSuite != 0>>$masterSuiteName<<else>>your room<</if>> to consider some things about yourself.
-<br>You take yourself in a full length mirror. You are <<if $PC.race == "amerindian" || $PC.race == "asian" || $PC.race == "indo-aryan">>an<<else>>a<</if>> $PC.race <<if $PC.dick != 0 && $PC.vagina != -1>>futanari<<elseif $PC.dick != 0>>man<<else>>woman<</if>> with<<if $PC.markings == "freckles">> freckled<<elseif $PC.markings == "heavily freckled">> heavily freckled<</if>> <<print $PC.skin>> skin, $PC.hColor hair, $PC.eye.origColor eyes and a perfect $PC.faceShape face.
+<br>You take yourself in a full length mirror. You are <<if $PC.race == "amerindian" || $PC.race == "asian" || $PC.race == "indo-aryan">>an<<else>>a<</if>> $PC.race <<if $PC.dick != 0 && $PC.vagina != -1>>futanari<<elseif $PC.dick != 0>>man<<else>>woman<</if>> with<<if $PC.markings == "freckles">> freckled<<elseif $PC.markings == "heavily freckled">> heavily freckled<</if>> <<print $PC.skin>> skin, $PC.hColor hair, $PC.eye.right.iris eyes and a perfect $PC.faceShape face.
 <<if $PC.actualAge >= 65>>
 	You're @@.orange;$PC.actualAge@@ and definitely feeling it.<<if $PC.visualAge > $PC.actualAge>> You've taken measures to @@.lime;look an older $PC.visualAge,@@ though perhaps it might be time to undo it.<<elseif $PC.visualAge < $PC.actualAge>> You've taken measures to @@.lime;look a younger $PC.visualAge,@@ now if only your body agreed with your looks.<</if>>
 <<elseif $PC.actualAge >= 50>>
@@ -34,20 +34,20 @@ Around back,
 <br>You have a number of contact lenses in various colors available.
 <br>&nbsp;&nbsp;&nbsp;
 	<<if $PC.eye.origColor == $PC.eye.right.iris>>You aren't wearing contacts to change the color of your eyes.<<else>>[[Remove lenses|Manage Personal Affairs][$PC.eye.left.iris = $PC.eye.origColor, $PC.eye.right.iris = $PC.eye.origColor]]<</if>>
-	<<if $PC.eye.origColor != "blue">>| [[Blue|Manage Personal Affairs][$PC.eye.left.iris = "blue", $PC.eye.right.iris = "blue"]]<</if>>
-	<<if $PC.eye.origColor != "black">>| [[Black|Manage Personal Affairs][$PC.eye.left.iris = "black", $PC.eye.right.iris = "black"]]<</if>>
-	<<if $PC.eye.origColor != "brown">>| [[Brown|Manage Personal Affairs][$PC.eye.left.iris = "brown", $PC.eye.right.iris = "brown"]]<</if>>
-	<<if $PC.eye.origColor != "green">>| [[Green|Manage Personal Affairs][$PC.eye.left.iris = "green", $PC.eye.right.iris = "green"]]<</if>>
-	<<if $PC.eye.origColor != "turquoise">>| [[Turquoise|Manage Personal Affairs][$PC.eye.left.iris = "turquoise", $PC.eye.right.iris = "turquoise"]]<</if>>
-	<<if $PC.eye.origColor != "sky-blue">>| [[Sky-Blue|Manage Personal Affairs][$PC.eye.left.iris = "sky-blue", $PC.eye.right.iris = "sky-blue"]]<</if>>
-	<<if $PC.eye.origColor != "hazel">>| [[Hazel|Manage Personal Affairs][$PC.eye.left.iris = "hazel", $PC.eye.right.iris = "hazel"]]<</if>>
-	<<if $PC.eye.origColor != "pale-grey">>| [[Pale-Grey|Manage Personal Affairs][$PC.eye.left.iris = "pale-grey", $PC.eye.right.iris = "pale-grey"]]<</if>>
-	<<if $PC.eye.origColor != "white">>| [[White|Manage Personal Affairs][$PC.eye.left.iris = "white", $PC.eye.right.iris = "white"]]<</if>>
-	<<if $PC.eye.origColor != "pink">>| [[Pink|Manage Personal Affairs][$PC.eye.left.iris = "pink", $PC.eye.right.iris = "pink"]]<</if>>
-	<<if $PC.eye.origColor != "amber">>| [[Amber|Manage Personal Affairs][$PC.eye.left.iris = "amber", $PC.eye.right.iris = "amber"]]<</if>>
-	<<if $PC.eye.origColor != "red">>| [[Red|Manage Personal Affairs][$PC.eye.left.iris = "red", $PC.eye.right.iris = "red"]]<</if>>
-	<<if $PC.eye.origColor != "yellow">>| [[Yellow|Manage Personal Affairs][$PC.eye.left.iris = "yellow", $PC.eye.right.iris = "yellow"]]<</if>>
-	<<if $PC.eye.origColor != "orange">>| [[Orange|Manage Personal Affairs][$PC.eye.left.iris = "orange", $PC.eye.right.iris = "orange"]]<</if>>
+	<<if $PC.eye.right.iris != "blue">>| [[Blue|Manage Personal Affairs][$PC.eye.left.iris = "blue", $PC.eye.right.iris = "blue"]]<</if>>
+	<<if $PC.eye.right.iris != "black">>| [[Black|Manage Personal Affairs][$PC.eye.left.iris = "black", $PC.eye.right.iris = "black"]]<</if>>
+	<<if $PC.eye.right.iris != "brown">>| [[Brown|Manage Personal Affairs][$PC.eye.left.iris = "brown", $PC.eye.right.iris = "brown"]]<</if>>
+	<<if $PC.eye.right.iris != "green">>| [[Green|Manage Personal Affairs][$PC.eye.left.iris = "green", $PC.eye.right.iris = "green"]]<</if>>
+	<<if $PC.eye.right.iris != "turquoise">>| [[Turquoise|Manage Personal Affairs][$PC.eye.left.iris = "turquoise", $PC.eye.right.iris = "turquoise"]]<</if>>
+	<<if $PC.eye.right.iris != "sky-blue">>| [[Sky-Blue|Manage Personal Affairs][$PC.eye.left.iris = "sky-blue", $PC.eye.right.iris = "sky-blue"]]<</if>>
+	<<if $PC.eye.right.iris != "hazel">>| [[Hazel|Manage Personal Affairs][$PC.eye.left.iris = "hazel", $PC.eye.right.iris = "hazel"]]<</if>>
+	<<if $PC.eye.right.iris != "pale-grey">>| [[Pale-Grey|Manage Personal Affairs][$PC.eye.left.iris = "pale-grey", $PC.eye.right.iris = "pale-grey"]]<</if>>
+	<<if $PC.eye.right.iris != "white">>| [[White|Manage Personal Affairs][$PC.eye.left.iris = "white", $PC.eye.right.iris = "white"]]<</if>>
+	<<if $PC.eye.right.iris != "pink">>| [[Pink|Manage Personal Affairs][$PC.eye.left.iris = "pink", $PC.eye.right.iris = "pink"]]<</if>>
+	<<if $PC.eye.right.iris != "amber">>| [[Amber|Manage Personal Affairs][$PC.eye.left.iris = "amber", $PC.eye.right.iris = "amber"]]<</if>>
+	<<if $PC.eye.right.iris != "red">>| [[Red|Manage Personal Affairs][$PC.eye.left.iris = "red", $PC.eye.right.iris = "red"]]<</if>>
+	<<if $PC.eye.right.iris != "yellow">>| [[Yellow|Manage Personal Affairs][$PC.eye.left.iris = "yellow", $PC.eye.right.iris = "yellow"]]<</if>>
+	<<if $PC.eye.right.iris != "orange">>| [[Orange|Manage Personal Affairs][$PC.eye.left.iris = "orange", $PC.eye.right.iris = "orange"]]<</if>>
 	<br>
 	<<if $PC.eye.right.pupil == "circular">>You aren't wearing contacts to change the shape of your pupils.<<else>>[[Remove lenses|Manage Personal Affairs][$PC.eye.left.pupil = "circular, $PC.eye.right.pupil != "circular"<</if>>
 	<<if $PC.eye.right.pupil != "catlike">>| [[Catlike|Manage Personal Affairs][$PC.eye.left.pupil = "catlike", $PC.eye.right.pupil != "catlike"]]<</if>>
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index 1356003f194c17e8cf05d2a854f9e7d126c2bd39..358a8498d2ffc29c33d722e06e384e7ca6330cb7 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -1110,13 +1110,20 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 	<<set $activeSlave.trust -= 10>>
 	<<setNonlocalPronouns $seeDicks>>
 	<<replace "#result">>
-		You tell $him that it's in $his interests to be a good $girl. $He smiles happily, taking it as a compliment. You point behind $him; $he turns, and beholds a live feed from $arcadeName. $He gazes at the row of butts sticking out of the wall at dick height, not quite realizing what $he's seeing<<if canAchieveErection($activeSlave)>>, but becoming stiff at the sight of all the holes<</if>>. Then $he notices that there are citizens pumping away in front of two of the butts, and $he understands. As $he watches, aroused, first one citizen and then the other finishes and steps away. The first arcade inmate's <<if $seeDicks != 100>>pussy<<else>>butt<</if>> is left looking sore until $arcadeName's systems cover _himU for a quick cleaning, and the second inmate's asshole <<if $seeDicks != 0>>has obviously seen severe use, since the poor _girlU doesn't have a pussy to spread the load<<else>>is loose enough that the machines have to clean up the cum it drools onto the floor<</if>>. $activeSlave.slaveName lets out a cheer and turns to you, @@.hotpink;eagerly awaiting the day $he gets to go to $arcadeName and play with the holes.@@ It seems $he missed the point.
+		You tell $him that it's in $his interests to be a good $girl. $He smiles happily, taking it as a compliment. You <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from $arcadeName.
+		<<if canSee($activeSlave)>>
+			$He gazes at the row of butts sticking out of the wall at dick height, not quite realizing what $he's seeing<<if canAchieveErection($activeSlave)>>, but becoming stiff at the sight of all the holes<</if>>. Then $he notices that there are citizens pumping away in front of two of the butts, and $he understands.
+		<<elseif canHear($activeSlave)>>
+			$He listens to the wet sounds of flesh on flesh, not quite realizing what $he's hearing<<if canAchieveErection($activeSlave)>>, but becoming stiff at the sound of all the sex<</if>>. Then $he picks out the sound of your citizens grunting and moaning as they pound away, and $he understands.
+		<<else>>
+			Such a broadcast would normally be pointless for a senseless slave like $activeSlave.slaveName, but you've taken precautions to accommodate such slaves. The wallscreen is connected to the heating, air conditioning, and sprinkler systems in order to accurately replicate the feeling of standing in front of a row of restrained public sex slaves, so the meaning of the scene in front of $him is not lost<<if canAchieveErection($activeSlave)>>, especially judging from the stiffness of $his prick<</if>>.
+		<</if>>
+		As $he <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>stands there<</if>>, aroused, first one citizen and then the other finishes and steps away. The first arcade inmate's <<if $seeDicks != 100>>pussy<<else>>butt<</if>> is left looking sore until $arcadeName's systems cover _himU for a quick cleaning, and the second inmate's asshole <<if $seeDicks != 0>>has obviously seen severe use, since the poor _girlU doesn't have a pussy to spread the load<<else>>is loose enough that the machines have to clean up the cum it drools onto the floor<</if>>. $activeSlave.slaveName lets out a cheer and turns to you, @@.hotpink;eagerly awaiting the day $he gets to go to $arcadeName and play with the holes.@@ It seems $he missed the point.
 	<</replace>>
 	<</link>>
 	<<if ($arcade > $ArcadeiIDs.length) || ($arcadeUpgradeFuckdolls == 2)>>
 		<br><<link "Send $him straight to the Arcade">>
 		<<= assignJob($activeSlave, "be confined in the arcade")>>
-		<<set $activeSlave.assignmentVisible = 0>>
 		<<set $activeSlave.choosesOwnAssignment = 0>>
 		<<replace "#result">>
 			You order <<if $HeadGirl == 0>>another slave<<else>>$HeadGirl.slaveName<</if>> to get $activeSlave.slaveName set up in $arcadeName. The new slave does not know what $arcadeName is, not really, and $he doesn't know what being set up there means, either. $He'll be confined inside a small space, not too different from the tube $he was grown in. It's only when the restraints lock into place that $he'll understand $his doom. $His mouth will be forced open and presented at one wall of $arcadeName, and $his ass will protrude from its other side, $his holes available for public relief at both ends. $He'll probably refuse to believe the truth, until the first cockhead enters $his mouth<<if $activeSlave.vagina > -1>>, parts $his pussylips,<</if>> or presses against $his poor anus.
@@ -1164,7 +1171,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<if canSee($activeSlave)>>
 			allowed to stand, $he immediately turns $his back to one of the studio's full length mirrors and cranes around to gawk at the picture just over $his butt. $He wiggles $his rear and giggles at the drawing moving along with it.
 		<<else>>
-			you touch the are of skin around $his new tattoo, $activeSlave.slaveName, apparently finding this ticklish, starts into an uncontrollable giggling fit that you are unable to snap $him out of for a few minutes.
+			you touch the area of skin around $his new tattoo, $activeSlave.slaveName, apparently finding this ticklish, starts into an uncontrollable giggling fit that you are unable to snap $him out of for a few minutes.
 		<</if>>
 		It seems $he @@.hotpink;enjoys it.@@
 		<<set $activeSlave.devotion += 5>>
@@ -1180,7 +1187,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 	<<set $activeSlave.hLength = 0>>
 	<<set $activeSlave.trust -= 50>>
 	<<replace "#result">>
-		You escort $him to the auto salon running your fingers through $his long hair the entire way. $He sighs contently under your patting until you reach the salon. You strap $him in and set the auto salon to shave. $He <<if canSee($activeSlave)>>looks around frantically<<else>>trembles with fear<</if>> as the manipulators with their buzzing shears descend menacingly. As they run quickly back and forth across $his head, $he begins to sob, obviously @@.gold;fearing@@ the strange device. When $he catches sight of $his bald head, @@.mediumorchid;$his face twists with revulsion.@@ $He didn't seem to take it well.
+		You escort $him to the auto salon running your fingers through $his long hair the entire way. $He sighs contently under your patting until you reach the salon. You strap $him in and set the auto salon to shave. $He <<if canSee($activeSlave)>>looks around frantically<<else>>trembles with fear<</if>> as the manipulators with their buzzing shears descend menacingly. As they run quickly back and forth across $his head, $he begins to sob, obviously @@.gold;fearing@@ the strange device. When $he <<if canSee($activeSlave)>>catches sight of<<else>>feels the air on<</if>> $his bald head, @@.mediumorchid;$his face twists with revulsion.@@ $He didn't seem to take it well.
 	<</replace>>
 	<</link>>
 <</if>>
@@ -1290,7 +1297,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.health -= 10>>
 		<<set $activeSlave.boobShape = "normal">>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new ridiculous fake tits. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of giant breasts hanging from $his stretched chest and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger, even though $he is already struggling to keep upright. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new ridiculous fake tits. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of giant breasts hanging from $his stretched chest and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger, even though $he is already struggling to keep upright. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 		<br><<link "Implant a massive pair of 7500cc string implants in $his chest">>
@@ -1303,7 +1310,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.health -= 10>>
 		<<set $activeSlave.boobShape = "normal">>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new ridiculous fake tits. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of monster breasts straining $his chest and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing, despite $his near inability to stay upright. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new ridiculous fake tits. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of monster breasts straining $his chest and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing, despite $his near inability to stay upright. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<elseif $activeSlave.boobs < 1000>>
@@ -1316,7 +1323,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.health -= 10>>
 		<<set $activeSlave.boobShape = "normal">>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new fake balloons. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big breasts hanging from $his chest and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new fake balloons. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big breasts hanging from $his chest and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 		<br><<link "Implant a heavy pair of 1500cc string implants in $his chest">>
@@ -1329,7 +1336,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.health -= 10>>
 		<<set $activeSlave.boobShape = "normal">>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new fake balloons. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big breasts hanging from $his chest and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new fake balloons. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big breasts hanging from $his chest and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<else>>
@@ -1370,7 +1377,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.health -= 10>>
 		<<run SetBellySize($activeSlave)>>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new bulbous middle. $He's @@.hotpink;deliriously happy@@ that $he has $his own round belly and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> you can make it bigger. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new bulbous middle. $He's @@.hotpink;deliriously happy@@ that $he has $his own round belly and @@.mediumaquamarine;bounces cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> you can make it bigger. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 	<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 <</if>>
@@ -1440,7 +1447,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 			<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 			<<set $activeSlave.health -= 40>>
 			<<replace "#result">>
-				You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his wide hips, especially since $he can't figure out how to roll over with them. $He's @@.hotpink;deliriously happy@@ that $he is ridiculously wide and @@.mediumaquamarine;wiggles $his door-jammers cheerfully@@ at you whenever $he gets the chance. Since the surgery was invasive, @@.red;$his health has been greatly affected.@@
+				You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his wide hips, especially since $he can't figure out how to roll over with them. $He's @@.hotpink;deliriously happy@@ that $he is ridiculously wide and @@.mediumaquamarine;wiggles $his door-jammers cheerfully@@ at you whenever $he gets the chance. Since the surgery was invasive, @@.red;$his health has been greatly affected.@@
 			<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<elseif $activeSlave.hips < 2>>
@@ -1452,7 +1459,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 			<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 			<<set $activeSlave.health -= 40>>
 			<<replace "#result">>
-				You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his wide hips. $He's @@.hotpink;deliriously happy@@ that $he is wider than ever and @@.mediumaquamarine;wiggles $his hips cheerfully@@ at you whenever $he gets the chance. Since the surgery was invasive, @@.red;$his health has been greatly affected.@@
+				You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his wide hips. $He's @@.hotpink;deliriously happy@@ that $he is wider than ever and @@.mediumaquamarine;wiggles $his hips cheerfully@@ at you whenever $he gets the chance. Since the surgery was invasive, @@.red;$his health has been greatly affected.@@
 			<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<else>>
@@ -1496,7 +1503,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<set $activeSlave.health -= 10>>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new ridiculous fake ass, not that $he has much choice, since it has $him pinned to the bed. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of giant butt cheeks ballooning from $his bottom and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger, even though $he is already struggling to escape from under them. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new ridiculous fake ass, not that $he has much choice, since it has $him pinned to the bed. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of giant butt cheeks ballooning from $his bottom and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger, even though $he is already struggling to escape from under them. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<elseif $activeSlave.butt < 6>>
@@ -1508,7 +1515,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<set $activeSlave.health -= 10>>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new fake bottom. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big butt cheeks hanging from $his rear and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new fake bottom. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big butt cheeks hanging from $his rear and @@.mediumaquamarine;hopes@@ you have plans to make them even bigger. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 		<br><<link "Implant a heavy pair of string implants in $his rear">>
@@ -1520,7 +1527,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<set $activeSlave.health -= 10>>
 		<<replace "#result">>
-			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't keep $his hands off $his new fake bottom. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big butt cheeks hanging from $his rear and @@.mediumaquamarine;bounces them cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing. As with all surgery @@.red;$his health has been slightly affected.@@
+			You escort $him to the remote surgery, strap $him in, and put $him under. When $he awakes, $he can't <<if hasAnyArms($activeSlave)>>keep $his hand<<if hasBothArms($activeSlave)>>s<</if>> off<<else>>stop shaking around<</if>> $his new fake bottom. $He's @@.hotpink;deliriously happy@@ that $he has $his own pair of big butt cheeks hanging from $his rear and @@.mediumaquamarine;bounces them cheerfully@@ when $he <<if canHear($activeSlave)>>hears<<else>>discovers<</if>> they'll keep growing. As with all surgery @@.red;$his health has been slightly affected.@@
 		<</replace>>
 		<</link>> //This option costs <<print cashFormat($surgeryCost)>>//
 	<<else>>
diff --git a/src/pregmod/ovaTransplantWorkaround.tw b/src/pregmod/ovaTransplantWorkaround.tw
index 9555616dc8b2f96dc94b5b58e3ef01e57f30c2de..ec57a9651686d6f2558bf223a844b0cb53bdea6a 100644
--- a/src/pregmod/ovaTransplantWorkaround.tw
+++ b/src/pregmod/ovaTransplantWorkaround.tw
@@ -14,7 +14,7 @@ __Select a slave to serve as the host__
 	<<capture _otw>>
 		<<if ($donatrix.ID != $slaves[_otw].ID && $slaves[_otw].ovaries > 0 || $slaves[_otw].mpreg > 0) && isSlaveAvailable($slaves[_otw]) && $slaves[_otw].preg >= 0 && $slaves[_otw].preg < $slaves[_otw].pregData.normalBirth/10 && $slaves[_otw].pregWeek >= 0 && $slaves[_otw].pubertyXX == 1 && $slaves[_otw].pregType < 12 && $slaves[_otw].bellyImplant == -1 && $slaves[_otw].broodmother == 0 && $slaves[_otw].inflation <= 2 && $slaves[_otw].physicalAge < 70>>
 			<<set _name = SlaveFullName($slaves[_otw])>>
-			<br>[[_name|Surrogacy][$receptrix = $slaves[_otw], cashX(forceNeg($surgeryCost*2), "slaveSurgery"), $surgeryType = "transplant"]] <<if $slaves[_otw].pregType >= 4>>//Using a slave carrying multiples is unadvisable//<</if>>
+			<br>[[_name|Surrogacy][$receptrix = $slaves[_otw], cashX(forceNeg($surgeryCost*2), "slaveSurgery"), $surgeryType = "transplant"]] <<if $slaves[_otw].pregType >= 4>>//Using a slave carrying multiples is inadvisable//<</if>>
 			<<set _eligibility = 1>>
 		<</if>>
 	<</capture>>
diff --git a/src/pregmod/pInsemination.tw b/src/pregmod/pInsemination.tw
index cffbb2b653d2906b976a3196c443e45c47f1e3f2..f488a1718136877d0c8105bc0dabbd61ba420503 100644
--- a/src/pregmod/pInsemination.tw
+++ b/src/pregmod/pInsemination.tw
@@ -33,68 +33,58 @@
 <<case "moves">>
 	<<if $movesCount == 0>>
 		You arrive at the apartment of a rather suave man who's made some very powerful connections. No sooner than you knock on the door are you whisked away back out into the arcology for dinner and a romantic stroll through the hydroponic gardens. Once you are escorted back to his apartment, he seats you on his couch and hands you a glass of fine wine. After an evening of pleasantries, he takes you to bed and reminds you what it feels like to be a woman. He even cooks you breakfast the next morning! As he sees you to the door, he encircles your middle, gives you a deep kiss, and tells you if you ever need anything during your pregnancy, he will be there for the mother of his coming child.
-		<<set $movesCount++>>
 	<<else>>
 		You arrive at the apartment of the gentleman, only to find him waiting to take you on another date. After a pleasant evening, and a night of intense sex, you find it hard to part with him come morning, but an arcology owner's job comes first and you have slaves waiting for your attention. He walks you back to your penthouse, deeply kissing you and making your slaves deeply envious once it comes to goodbyes. A girl could get used to a life like this, or perhaps he could even be roped into your life. Though it would take more than getting knocked up to do that, you think to yourself as you rub your fertilized belly.
-		<<set $movesCount++>>
 	<</if>>
+	<<set $movesCount++>>
 
 <<case "quick">>
 	<<if $quickCount == 0>>
 		You arrive at the apartment of the very wealthy fuel baron who is to sire your child. He is eagerly waiting for you and quickly hurries you inside. He wastes no time, practically ripping your clothes off and forcing you over the edge of his bed. He hastily mounts you and roughly fucks your cunt — until he quickly finishes, that is, leaving you unsatisfied as he shoves you out the door, clothes in <<if $PC.dick != -1>>one hand and raging boner in the other<<else>>hand<</if>>.
-		<<set $quickCount++>>
 	<<else>>
 		You arrive at the apartment of the quick-shooting fuel baron and once more he quickly pulls you in. He barely manages to undress you before he is on top of you humping away. Just as he is about to cum, you wrap your legs around him; anchoring yourself to him. You remind him that his job is to knock you up, and a quick in and out isn't good enough. Buying it, he keeps thrusting, letting you reach your own orgasm. He still hurried you out the door in the end, but you got some pleasure out of him this time.
-		<<set $quickCount++>>
 	<</if>>
+	<<set $quickCount++>>
 
 <<case "crazy">>
 	<<if $crazyCount == 0>>
 		You arrive at the apartment of the rather odd shut-in of a scientist. Once inside, you begin to undo your top, only to find him <<if $PC.career == "servant">>lifting your dress<<elseif $PC.career == "escort">>removing your slutty bottom<<else>>lifting your skirt<</if>>, drawing a pipette, and injecting something into your vagina. He returns to his work, waving you off with a disgruntled "Go gestate elsewhere." You leave, more confused than aroused.
-		<<set $crazyCount++>>
 	<<elseif $crazyCount == 1>>
 		You arrive at the crazy scientist's apartment once more. Upon letting yourself in, you find him hard at work. Before you can even open your mouth, he gestures towards a nearby operating table. Carefully positioning yourself on it, and inserting your legs into the waiting stirrups, you await what madness will happen next. You don't have to wait long before a long metallic rod forces its way into your vagina and painfully pushes its way past your cervix. Moaning in a mix of discomfort and arousal, you have no time to brace for the device's activation. You gasp as you feel the cum begin to flow unabated into your fertile womb. After nearly a minute, the phallic injector leaves your body allowing you to stagger to your feet. Your belly is noticeably rounded from his "load", though it evens into a slight bloat as the cum steadily flows from your pussy. You struggle back into your clothes and head back to the penthouse, hoping nobody sees you in such a state.
-		<<set $crazyCount++>>
 	<<else>>
 		Once again you arrive at the crazy scientist's door. Letting yourself in, you immediately notice the table is set and waiting for you to strap in. He doesn't even acknowledge your existence, but you know what he expects you to do. Once you have hopped on and gotten comfortable, you gasp as the injector pushes into you. You came prepared this time, wearing a skirt, no underwear, and a shirt that will allow your middle room to stretch. You tease your breasts and <<if $PC.dick != 0>>erection<<else>>erect clit<</if>> as the machine pumps cum into you. Only once you've climaxed, and you look like you're nearly full-term, does the device stop pumping into you and you are allowed to right yourself. Slowly you waddle back to your penthouse, indifferent to who may see you; you can't wait to soak in a bath, drain, and <<if $PC.dick != 0>>jack-off<<else>>rub out an orgasm or two<</if>>.
-		<<set $crazyCount++>>
 	<</if>>
+	<<set $crazyCount++>>
 
 <<case "virgin">>
 	<<if $virginCount == 0>>
 		You arrive at the apartment of the quiet young man. Once he meekly welcomes you inside, you begin to slowly strip, drawing a deep blush to his face and a bulge to his pants. As you continue to tease him, making sure to brush his erection every now and then, he grabs your hand and pulls you into a tight hug. He's clueless. You take him by the hand and lead him to his bed; crawling into it, lying on your back and spreading your legs at him. Finally succeeding to remove his pants, he crawls onto you and hesitatingly penetrates you. It takes some time, but he eventually gets into the swing of things; even managing to coax an orgasm out of you<<if $PC.dick != 0>>, filling your condom with cum,<</if>> before blowing his load deep into your pussy. As he settles in next to you, you try to make your exit, but he asks you to stay and cuddle some. You allow him to rest himself on your <<if $PC.boobs >= 300>>breasts<<else>>chest<</if>> as you gently pet him. Before long he has dozed off, giving you the opportunity to slip away. Just as you shut the door, you hear a slight call of "Will I get to see you again?"
-		<<set $virginCount++>>
 	<<elseif $virginCount == 1>>
 		You arrive at the apartment of the boy whose virginity you took. He happily hugs you before pulling you inside and into his bedroom. He certainly has become more assertive since the last time you saw him. He happily suckles from your milky nipple as he tenderly fucks you, making sure to bring you to your climax before releasing his own pent up load deep into your pussy. "I waited for you to come back you know..." He cuddles into your cleavage as you contently embrace him for a post-coital nap. When it's time to leave, he sees you to the door, promising to wait for you once more.
-		<<set $virginCount++>>
 	<<else>>
 		You arrive at the apartment of the boy whose virginity you took. He happily hugs you before pulling you inside and into his bedroom. He wastes no time in diving deep into your needy cunt, even going as far as experimenting with new positions as he enjoys his lover's body. Once both of you are exhausted, you cuddle up for you post sex snooze. When it's time to leave, he sees you to the door. "You don't have to go..." he pleads, but you tell him running the arcology comes first.
-		<<set $virginCount++>>
 	<</if>>
+	<<set $virginCount++>>
 
 <<case "futa">>
 	<<if $futaCount == 0>>
 		You arrive at the apartment of the rather assertive girl with both sets of functional genitals. She quickly pulls you into her bedroom, skillfully unwrapping her gift along the way, and tips you into her bed.<<if $PC.dick != 0>> Straddling you with a lewd smile, she plucks the condom off your stiff prick. She helps you into a position where she can both fuck you, and be fucked by you, at once. Your body aches by the end of things, but your lover happily massages every sore spot you point out to her. She blows you a kiss as you head out the door.<<else>> Straddling you with a lewd smile, she penetrates deep into your pussy. Sex with her was quite fun (she managed to touch every place on your body that turns you on) though a little messy, noting the cum dripping from you as you make your exit.<</if>>
-		<<set $futaCount++>>
 	<<elseif $futaCount == 1>>
 		You arrive once more at the apartment of the assertive girl with both sets of functional genitals. You immediately notice something off about her stance as she greets you and pulls you inside. As she guides you to her bed, you take note of the unusual bulge under her shapely asscheeks. Once she has you undressed and on her bed, she pauses and begins a seductive strip tease. She bends completely over as she reaches her bottoms, giving you a clear look at that bulge as she slips them off. Testicles; her balls are triple the size that your remember! She spins around, nearly slapping you with her raging erection, "You like 'em? I haven't gotten a chance to use them yet, so let's have some fun!" she says seductively. She wastes no time in setting you up doggystyle and plunging deep into your moist pussy. You gasp as her hefty balls slap against your thighs. She leans in close as she rails you, a hand sneaking around to your flat belly. You feel her cum, hard, into you, followed by an unusual sensation. She is literally filling you with cum! You gasp at the mounting pressure in your belly, now fully aware of what she was groping for. Turning to her, you find her a little disappointed; "I thought you'd get bigger..." She cups her balls and mumbles something to herself. "Well, at least my load seems to be staying in you this time, mostly," she says, motioning to the cum steadily dripping from your vagina. Taking such an impressive load was quite enjoyable, you think to yourself as you make your exit.
-		<<set $futaCount++>>
 	<<else>>
 		You arrive once more at the apartment of the assertive girl with both sets of functional genitals. She calls for you to enter shortly after knocking, and beckons you into the bedroom. You strip as you walk, eager to get a taste of her huge load again. You are not disappointed; her balls are utterly massive, easily the size of her.<<if $PC.balls >= 30>> "Your balls! Huge loads are great, aren't they? We are going to make such a wonderful mess!"<<else>>"Like 'em? Slide on up here and let's see just how big a mess we can make!"<</if>> You try your best to straddle her nuts, but shortly after getting seated, end up falling forward from her first thrust and locking lips with the lusty futa. She eagerly bucks into you as she deeply kisses you; and blows her load early. The sheer force of her orgasm floods your womb with fertile seed and forces her cock out, where it stays, spraying cum upwards like a fountain, until her room is soaked with cum. She stares at you, ashamed at herself. She finishes you off with some oral before inviting you to relax and enjoy some fine wine as an apology for cumming early. You give her balls a pat as you make your leave. A mistake, you soon realize, as she promptly orgasms and showers your back with ejaculate. Guess you'll be showering before you leave.
-		<<set $futaCount++>>
 	<</if>>
+	<<set $futaCount++>>
 
 <<case "preggo">>
 	<<if $preggoCount == 0>>
 		You arrive at the apartment of the rather moody girl with both sets of functional genitals. What answers the door surprises you; she is extremely pregnant, easily ready to drop. Positioning you over the edge of her bed, she mounts you and begins to enjoy herself. Between the sensations within your pussy, <<if $PC.dick != 0>>your dick's motions against her satin sheets,<</if>>and her belly rubbing up and down your ass and lower back; you quickly tense up in orgasm, prompting her to cum strongly into your pussy. You help her onto her couch and head on your way, but not before she informs you that she'll be waiting to fuck you when you are as pregnant as she is now.
-		<<set $preggoCount++>>
 	<<elseif $preggoCount == 1>>
 		You arrive at the apartment of the heavily pregnant futa. When she answers the door and you are greeted by an even larger belly than last time it becomes abundantly clear that the two of you are on similar reproductive schedules. Noticing your look, she grabs your hands and happily says "Twins!" You wrap your arms around your lover for the evening and help her back to her bed, enjoying the weight of her middle. She stops you once she takes a seat and asks "You know, I have some fertility drugs if you want to get as big as me this time, cutie?" You shake your head "no"; being that pregnant would certainly impede your ability to run the arcology. She sighs and lies back, her stiff prick pressed against the underside of her belly, and invites you to ride her cock. You waste no time in mounting her, the feel of <<if $PC.dick != 0>>your own erection rubbing between your bellies<<else>>the underside of her pregnancy pushing into your own middle<</if>> as she thrusts up into you, driving you wild with lust. It doesn't take long for you to start bucking with orgasm and wrapping your arms around her gravid middle. Her occupants send several kicks your way as she quickens her pace, grabs your hips, and thrusts hard, cumming deep in your pussy. Panting, you slide off her and snuggle up beside her as you catch your breath. "You're looking good after having a child, you know? But obviously you looked even better heavy with my child. I'm keeping those pictures of you close!" she says with a giggle as you rise. With a gentle pat on your bottom, she sends you on your way.
-		<<set $preggoCount++>>
 	<<else>>
 		You arrive once more at the apartment of the heavily pregnant futa, though this time she takes a while to reach the door by the sound of it. When it opens, you are greeted by her usual smile and an octuplets stuffed belly. She grabs your hand and pulls it to her taut middle. "Feel them kick! There's so many of them, it feels amazing!" You wrap your arms around your heavy lover for the evening and help her back to her bed, savoring the weight of her pregnancy. She stops you once she takes a seat and asks "My offer still stands, cutie. I assure you it feels amazing to be so full of babies." You shake your head "no"; being that pregnant would definitely impede your ability to run the arcology and even enjoy your slaves properly. She lies back, before shifting her weight to her side out of discomfort. Her belly is really big, and hangs low enough that reaching her needy cock is quite the challenge; you take a moment to think of a good position to receive her. You take her dick, and gently sliding yourself between her legs, fit it into your pussy. The two of you buck against each other as best you can; a struggle, seeing as you are bearing the weight of her children right now. You have no choice but to wrap your arms around the eagerly kicking mass<<if $PC.dick != 0>>, trapping your dick between it and yourself,<</if>> as you near your climax. You feel your nethers clamp down as she cums, hard, deep into your pussy. Her children shift under your arms as her water breaks onto you. You quickly untangle yourself and help her to her feet; you can't help but enjoy the feeling of her close contractions under your hand. She points you to her bathroom; "Water birth," she pants, struggling to not give birth where she stands. The tub is already prepared for her, so you help her into it. She refuses to let go of your hand, pleading "Join me?" You take her up on the offer and slide in behind her. You massage her taxed stomach as she struggles to bring her children into the world. A loud moan escapes her lips as the first of her children slips from her pussy and into your waiting hands. Setting her aside, you prepare for the next. After several hours, and a mutual shower, you and her recover together with her eight children; as thanks, you have one milky nipple all to yourself. When it's time to leave, she blows you a kiss and thanks you sincerely for helping her through this.
-		<<set $preggoCount++>>
 	<</if>>
+	<<set $preggoCount++>>
 
 <</switch>>
 
diff --git a/src/pregmod/surrogacyWorkaround.tw b/src/pregmod/surrogacyWorkaround.tw
index 9c14fab263ba5300eb1a33bd7d30bc333e9d2823..bd91bb8e4d804ca87f40de112a44452f6c59cf0c 100644
--- a/src/pregmod/surrogacyWorkaround.tw
+++ b/src/pregmod/surrogacyWorkaround.tw
@@ -72,7 +72,7 @@ __Chosen surrogate: _receive __
 	<<capture _sw1>>
 		<<if ($slaves[_sw1].ovaries > 0 || $slaves[_sw1].mpreg > 0) && isSlaveAvailable($slaves[_sw1]) && $slaves[_sw1].preg >= 0 && $slaves[_sw1].preg < 4 && $slaves[_sw1].pregWeek >= 0 && $slaves[_sw1].pubertyXX == 1 && $slaves[_sw1].pregType < 12 && $slaves[_sw1].bellyImplant == -1 && $slaves[_sw1].broodmother == 0 && $slaves[_sw1].inflation <= 2 && $slaves[_sw1].physicalAge < 70>>
 			<<set _name2 = SlaveFullName($slaves[_sw1])>>
-			<br>[[_name2|Surrogacy Workaround][$receptrix = $slaves[_sw1]]] <<if $slaves[_sw1].pregType >= 4>>//Using a slave carrying multiples is unadvisable//<</if>>
+			<br>[[_name2|Surrogacy Workaround][$receptrix = $slaves[_sw1]]] <<if $slaves[_sw1].pregType >= 4>>//Using a slave carrying multiples is inadvisable//<</if>>
 			<<set _eligibility2 = 1>>
 		<</if>>
 	<</capture>>
diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw
index 154e06b2d1f5b890115bb5077194b120714b4ab6..8b886f07e1d616ac4cbd78b46c7e1fc5abed58f5 100644
--- a/src/pregmod/theBlackMarket.tw
+++ b/src/pregmod/theBlackMarket.tw
@@ -362,7 +362,7 @@ He gestures to a door in the back of the stall. "The good shit's back there<<if
 			<</if>>
 		<</if>>
 
-        /* Stop fucking enabling this, it breaks everything.
+		/* Stop fucking enabling this, it breaks everything.
 		<<if $farmyard>>
 			<<if $thisWeeksIllegalWares[_bim] == "AnimalOrgans">>
 				<br>
diff --git a/src/pregmod/widgets/playerDescriptionWidgets.tw b/src/pregmod/widgets/playerDescriptionWidgets.tw
index 02e3e6821e7edec00e1eed5ae490c2db6d486eb0..ebb0010f4e7dade45e544fd2a92f3a9e2e796c40 100644
--- a/src/pregmod/widgets/playerDescriptionWidgets.tw
+++ b/src/pregmod/widgets/playerDescriptionWidgets.tw
@@ -373,7 +373,7 @@
 			<<elseif $PC.preg >= 36>>
 				Your child<<if $PC.pregType > 1>>ren<</if>> happily kick<<if $PC.pregType == 1>>s<</if>> away inside your womb, and each time a small bump appears on the outside of your dress.<<if $PC.pregMood == 1>> While hormones may have you demanding and needy, you do everything you can to treat your slaves as if they were your own children.<<elseif $PC.pregMood == 2>> You know it's unbecoming for an arcology owner, but your former Master loved to fuck you while you <<if $PC.counter.birthMaster > 0>>were pregnant with his child<<if $PC.counter.birthMaster > 1>>ren<</if>><<else>>wore a big fake belly<</if>> and your body misses his touch.<</if>>
 			<<elseif $PC.preg >= 32>>
-				<<if $PC.pregMood == 1>> You can't help but enjoy having a slave suckle from you while you relax with _himU in your lap.<<elseif $PC.pregMood == 2>> You know how to have sex while pregnant, and as such, so will your slaves.<</if>>
+				<<if $PC.pregMood == 1>> You can't help but enjoy having a slave suckle from you while you relax with them in your lap.<<elseif $PC.pregMood == 2>> You know how to have sex while pregnant, and as such, so will your slaves.<</if>>
 			<<elseif $PC.preg >= 28>>
 				<<if $PC.pregMood == 1>> You catch yourself babying your slaves from time to time.<<elseif $PC.pregMood == 2>>Your sex drive has become unquenchable as of late.<</if>>
 			<<elseif $PC.preg == 22>>
@@ -521,7 +521,7 @@
 			<<elseif $PC.preg >= 36>>
 				Every kick from your eager child<<if $PC.pregType > 1>>ren<</if>> threatens to send your buttons flying.<<if $PC.pregMood == 1>> While you may be demanding and needy, you do everything you can to treat them as if they were your own children.<<elseif $PC.pregMood == 2>> You know it's unbecoming for an arcology owner, but you need a dick in you and you don't care from where.<</if>>
 			<<elseif $PC.preg >= 32>>
-				<<if $PC.pregMood == 1>> You can't help but enjoy having a slave suckle from you while you relax with _himU in your lap.<<elseif $PC.pregMood == 2>> You don't let your pregnancy get in the way when it comes to sex; you make sure your slaves learn new positions to accommodate your bulk.<</if>>
+				<<if $PC.pregMood == 1>> You can't help but enjoy having a slave suckle from you while you relax with them in your lap.<<elseif $PC.pregMood == 2>> You don't let your pregnancy get in the way when it comes to sex; you make sure your slaves learn new positions to accommodate your bulk.<</if>>
 			<<elseif $PC.preg >= 28>>
 				<<if $PC.pregMood == 1>> You catch yourself babying your slaves from time to time.<<elseif $PC.pregMood == 2>>Your sex drive has become unquenchable as of late.<</if>>
 			<<elseif $PC.preg == 22>>
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index 550234fbcb94a953068c617ed6adc85b194d2509..c1c3b22db9fd0942a1ce4ed36c1f841ed60c1863 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -1172,7 +1172,7 @@ All in all,
 	<<set $slaves[$i].pregSource = $slaves[$i].womb[0].fatherID>> /*in such case it's good chance that there is different father also.*/
 <<else>>
 	<<set _tmp = lastPregRule($slaves[$i], $defaultRules)>>
-	<<if ($slaves[$i].assignmentVisible == 0) && (_tmp != null)>>
+	<<if (!assignmentVisible($slaves[$i])) && (_tmp != null)>>
 		<<set $slaves[$i].preg = -1>>
 	<<else>>
 		<<set $slaves[$i].preg = 0>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 1bf25410eaea12d9422eaa84b74bd98a6a60d61a..a8bed6208caea52f1127631d06a60881eec143bc 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -665,6 +665,11 @@
 		<<if $PC.ballsImplant > 0>>
 			<<set _newPC.ballsImplant = _newPC.balls-3>>
 		<</if>>
+	<<else>>
+		<<set _newPC.dick = 0>>
+		<<set _newPC.prostate = 0>>
+		<<set _newPC.balls = 0>>
+		<<set _newPC.scrotum = 0>>
 	<</if>>
 	<<set _newPC.newVag = $PC.newVag>>
 	<<if $PC.vagina == 1>>
@@ -770,7 +775,7 @@
 	<</if>>
 
 	<<set WombInit(_newPC)>>
-	
+
 	<<set $PC = clone(_newPC)>>
 	Standardizing player object... Done!<br>
 <</if>>
@@ -1479,6 +1484,9 @@
 <<if ndef $showWardrobe>>
 	<<set $showWardrobe = 1>>
 <</if>>
+<<if ndef $showMainClothing>>
+	<<set $showWardrobe = 1>>
+<</if>>
 <<if ndef $surnameOrder>>
 	<<set $surnameOrder = 0>>
 <</if>>
diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw
index ec315f0b81aac0bb71b9b5fc242fcfb05c2ad02c..185afec5379654497c3aab35a42a5cdbef469248 100644
--- a/src/uncategorized/PESS.tw
+++ b/src/uncategorized/PESS.tw
@@ -599,7 +599,7 @@ $He sees you examining at $him, and looks back at you submissively, too tired to
 	<<set $slaves[$j].counter.oral += 1>>
 	<<set $oralTotal += 1>>
 	<<for $i = 0; $i < _SL; $i++>>
-		<<if $slaves[$i].assignmentVisible == 1>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<set $slaves[$i].devotion += 2>>
 		<</if>>
 	<</for>>
@@ -641,7 +641,7 @@ $He sees you examining at $him, and looks back at you submissively, too tired to
 	<</if>>
 	<<set $activeSlave.devotion += 5>>
 	<<for $i = 0; $i < _SL; $i++>>
-		<<if $slaves[$i].assignmentVisible == 1>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<set $slaves[$i].devotion += 2>>
 		<</if>>
 	<</for>>
@@ -653,7 +653,7 @@ $He sees you examining at $him, and looks back at you submissively, too tired to
 	You stand up, give $him a kiss, and sit down on the couch, pulling $him into your lap. $His <<if $activeSlave.butt > 8>>monstrous ass rests heavily on<<elseif $activeSlave.muscles > 30>>heavily muscled ass is hard against<<elseif $activeSlave.weight > 10>>plush bottom is soft against<<elseif $activeSlave.muscles > 10>>toned butt is firm against<<elseif $activeSlave.butt > 3>>healthy butt is soft against<<else>>cute bottom is firm against<</if>> your toned thighs. $He wiggles $himself against you briefly, as though to gently remind you $he's available without demanding anything, and then snuggles $his $activeSlave.skin face into your neck. You run a hand <<if $activeSlave.hLength == 0>>across $his bald head<<elseif $activeSlave.hLength < 10>>through $his short hair<<else>>through $his $activeSlave.hColor hair<</if>>, producing a shiver of pleasure as your fingers massage $his scalp. As you cuddle with your Head Girl, you praise $his hard work, and tell $him that the next generation of sex slaves in the Free Cities will owe a lot to $him. They'll learn from $his leadership, of course, but they'll also have $his genes. $He stiffens a little, and there's a slight moisture against your skin as tears begin to run down $his cheeks. $He cranes $his neck up and @@.hotpink;kisses you rapturously.@@ $He seems to have absorbed a bit of your vision for the future, and over the next couple of days $he takes special care to make sure the slaves in your penthouse @@.mediumaquamarine;know their place in the new world you're building.@@
 	<<set $activeSlave.devotion += 5>>
 	<<for $i = 0; $i < _SL; $i++>>
-		<<if $slaves[$i].assignmentVisible == 1>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<set $slaves[$i].trust += 2>>
 		<</if>>
 	<</for>>
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index 21e0e20dd581543af47276255fb4560e12934082..363ef0f7e955100722f0c55baaa23aa7b8a01c56 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -697,7 +697,7 @@ It seems $he passed by while you were buttfucking $subSlave.slaveName and found
 <<else>>
 	<<if $activeSlave.nipples != "fuckable">>$his nipples are hard and <</if>>there is a clear scent of lust around $him.
 <</if>>
-It seems $he passed by while $subSlave.slaveName was <<if $PC.dick == 0>>in the midst of _his2 little oral party<<else>>blowing you<</if>>. $He swallows painfully at the <<if canSee($activeSlave)>>sight of the satisfied cumslut swirling the ejaculate around _his2 mouth<<elseif canHear($activeSlave)>>sound of the satisfied cumslut savoring the fresh load<<else>>reminder of the taste and texture of the cum<</if>>. It should be possible to either encourage this fascination or steer $him away from it for now.
+It seems $he passed by while $subSlave.slaveName was <<if $PC.dick == 0>>in the midst of _his2 little oral party<<else>>blowing you<</if>>. $He swallows painfully at the <<if canSee($activeSlave)>>sight of the satisfied cumslut swirling the ejaculate around _his2 mouth<<elseif canHear($activeSlave)>>sound of the satisfied cumslut savoring the fresh load<<else>>reminder of the <<if canTaste($activeSlave)>>taste<<else>>warmth<</if>> and texture of the cum<</if>>. It should be possible to either encourage this fascination or steer $him away from it for now.
 
 <<case "humiliation">>
 
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 88fb05939963e8e4b403b7b16aea340e629e9324..bc2c7eabd0c40d16b7b1d63477ccf85ee3250919 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -6489,7 +6489,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<case "submissive">>
 			and begs him submissively to do whatever he wants to $him.
 		<<case "cumslut">>
-			and begs him to come over and feed $him his delicious cum.
+			and begs him to come over and feed $him his <<if canTaste($activeSlave)>>delicious<<else>>warm<</if>> cum.
 		<<case "humiliation">>
 			as $he begins to wordlessly writhe and blush with the @@.hotpink;excitement@@ of this humiliating situation.
 			<<set $activeSlave.devotion += 2>>
@@ -10832,7 +10832,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<br><<link "Make $him cum like a girl">>
 			<<EventNameDelink $activeSlave>>
 			<<replace "#result">>
-				You order $him to get $his ass up on your desk. $He obeys, though not without a flicker of trepidation. $He points $his butt at you like a sex slave should, and doesn't crane around to see what you're doing behind $him, but $he's stiff with the awareness that <<if $PC.dick != 0>>there's almost certainly a hard<<if $PC.vagina != -1>> futa<</if>> dick about<<else>>you're almost certainly donning a strap-on<</if>> to slide inside $his girly asspussy. $He's not wrong, and $he lets out a little moan as <<if $PC.dick != 0>>your cockhead<<if $PC.vagina != -1>>, which you kindly lubed with a bit of your pussyjuice,<</if>><<else>>its broad tip<</if>> <<if $activeSlave.anus > 2>>slides easily inside $his whorish anus<<elseif $activeSlave.anus == 2>>slides up $his experienced butthole<<else>>forces its way inside $his tight sphincter<</if>>.
+				You order $him to get $his ass up on your desk. $He obeys, though not without a flicker of trepidation. $He points $his butt at you like a sex slave should, and doesn't crane around to <<if canSee($activeSlave)>>see<<else>>feel<</if>> what you're doing behind $him, but $he's stiff with the awareness that <<if $PC.dick != 0>>there's almost certainly a hard<<if $PC.vagina != -1>> futa<</if>> dick about<<else>>you're almost certainly donning a strap-on<</if>> to slide inside $his girly asspussy. $He's not wrong, and $he lets out a little moan as <<if $PC.dick != 0>>your cockhead<<if $PC.vagina != -1>>, which you kindly lubed with a bit of your pussyjuice,<</if>><<else>>its broad tip<</if>> <<if $activeSlave.anus > 2>>slides easily inside $his whorish anus<<elseif $activeSlave.anus == 2>>slides up $his experienced butthole<<else>>forces its way inside $his tight sphincter<</if>>.
 				<br><br>
 				As you fuck $him, you pull $his torso up so you can play with $his <<if $activeSlave.boobs > 2000>>udders<<elseif $activeSlave.boobs > 800>>tits<<else>>nipples<</if>> and whisper manipulation into $his ear. You tell $him $he's about to cum like a girl. $He says nothing, but $his body language communicates incomprehension. Girls, you tell $him, cum when they get fucked. They cum when <<if $PC.title == 1>>guys<<else>>their betters<</if>> stick dick inside them. $He bursts into tears, sobbing with shame and degradation even as $he shakes and <<if $activeSlave.balls > 0>>squirts cum<<else>>dribbles ejaculate<</if>>. The next time $he sees you,
 				<<if (random(0,1) == 1)>>
@@ -11168,7 +11168,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<elseif $activeSlave.lips > 10>>
 			average
 		<<else>>
-			miniscule
+			minuscule
 		<</if>>
 		lips are level with your <<if $PC.dick == 0>>fake dick<<else>>dick<</if>><<if $activeSlave.belly >= 100000>>, straddle $his _belly belly<</if>>, and push it into $his mouth without waiting for $him to get ready. $He gags, but does $his best to work $his tired mouth. When you're finally satisfied and you let $him up, you aim another slap at $his
 		<<if ($activeSlave.butt > 12)>>
@@ -12910,7 +12910,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 <<link "Not so fast">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-		As $he goes, $he follows the natural human impulse when embarrassed, and turns $his head resolutely away from you, trying very hard to forget making such a fool of $himself. This means that $he does not see your rapid, predatory pursuit of $him; nor does $he <<if canHear($activeSlave)>>hear<<else>>notice<</if>> your careful stride across the flooring. $His first indication that $he's prey is when your hands grab $him around $his
+		As $he goes, $he follows the natural human impulse when embarrassed, and turns $his head resolutely away from you, trying very hard to forget making such a fool of $himself. This means that $he does not see your rapid, predatory pursuit of $him, nor does $he <<if canHear($activeSlave)>>hear<<else>>notice<</if>> your careful stride across the flooring. $His first indication that $he's prey is when your hands grab $him around $his
 		<<if $activeSlave.bellyPreg >= 5000>>
 			pregnant belly
 		<<elseif $activeSlave.belly >= 5000>>
@@ -15505,6 +15505,8 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<if $activeSlave.relationship == -3>>
 		<<if def $activeSlave.kindness>>
 			<<set $activeSlave.kindness += 2>>
+		<<else>
+			<<set $activeSlave.kindness = 2>>
 		<</if>>
 	<</if>>
 <</link>>
@@ -18438,7 +18440,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<else>>
 			thin
 		<</if>>
-		lips part and you insert all three of your fingers into $his hot mouth. $He quivers at the intimacy of the gesture, and the taste of $his own juices. The tremor sends a delicious motion through $his
+		lips part and you insert all three of your fingers into $his hot mouth. $He quivers at the intimacy of the gesture, and the <<if canTaste($activeSlave)>>taste<<else>>feel<</if>> of $his own juices. The tremor sends a delicious motion through $his
 		<<if ($activeSlave.boobsImplant == 0) && ($activeSlave.boobs > 300)>>
 			natural
 			<<if $activeSlave.boobs > 2000>>
@@ -18758,7 +18760,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 <<link "Follow $him">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-		$His sheer joie de vivre is irresistible, and it certainly draws you out of your office. You're not slow, and of course you know where $he's going, so you catch up quickly. $He gives you the careful measuring glance of a devoted sex slave who's checking whether $his owner wants to fuck $him right now, and correctly decides that that isn't your intent, at least right this minute. Instead, you continue the direction $he was going, and $he follows. "<<Master>>," $he <<say>>s hesitantly, "I hope that wa<<s>> an okay thing for me to do." You assure $him it was. "Thank<<s>>, <<Master>>," $he beams, grinning like an idiot. Smiling at $his infectious enthusiasm for life, you ask $him why $he's so happy this morning. $He looks momentarily perplexed<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>, not a common look for a slave as smart as $him<</if>>. "I don't know! I just woke up thi<<s>> morning feeling really, really good. <<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>I'm sure the fact that I'm benefiting from incredibly advanced medi<<c>>ine ha<<s>> <<s>>omething to do with it; thank you very much for that, <<Master>>. Other than that,<</if>>
+		$His sheer 'joie de vivre' is irresistible, and it certainly draws you out of your office. You're not slow, and of course you know where $he's going, so you catch up quickly. $He gives you the careful measuring glance of a devoted sex slave who's checking whether $his owner wants to fuck $him right now, and correctly decides that that isn't your intent, at least right this minute. Instead, you continue the direction $he was going, and $he follows. "<<Master>>," $he <<say>>s hesitantly, "I hope that wa<<s>> an okay thing for me to do." You assure $him it was. "Thank<<s>>, <<Master>>," $he beams, grinning like an idiot. Smiling at $his infectious enthusiasm for life, you ask $him why $he's so happy this morning. $He looks momentarily perplexed<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>, not a common look for a slave as smart as $him<</if>>. "I don't know! I just woke up thi<<s>> morning feeling really, really good. <<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>I'm sure the fact that I'm benefiting from incredibly advanced medi<<c>>ine ha<<s>> <<s>>omething to do with it; thank you very much for that, <<Master>>. Other than that,<</if>>
 		I ju<<s>>t feel happy." This has to be some sort of milestone for $him, and for you, and maybe for slavery in general: if $he can be this pleased with life, something must be going right. You walk $him to where $he's going
 		<<switch $activeSlave.assignment>>
 		<<case "whore">>(one of the arcology's nicer streets, where $he'll spend the day selling $his body),
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index f36ca921fc7d3bdc432b91050197874e7e84a418..24b8934053dfc121e9bd271f85bc5e44db446c58 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -2015,103 +2015,103 @@ $he adds impishly. <<if canHear($subSlave)>>Hearing this<<else>>Realizing your p
 	<</replace>>
 <</link>>
 <<if $subSlave.energy > 40>>
-<<if $subSlave.fetishKnown>>
-<br><<link "Effect a trade">>
-	<<EventNameDelink $activeSlave>>
-	<<replace "#result">>
-	$subSlave.slaveName has a perfectly healthy libido; there has to be something _he2'd like getting from $activeSlave.slaveName in turn. You clear your throat, getting the slaves' attention, and ask $subSlave.slaveName if there's anything _he2'd like $activeSlave.slaveName to do for _him2 in return for sex. $activeSlave.slaveName is so desperate that $he makes a suggestion before $subSlave.slaveName can open _his2 mouth. Everyone knows $subSlave.slaveName
-	<<run Enunciate($activeSlave)>>
-	<<switch $subSlave.fetish>>
-	<<case "submissive">>
-		is a shameless submissive and loves to be fucked. $activeSlave.slaveName must know $he's being had, at least a little. "$subSlave.slaveName," $he purrs, "I'll fuck you <<if hasAnyLegs($subSlave)>>until your toe<<s>> curl<<else>><<s>>en<<s>>ele<<ss>><</if>>."
-	<<case "cumslut">>
-		loves the taste of cum. "I promi<<s>>e to pull out and let you drink my cum, <<s>>traight from my cock," $he purrs.
-		<<set $activeSlave.counter.penetrative++, $penetrativeTotal++>>
-		<<set $subSlave.counter.oral++, $oralTotal++>>
-	<<case "humiliation">>
-		loves to be humiliated. "Let'<<s>> go down to the dormitory, and I'll <<s>>lide <<if _vaginal>>your pu<<ss>>y<<else>>your butthole<</if>> down on top of my cock right there, in the middle of the doorway, <<s>>o everyone ha<<s>> to <<s>>tep over you a<<s>> you ride my dick."
-	<<case "buttslut">>
-		loves anal.
-		<<if canDoAnal($subSlave)>>
-			$activeSlave.slaveName
-			<<if $activeSlave.dick > 3>>
-				strokes $himself a couple of times, showing off $his <<if $activeSlave.dick > 5>>monstrous penis<<else>>big dick<</if>>. "Come on, don't you want thi<<s>> thing up your a<<ss>>?" $he asks.
+	<<if $subSlave.fetishKnown>>
+		<br><<link "Effect a trade">>
+			<<EventNameDelink $activeSlave>>
+			<<replace "#result">>
+			$subSlave.slaveName has a perfectly healthy libido; there has to be something _he2'd like getting from $activeSlave.slaveName in turn. You clear your throat, getting the slaves' attention, and ask $subSlave.slaveName if there's anything _he2'd like $activeSlave.slaveName to do for _him2 in return for sex. $activeSlave.slaveName is so desperate that $he makes a suggestion before $subSlave.slaveName can open _his2 mouth. Everyone knows $subSlave.slaveName
+			<<run Enunciate($activeSlave)>>
+			<<switch $subSlave.fetish>>
+			<<case "submissive">>
+				is a shameless submissive and loves to be fucked. $activeSlave.slaveName must know $he's being had, at least a little. "$subSlave.slaveName," $he purrs, "I'll fuck you <<if hasAnyLegs($subSlave)>>until your toe<<s>> curl<<else>><<s>>en<<s>>ele<<ss>><</if>>."
+			<<case "cumslut">>
+				loves <<if canTaste($subSlave)>>the taste of<<else>>swallowing<</if>> cum. "I promi<<s>>e to pull out and let you drink my cum, <<s>>traight from my cock," $he purrs.
+				<<set $activeSlave.counter.penetrative++, $penetrativeTotal++>>
+				<<set $subSlave.counter.oral++, $oralTotal++>>
+			<<case "humiliation">>
+				loves to be humiliated. "Let'<<s>> go down to the dormitory, and I'll <<s>>lide <<if _vaginal>>your pu<<ss>>y<<else>>your butthole<</if>> down on top of my cock right there, in the middle of the doorway, <<s>>o everyone ha<<s>> to <<s>>tep over you a<<s>> you ride my dick."
+			<<case "buttslut">>
+				loves anal.
+				<<if canDoAnal($subSlave)>>
+					$activeSlave.slaveName
+					<<if $activeSlave.dick > 3>>
+						strokes $himself a couple of times, showing off $his <<if $activeSlave.dick > 5>>monstrous penis<<else>>big dick<</if>>. "Come on, don't you want thi<<s>> thing up your a<<ss>>?" $he asks.
+					<<else>>
+						gestures to $his <<if $activeSlave.dick > 1>>modest<<else>>pathetic<</if>> penis. "I know it'<<s>> really <<s>>mall," $he <<say>>s. "But I'll u<<s>>e finger<<s>>, too. I'll make <<s>>ure you get off."
+					<</if>>
+				<<else>>
+					"I know you can't take it up your a<<ss>> right now," says $activeSlave.slaveName, "but can't I rim you for a while fir<<s>>t?"
+					<<set $activeSlave.counter.oral++, $oralTotal++>>
+					<<set $subSlave.counter.oral++, $oralTotal++>>
+				<</if>>
+			<<case "boobs">>
+				<<if $subSlave.lactation>>
+					loves nothing more than to have _his2 udders lovingly sucked dry. "I'll drain you," <<say>>s $activeSlave.slaveName, sticking $his tongue out to make $his meaning lewdly clear. "I'll nur<<s>>e from you until you come."
+				<<else>>
+					can't resist having _his2 breasts pampered. "I'll give you a boob ma<<ss>>age," <<say>>s $activeSlave.slaveName, and puts up $his hands, flexing $his fingers lewdly. "A really good one. I'll be thorough!"
+				<</if>>
+			<<case "pregnancy">>
+				loves to be inseminated,
+				<<if $subSlave.pregKnown == 1>>
+					even though _he2's already pregnant. "Come on, you know you want my <<s>>emen," <<say>>s $activeSlave.slaveName, idly toying with the precum gathering at $his tip. "<<if _vaginal>>I'll do my be<<s>>t to <<sh>>oot it all the way up into your womb. I might even make you pregnant twi<<c>>e, I'll cum in you <<s>>o hard<<else>>I'll fill your a<<ss>> up<</if>>."
+					<<set $subSlave.lactationDuration = 2>>
+					<<set $subSlave.boobs -= $subSlave.boobsMilk, $subSlave.boobsMilk = 0>>
+				<<else>>
+					regardless of whether _he2 can actually get pregnant <<if _vaginal>>right this second<<else>>in _his2 anus<</if>>. "Come on, you know you want my <<s>>emen," <<say>>s $activeSlave.slaveName, idly toying with the precum gathering at $his tip. "I'll fill you up."
+				<</if>>
+			<<case "dom">>
+				prefers to be on top. "Of cour<<s>>e you can fuck me too," $activeSlave.slaveName hurries to add.
+				<<if canDoVaginal($activeSlave.slaveName)>>
+					$He reaches down and spreads $his<<if $subSlave.labia > 0>> ample<</if>> labia, showing off $his pink channel.
+				<<elseif canDoAnal($activeSlave.slaveName)>>
+					$He spins, cocks $his hips, spreads $his asscheeks, and winks $his anus invitingly.
+				<<else>>
+					$He gets right down on $his knees and uses $his hands to spread $his lips as wide as they'll go. "'ou can 'a<<c>>e 'uck me," $he intones with difficulty.
+				<</if>>
+				"You can go fir<<s>>t! <<if canAchieveErection($subSlave)>>Get your cock out<<else>>Grab a <<s>>trap-on<</if>>, let'<<s>> trade hole<<s>>!"
+			<<case "sadist">>
+				is a sexual sadist. $activeSlave.slaveName swallows nervously, visibly weighing whether $he wants to offer what $he'll need to offer, and then takes the plunge. "You can hurt me," $he says in a small voice.
+			<<case "masochist">>
+				is a slut for pain. "I'll hurt you," <<say>>s $activeSlave.slaveName hesitantly. Seeing that this is well received, $he plunges on. "I'll rape you. Come on, I'm going to pound you <<s>>o hard and twi<<s>>t your nipple<<s>> until you don't know what hurt<<s>> wor<<s>>t, your tit<<s>> or your <<if _vaginal>>cunt<<else>>butthole<</if>>."
+			<<default>>
+				is pretty vanilla in bed. "Come on," <<say>>s $activeSlave.slaveName reassuringly. "You'll come more than I do, I promi<<s>>e. Fir<<s>>t I'll <<if $subSlave.dick > 0>>blow you<<else>>eat you out<</if>>. Then we'll make love. <<if $activeSlave.dick > 2>>Thi<<s>> dick will make you <<sh>>udder<<else>>I'm kind of <<s>>mall down there, but I'll u<<s>>e my hand<<s>> too<</if>>."
+				<<set $activeSlave.counter.oral++, $oralTotal++>>
+				<<set $subSlave.counter.oral++, $oralTotal++>>
+			<</switch>>
+			<br><br>
+			<<run Enunciate($subSlave)>>
+			$subSlave.slaveName is a seasoned sex slave but that doesn't stop _him2 from blushing a little at such a blunt suggestion. "Okay," _he2 says, biting _his2 <<if $activeSlave.lips > 40>>absurdly generous<<elseif $activeSlave.lips > 10>>full<<else>>thin<</if>> lower lip cutely. "I wa<<s>> actually going to <<s>>ay ye<<s>> anyway, but it'<<s>> really ni<<c>>e to have <<s>>omeone like you a<<s>>k me for it like that. I'm <<s>>orry I made you beg."
+			<br><br>
+			<<run Enunciate($activeSlave)>>
+			"Don't care!" <<say>>s $activeSlave.slaveName exultantly, and grabs $his conquest, planting a lusty kiss on $subSlave.slaveName's giggling mouth and <<if _vaginal>>rubbing $his erection against $subSlave.slaveName's<<if $subSlave.labia > 0>> puffy<</if>> pussylips<<else>>reaching around $subSlave.slaveName to start teasing _his2 asshole<</if>>. "Don't care, a<<s>> long a<<s>> I get to fuck your <<if _vaginal>>hot cunt<<else>>beautiful a<<ss>><</if>>!" Your work here is done, and once $he's done blowing $his load inside $subSlave.slaveName<<if !_vaginal>>'s anus<</if>>, $activeSlave.slaveName should remember to be @@.mediumaquamarine;grateful@@ to you for the reminder on how to seduce
+			<<switch $subSlave.fetish>>
+			<<case "submissive">>coquettish subs.
+			<<case "cumslut">>tired cumsluts.
+			<<case "humiliation">>reluctant exhibitionists.
+			<<case "buttslut">>tired anal whores.
+			<<case "boobs">>coquettish mammary sluts.
+			<<case "pregnancy">>reluctant pregsluts.
+			<<case "dom">>tired doms.
+			<<case "sadist">>tired sadists.
+			<<case "masochist">>silly masochists.
+			<<default>>vanilla <<print _girl2>>s.
+			<</switch>>
+			<<set $activeSlave.trust += 5, $activeSlave.counter.penetrative++, $penetrativeTotal++>>
+			<<if _vaginal>>
+				<<set $subSlave.counter.vaginal++, $vaginalTotal++>>
+				<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
+					<<= knockMeUp($subSlave, 5, 0, $activeSlave.ID, 1)>>
+				<</if>>
 			<<else>>
-				gestures to $his <<if $activeSlave.dick > 1>>modest<<else>>pathetic<</if>> penis. "I know it'<<s>> really <<s>>mall," $he <<say>>s. "But I'll u<<s>>e finger<<s>>, too. I'll make <<s>>ure you get off."
+				<<set $subSlave.counter.anal++, $analTotal++>>
+				<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
+					<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
+				<</if>>
 			<</if>>
-		<<else>>
-			"I know you can't take it up your a<<ss>> right now," says $activeSlave.slaveName, "but can't I rim you for a while fir<<s>>t?"
-			<<set $activeSlave.counter.oral++, $oralTotal++>>
-			<<set $subSlave.counter.oral++, $oralTotal++>>
-		<</if>>
-	<<case "boobs">>
-		<<if $subSlave.lactation>>
-			loves nothing more than to have _his2 udders lovingly sucked dry. "I'll drain you," <<say>>s $activeSlave.slaveName, sticking $his tongue out to make $his meaning lewdly clear. "I'll nur<<s>>e from you until you come."
-		<<else>>
-			can't resist having _his2 breasts pampered. "I'll give you a boob ma<<ss>>age," <<say>>s $activeSlave.slaveName, and puts up $his hands, flexing $his fingers lewdly. "A really good one. I'll be thorough!"
-		<</if>>
-	<<case "pregnancy">>
-		loves to be inseminated,
-		<<if $subSlave.pregKnown == 1>>
-			even though _he2's already pregnant. "Come on, you know you want my <<s>>emen," <<say>>s $activeSlave.slaveName, idly toying with the precum gathering at $his tip. "<<if _vaginal>>I'll do my be<<s>>t to <<sh>>oot it all the way up into your womb. I might even make you pregnant twi<<c>>e, I'll cum in you <<s>>o hard<<else>>I'll fill your a<<ss>> up<</if>>."
-			<<set $subSlave.lactationDuration = 2>>
-			<<set $subSlave.boobs -= $subSlave.boobsMilk, $subSlave.boobsMilk = 0>>
-		<<else>>
-			regardless of whether _he2 can actually get pregnant <<if _vaginal>>right this second<<else>>in _his2 anus<</if>>. "Come on, you know you want my <<s>>emen," <<say>>s $activeSlave.slaveName, idly toying with the precum gathering at $his tip. "I'll fill you up."
-		<</if>>
-	<<case "dom">>
-		prefers to be on top. "Of cour<<s>>e you can fuck me too," $activeSlave.slaveName hurries to add.
-		<<if canDoVaginal($activeSlave.slaveName)>>
-			$He reaches down and spreads $his<<if $subSlave.labia > 0>> ample<</if>> labia, showing off $his pink channel.
-		<<elseif canDoAnal($activeSlave.slaveName)>>
-			$He spins, cocks $his hips, spreads $his asscheeks, and winks $his anus invitingly.
-		<<else>>
-			$He gets right down on $his knees and uses $his hands to spread $his lips as wide as they'll go. "'ou can 'a<<c>>e 'uck me," $he intones with difficulty.
-		<</if>>
-		"You can go fir<<s>>t! <<if canAchieveErection($subSlave)>>Get your cock out<<else>>Grab a <<s>>trap-on<</if>>, let'<<s>> trade hole<<s>>!"
-	<<case "sadist">>
-		is a sexual sadist. $activeSlave.slaveName swallows nervously, visibly weighing whether $he wants to offer what $he'll need to offer, and then takes the plunge. "You can hurt me," $he says in a small voice.
-	<<case "masochist">>
-		is a slut for pain. "I'll hurt you," <<say>>s $activeSlave.slaveName hesitantly. Seeing that this is well received, $he plunges on. "I'll rape you. Come on, I'm going to pound you <<s>>o hard and twi<<s>>t your nipple<<s>> until you don't know what hurt<<s>> wor<<s>>t, your tit<<s>> or your <<if _vaginal>>cunt<<else>>butthole<</if>>."
-	<<default>>
-		is pretty vanilla in bed. "Come on," <<say>>s $activeSlave.slaveName reassuringly. "You'll come more than I do, I promi<<s>>e. Fir<<s>>t I'll <<if $subSlave.dick > 0>>blow you<<else>>eat you out<</if>>. Then we'll make love. <<if $activeSlave.dick > 2>>Thi<<s>> dick will make you <<sh>>udder<<else>>I'm kind of <<s>>mall down there, but I'll u<<s>>e my hand<<s>> too<</if>>."
-		<<set $activeSlave.counter.oral++, $oralTotal++>>
-		<<set $subSlave.counter.oral++, $oralTotal++>>
-	<</switch>>
-	<br><br>
-	<<run Enunciate($subSlave)>>
-	$subSlave.slaveName is a seasoned sex slave but that doesn't stop _him2 from blushing a little at such a blunt suggestion. "Okay," _he2 says, biting _his2 <<if $activeSlave.lips > 40>>absurdly generous<<elseif $activeSlave.lips > 10>>full<<else>>thin<</if>> lower lip cutely. "I wa<<s>> actually going to <<s>>ay ye<<s>> anyway, but it'<<s>> really ni<<c>>e to have <<s>>omeone like you a<<s>>k me for it like that. I'm <<s>>orry I made you beg."
-	<br><br>
-	<<run Enunciate($activeSlave)>>
-	"Don't care!" <<say>>s $activeSlave.slaveName exultantly, and grabs $his conquest, planting a lusty kiss on $subSlave.slaveName's giggling mouth and <<if _vaginal>>rubbing $his erection against $subSlave.slaveName's<<if $subSlave.labia > 0>> puffy<</if>> pussylips<<else>>reaching around $subSlave.slaveName to start teasing _his2 asshole<</if>>. "Don't care, a<<s>> long a<<s>> I get to fuck your <<if _vaginal>>hot cunt<<else>>beautiful a<<ss>><</if>>!" Your work here is done, and once $he's done blowing $his load inside $subSlave.slaveName<<if !_vaginal>>'s anus<</if>>, $activeSlave.slaveName should remember to be @@.mediumaquamarine;grateful@@ to you for the reminder on how to seduce
-	<<switch $subSlave.fetish>>
-	<<case "submissive">>coquettish subs.
-	<<case "cumslut">>tired cumsluts.
-	<<case "humiliation">>reluctant exhibitionists.
-	<<case "buttslut">>tired anal whores.
-	<<case "boobs">>coquettish mammary sluts.
-	<<case "pregnancy">>reluctant pregsluts.
-	<<case "dom">>tired doms.
-	<<case "sadist">>tired sadists.
-	<<case "masochist">>silly masochists.
-	<<default>>vanilla <<print _girl2>>s.
-	<</switch>>
-	<<set $activeSlave.trust += 5, $activeSlave.counter.penetrative++, $penetrativeTotal++>>
-	<<if _vaginal>>
-		<<set $subSlave.counter.vaginal++, $vaginalTotal++>>
-		<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
-			<<= knockMeUp($subSlave, 5, 0, $activeSlave.ID, 1)>>
-		<</if>>
-	<<else>>
-		<<set $subSlave.counter.anal++, $analTotal++>>
-		<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
-			<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
-		<</if>>
+			<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
+			<</replace>>
+		<</link>>
 	<</if>>
-	<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
-	<</replace>>
-<</link>>
-<</if>>
 <</if>>
 <br><<link "Assert your dominance">>
 	<<EventNameDelink $activeSlave>>
diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw
index a5968a8e7a12794a1798546364c057e58b4ce149..ce7c8ad38fc91055379c01ae10370b8518a39863 100644
--- a/src/uncategorized/arcadeReport.tw
+++ b/src/uncategorized/arcadeReport.tw
@@ -98,9 +98,9 @@
 		<<elseif ($slaves[$i].lactation > 0) || ($slaves[$i].balls > 0)>>
 			<<set _oldCash = $cash>>
 			<<if $showEWD != 0>>
-				<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<include "SA get milked">>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<= saGetMilked($slaves[$i])>>
 			<<else>>
-				<<silently>><<include "SA get milked">><</silently>>
+				<<run saGetMilked($slaves[$i])>>
 			<</if>>
 			<<set _milkprofits += $cash-_oldCash>>
 			<<set _growth = 0>>
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index edebd87d70bf2b8138bd307e5631bb87750b5128..e751b197ed2d6c9ab47a12b0d14535575f39a80d 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -4,6 +4,7 @@
 <br>
 
 /* Sexual Satisfaction */
+<<set _overSupply = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}>>
 
 <<if $arcologies[0].FSDegradationist !== "unset">>
 	<<if $arcadeDemandDegResult == 1>>
@@ -46,7 +47,11 @@
 <<elseif $sexDemandResult.lowerClass >= 950>>
 	Your lower class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
 <</if>>
-Lower class satisfaction is at <<print $sexDemandResult.lowerClass/10>>%, <<print $NPCMarketShare.lowerClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+<<if $sexDemandResult.lowerClass > 1000>>
+	<<set _overSupply.lowerClass = $sexDemandResult.lowerClass - 1000,
+	$sexDemandResult.lowerClass = 1000>>
+<</if>>
+Lower class satisfaction is at <<print $sexDemandResult.lowerClass/10>>%<<if _overSupply.lowerClass > 0>> and the arcology provides <<print _overSupply.lowerClass/10>>% more sexual services than required which @@.red;drives prices down@@<</if>>, <<print $NPCMarketShare.lowerClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
 
 <<if $sexSupplyBarriers.lowerClass == 1>>
 	<<run cashX(1000, "policies")>>
@@ -89,7 +94,11 @@ Lower class satisfaction is at <<print $sexDemandResult.lowerClass/10>>%, <<prin
 <<elseif $sexDemandResult.middleClass >= 950>>
 	Your middle class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
 <</if>>
-Middle class satisfaction is at <<print $sexDemandResult.middleClass/10>>%, <<print $NPCMarketShare.middleClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+<<if $sexDemandResult.middleClass > 1000>>
+	<<set _overSupply.middleClass = $sexDemandResult.middleClass - 1000,
+	$sexDemandResult.middleClass = 1000>>
+<</if>>
+Middle class satisfaction is at <<print $sexDemandResult.middleClass/10>>%<<if _overSupply.middleClass > 0>> and the arcology provides <<print _overSupply.middleClass/10>>% more sexual services than required which @@.red;drives prices down@@<</if>>, <<print $NPCMarketShare.middleClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
 
 <<if $sexSupplyBarriers.middleClass == 1>>
 	<<run cashX(1000, "policies")>>
@@ -132,7 +141,11 @@ Middle class satisfaction is at <<print $sexDemandResult.middleClass/10>>%, <<pr
 <<elseif $sexDemandResult.upperClass >= 950>>
 	Your upper class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
 <</if>>
-Upper class satisfaction is at <<print $sexDemandResult.upperClass/10>>%, <<print $NPCMarketShare.upperClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+<<if $sexDemandResult.upperClass > 1000>>
+	<<set _overSupply.upperClass = $sexDemandResult.upperClass - 1000,
+	$sexDemandResult.upperClass = 1000>>
+<</if>>
+Upper class satisfaction is at <<print $sexDemandResult.upperClass/10>>%<<if _overSupply.upperClass > 0>> and the arcology provides <<print _overSupply.upperClass/10>>% more sexual services than required which @@.red;drives prices down@@<</if>>, <<print $NPCMarketShare.upperClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
 
 <<if $sexSupplyBarriers.upperClass == 1>>
 	<<run cashX(1000, "policies")>>
@@ -175,7 +188,11 @@ Upper class satisfaction is at <<print $sexDemandResult.upperClass/10>>%, <<prin
 <<elseif $sexDemandResult.topClass >= 950>>
 	Your arcology's millionaires are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
 <</if>>
-Millionaire satisfaction is at <<print $sexDemandResult.topClass/10>>%, <<print $NPCMarketShare.topClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+<<if $sexDemandResult.topClass > 1000>>
+	<<set _overSupply.topClass = $sexDemandResult.topClass - 1000,
+	$sexDemandResult.topClass = 1000>>
+<</if>>
+Millionaire satisfaction is at <<print $sexDemandResult.topClass/10>>%<<if _overSupply.topClass > 0>> and the arcology provides <<print _overSupply.topClass/10>>% more sexual services than required which @@.red;drives prices down@@<</if>>, <<print $NPCMarketShare.topClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
 
 <<if $sexSupplyBarriers.topClass == 1>>
 	<<run cashX(1000, "policies")>>
@@ -198,8 +215,8 @@ More elite citizens require their own slaves and will cause the population of sl
 
 <<set $oldACitizens = $ACitizens,
 _FSScore = 0, /*FS progress for tourism*/
-_slaveDemandU = 1, /*Changes to upperclass slave demand*/
-_slaveDemandT = 1, /*Changes to topclass slave demand*/
+_slaveDemandU = 1, /*Changes to upperClass slave demand*/
+_slaveDemandT = 1, /*Changes to topClass slave demand*/
 _expirationFS = 0.005, /*changes to likelihood of slave death*/
 _slaveProductivity = 0.8, /*changes to slave productivity*/
 _lowerClass = 0, /*fixed amount of changes to lowerClass interest to move in*/
@@ -1108,7 +1125,7 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 			_enslaved += _intellectualDependencyEnslaved,
 			$lowerClass += _LCImmigration>>
 			@@.green;<<print _intellectualDependencyEnslaved>> dumb immigrants@@ were enslaved for their own good.
-		<<else>>	
+		<<else>>
 			<<set _LCImmigration = Math.trunc((_LCD - $lowerClass) * (0.3 * _terrain)) + 1,
 			$lowerClass += _LCImmigration>>
 		<</if>>
diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw
index ad609ec1ca4fa716ce7983a97b15d7ac37226559..7ce4c1952801094d6bd209cf054ecf1513a8ba6f 100644
--- a/src/uncategorized/buildingWidgets.tw
+++ b/src/uncategorized/buildingWidgets.tw
@@ -56,43 +56,43 @@ Yes, I am aware this is horrible. If anyone can figure out how to get widgets to
 	td#Farmyard			{ border-color: brown; }
 	td#Nursery			{ border-color: deepskyblue; }
 
-    .arcology .penthouse {
-        display: inline-block;
-    }
-    .arcology .penthouse .info:before { content: "("; }
-    .arcology .penthouse .info:after  { content: ")"; }
-    .arcology .penthouseWrapper {
-        display: inline-block;
-    }
-    .arcology.verticalLinks .penthouse{
-        display:block;
-    }
-    .arcology.griddedLinks .penthouseWrapper {
-        display: flex;
-        flex-wrap: wrap;
-        box-sizing: border-box;
-    }
-    .arcology.griddedLinks .penthouse .info:before,
-    .arcology.griddedLinks .penthouse .info:after {
-        content: "";
-     }
-    .arcology.griddedLinks .penthouse .info {
-        display: block;
-        line-height: 0.75;
-        margin-top: -0.2em;
-        margin-bottom: 0.2em;
-    }
-    .arcology.griddedLinks .penthouseWrapper .penthouse {
-        flex-grow: 1;
-        box-sizing: border-box;
-        justify-content: space-between;
-    }
-    .arcology.grid2 .penthouseWrapper .penthouse {
-        width: 45%;
-    }
-    .arcology.grid3 .penthouseWrapper .penthouse {
-        width: 30%;
-    }
+	.arcology .penthouse {
+		display: inline-block;
+	}
+	.arcology .penthouse .info:before { content: "("; }
+	.arcology .penthouse .info:after  { content: ")"; }
+	.arcology .penthouseWrapper {
+		display: inline-block;
+	}
+	.arcology.verticalLinks .penthouse{
+		display:block;
+	}
+	.arcology.griddedLinks .penthouseWrapper {
+		display: flex;
+		flex-wrap: wrap;
+		box-sizing: border-box;
+	}
+	.arcology.griddedLinks .penthouse .info:before,
+	.arcology.griddedLinks .penthouse .info:after {
+		content: "";
+	 }
+	.arcology.griddedLinks .penthouse .info {
+		display: block;
+		line-height: 0.75;
+		margin-top: -0.2em;
+		margin-bottom: 0.2em;
+	}
+	.arcology.griddedLinks .penthouseWrapper .penthouse {
+		flex-grow: 1;
+		box-sizing: border-box;
+		justify-content: space-between;
+	}
+	.arcology.grid2 .penthouseWrapper .penthouse {
+		width: 45%;
+	}
+	.arcology.grid3 .penthouseWrapper .penthouse {
+		width: 30%;
+	}
 </style>
 
 <<script>>
@@ -176,77 +176,77 @@ if(!Macro.has('sectorblock')) {
 <center>
 <<set _arcologyTableClass = "arcology">>
 <<switch $verticalizeArcologyLinks>>
-    <<case 1>>
-        <<set _arcologyTableClass += " verticalLinks">>
-    <<case 2>>
-        <<set _arcologyTableClass += " griddedLinks grid2">>
-    <<case 3>>
-        <<set _arcologyTableClass += " griddedLinks grid3">>
+	<<case 1>>
+		<<set _arcologyTableClass += " verticalLinks">>
+	<<case 2>>
+		<<set _arcologyTableClass += " griddedLinks grid2">>
+	<<case 3>>
+		<<set _arcologyTableClass += " griddedLinks grid3">>
 <</switch>>
 <table @class="_arcologyTableClass">
 	<tr> /* Level 9, penthouse, sector 0 */
 		<td colspan="3"></td>
 		<td id="Penthouse" colspan="4">
-            <span class="penthouse">
-            <<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>> @@.cyan;[P]@@
-            </span>
-            <div class="penthouseWrapper">
+			<span class="penthouse">
+			<<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>> @@.cyan;[P]@@
+			</span>
+			<div class="penthouseWrapper">
 			<<if $masterSuite>>
-                <span class="penthouse masterSuite">
+				<span class="penthouse masterSuite">
 				<span class="name"><<print MasterSuiteUIName()>></span><span class="info">$MastSiIDs.length/$masterSuite<<if $Concubine>>, C<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $HGSuite>>
-                <span class="penthouse headGirlSuite">
+				<span class="penthouse headGirlSuite">
 				<span class="name"><<print HeadGirlSuiteUIName()>></span><<if $HeadGirl != 0>><span class="info">HG<<if $HGSuiteiIDs.length > 0>>, 1<</if>></span><</if>>
-                </span>
+				</span>
 			<</if>>
 			<<if $dojo > 1>>
-                <span class="penthouse armory">
+				<span class="penthouse armory">
 				<span class="name">[[Armory|BG Select]]</span><<if $Bodyguard != 0>> <span class="info">BG</span><</if>>
-                </span>
+				</span>
 			<</if>>
 			<<if $servantsQuarters>>
-                <span class="penthouse servantsQuarters">
+				<span class="penthouse servantsQuarters">
 				<span class="name"><<print ServantQuartersUIName()>></span><span class="info">$ServQiIDs.length/$servantsQuarters<<if $Stewardess>>, L<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $spa>>
-                <span class="penthouse spa">
+				<span class="penthouse spa">
 				<span class="name"><<print SpaUIName()>></span><span class="info">$SpaiIDs.length/$spa<<if $Attendant>>, L<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $nursery>>
-                <span class="penthouse nursery">
+				<span class="penthouse nursery">
 				<span class="name"><<print NurseryUIName()>></span><span class="info"><<= numberWithPluralOne($nursery-$nurseryBabies, "empty room")>>, $NurseryiIDs.length/$nurseryNannies<<if $Matron>>, L<</if>></span> <<if $readyChildren > 0>>@@.yellow;[!]@@<</if>>
-                </span>
+				</span>
 			<</if>>
 			<<if $clinic>>
-                <span class="penthouse clinic">
+				<span class="penthouse clinic">
 				<span class="name"><<print ClinicUIName()>></span><span class="info">$CliniciIDs.length/$clinic<<if $Nurse>>, L<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $schoolroom>>
-                <span class="penthouse schoolroom">
+				<span class="penthouse schoolroom">
 				<span class="name"><<print SchoolRoomUIName()>></span><span class="info">$SchlRiIDs.length/$schoolroom<<if $Schoolteacher>>, L<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $cellblock>>
-                <span class="penthouse cellblock">
+				<span class="penthouse cellblock">
 				<span class="name"><<print CellblockUIName()>></span><span class="info">$CellBiIDs.length/$cellblock<<if $Wardeness>>, L<</if>></span>
-                </span>
+				</span>
 			<</if>>
 			<<if $incubator>>
-                <span class="penthouse incubator">
+				<span class="penthouse incubator">
 				<span class="name"><<print IncubatorUIName()>></span><span class="info"><<=numberWithPluralOne($incubator-$tanks.length, "empty tank")>></span> <<if $readySlaves > 0>>@@.yellow;[!]@@<</if>>
-                </span>
+				</span>
 			<</if>>
 			<<if $researchLab.level > 0>>
-                <span class="penthouse researchLab">
+				<span class="penthouse researchLab">
 				<span class="name">[[Prosthetic Lab]]</span>
-                </span>
+				</span>
 			<</if>>
-            </div>
+			</div>
 		</td>
 		<td colspan="3"></td>
 	</tr>
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 27e5e66774f999115fb6d03ec54e1857d806eb76..6f1b0fdcab8dc6ec3e0e5d59979765ceb7507abe 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -835,7 +835,7 @@ $researchLab.level > 0>>
 		@@.yellowgreen;<<print cashFormat(($drugsCost*2))>>@@
 		<<set _individualCosts += ($drugsCost*2)>>
 	<</switch>>
-	<<if $slaves[$i].curatives == 1 && $slaves[$i].assignmentVisible != 1>>
+	<<if $slaves[$i].curatives == 1 && !assignmentVisible($slaves[$i])>>
 	<<elseif $slaves[$i].curatives > 0>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Health drugs:</i>
 		@@.yellowgreen;<<print cashFormat($drugsCost+($slaves[$i].curatives*$drugsCost))>>@@
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index bd4e3d9f469728d53043e2493266fe3ddefd91fb..dd82da89af06ffd0ed0e4a28c5150198487fa609 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -396,7 +396,7 @@
 		<<else>>
 			is serving as a cow in $dairyName.
 		<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<include "SA get milked">>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<= saGetMilked($slaves[$i])>>
 		<br>&nbsp;&nbsp;&nbsp;
 		<<include "SA rules">>
 		<<include "SA diet">>
@@ -408,7 +408,7 @@
 	<<else>>
 		<<silently>>
 		<<include "SA chooses own job">>
-		<<include "SA get milked">>
+		<<run saGetMilked($slaves[$i])>>
 		<<include "SA rules">>
 		<<include "SA diet">>
 		<<include "SA long term effects">>
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index 7412cc01b3c6d3defad12b42399f86e11025d561..a8caf86fc1db6094cdbb86c4b082ca705c0cb510 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -63,7 +63,12 @@
 	<<option 1 "Shown">>
 	<<option 0 "Hidden">>
 <</options>>
-
+<<options $showMainClothing>>
+	The Slave Interact clothing list is
+	<<option 1 "Shown">>
+	<<option 0 "Hidden">>
+<</options>>
+<br>
 <<options $showAgeDetail>>
 	Detailed slave age information is
 	<<option 1 "Shown">>
diff --git a/src/uncategorized/fullReport.tw b/src/uncategorized/fullReport.tw
index 70e785c7c390db41eebfe1dd6e6d76c5ebc54834..3a7d29884a2700cf0c3045b1ab7eb80d90e5b611 100644
--- a/src/uncategorized/fullReport.tw
+++ b/src/uncategorized/fullReport.tw
@@ -21,7 +21,7 @@
 	<<= saWorkAGloryHole($slaves[$i])>>
 <<case "get milked">>
 	<<set $servantMilkersMultiplier = 1>>
-	<<include "SA get milked">>
+	<<= saGetMilked($slaves[$i])>>
 <<case "take classes">>
 	<<= saTakeClasses($slaves[$i])>>
 <<case "please you">>
@@ -52,7 +52,7 @@
 		keeps $him busy, but $he <<if $slaves[$i].devotion > 20>><<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses<<elseif $slaves[$i].devotion >= -20>>is required to use<<else>>is forced to use<</if>> the penthouse milkers whenever $he can,
 		<<set $servantMilkersMultiplier = 0.25>>
 	<</if>>
-	<<silently>><<include "SA get milked">><</silently>>
+	<<run saGetMilked($slaves[$i])>>
 	<<set $servantMilkersMultiplier = 1>>
 	and $he gives $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 <</if>>
diff --git a/src/uncategorized/industrialDairyAssignmentScene.tw b/src/uncategorized/industrialDairyAssignmentScene.tw
index 0624ab49c74600db52d678dd9740cb2b1727fd13..11f85da6c30157cba53733af47816f01a04aa870 100644
--- a/src/uncategorized/industrialDairyAssignmentScene.tw
+++ b/src/uncategorized/industrialDairyAssignmentScene.tw
@@ -1,7 +1,6 @@
 :: Industrial Dairy Assignment Scene [nobr]
 
-<<set $nextButton = "Continue">>
-<<set $nextLink = $returnTo>>
+<<set $nextButton = "Continue", $nextLink = $returnTo>>
 
 <<setLocalPronouns $activeSlave>>
 
@@ -17,7 +16,7 @@
 	/* 000-250-006 */
 </span>
 
-When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccupied milking machine waiting for $him, its straps ready to immure $him in what is to be $his new home.
+When $activeSlave.slaveName reports to the dairy, it's to the <<if canSee($activeSlave)>>sight of an unoccupied milking machine waiting for $him<<else>>cold embrace of an unoccupied milking machine<</if>>, its straps ready to immure $him in what is to be $his new home.
 
 <<if $activeSlave.sexualFlaw == "self hating">> /* GETTING IN */
 
@@ -27,7 +26,7 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 	<<else>>
 		"Thank you, <<Master>>," $he <<say>>s simply. "I de<<s>>erve thi<<s>>," $he adds quietly, half to $himself.
 	<</if>>
-	Then $he falls silent and stares at the machine. Though $he hates $himself and looks forward to the release of being unable to do anything but get fucked, that doesn't mean $he isn't afraid.
+	Then $he falls silent and <<if canSee($activeSlave)>>stares at<<else>>faces<</if>> the machine. Though $he hates $himself and looks forward to the release of being unable to do anything but get fucked, that doesn't mean $he isn't afraid.
 	<<if (hasAnyArms($activeSlave))>>
 		<<if ($dairyStimulatorsSetting > 1)>>
 			$He gauges the size of the sodomizer with $his hand, finding that it's wider than $his fist, and then presses the fist against $his own anus. Realizing what's about to happen, $he gives a little shudder.
@@ -40,7 +39,7 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 			<</if>>
 		<</if>>
 		<<if ($dairyFeedersSetting > 1)>>
-			Looking at the phallus that will feed $him, $he begins to cry softly.
+			<<if canSee($activeSlave)>>Looking at<<else>>As $he wraps $his lips around<</if>> the phallus that will feed $him, $he begins to cry softly.
 		<</if>>
 	<</if>>
 	<br><br>
@@ -66,13 +65,13 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 	<<else>>
 		"Th-thank you, <<Master>>," $he <<say>>s through $his tears. "I love you."
 	<</if>>
-	Then $he falls silent and stares at the machine. $He's probably imagined this a thousand times, but the prospect is still frightening.
+	Then $he falls silent and <<if canSee($activeSlave)>>stares at<<elseif (hasAnyArms($activeSlave))>>reaches out to touch<<else>>faces<</if>> the machine. $He's probably imagined this a thousand times, but the prospect is still frightening.
 	<<if (hasAnyArms($activeSlave))>>
 		<<if ($dairyStimulatorsSetting > 1)>>
 			$He gauges the size of the sodomizer with $his hand, finding that it's wider than $his fist, and then presses the fist against $his own anus. Realizing that $his anus is about to be permanently gaped, $he looks doubtful, but then visibly reassures $himself. $He'll need both $his mouth and $his ass to eat enough.
 		<</if>>
 		<<if ($dairyFeedersSetting > 1)>>
-			Looking at the phallus that will feed $him, $he inserts a finger into its faux urethra, measuring how fast it can pour nutrition in $him.
+			<<if canSee($activeSlave)>>Looking at<<else>>Turning to<</if>> the phallus that will feed $him, $he inserts a finger into its faux urethra, measuring how fast it can pour nutrition in $him.
 		<</if>>
 		$He strokes the dildo that will keep $him pregnant like a lover, which, of course, it's about to be.
 	<</if>>
@@ -83,14 +82,14 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 		Another slave helps $him strip and lays $him in the machine. $He shakes with nerves.
 	<</if>>
 	<<if $activeSlave.pregKnown == 1>>
-		$He cranes around to look at $his already-pregnant belly, and looks impatient.
+		$He <<if canSee($activeSlave)>>cranes around to look at<<else>>runs a hand down<</if>> $his already-pregnant belly, and looks impatient.
 		<<if !canTalk($activeSlave)>>
 			$He mouths 'hurry up, I need room.'
 		<<else>>
 			"Hurry up, I need the room," $he whispers.
 		<</if>>
 	<<else>>
-		$He cranes around to look at $his belly, and looks impatient.
+		$He <<if canSee($activeSlave)>>cranes around to look at<<else>>runs a hand down<</if>> $his belly, and looks impatient.
 		<<if !canTalk($activeSlave)>>
 			$He mouths 'come on, I'm ready.'
 		<<else>>
@@ -100,17 +99,47 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 
 <<elseif $activeSlave.devotion > 95>> /* GETTING IN */
 
-	As $he realizes $his fate, the worshipful slave squares $his shoulders, steeling $himself. "<<Master>>," $he <<if !canTalk($activeSlave)>>signs<<else>><<say>>s<</if>>, "I will do my best to <<s>>erve you." $He steps over to the machine.
-	$He looks it over clinically, getting $himself into the right mindset.
+	As $he realizes $his fate, the worshipful slave squares $his shoulders, steeling $himself.
+	<<if canTalk($activeSlave)>>
+		"<<Master>>," $he <<say>>s, "I will do my best to <<s>>erve you."
+	<<else>>
+		$He gestures that $he'll do $his best for you.
+	<</if>>
+	<<if canWalk($activeSlave)>>
+		$He steps over to the machine.
+	<</if>>
+	<<if canSee($activeSlave)>>
+		$He looks it over clinically,
+	<<elseif hasAnyArms($activeSlave)>>
+		$He runs a hand over it exploratively,
+	<<else>>
+		$He takes a deep breath,
+	<</if>>
+	getting $himself into the right mindset.
 	<<if (hasAnyArms($activeSlave))>>
 		<<if ($dairyStimulatorsSetting > 1)>>
-			$He gauges the size of the massive phallus that will soon penetrate $his anus. It's broader than $his fist. "I think I can take this. It'll be tough, but I'll need all the hydration I can get."
+			$He gauges the size of the massive phallus that will soon penetrate $his anus. It's broader than $his fist.
+			<<if canTalk($activeSlave)>>
+				"I think I can take thi<<s>>. It'll be tough, but I'll need all the hydration I can get."
+			<<else>>
+				$He nods $his head, understanding that it will need to fit to keep $him hydrated.
+			<</if>>
 		<</if>>
 		<<if ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-			$He considers the enormous dildo that will fill $him with cum when $he's fertile, and switch to ejaculating drugs when $he conceives. "I'll be a mother to a whole generation of <<s>>lave<<s>>," $he <<say>>s proudly, taking strength from it.
+			$He considers the enormous dildo that will fill $him with cum when $he's fertile, and switch to ejaculating drugs when $he conceives.
+			<<if canTalk($activeSlave)>>
+				"I'll be a mother to a whole generation of <<s>>lave<<s>>," $he <<say>>s proudly, taking strength from it.
+			<<else>>
+				$He takes strength in knowing that $he'll birth a whole generation of new slaves.
+			<</if>>
 		<</if>>
 		<<if ($dairyFeedersSetting > 1)>>
-			$He moves $his hand to the dildo that will occupy $his throat, feeding $him. "I will need my mouth to take in a<<s>> much food a<<s>> I can," $he <<if !canTalk($activeSlave)>>signs<<else>><<say>>s<</if>>. "I won't be able to talk. <<S>>o, I'll <<s>>ay it one la<<s>>t time, <<Master>>: I love you."
+			$He moves $his hand to the dildo that will occupy $his throat, feeding $him.
+			<<if canTalk($activeSlave)>>
+				"I will need my mouth to take in a<<s>> much food a<<s>> I can," $he <<say>>s. "I won't be able to talk. <<S>>o, I'll <<s>>ay it one la<<s>>t time, <<Master>>: I love you."
+			<<else>>
+				$He focuses on just how much time $he'll need to spend with $his mouth full, so $he blows you one final kiss to show $his love.
+			<</if>>
 		<</if>>
 	<</if>>
 	<br><br>
@@ -119,33 +148,85 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 	<<else>>
 		Another slave helps $him strip and lays $him in the machine.
 	<</if>>
-	$He does not hesitate or glance back at you. You stand by as the straps automatically tighten, robbing $him of the ability to move. "<<Master>>," $he <<if !canTalk($activeSlave)>>signs<<else>><<say>>s quietly<</if>>, "I will try to be <<s>>trong enough to <<s>>tand up to thi<<s>>. But if I'm not, and I forget too much, plea<<s>>e leave me in here <<s>>o I can be u<<s>>eful."
+	$He does not hesitate or <<if canSee($activeSlave)>>glance back at<<else>>show any resistance to<</if>> you. You stand by as the straps automatically tighten, robbing $him of the ability to move.
+	<<if canTalk($activeSlave)>>
+		"<<Master>>," $he <<say>>s quietly, "I will try to be <<s>>trong enough to <<s>>tand up to thi<<s>>. But if I'm not, and I forget too much, plea<<s>>e leave me in here <<s>>o I can be u<<s>>eful."
+	<<else>>
+		$He swears to you that $he will try $his best, but implores you to leave $him to the machine should $his mind fade.
+	<</if>>
 
 <<elseif $activeSlave.devotion > 60>>
 
-	As $he realizes $his fate, the tears come quickly. "<<Master>>," $he <<if !canTalk($activeSlave)>>signs<<else>><<say>>s quietly<</if>>, "i<<s>> thi<<s>> for me?" You nod, and $he steps over to the machine. $He lightly traces its gleaming metal, looking wistful.
+	As $he realizes $his fate, the tears come quickly.
+	<<if canTalk($activeSlave)>>
+		"<<Master>>," $he <<say>>s quietly, "i<<s>> thi<<s>> for me?"
+	<<else>>
+		$He shakily gestures if this is where $he will be staying.
+	<</if>>
+	<<if canSee($activeSlave)>>
+		You nod, and $he
+		<<if canWalk($activeSlave)>>
+			steps over to the machine.
+		<<else>>
+			accepts $his fate.
+		<</if>>
+	<<elseif canHear($activeSlave)>>
+		You tell $him it is as $he
+		<<if canWalk($activeSlave)>>
+			steps over to the machine.
+		<<else>>
+			accepts $his fate.
+		<</if>>
+	<<else>>
+		place a hand on $his shoulder in confirmation and guide $him to the machine.
+	<</if>>
 	<<if (hasAnyArms($activeSlave))>>
+		$He lightly traces its gleaming metal, looking wistful.
 		<<if ($dairyStimulatorsSetting > 1)>>
-			$He gently touches the head of the massive phallus that will soon penetrate $his anus. It's broader than $his fist. "M-my butthole i<<s>>n't going to be any good for anal after thi<<s>>."
+			$He gently touches the head of the massive phallus that will soon penetrate $his anus. It's broader than $his fist.
+			<<if canTalk($activeSlave)>>
+				"M-my butthole i<<s>>n't going to be any good for anal after thi<<s>>."
+			<<else>>
+				$He gestures jokingly that nothing will fit $his rear hole after this.
+			<</if>>
 		<</if>>
 		<<if ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-			$He considers the enormous dildo that will fill $him with cum when $he's fertile, and switch to ejaculating drugs when $he conceives. "I gue<<ss>> that thing won't have any trouble reaching my <<c>>ervi<<x>>."
+			$He considers the enormous dildo that will fill $him with cum when $he's fertile, and switch to ejaculating drugs when $he conceives.
+			<<if canTalk($activeSlave)>>
+				"I gue<<ss>> that thing won't have any trouble reaching my <<c>>ervi<<x>>."
+			<<else>>
+				$He knows it won't have any trouble getting $him pregnant.
+			<</if>>
 		<</if>>
 		<<if ($dairyFeedersSetting > 1)>>
-			$He moves $his hand to the dildo that will occupy $his throat, feeding $him. "I-I won't be able to t-talk m-much," $he <<if !canTalk($activeSlave)>>signs<<else>><<say>>s<</if>> sadly. "<<S>>-<<s>>o, I'll <<s>>ay it one la<<s>>t time, <<Master>>: I love you."
+			$He moves $his hand to the dildo that will occupy $his throat, feeding $him.
+			<<if canTalk($activeSlave)>>
+				"I-I won't be able to t-talk m-much," $he <<say>>s sadly. "<<S>>-<<s>>o, I'll <<s>>ay it one la<<s>>t time, <<Master>>: I love you."
+			<<else>>
+				$He knows $he won't have another chance at this, so $he gives you one last tearful 'I love you'.
+			<</if>>
 		<</if>>
 	<</if>>
 	<br><br>
 	<<if (hasAnyArms($activeSlave))>>
-		$He strips and climbs into the machine's embrace.
+		$He <<if $activeSlave.clothes != "no clothing">>strips and<</if>> climbs into the machine's embrace.
 	<<else>>
-		Another slave helps $him strip and lays $him in the machine.
+		Another slave helps $him <<if $activeSlave.clothes != "no clothing">>strip and lays $him in<<else>>into<</if>> the machine.
 	<</if>>
-	"<<Master>>," $he <<if !canTalk($activeSlave)>>signs<<else>>gasps out<</if>>, the tears coming fast now. "C-can you
-	<<if (hasAnyArms($activeSlave))>>
-		h-hold my h-hand while it a-activate<<s>>? Plea<<s>>e?" You take $his hand as the straps automatically tighten, robbing $him of the ability to move. $He grips your hand tightly.
+	<<if canTalk($activeSlave)>>
+		"<<Master>>," $he gasps out, the tears coming fast now. "C-can you
+		<<if (hasAnyArms($activeSlave))>>
+			h-hold my h-hand while it a-activate<<s>>? Plea<<s>>e?" You take $his hand as the straps automatically tighten, robbing $him of the ability to move. $He grips your hand tightly.
+		<<else>>
+			<<S>>-<<s>>tay with me while it activate<<s>>? Plea<<s>>e?" You stand by as the straps automatically tighten, robbing $him of the ability to move.
+		<</if>>
 	<<else>>
-		<<S>>-<<s>>tay with me while it activate<<s>>? Plea<<s>>e?" You stand by as the straps automatically tighten, robbing $him of the ability to move.
+		You can tell by the tears streaming down $his face that $he doesn't want to leave you so soon.
+		<<if (hasAnyArms($activeSlave))>>
+			You take $his hand as the straps automatically tighten, robbing $him of the ability to move. $He grips your hand tightly.
+		<<else>>
+			You stand by as the straps automatically tighten, robbing $him of the ability to move.
+		<</if>>
 	<</if>>
 
 <<elseif $activeSlave.devotion > 20>>
@@ -168,16 +249,20 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 		place $him,
 	<</if>>
 	begging and sobbing, into the machine's embrace.
-	"Plea<<s>>e, <<Master>>!" $he <<if !canTalk($activeSlave)>>signs<<else>>begs<</if>>. "Plea<<s>>e no!
-	<<if ($dairyStimulatorsSetting > 1)>>
-		I-it'll fuck my b-butthole <<s>>o wide I'll be u<<s>>ele<<ss>> for anal!
-	<</if>>
-	<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-		My w-womb c-c-can't take it! I'll b-bur<<s>>t! And m-my c-c-cunt will be ruined from the dildo and birthing!
-	<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-		M-my c-c-cunt will be <<s>>-<<s>>o <<s>>tretched from the dildo and birthing!
+	<<if canTalk($activeSlave)>>
+		"Plea<<s>>e, <<Master>>!" $he begs. "Plea<<s>>e no!
+		<<if ($dairyStimulatorsSetting > 1)>>
+			I-it'll fuck my b-butthole <<s>>o wide I'll be u<<s>>ele<<ss>> for anal!
+		<</if>>
+		<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
+			My w-womb c-c-can't take it! I'll b-bur<<s>>t! And m-my c-c-cunt will be ruined from the dildo and birthing!
+		<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
+			M-my c-c-cunt will be <<s>>-<<s>>o <<s>>tretched from the dildo and birthing!
+		<</if>>
+		I'll d-do anything!"
+	<<else>>
+		$He pitifully begs for anything but this, even going as far as trying to convey what the machine will do to $him, but it will do $him no good.
 	<</if>>
-	I'll d-do anything!"
 
 <<else>>
 
@@ -203,16 +288,20 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 	<</if>>
 	begging and sobbing, into the machine's embrace.
 
-	"Plea<<s>>e, <<Master>>!" $he <<if !canTalk($activeSlave)>>signs<<else>>begs<</if>>. "Plea<<s>>e no!
-	<<if ($dairyStimulatorsSetting > 1)>>
-		I-it'll fuck my b-butthole so loo<<s>>e I'll be u<<s>>ele<<ss>> for anal! I p-promi<<s>>e I'll be a good little bitch from now on!
-	<</if>>
-	<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-		My w-womb c-c-can't take that many babie<<s>>! I'll b-bur<<s>>t! M-my c-c-cunt can't t-take that dildo either! I d-don't want to g-get p-pregnant over and over...
-	<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
-		M-my c-c-cunt can't t-take that dildo! I d-don't want to g-get p-pregnant over and over...
+	<<if canTalk($activeSlave)>>
+		"Plea<<s>>e, <<Master>>!" $he begs. "Plea<<s>>e no!
+		<<if ($dairyStimulatorsSetting > 1)>>
+			I-it'll fuck my b-butthole so loo<<s>>e I'll be u<<s>>ele<<ss>> for anal! I p-promi<<s>>e I'll be a good little bitch from now on!
+		<</if>>
+		<<if ($dairyPregSetting > 2) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
+			My w-womb c-c-can't take that many babie<<s>>! I'll b-bur<<s>>t! M-my c-c-cunt can't t-take that dildo either! I d-don't want to g-get p-pregnant over and over...
+		<<elseif ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
+			M-my c-c-cunt can't t-take that dildo! I d-don't want to g-get p-pregnant over and over...
+		<</if>>
+		I'll d-do anything!"
+	<<else>>
+		$He pitifully begs for to have mercy on $him and not subject $him to the machines 'features', but it will do $him no good.
 	<</if>>
-	I'll d-do anything!"
 
 <</if>> /* CLOSES DEVOTION */
 
@@ -220,6 +309,8 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 	A big soft cup attaches itself <<if $activeSlave.nipples == "fuckable">>over<<else>>to<</if>> each of $his nipples.
 	<<if ($activeSlave.nipples == "inverted")>>
 		$He gasps with pain as suction unceremoniously hauls $his inverted nipples down into the cups.
+	<<elseif ($activeSlave.nipples == "fuckable")>>
+		$He gasps with surprise as a phallic rods unceremoniously slip into $his nipples to better harvest $his milk.
 	<</if>>
 <</if>>
 <<if $activeSlave.balls > 0>>
@@ -237,7 +328,13 @@ When $activeSlave.slaveName reports to the dairy, it's to the sight of an unoccu
 		<<if $activeSlave.lactation > 0>>Another<<else>>A big soft<</if>> cup is placed against $his little front cumhole.
 	<</if>>
 <</if>>
-A visor lowers onto $his face to keep $his mind at least minimally stimulated. It will display garish hardcore pornography featuring
+A visor lowers onto $his face to keep $his mind at least minimally stimulated.
+<<if canHear($activeSlave) && !canSee($activeSlave)>>
+	It will play audio from 
+<<else>>
+	It will display garish
+<</if>>
+hardcore pornography featuring
 <<if ($dairyFeedersSetting > 1)>>
 	throatfucking, cum swallowing,
 <</if>>
@@ -251,6 +348,9 @@ A visor lowers onto $his face to keep $his mind at least minimally stimulated. I
 	breast expansion, women being milked,
 <</if>>
 and brutal sodomy.
+<<if !canHear($activeSlave) && !canSee($activeSlave)>>
+	Of course, $he won't enjoy any of that and will be left entirely at the mercy of the sensations running through $his flesh.
+<</if>>
 <br><br>
 
 <<if ($activeSlave.anus < 3) || (($activeSlave.vagina < 3) && ($activeSlave.vagina > -1))>>
@@ -296,7 +396,7 @@ and brutal sodomy.
 	<<elseif $activeSlave.devotion > 20>>
 		Terrified, $he cries harder.
 	<<else>>
-		Terrified, $he starts to scream and cry.
+		Terrified, $he starts to <<if !canTalk($activeSlave)>>soundlessly <</if>>scream and cry.
 	<</if>>
 <<elseif ($dairyPregSetting > 0) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 	<<if $activeSlave.devotion > 95>>
@@ -313,13 +413,41 @@ and brutal sodomy.
 <<if ($dairyStimulatorsSetting > 1)>>
 	$His anus is next. An auxiliary dildo the size of the largest human cocks goes first, assraping $him so hard $he'd probably be injured if $he wasn't already very loose.
 	<<if $activeSlave.devotion > 95>>
-		$He relaxes and does $his best to enjoy $himself, $his cheeks flushing with arousal. Once $his sphincter is well stretched, the machine withdraws the dildo, and before $his anus can begin to close, the machine replaces it with the main instrument. Despite the preparation, it's so huge that $he moans with fear $he feels the head touch $his buttocks. The moan becomes a long low groan as $his butthole accommodates the enormous thing. When it's all the way in, the dildo begins to withdraw for its first stroke, and $he <<if !canTalk($activeSlave)>>signs<<else>>whispers<</if>>, "<<Master>>, it's <<s>>-<<s>>o b-big." $He relaxes and recollects $himself, and then adds, "I can do thi<<s>>."
+		$He relaxes and does $his best to enjoy $himself, $his cheeks flushing with arousal. Once $his sphincter is well stretched, the machine withdraws the dildo, and before $his anus can begin to close, the machine replaces it with the main instrument. Despite the preparation, it's so huge that $he moans with fear $he feels the head touch $his buttocks. The moan becomes a long low groan as $his butthole accommodates the enormous thing. When it's all the way in, the dildo begins to withdraw for its first stroke, and $he
+		<<if canTalk($activeSlave)>>
+			whispers, "<<Master>>, it's <<s>>-<<s>>o b-big." $He relaxes and recollects $himself, and then adds, "I can do thi<<s>>."
+		<<else>>
+			begins distressing over its size before relaxing and recollecting $himself. $He smiles to show you $he can do this.
+		<</if>>
 	<<elseif $activeSlave.devotion > 60>>
-		$He tries to <<if $activeSlave.skill.anal > 10>>apply $his anal training<<else>>relax<</if>>, but it fucks $his butt so mercilessly that $he eventually gives up and relaxes completely. This is what the machine was aiming for; it withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument. Despite the preparation, it's so huge that $he begins to scream in terror as $he feels the head touch $his buttocks. $His yelling becomes a drawn-out shriek as $his butthole accommodates the enormous thing. When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he <<if !canTalk($activeSlave)>>signs<<else>>whispers<</if>>, "<<Master>>, it'<<s>> too b-big. It hu-hurt<<s>>."
+		$He tries to <<if $activeSlave.skill.anal > 10>>apply $his anal training<<else>>relax<</if>>, but it fucks $his butt so mercilessly that $he eventually gives up and relaxes completely. This is what the machine was aiming for; it withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument. Despite the preparation, it's so huge that $he begins to <<if !canTalk($activeSlave)>>silently <</if>>scream in terror as $he feels the head touch $his buttocks. $His
+		<<if canTalk($activeSlave)>>
+			yelling becomes a drawn-out shriek
+		<<else>>
+			pointless yelling turns to struggling
+		<</if>>
+		as $his butthole accommodates the enormous thing. When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he
+		<<if canTalk($activeSlave)>>
+			whispers, "<<Master>>, it'<<s>> too b-big. It hu-hurt<<s>>."
+		<<else>>
+			attempts to tell you that it is too big for $his hole.
+		<</if>>
 	<<elseif $activeSlave.devotion > 20>>
-		Crying, $he tries to <<if $activeSlave.skill.anal > 10>>apply $his anal training<<else>>relax<</if>>, but it fucks $his butt so mercilessly that $he eventually gives up and relaxes completely. This is what the machine was aiming for; it withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument. Despite the preparation, it's so huge that $he begins to beg desperately as $he feels the head touch $his buttocks. $His whining becomes a drawn-out shriek as $his butthole accommodates the enormous thing. When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he is racked with sobs.
+		Crying, $he tries to <<if $activeSlave.skill.anal > 10>>apply $his anal training<<else>>relax<</if>>, but it fucks $his butt so mercilessly that $he eventually gives up and relaxes completely. This is what the machine was aiming for; it withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument. Despite the preparation, it's so huge that $he begins to beg desperately as $he feels the head touch $his buttocks. $His
+		<<if canTalk($activeSlave)>>
+			whining becomes a drawn-out shriek
+		<<else>>
+			soundless whining turns to struggling
+		<</if>>
+		as $his butthole accommodates the enormous thing. When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he is racked with sobs.
 	<<else>>
-		$He obviously thinks this is what $his butt will suffer, and doesn't like it. $He's tragically wrong. When $he finally relaxes, the machine withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument. $He screams with the horror of realization and begins to beg desperately as $he feels its head touch $his buttocks. $His cries become a drawn-out shriek as $his butthole accommodates the enormous thing. When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he is racked with weeping.
+		$He obviously thinks this is what $his butt will suffer, and doesn't like it. $He's tragically wrong. When $he finally relaxes, the machine withdraws the dildo, and before $his sphincter can close, it replaces it with the main instrument.
+		<<if canTalk($activeSlave)>>
+			$He screams with the horror of realization and begins to beg desperately as $he feels its head touch $his buttocks. $His cries become a drawn-out shriek as $his butthole accommodates the enormous thing.
+		<<else>>
+			$He attempts to fling $himself from the machine with the horror of realization begins to flail desperately as $he feels its head touch $his buttocks. $His efforts double as $his butthole accommodates the enormous thing.
+		<</if>>
+		When $he finally runs out of breath and slumps within $his restraints, the dildo begins to withdraw for its first stroke, and $he is racked with weeping.
 	<</if>>
 	<<if ($dairyPregSetting > 1) && isFertile($activeSlave) && $activeSlave.mpreg != 1>>
 		The dildo in $his vagina begins to fuck $him as well. Between $his terribly broadened holes, $his stretched perineum is barely visible at all.
@@ -339,21 +467,39 @@ and brutal sodomy.
 	<<if $activeSlave.devotion > 95>>
 		A manipulator prods $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose. There is a hiss as the food begins rushing through the phallus and down $his throat.
 	<<elseif $activeSlave.devotion > 60>>
-		$He tries to say something, but $he left it too late. A manipulator forces $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose. There is a hiss as the food begins rushing through the phallus and down $his throat.
+		<<if canTalk($activeSlave)>>
+			$He tries to say something, but $he left it too late.
+		<</if>>
+		A manipulator forces $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose. There is a hiss as the food begins rushing through the phallus and down $his throat.
 	<<elseif $activeSlave.devotion > 20>>
 		$His crying is abruptly cut off as a manipulator forces $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose.
 	<<else>>
-		$He cries hopelessly, "I'm n-never going t-to leave h-here, am I, —" $His noise is abruptly cut off as a manipulator forces $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose.
+		$He cries hopelessly,
+		<<if canTalk($activeSlave)>>
+			"I'm n-never going t-to leave h-here, am I, —" $His noise
+		<<else>>
+			until $his sobbing
+		<</if>>
+		is abruptly cut off as a manipulator forces $his jaw open and a phallus slides into $his throat, working around for a while to find the optimal position for maximum penetration where $he can still breathe through $his nose.
 	<</if>>
 <<elseif ($dairyFeedersSetting > 0)>>
 	<<if $activeSlave.devotion > 95>>
 		The machine gives $him a phallus to suck on.
 	<<elseif $activeSlave.devotion > 60>>
-		$He tries to say something, but $he left it too late. The machine gives $him a phallus to suck on.
+		<<if canTalk($activeSlave)>>
+			$He tries to say something, but $he left it too late.
+		<</if>>
+		The machine gives $him a phallus to suck on.
 	<<elseif $activeSlave.devotion > 20>>
 		$His crying is abruptly cut off as the machine gives $him a phallus to suck on.
 	<<else>>
-		$He cries hopelessly, "I'm n-never going t-to leave h-here, am I, —" $His noise is abruptly cut off as the machine forces a phallus into $his mouth.
+		$He cries hopelessly,
+		<<if canTalk($activeSlave)>>
+			"I'm n-never going t-to leave h-here, am I, —" $His noise
+		<<else>>
+			until $his sobbing
+		<</if>>
+		is abruptly cut off as the machine forces a phallus into $his mouth.
 	<</if>>
 <</if>>
 
@@ -374,13 +520,13 @@ With its various applicators inserted and working, the machine begins to ejacula
 <</if>>
 Finally, multiple drug injectors attach themselves to $him and begin to use hypersonic jets to drive pharmaceuticals into $him without needles.
 <<if $activeSlave.devotion > 95>>
-	$His eyes fly wide as $he hears and feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute. $He musters $his resolve and relaxes again, relying on $his knowledge that you want $him to accept this fate.
+	$His eyes fly wide as $he <<if canHear($activeSlave)>>hears and <</if>>feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute. $He musters $his resolve and relaxes again, relying on $his knowledge that you want $him to accept this fate.
 <<elseif $activeSlave.devotion > 60>>
-	$His eyes fly wide and $he stiffens with fear as $he hears and feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute. $He visibly tries to accept it, knowing that you want $him to submit to this fate.
+	$His eyes fly wide and $he stiffens with fear as $he <<if canHear($activeSlave)>>hears and <</if>>feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute. $He visibly tries to accept it, knowing that you want $him to submit to this fate.
 <<elseif $activeSlave.devotion > 20>>
-	The tears streaming out of $his eyes come faster as $he hears and feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute.
+	The tears streaming out of $his eyes come faster as $he <<if canHear($activeSlave)>>hears and <</if>>feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute.
 <<else>>
-	$He begins to struggle desperately as $he hears and feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute.
+	$He begins to struggle desperately as $he <<if canHear($activeSlave)>>hears and <</if>>feels the number of injections. $He knows these drugs are not without side effects, and $he's being injected with a normal day's dose every minute.
 <</if>>
 <br><br>
 Fluids begin to come out of $him. The drugs are strong, and despite everything $he experiences an orgasm so powerful that it's clear why the straps that bind $him are reinforced.
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 481b4988cf4f00abe3718a7da18905884c1efeab..b9fc571e1472e376276cafe247e18314bfa8f4de 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -60,7 +60,7 @@
 	<br><br>@@.red;Duplicate slave ID _i at indices
 	<<= _($slaves).map((s, idx) => ({ID: s.ID, idx: idx, name: s.slaveName, assignment: s.assignment})).filter(s => s.ID === _i).map(s => s.idx + ' - ' + s.name + ' (' + s.assignment + ')').join(', ')>>@@
 <</for>>
-<<set _visibleSlaves = $slaves.filter(s => s.assignmentVisible == 1 && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
+<<set _visibleSlaves = $slaves.filter(s => assignmentVisible(s) && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
 	$slavesVisible = _visibleSlaves.length,
 	$dormitoryPopulation = _visibleSlaves.filter(s => s.rules.living != "luxurious").length,
 	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.rules.living == "luxurious" && s.relationship >= 4).length * 0.5,
@@ -104,7 +104,7 @@ __''MAIN MENU''__&nbsp;&nbsp;&nbsp;&nbsp;//[[Summary Options]]//
 	<<else>>
 		| //<<link "Stop applying Rules Assistant at week end" "Main">><<set $rulesAssistantAuto = 0>><</link>>//
 	<</if>>
-	| //<<if DefaultRulesError()>>@@.yellow; WARNING: One or more rules' custom conditions has errors! @@<</if>><<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)" "Main">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<= DefaultRules($slaves[_i])>><</if>><</for>><</link>>//
+	| //<<if DefaultRulesError()>>@@.yellow; WARNING: One or more rules' custom conditions has errors! @@<</if>><<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)" "Main">><<for _i = 0;_i < _SL;_i++>><<if assignmentVisible($slaves[_i]) && $slaves[_i].useRulesAssistant == 1>><<= DefaultRules($slaves[_i])>><</if>><</for>><</link>>//
 <</if>>
 
 <<print App.UI.SlaveList.penthousePage()>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 4b60b5d0b2309e4142118342ebf73db83e7eb6fb..fe3942c31b4b750d59858925b7fc2845d0cc4076 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -328,7 +328,7 @@ _rentTopClass = Math.trunc($rent.topClass * (1 + (5 - $baseDifficulty) / 20) / 2
 <<elseif $rent.topClass > $rentDefaults.topClass>>
 	//High// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 2, $rentEffectT = 0.85, $whoreBudget.topClass *= 8 / 9]] | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass, $rentEffectT = 1, $whoreBudget.topClass *= 10 / 9]]
 <<elseif $rent.topClass > $rentDefaults.topClass * 0.5>>
-	//Average// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults * 1.5, $rentEffectT = 0.94, $whoreBudget.topClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 0.5, $rentEffectT = 1.04, $whoreBudget.topClass *= 11 / 10]]
+	//Average// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 1.5, $rentEffectT = 0.94, $whoreBudget.topClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 0.5, $rentEffectT = 1.04, $whoreBudget.topClass *= 11 / 10]]
 <<elseif $rent.topClass > 0>>
 	//Low// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass, $rentEffectT = 1, $whoreBudget.topClass *= 10 / 11]] | [[Free Rent|Manage Arcology][$rent.topClass = 0, $rentEffectT = 1.1, $whoreBudget.topClass *= 12 / 11]]
 <<else>>
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index efe2babd177501fa533409d0c8f342b1c97f8b39..02824322bdb7f8c3125f853bda0b51e30d760e54 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -370,7 +370,7 @@
 			<<if $servantMilkers == 1 && $slaves[$i].lactation > 0 && $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken" && canWalk($slaves[$i]) && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -90>>
 				When $his breasts begin to feel full and you aren't around, $he avails $himself to the penthouse milkers and
 				<<set $servantMilkersMultiplier = 0.25>>
-				<<silently>><<include "SA get milked">><</silently>>
+				<<run saGetMilked($slaves[$i])>>
 				<<set $servantMilkersMultiplier = 1>>
 				gives $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 			<</if>>
@@ -389,7 +389,7 @@
 			<<include "SA please you">>
 			<<if $servantMilkers == 1 && $slaves[$i].lactation > 0 && $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken" && canWalk($slaves[$i]) && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -90>>
 				<<set $servantMilkersMultiplier = 0.25>>
-				<<silently>><<include "SA get milked">><</silently>>
+				<<run saGetMilked($slaves[$i])>>
 				<<set $servantMilkersMultiplier = 1>>
 			<</if>>
 			<<set _chosenClothes = saChoosesOwnClothes($slaves[$i])>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 204058c026cc462f0148504facacda067cceba58..26260c957d97c76824b91c6c2ed049073a2fcfae 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -215,7 +215,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 			<<set $activeSlave.devotion += 10>>
 			<<set $activeSlave.trust += 10>>
 		<<else>>
-			Seeing that you're a fellow futanari, $he's @@.mediumaquamarine;relieved@@ that $he's going to be your slave, not to mention @@.hotpink;quite eager@@ to have sex with you.
+			<<if canSee($activeSlave)>>Seeing<<else>>Learning<</if>> that you're a fellow futanari, $he's @@.mediumaquamarine;relieved@@ that $he's going to be your slave, not to mention @@.hotpink;quite eager@@ to have sex with you.
 			<<set $activeSlave.devotion += 5>>
 			<<set $activeSlave.trust += 5>>
 		<</if>>
@@ -305,7 +305,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 <<if $PC.boobs >= 1400>>
 	<<if $activeSlave.fetish == "boobs">>
 		<<if $activeSlave.fetishKnown == 0>>
-			$He keeps stealing glances at your huge rack<<if canAchieveErection($activeSlave)>>, $his dick rapidly hardening<</if>>. You stretch, giving $him a fantastic view of your breasts, before circling around behind $him and cupping $his chest. Between your tits against $his back, and how teasingly big you are pretending $his breasts will be, $he can't contain $himself; $he cums from overstimulation, completely pinning $him @@.green;as a breast fetishist!@@
+			$He keeps stealing glances at your huge rack<<if canAchieveErection($activeSlave)>>, $his dick rapidly hardening<</if>>. You stretch<<if canSee($activeSlave)>>, giving $him a fantastic view of your breasts,<</if>> before circling around behind $him and cupping $his chest. Between your tits against $his back, and how teasingly big you are pretending $his breasts will be, $he can't contain $himself; $he cums from overstimulation, completely pinning $him @@.green;as a breast fetishist!@@
 			<<set $activeSlave.fetishKnown = 1>>
 		<<else>>
 			$He keeps stealing glances at your huge rack<<if canAchieveErection($activeSlave)>>, $his dick rapidly hardening<</if>>. As you inspect $him, you take care to keep "accidentally" bumping $him with your tits, before "tripping" and landing with $his face buried in your chest. $He is practically bursting with lust by the end and @@.hotpink;eager to please you@@ so $he can be close to those boobs.
@@ -343,11 +343,11 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<set $activeSlave.devotion -= 10>>
 	<<set $activeSlave.trust += 10>>
 <<elseif ($PC.career == "servant")>>
-	Seeing you in your <<if $PC.title == 0>>maid's dress<<else>>maid's outfit<</if>> @@.mediumaquamarine;calms $his fears;@@ however, $he is unwilling to @@.mediumorchid;listen to a servant.@@
+	<<if canSee($activeSlave)>>Seeing<<else>>Having<</if>> you in your <<if $PC.title == 0>>maid's dress<<else>>maid's outfit<</if>> @@.mediumaquamarine;calms $his fears;@@ however, $he is unwilling to @@.mediumorchid;listen to a servant.@@
 	<<set $activeSlave.devotion -= 3>>
 	<<set $activeSlave.trust += 10>>
 <<elseif ($PC.career == "gang")>>
-	$He recognizes you from various crime reports @@.gold;filling $him with fear@@ over what life under you will be like.
+	$He recognizes you from various crime reports, @@.gold;filling $him with fear@@ over what life under you will be like.
 	<<set $activeSlave.trust -= 10>>
 <</if>>
 
@@ -852,7 +852,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<if canDoAnal($activeSlave)>>
 		| <<link "Put $him in $his place">>
 			<<replace "#introResult">>
-				You stand up and tell $him to strip. $He hesitates, staring at you in dawning apprehension, until $he sees that you're stepping into a strap-on. $He unconsciously takes a step backward, but that's as far as $he gets before you cover the ground between you, grab $him by the throat, and push $his back until $he falls onto the couch. You drag the head of the fake phallus down over $his pussylips, and $he shivers, but you keep going, telling $him that you'll only be fucking $him there when $he's good. When $he's bad, you'll assfuck $him. $His eyes fly open and $he tries to struggle, but you give $him a warning slap and then push yourself home. $He starts to cry, more from hopelessness than anal pain, knowing that @@.mediumorchid;you're a slaveowner like any other,@@ more likely to @@.gold;abuse $him@@ than be sympathetic.
+				You stand up and tell $him to strip. $He hesitates, staring at you in dawning apprehension, until $he <<if canSee($activeSlave)>>sees<<else>>realizes<</if>> that you're stepping into a strap-on. $He unconsciously takes a step backward, but that's as far as $he gets before you cover the ground between you, grab $him by the throat, and push $his back until $he falls onto the couch. You drag the head of the fake phallus down over $his pussylips, and $he shivers, but you keep going, telling $him that you'll only be fucking $him there when $he's good. When $he's bad, you'll assfuck $him. $His eyes fly open and $he tries to struggle, but you give $him a warning slap and then push yourself home. $He starts to cry, more from hopelessness than anal pain, knowing that @@.mediumorchid;you're a slaveowner like any other,@@ more likely to @@.gold;abuse $him@@ than be sympathetic.
 			<</replace>>
 			<<set $activeSlave.devotion -= 5>>
 			<<set $activeSlave.trust -= 5>>
@@ -1339,7 +1339,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Threaten $his pregnancy">>
 		<<replace "#introResult">>
-			You place an innocuous-looking drug injector on your desk, and let $him <<if !canSee($activeSlave)>>blindly <</if>>stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into $his view. It depicts the silhouette of a pregnant woman, with a red "X" over it. Abortifacients. After an <<if !canSee($activeSlave)>>short period<<else>>instant<</if>> of horrified comprehension, $he flings $himself at your feet, crying, begging, promising. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick != 0>><<if $PC.vagina != -1>>eat you out, <</if>>suck your cock, take it in $his pussy, take it up $his ass<<else>>eat you out, worship you with $his pussy, serve you with $his ass<</if>>, anything, as long as @@.gold;you don't hurt $his baby.@@ You observe that $he'll do all of those things, regardless of what you decide to do about $his pregnancy, but for now, you'll keep $him as a pregnant slut. $He thanks you through $his tears.
+			You place an innocuous-looking drug injector on your desk, and let $him <<if !canSee($activeSlave)>>blindly <</if>>stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into <<if canSee($activeSlave)>>$his<<else>>your<</if>> view. It depicts the silhouette of a pregnant woman, with a red "X" over it. Abortifacients. After an <<if !canSee($activeSlave)>>short period<<else>>instant<</if>> of horrified comprehension, $he flings $himself at your feet, crying, begging, promising. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick != 0>><<if $PC.vagina != -1>>eat you out, <</if>>suck your cock, take it in $his pussy, take it up $his ass<<else>>eat you out, worship you with $his pussy, serve you with $his ass<</if>>, anything, as long as @@.gold;you don't hurt $his baby.@@ You observe that $he'll do all of those things, regardless of what you decide to do about $his pregnancy, but for now, you'll keep $him as a pregnant slut. $He thanks you through $his tears.
 		<</replace>>
 		<<set $activeSlave.devotion += 10>>
 		<<set $activeSlave.trust -= 10>>
@@ -1925,7 +1925,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Let your ample bust dominate $his pathetic one">>
 		<<replace "#introResult">>
-			You quickly strip off your shirt and draw close to $activeSlave.slaveName. You grab $him as $he attempts to back away and pull $his tits directly into your own. Both of sets of <<if canSee($activeSlave)>>eyes lock onto their pair of breasts<<else>>tits push out against each other<</if>>, or they would have, had yours not utterly eclipsed their rival. Scoffing, you release the confused $girl and walk away; leaving $him cupping $his own breasts and feeling uncertain about $himself. $He gets caught up in how small they really are, and how much @@.hotpink;lesser@@ than $his <<= WrittenMaster($activeSlave)>> $he is.
+			You quickly strip off your shirt and draw close to $activeSlave.slaveName. You grab $him as $he attempts to back away and pull $his tits directly into your own. Both sets of <<if canSee($activeSlave)>>eyes lock onto their pair of breasts<<else>>tits push out against each other<</if>>, or they would have, had yours not utterly eclipsed their rival. Scoffing, you release the confused $girl and walk away; leaving $him cupping $his own breasts and feeling uncertain about $himself. $He gets caught up in how small they really are, and how much @@.hotpink;lesser@@ than $his <<= WrittenMaster($activeSlave)>> $he is.
 			<<if $activeSlave.fetish == "boobs">>
 				<<if $activeSlave.fetishKnown == 0>>
 					You did note one thing when your breasts touched: $his nipples <<if $activeSlave.nipples == "fuckable">>tightened around yours<<else>>got very hard<</if>>. @@.green;Looks like $he's a breast fetishist!@@
@@ -2186,7 +2186,15 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<link "Threaten $him with the Industrial Dairy">>
 		<<setNonlocalPronouns $seeDicks>>
 		<<replace "#introResult">>
-			You tell $him that it's in $his interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you point at a wallscreen behind $him. $He turns, and beholds a live feed from the Industrial Dairy. $He gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. It withdraws its horse-sized phallus from the slave's anus, leaving _hisU gape pulsing gently as it awaits the resumption of the endless assrape. $activeSlave.slaveName lets out a huge sob and turns to you, @@.gold;fear suffusing $him@@ as $he promises to @@.hotpink;be a good $girl.@@
+			You tell $him that it's in $his interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from the Industrial Dairy. 
+			<<if canSee($activeSlave)>>
+				$He gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. 
+			<<elseif canHear($activeSlave)>>
+				$He listens entranced by the steady rhythm of the machines collecting their occupants' bodily fluids. The muffled moans and groans of the restrained slaves hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen.
+			<<else>>
+				Such a broadcast would normally be pointless for a senseless slave like $activeSlave.slaveName, but you've taken precautions to accommodate such slaves. The wallscreen is connected to the heating, air conditioning, and sprinkler systems in order to accurately replicate the aura of an industrial slave dairy, so $he is fully immersed in the scene when one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen.
+			<</if>>
+			It withdraws its horse-sized phallus from the slave's anus, leaving _hisU gape pulsing gently as it awaits the resumption of the endless assrape. $activeSlave.slaveName lets out a huge sob and turns to you, @@.gold;fear suffusing $him@@ as $he promises to @@.hotpink;be a good $girl.@@
 		<</replace>>
 		<<set $activeSlave.devotion += 10>>
 		<<set $activeSlave.trust -= 10>>
@@ -2242,7 +2250,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 						You stroke $his gurgling stomach slowly, before turning off the valve, unfastening $his binds and leaving your @@.hotpink;very pleased@@ cum balloon to savor $his meal. You'll make sure to set aside enough cum from your cumslaves for $him to drink $himself stupid with, and, glancing over your shoulder, find $him eagerly masturbating to $his cum filled gut. $He'll probably intend to keep $himself filled to the brim, which is fine by you.
 						<<set $activeSlave.devotion += 5>>
 					<<else>>
-						<<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his cum filled middle. Time passes. $His <<if $activeSlave.eyes <= -2>>blind face is distant<<else>>eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being.
+						<<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his cum filled middle. Time passes. $His <<if $activeSlave.eyes <= -2>>blind face is distant<<else>>eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being.
 						<<set $activeSlave.devotion += 4>>
 					<</if>>
 				<<else>>
@@ -2273,7 +2281,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 				<br><br>
 				You pause to examine the tap, making sure it is set to milk, before releasing the valve and unleashing a steady flow. The feeder bucks against $his face as creamy, white liquid rushes downward towards the helpless slave.
 				<<if $activeSlave.behavioralFlaw == "gluttonous">>
-					<<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his milk filled middle. Time passes. $His<<if $activeSlave.eyes <= -2>> blind face is distant<<else>> eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being.
+					<<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his milk filled middle. Time passes. $His<<if $activeSlave.eyes <= -2>> blind face is distant<<else>> eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being.
 					<<set $activeSlave.devotion += 5>>
 				<<else>>
 					$He gasps in horror, and starts to struggle frantically against $his bonds, <<if $activeSlave.voice != 0>>struggling to scream in panic.<<else>>$his whole body begging to scream.<</if>> However, as the fluid reaches $him, $he seems to despair and resigns $himself to $his fate. As $his belly swells, you find yourself comparing $him first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on $his heaving stomach. $His @@.gold;terrified@@ breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to $him who is in charge here. You have little intent on letting $his stomach empty and will be setting aside enough milk to keep $him bloated into submission.
@@ -2292,7 +2300,15 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<link "Threaten $him with the Arcade">>
 		<<setNonlocalPronouns $seeDicks>>
 		<<replace "#introResult">>
-			You tell $him that it's in $his best interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you point at a wallscreen behind $him. $He turns, and beholds a live feed from $arcadeName. $He gazes at the row of butts sticking out of the wall at dick height, not quite realizing what $he's seeing. Then $he notices that there are citizens pumping away in front of two of the butts, and $he understands. As $he watches, terrified, first one citizen and then the other finishes and steps away. The first arcade inmate's <<if $seeDicks != 100>>pussy<<else>>butt<</if>> is left looking sore until $arcadeName's systems cover _himU for a quick cleaning, and the second inmate's asshole <<if $seeDicks != 0>>has obviously seen severe use, since the poor _girlU doesn't have a pussy to spread the load<<else>>is loose enough that the machines have to clean up the cum it drools onto the floor<</if>>. $activeSlave.slaveName lets out a huge sob and turns to you, @@.gold;fear suffusing $him@@ as $he promises to @@.hotpink;be a good $girl.@@
+			You tell $him that it's in $his best interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from $arcadeName. 
+			<<if canSee($activeSlave)>>
+				$He gazes at the row of butts sticking out of the wall at dick height, not quite realizing what $he's seeing. Then $he notices that there are citizens pumping away in front of two of the butts, and $he understands.
+			<<elseif canHear($activeSlave)>>
+				$He listens to the wet sounds of flesh on flesh, not quite realizing what $he's hearing. Then $he picks out the sound of your citizens grunting and moaning as they pound away, and $he understands.
+			<<else>>
+				Such a broadcast would normally be pointless for a senseless slave like $activeSlave.slaveName, but you've taken precautions to accommodate such slaves. The wallscreen is connected to the heating, air conditioning, and sprinkler systems in order to accurately replicate the feeling of standing in front of a row of restrained public sex slaves, so the meaning of the scene in front of $him is not lost.
+			<</if>>
+			As $he <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>stands there<</if>>, terrified, first one citizen and then the other finishes and steps away. The first arcade inmate's <<if $seeDicks != 100>>pussy<<else>>butt<</if>> is left looking sore until $arcadeName's systems cover _himU for a quick cleaning, and the second inmate's asshole <<if $seeDicks != 0>>has obviously seen severe use, since the poor _girlU doesn't have a pussy to spread the load<<else>>is loose enough that the machines have to clean up the cum it drools onto the floor<</if>>. $activeSlave.slaveName lets out a huge sob and turns to you, @@.gold;fear suffusing $him@@ as $he promises to @@.hotpink;be a good $girl.@@
 		<</replace>>
 		<<set $activeSlave.devotion += 10>>
 		<<set $activeSlave.trust -= 10>>
@@ -2301,7 +2317,6 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<<if ($arcade > $ArcadeiIDs.length) || ($arcadeUpgradeFuckdolls == 2)>>
 		| <<link "Send $him straight to the Arcade">>
 			<<set $activeSlave.assignment = "be confined in the arcade">>
-			<<set $activeSlave.assignmentVisible = 0>>
 			<<set $activeSlave.choosesOwnAssignment = 0>>
 			<<replace "#introResult">>
 				You order <<if $HeadGirl == 0>>another slave<<else>>$HeadGirl.slaveName<</if>> to get $activeSlave.slaveName set up in $arcadeName. The new slave does not know what $arcadeName is, not really, and $he doesn't know what being set up there means, either. $He'll be confined inside a small space, not too different from the indignities $he's suffered already. It's only when the restraints lock into place that $he'll understand $his doom. $His mouth will be forced open and presented at one wall of $arcadeName, and $his ass will protrude from its other side, $his holes available for public relief at both ends. $He'll probably refuse to believe the truth, until the first cockhead enters $his mouth<<if $activeSlave.vagina > -1>>, parts $his pussylips,<</if>> or presses against $his poor anus.
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 75b7a0a304958fea6f44ee14f5f9fd4a2fec2632..6a68dae6b83ac656c9950fcf91d9e5c0ae2542c7 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -225,7 +225,7 @@
 		<</if>>
 	<</if>>
 	/* AVERAGE VALUES UPDATE */
-	<<if $slaves[_i].assignmentVisible == 1>>
+	<<if assignmentVisible($slaves[_i])>>
 		<<set $averageTrust += $slaves[_i].trust, $averageDevotion += $slaves[_i].devotion, _slavesContributing++>>
 	<<elseif ($slaves[_i].assignment != "be confined in the cellblock") && ($slaves[_i].assignment != "be confined in the arcade") && (($slaves[_i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)) && $slaves[_i].assignment != "labor in the production line">>
 		<<set $averageTrust += $slaves[_i].trust*0.5, $averageDevotion += $slaves[_i].devotion*0.5, _slavesContributing += 0.5>>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index a50d29c4926192037ebf937987685828ca9d7042..20e9c977767d40f45983e77f892887b200e637bc 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -66,6 +66,9 @@ This save was created using FC version $ver build $releaseID.
 <<if isNaN($cash)>>
 	<br>[[Reset Money|Options][$cash = 500]]
 <</if>>
+<<if $releaseID == 1057>>
+	<br>[[Free male anatomy removal due to accidentally flawed updater|Options][$PC.dick = 0, $PC.balls = 0, $PC.prostate = 0, $PC.scrotum = 0, $PC.ballsImplant = 0]] //Use this if your female PC picked up a few extra parts during the conversion process.//
+<</if>>
 
 <<if ($releaseID >= 1000) || $ver.startsWith("0.9") || $ver.startsWith("0.8") || $ver.startsWith("0.7") || $ver.startsWith("0.6")>>
 	<br><br>
diff --git a/src/uncategorized/pCoupAttempt.tw b/src/uncategorized/pCoupAttempt.tw
index a6ef97a42c009f8ff80b2c70e80e1189fb135203..8bec16865b5477617a58b274ed34526d5e85ff8f 100644
--- a/src/uncategorized/pCoupAttempt.tw
+++ b/src/uncategorized/pCoupAttempt.tw
@@ -221,16 +221,13 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc
 	<<setLocalPronouns $traitor>>
 	<<if ["agent", "trapper"].includes($traitorType)>>
 		$traitor.slaveName returns to your service having completed the task assigned to $him.
-		<<set $traitor.assignmentVisible = 1>>
 		<<set $traitor.assignment = "rest">>
 	<<elseif $traitorType == "hostage">>
 		$traitor.slaveName wanders back to the penthouse, battered and bloody, but alive.
-		<<set $traitor.assignmentVisible = 1>>
 		<<set $traitor.assignment = "rest">>
 		<<set $traitor.health = random(-80,-60)>>
 	<<else>>
 		$traitor.slaveName was captured and has been returned to you.
-		<<set $traitor.assignmentVisible = 1>>
 		<<set $traitor.assignment = "stay confined">>
 		<<set $traitor.health = random(-80,-60)>>
 		<<set $traitor.origin = "$He was your slave, but you freed $him, which $he repaid by participating in a coup attempt against you. It failed, and $he is again your chattel.">>
diff --git a/src/uncategorized/pCoupBetrayal.tw b/src/uncategorized/pCoupBetrayal.tw
index 49f62cdab0624e98545822f10dacb5c561225dea..d73b9abaa5c3a4b1cbd0972aaa8be4187ed743a4 100644
--- a/src/uncategorized/pCoupBetrayal.tw
+++ b/src/uncategorized/pCoupBetrayal.tw
@@ -56,7 +56,6 @@ You are awakened in the middle of the night by a jolt that shakes the entire arc
 <<setLocalPronouns $traitor>>
 When $traitor.slaveName finally manages to return to you, $he explains what happened. $He caught wind of the military contractors working in the area and succeeded in goading the Daughters of Liberty into attacking the supposed slaver troop. Once it became clear that the untrained ex-slaves and their saviors stood no chance against a coordinated force, they beat a hasty retreat for your arcology under the assumption that the codes you gave them would allow them a fortifiable position. But alas, they found nothing more than their demise.
 
-<<set $traitor.assignmentVisible = 1>>
 <<set $traitor.assignment = "rest">>
 <<if $familyTesting == 1>>
 	<<if $traitorStats.PCpregSource > 0 && $PC.preg > 0 && $PC.pregSource == 0>>
diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw
index a5de5f44f8edb121f27c195fb04123ae0fa95a9f..ba79a11e8554bbcd2e7bce899d422202951e5bd1 100644
--- a/src/uncategorized/pHostageAcquisition.tw
+++ b/src/uncategorized/pHostageAcquisition.tw
@@ -189,7 +189,7 @@ Your hired mercenaries are en route now with your precious cargo.
 	<<elseif $rivalryDuration <= 10>>
 		Upon seeing you, $activeSlave.slaveName gingerly approaches, uncertain if $he should. You pull $him into your <<if $PC.boobs >= 650>>ample bust<<else>>chest<</if>> as $he breaks down in tears. "They broke my butthole!" $He's exactly as you remember, minus $his loose rear.
 	<<elseif $rivalryDuration <= 15>>
-		Upon seeing you, $activeSlave.slaveName shifts $his weight back and forth, unsure of what to make of you. As you step forward, $he hesitatingly approaches. Once $he is close enough $he says "Do you want to fuck my butt?<<if $seeDicks != 0>> Maybe touch my peni<<s>>?<</if>>" While $he looks the same as you remember, minus $his very loose butthole<<if $seeDicks != 0>> and miniscule dick<</if>>, $he certainly doesn't think the same anymore.
+		Upon seeing you, $activeSlave.slaveName shifts $his weight back and forth, unsure of what to make of you. As you step forward, $he hesitatingly approaches. Once $he is close enough $he says "Do you want to fuck my butt?<<if $seeDicks != 0>> Maybe touch my peni<<s>>?<</if>>" While $he looks the same as you remember, minus $his very loose butthole<<if $seeDicks != 0>> and minuscule dick<</if>>, $he certainly doesn't think the same anymore.
 	<<elseif $rivalryDuration <= 20>>
 		<<set $activeSlave.trust = 60>>
 		Upon seeing you, $activeSlave.slaveName shifts $his weight back and forth, unsure of what to make of you. As you step forward, $he quickly steps back. After several steps, $he bluntly says "Pi<<ss>> off vagina fucker, <<s>>lave<<s>>' a<<ss>>e<<s>> are for pounding!" before swinging around revealing $his gaping butthole. While $he looks the same as you remember, minus $his gaping anus<<if $seeDicks != 0>>, tiny cock, and testicles<</if>>, $he definitely doesn't think the same anymore.
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index cd662d6e4ef45c1d468cd63f6a5ba75c66e2fe3b..e7e0be82389a7e727685fbe6d3036d87e1438d89 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -14,6 +14,7 @@
 	/* 000-250-006 */
 
 	<<setLocalPronouns $hostage>>
+	<<run Enunciate($hostage)>>
 <</if>>
 
 <<setAssistantPronouns>>
@@ -607,7 +608,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.hLength += 7>>
 		<<set $hostage.fetish = "humiliation">>
 		<<set $hostage.fetishStrength = 10>>
-		uncontrollably masturbating as $he stuggles to stay coherent. "I need it... I can't stop... Need more..." $He orgasms in full view of the camera and passes out.
+		uncontrollably masturbating as $he struggles to stay coherent. "I need it... I can't <<s>>top... Need more..." $He orgasms in full view of the camera and passes out.
 	<<case "Petite Admiration">>
 		<<set $hostage.trust -= 5>>
 		<<set $hostage.devotion -= 5>>
@@ -625,7 +626,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.counter.anal += 7>>
 		<<set $hostage.fetish = "dom">>
 		<<set $hostage.fetishStrength = 10>>
-		blushing as $he thinks about possibly dominating $his miniscule harasser.
+		blushing as $he thinks about possibly dominating $his minuscule harasser.
 	<<default>>
 		<<set $hostage.trust -= 5>>
 		<<set $hostage.devotion -= 5>>
@@ -1330,7 +1331,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 			<<set $hostage.pregWeek = 8>>
 			<<set WombImpregnate($hostage, $hostage.pregType, 0, $hostage.preg)>>
 			<<run SetBellySize($hostage)>>
-			A very pregnant slut pokes at the curve of $his belly and declares $him preggo, to which $he waves it off as 'obviously having sucked too much dick'.
+			A very pregnant slut pokes at the curve of $his belly and declares $him preggo, to which $he waves it off as "obviou<<s>>ly having <<s>>ucked too much dick".
 		<</if>>
 	<<case "Petite Admiration">>
 		<<set $hostage.trust -= 5>>
@@ -1597,7 +1598,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.skill.anal = 100>>
 		<<set $hostage.skill.vaginal = 100>>
 		<<set $hostage.skill.whoring = 100>>
-		sealing a business deal for $his owner. Buy the end of the meeting, the client is thoroughly exhuasted from $his skill 'negotiations' and eager to listen to the terms entrusted to $him.
+		sealing a business deal for $his owner. Buy the end of the meeting, the client is thoroughly exhausted from $his skill 'negotiations' and eager to listen to the terms entrusted to $him.
 	<<case "Slave Professionalism">>
 		<<set $hostage.intelligenceImplant = 0>>
 		<<set $hostage.intelligence = -100>>
@@ -2950,7 +2951,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 				<<set $hostage.pregWeek++>>
 				<<run SetBellySize($hostage)>>
 			<</if>>
-			<<set _hostageAction.push("taking as many dicks as $he canthink of; one in the mouth, two in each hole, and another in each hand.")>>
+			<<set _hostageAction.push("taking as many dicks as $he can think of: one in the mouth, two in <<if $hostage.vagina > -1>>each<<else>>$his<</if>> hole, and another in each hand.")>>
 			<<set _hostageAction.push("pushing on a sliding door, begging to be let out.")>>
 			<<set _hostageAction.push("checking out $his reflection in a window, blissfully unaware of the show $he is giving to street below.")>>
 		<</if>>
diff --git a/src/uncategorized/penthouseReport.tw b/src/uncategorized/penthouseReport.tw
index 1e73f8fb7944e85ad29d6d43660072f7c25ab0b8..f6c9ac868b39cab648ad44aeb6e5a42a3f444b40 100644
--- a/src/uncategorized/penthouseReport.tw
+++ b/src/uncategorized/penthouseReport.tw
@@ -4,7 +4,7 @@
 <<set _SL = $slaves.length>>
 
 <<for $i = 0; $i < _SL; $i++>>
-	<<if $slaves[$i].assignmentVisible == 1>>
+	<<if assignmentVisible($slaves[$i])>>
 		<div>''__@@.pink;<<= SlaveFullName($slaves[$i])>>@@__''
 		<<if $slaves[$i].choosesOwnAssignment == 2>>
 			<<include "SA chooses own job">>
diff --git a/src/uncategorized/persBusiness.tw b/src/uncategorized/persBusiness.tw
index 1b5432153347a9c3fc5d4551632a82dad5d063e1..c54d799f36d83737603cf14c8742356e03b60c4c 100644
--- a/src/uncategorized/persBusiness.tw
+++ b/src/uncategorized/persBusiness.tw
@@ -93,9 +93,9 @@
 	<<set $enduringRep *= .5>>
 <<elseif ($personalAttention == "upkeep")>>
 	<<if $PC.belly >= 5000>>
-		You spend your free time hustling around your penthouse, cleaning and making sure everything is in order. You manage to reduce your upkeep by 20%. Your pregnancy slows you down some, but you're used to working around it.
+		You spend your free time hustling around your penthouse, cleaning and making sure everything is in order. You manage to reduce your upkeep by 20%. Your <<if $PC.preg > 0>>pregnancy<<else>>big belly<</if>> slows you down some<<if $PC.counter.birthMaster > 0>>, but you're used to working around it<</if>>.
 	<<else>>
-		You spend your free time hustling around your penthouse, cleaning and making sure everything is in order. You manage to reduce your upkeep by 25%. <<if $PC.counter.birthMaster > 0>>This is much easier to do without a big baby bump in the way.<</if>>
+		You spend your free time hustling around your penthouse, cleaning and making sure everything is in order. You manage to reduce your upkeep by 25%.<<if $PC.counter.birthMaster > 0>> This is much easier to do without a big baby bump in the way.<</if>>
 	<</if>>
 <<elseif ($personalAttention == "proclamation")>>
 	/* handled after this if chain */
@@ -407,7 +407,7 @@
 		<</if>>
 		<<set $SecExp.proclamation.cooldown = 4, $personalAttention = "business">>
 	<<else>>
-		As you currently lack the minimum amount of your chosen proclamation currency, $SecExp.proclamation.currency, it woudld be unwise to attempt execution of your $SecExp.proclamation.type this week.
+		As you currently lack the minimum amount of your chosen proclamation currency, $SecExp.proclamation.currency, it would be unwise to attempt execution of your $SecExp.proclamation.type this week.
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/personalAttentionSelect.tw b/src/uncategorized/personalAttentionSelect.tw
index 94ac8c8af610049eef120fa909c593a7136e20b5..1fc20102c1bd722c27e08dff01699c7117075fbb 100644
--- a/src/uncategorized/personalAttentionSelect.tw
+++ b/src/uncategorized/personalAttentionSelect.tw
@@ -344,6 +344,6 @@
 
 <br><br>__Select a slave to train:__ <<if $PC.skill.slaving >= 100>>//Your @@.springgreen;slaving experience@@ allows you to divide your attention between more than one slave each week, with slightly reduced efficiency//<</if>>
 <<= App.UI.SlaveList.slaveSelectionList(
-		s => s.assignmentVisible === 1 && s.fuckdoll === 0,
+		s => assignmentVisible(s) && s.fuckdoll === 0,
 		s => App.UI.DOM.link(SlaveFullName(s), (id) => {App.UI.selectSlaveForPersonalAttention(id); }, s.ID)
 	)>>
\ No newline at end of file
diff --git a/src/uncategorized/placeInLine.tw b/src/uncategorized/placeInLine.tw
index 99c31edbc4577d688ba47005421d4eb716166891..ed792a20c50c7476ebad95a35a7d7cb1c8f156ba 100644
--- a/src/uncategorized/placeInLine.tw
+++ b/src/uncategorized/placeInLine.tw
@@ -6,13 +6,13 @@
 <<set _activeSlaveIndex = $slaveIndices[$activeSlave.ID]>>
 <<set _SL = $slaves.length>>
 
-<<if ($activeSlave.assignmentVisible == 1)>>
+<<if assignmentVisible($activeSlave)>>
 	<<for _pil = _activeSlaveIndex - 1; _pil != _activeSlaveIndex; _pil-->> /* loops backwards through the $slaves array */
 		<<if _pil < 0>>
 			<<set _pil = _SL>>
 			<<continue>>
 		<</if>>
-		<<if $slaves[_pil].assignmentVisible == 1>>
+		<<if assignmentVisible($slaves[_pil])>>
 			<<set $slavesInLine.push(_pil)>> /* index of the previous slave in line */
 			<<break>>
 		<</if>>
@@ -22,7 +22,7 @@
 			<<set _pil = -1>>
 			<<continue>>
 		<</if>>
-		<<if $slaves[_pil].assignmentVisible == 1>>
+		<<if assignmentVisible($slaves[_pil])>>
 			<<set $slavesInLine.push(_pil)>> /* index of the next slave in line */
 			<<break>>
 		<</if>>
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index d793cad056480e207deda1430d0fe34ae69e3636..ba085ea244c485e3e13d7860880a7f8dd8dd30b6 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -90,7 +90,11 @@
 <<case "look after her">>
 	<<if $activeSlave.relationship == -3 && $activeSlave.fetish == "mindbroken">>
 		Since $activeSlave.slaveName is your $wife and not all there, you keep $him under a watchful eye to make sure no harm comes to the broken $girl. $He almost seems in better spirits under your care, not that it will matter in an hour or two.
-		<<set $activeSlave.kindness++>>
+		<<if def $activeSlave.kindness>>
+			<<set $activeSlave.kindness++>>
+		<<else>>
+			<<set $activeSlave.kindness = 1>>
+		<</if>>
 	<</if>>
 	<<if ($activeSlave.health < 100)>>
 		Your close and expert attention improves $his health in a way drug treatment or mere medical intervention cannot. @@.green;$His health has improved.@@
@@ -520,7 +524,7 @@
 	<<if ($activeSlave.devotion > 20)>>
 		$He is now fully broken; @@.yellow;$his training assignment has defaulted to fostering devotion.@@
 		<<set $personalAttention[_ptwi].trainingRegimen = "build her devotion">>
-		<= IncreasePCSkills('slaving', 1)>>
+		<<= IncreasePCSkills('slaving', 1)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', 0.4)>>
 	<<set $activeSlave.training = 0>>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index e663baa3ff0feb604bd96428b86779f342deeddf..80bc6c194dcde041c9fa182c8911fb3f61989091 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -85,7 +85,7 @@
 							<</if>>
 						<</if>>
 					<</if>>
-					<<if $slaves[$i].assignmentVisible == 1>>
+					<<if assignmentVisible($slaves[$i])>>
 						<<if $slaves[$i].rules.living == "luxurious">>
 							<<if $slaves[$i].devotion >= -20>>
 								<<if $slaves[$i].anus != 0>>
diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw
index 6e783aedc02e45f8fc688d54b4021dc0dbfab5a4..b029be5062ed722c04dde13ae03d396ca06810aa 100644
--- a/src/uncategorized/reFSAcquisition.tw
+++ b/src/uncategorized/reFSAcquisition.tw
@@ -1564,7 +1564,7 @@ The call comes in from an office, and you suppress the urge to check whether $as
 	<<case "Paternalist Two">>
 		$He speaks to you as a free $woman throughout the enslavement process, but as soon as it is completed, $he stops and waits for instruction before talking. $He may not have had many prospects in $his life back home, but if $he remains this obedient $he'll fit right in here in the Free Cities.
 	<<case "Degradationist">>
-		When $he arrives as part of the anonymous slave transfers that make up a good part of the inter-arcology commerce, $he has clearly had some time to mull over $his situation. As soon as $he sees you, $he blurts out, "Whatever that fucker told you, it isn't true. I'll be your little bitch bimbo, whatever you want. Ju<<s>>t don't — ju<<s>>t don't fucking hurt me." $He sticks out $his chest in a clear attempt to entice you with $his fake tits.
+		When $he arrives as part of the anonymous slave transfers that make up a good part of the inter-arcology commerce, $he has clearly had some time to mull over $his situation. As soon as $he sees you, $he blurts out, "Whatever that fucker told you, it i<<s>>n't true. I'll be your little bitch bimbo, whatever you want. Ju<<s>>t don't — ju<<s>>t don't fucking hurt me." $He sticks out $his chest in a clear attempt to entice you with $his fake tits.
 	<<case "Degradationist Two">>
 		When $he arrives as part of the anonymous slave transfers that make up a good part of the inter-arcology commerce, $he has clearly had some time to mull over $his situation. As soon as $he sees you, $he glares deep into your eyes and addresses you directly, "Tho<<s>>e fucker<<s>> threw everything they could at me; you can't break me. No one can."
 	<<case "Intellectual Dependency">>
@@ -1617,7 +1617,7 @@ The call comes in from an office, and you suppress the urge to check whether $as
 	<<case "Chattel Religionist Two">>
 		You complete the legalities and a clearly improvised VTOL craft arrives at $arcologies[0].name, broadcasting an erratic array of IFF codes. It seems this group hasn't quite mastered the intricacies of air travel. The aircraft doesn't seem capable of the delicate feat of landing on the pad it had been directed to: it simply hovers <<if $showInches == 2>>six feet<<else>>two meters<</if>> off the pad for the five seconds it takes to shove a canvas bag that obviously contains a struggling human form out of the side door. The condemned prays tirelessly throughout the biometric scanning process, utterly shocked and disgusted by what they've witnessed in just the few minutes they've been in your arcology. Then it's off to the penthouse for basic slave induction.
 	<<case "Roman Revivalist">>
-		$He arrives wide-eyed and enthusiastic about the historical style $he saw on the way in. $He swallows nervously throughout the enslavement process and even cries a little at the end. $He's slow to undress, and when $he's finished, $he covers $his modest breasts with one arm and $his mons with the other. It seems that $he's about to have a rude awakening about the realities of being a house slave.
+		$He arrives wide-eyed and enthusiastic about the historical style $he <<if canSee($activeSlave)>>saw<<elseif canHear($activeSlave)>>heard<<else>>felt<</if>> on the way in. $He swallows nervously throughout the enslavement process and even cries a little at the end. $He's slow to undress, and when $he's finished, $he covers $his modest breasts with one arm and $his mons with the other. It seems that $he's about to have a rude awakening about the realities of being a house slave.
 	<<case "Aztec Revivalist">>
 		$He arrives awestruck by <<if canSee($activeSlave)>>all the sights<<else>>everything<</if>> $he passed through to get to your abode. $He probably didn't see anything too extreme, but $he will soon. Feeling your gaze on $his body, $he quickly abandons all fears from $his past life, strips off $his clothes, and submits to you fully. Only time will tell if $he made a mistake.
 	<<case "Edo Revivalist">>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 239aa809df5c1e976ee5c7bad5a796eae8241b18..6d0a17b58a64a762d198282a9cc1bc72b828c6d7 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -482,7 +482,6 @@
 <<set $activeSlave.custom.title = "">>
 <<set $activeSlave.custom.titleLisp = "">>
 <<set $activeSlave.assignment = "rest">>
-<<set $activeSlave.assignmentVisible = 1>>
 <<set $activeSlave.choosesOwnAssignment = 0>>
 <<set $activeSlave.fetishStrength = random(0,90)>>
 <<set $activeSlave.fetish = either("boobs", "buttslut", "cumslut", "humiliation", "none", "none", "none", "none", "none", "none", "pregnancy", "submissive")>>
@@ -1017,7 +1016,6 @@ You look up the _relationType. _He2 costs <<print cashFormat($slaveCost)>>, a ba
 <<set $activeSlave.clothes = "no clothing">>
 <<set $activeSlave.hormones = 0>>
 <<set $activeSlave.assignment = "rest">>
-<<set $activeSlave.assignmentVisible = 1>>
 <<set $activeSlave.choosesOwnAssignment = 0>>
 <<set $activeSlave.fetishStrength = random(0,90)>>
 <<set $activeSlave.fetish = either("boobs", "buttslut", "cumslut", "humiliation", "none", "none", "none", "none", "none", "none", "pregnancy", "submissive")>>
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index 34890e45fd70d450fdc96b8cc3c925b52704410e..36436003b824de8ddcdf8edb19526c37a474354b 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -309,7 +309,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 						"And the<<s>>e work too, right?" _he2 asks as _he2 points to $his dangling balls. "<<S>>o <<he>> ha<<s>> been fully re<<s>>tored; that'<<s>> <<s>>omething." The inspector adds another positive note to the inspection.
 						<<set _inspectionResult-->>
 					<<else>>
-						"I take it the<<s>>e testicle<<s>> are more than ju<<s>>t an implant? I'm <<s>>ure <<he>> appre<<c>>iate<<s>> the ge<<s>>ture, though what good are they without a peni<<s>>?" The inspector shakes _his2 head and notes your attempt to undo the damages to _Inspectee.slaveName.
+						"I take it the<<s>>e te<<s>>ticle<<s>> are more than ju<<s>>t an implant? I'm <<s>>ure <<he>> appre<<c>>iate<<s>> the ge<<s>>ture, though what good are they without a peni<<s>>?" The inspector shakes _his2 head and notes your attempt to undo the damages to _Inspectee.slaveName.
 					<</if>>
 				<</if>>
 
diff --git a/src/uncategorized/remMerger.tw b/src/uncategorized/remMerger.tw
index 1b8d080f8d0891be945ce7dc557d5754167523f7..e2c71a9aab351ad1cde21356c3c1583f8309c661 100644
--- a/src/uncategorized/remMerger.tw
+++ b/src/uncategorized/remMerger.tw
@@ -4,15 +4,15 @@
 <<set $nextLink = "RIE Eligibility Check">>
 
 <<set _slaveCompany = App.Corporate.divisionList
-                                   .filter(div => div.founded && div.hasMergers)
-                                   .map   (div => div.mergerChoices.map((merger, index) => ({merger, index, division:div})))
-                                   .flat  ()>>
+								   .filter(div => div.founded && div.hasMergers)
+								   .map   (div => div.mergerChoices.map((merger, index) => ({merger, index, division:div})))
+								   .flat  ()>>
 <<set _maxCompanies = Math.trunc(Math.log2(App.Corporate.divisionList.filter(div => div.founded).length)) + 1>>
 <<set _numCompanies = random(1, _maxCompanies)>>
 
 <<set _companies = []>>
 <<for _index = 0; _index < _numCompanies; ++_index>>
-    <<run _companies.push(_slaveCompany.pluck())>>
+	<<run _companies.push(_slaveCompany.pluck())>>
 <</for>>
 
 <<set _assistant = $assistantName>>
@@ -21,43 +21,43 @@
 
 
 <<if _companies.length == 1>>
-    <<set _company = _companies[0]>>
-    <div class="majorText">This week you come across <<= _company.merger.text.trouble >></div>
+	<<set _company = _companies[0]>>
+	<div class="majorText">This week you come across <<= _company.merger.text.trouble >></div>
 <<else>>
-    <<for _index, _company range _companies>>
-        <div class="majorText">The <<= ordinalSuffixWords(_index + 1)>> is <<= _company.merger.text.trouble >></div>
-    <</for>>
+	<<for _index, _company range _companies>>
+		<div class="majorText">The <<= ordinalSuffixWords(_index + 1)>> is <<= _company.merger.text.trouble >></div>
+	<</for>>
 <</if>>
 <div id="result">
 <<for _company range _companies>>
-    <<capture _company>>
+	<<capture _company>>
 	<div>
-    <<set _absorbName = "Absorb the " + _company.merger.name>>
-    <<link _absorbName>>
+	<<set _absorbName = "Absorb the " + _company.merger.name>>
+	<<link _absorbName>>
 		<<replace "#result">>
-            You quickly acquire the <<= _company.merger.name>><<= _company.merger.text.acquire >>
-            <<set _devCount = _company.merger.result.development,
-                  _slaveCount = _company.merger.result.slaves>>
-            <<if _devCount != null>>
-                <<set _company.division.developmentCount += _devCount>>
-            <</if>>
-            <<if _slaveCount != null>>
-                <<set _company.division.activeSlaves += _slaveCount>>
-            <</if>>
-            <<set _cost = (_company.merger.cost || 50) * 1000 >>
-            <<if _devCount != null && _slaveCount != null>>
-                <<set App.Corporate.chargeAsset(_cost / 2, "development")>>
-                <<set App.Corporate.chargeAsset(_cost / 2, "slaves")>>
-            <<elseif _devCount != null>>
-                <<set App.Corporate.chargeAsset(_cost, "development")>>
-            <<elseif _slavecount != null>>
-                <<set App.Corporate.chargeAsset(_cost, "slaves")>>
-            <<else>>
-                @@.red;ERROR! No changes to the corporation are made!@@
-            <</if>>
+			You quickly acquire the <<= _company.merger.name>><<= _company.merger.text.acquire >>
+			<<set _devCount = _company.merger.result.development,
+				  _slaveCount = _company.merger.result.slaves>>
+			<<if _devCount != null>>
+				<<set _company.division.developmentCount += _devCount>>
+			<</if>>
+			<<if _slaveCount != null>>
+				<<set _company.division.activeSlaves += _slaveCount>>
+			<</if>>
+			<<set _cost = (_company.merger.cost || 50) * 1000 >>
+			<<if _devCount != null && _slaveCount != null>>
+				<<set App.Corporate.chargeAsset(_cost / 2, "development")>>
+				<<set App.Corporate.chargeAsset(_cost / 2, "slaves")>>
+			<<elseif _devCount != null>>
+				<<set App.Corporate.chargeAsset(_cost, "development")>>
+			<<elseif _slavecount != null>>
+				<<set App.Corporate.chargeAsset(_cost, "slaves")>>
+			<<else>>
+				@@.red;ERROR! No changes to the corporation are made!@@
+			<</if>>
 		<</replace>>
 	<</link>>
-    </div>
-    <</capture>>
+	</div>
+	<</capture>>
 <</for>>
 </div>
diff --git a/src/uncategorized/rieEligibilityCheck.tw b/src/uncategorized/rieEligibilityCheck.tw
index 3289e54276e48042a9de761817c3ec1d013ee535..21e47a71f33576a6a8660d4bdc4209bd90179b56 100644
--- a/src/uncategorized/rieEligibilityCheck.tw
+++ b/src/uncategorized/rieEligibilityCheck.tw
@@ -5,7 +5,7 @@
 <<set $eventSlave = 0, $eligibleSlaves = []>>
 
 <<for $i = 0; $i < $slaves.length; $i++>>
-	<<if $slaves[$i].assignmentVisible == 1 || $slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine" || $slaves[$i].assignment == "work as a servant">>
+	<<if assignmentVisible($slaves[$i]) || $slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine" || $slaves[$i].assignment == "work as a servant">>
 		<<if $slaves[$i].fuckdoll == 0>>
 			<<set $eligibleSlaves.push($slaves[$i].ID)>>
 		<</if>>
diff --git a/src/uncategorized/saDevotion.tw b/src/uncategorized/saDevotion.tw
index 7b302266d1b41074bdd6d8fc9b80c5b945c134fa..161619709c04c7a6d6f4d926d64e18e13b1a70e7 100644
--- a/src/uncategorized/saDevotion.tw
+++ b/src/uncategorized/saDevotion.tw
@@ -497,7 +497,7 @@
 
 <</if>> /* CLOSES RETIREMENT */
 
-<<if $slaves[$i].assignmentVisible == 1>>
+<<if assignmentVisible($slaves[$i])>>
 	<<if $personalAttention == "sex">>
 		<<if $freeSexualEnergy > 0>>
 			<<if $freeSexualEnergy == 3>>
@@ -545,26 +545,26 @@
 		<<if $slaves[$i].devotion >= -20>>
 			<<if $slaves[$i].devotion <= 20>>
 				<<set _collectiveDevotionEffect = 1, $slaves[$i].devotion += 1>>
-				<<if $slaves[$i].assignmentVisible == 1>><<set $slaves[$i].devotion += 1>><</if>>
+				<<if assignmentVisible($slaves[$i])>><<set $slaves[$i].devotion += 1>><</if>>
 			<</if>>
 		<</if>>
 	<<elseif $enduringDevotion <= 0>>
 		<<if $slaves[$i].devotion <= 20>>
 			<<set _collectiveDevotionEffect = -1, $slaves[$i].devotion -= 1>>
-			<<if $slaves[$i].assignmentVisible == 1>><<set $slaves[$i].devotion -= 1>><</if>>
+			<<if assignmentVisible($slaves[$i])>><<set $slaves[$i].devotion -= 1>><</if>>
 		<</if>>
 	<</if>>
 	<<if $enduringTrust > 50>>
 		<<if $slaves[$i].trust >= -20>>
 			<<if $slaves[$i].trust <= 20>>
 				<<set _collectiveTrustEffect = 1, $slaves[$i].trust += 1>>
-				<<if $slaves[$i].assignmentVisible == 1>><<set $slaves[$i].trust += 1>><</if>>
+				<<if assignmentVisible($slaves[$i])>><<set $slaves[$i].trust += 1>><</if>>
 			<</if>>
 		<</if>>
 	<<elseif $enduringTrust <= 0>>
 		<<if $slaves[$i].trust <= 20>>
 			<<set _collectiveTrustEffect = -1, $slaves[$i].trust -= 1>>
-			<<if $slaves[$i].assignmentVisible == 1>><<set $slaves[$i].trust -= 1>><</if>>
+			<<if assignmentVisible($slaves[$i])>><<set $slaves[$i].trust -= 1>><</if>>
 		<</if>>
 	<</if>>
 	<<if _collectiveDevotionEffect == 1>>
@@ -592,7 +592,7 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].assignmentVisible == 1>>
+<<if assignmentVisible($slaves[$i])>>
 	<<if ($arcade != 0) || (($dairy != 0) && ($dairyRestraintsSetting >= 2))>>
 		<<if $slaves[$i].devotion <= 95>>
 			$He knows about <<if $arcade != 0>>$arcadeName<<if ($dairy != 0) && ($dairyRestraintsSetting >= 2)>> and $dairyName<</if>><<else>>$dairyName<</if>>, and @@.gold;fears@@ that you might send $him there.
diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw
index 5b60b88913a8ccc28e45a861bbc180950eaf0e62..a32538c6e7bca1b58e6017788b62465dc50b036a 100644
--- a/src/uncategorized/saDiet.tw
+++ b/src/uncategorized/saDiet.tw
@@ -313,7 +313,7 @@
 					<<if $slaves[$i].behavioralFlaw == "anorexic">>
 						and $his cum addiction trumps $his desire to remain thin. $He
 					<<else>>
-						$he 					
+						$he
 					<</if>> is @@.hotpink;thrilled to get extra this week.@@ $He gobbles down every last drop like the happy <<if $slaves[$i].weight < 0>>little <<else>>chubby <</if>>cum addict $he is.
 					<<set $slaves[$i].devotion += 2>>
 				<</if>>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index 205a55bd984400cdbe0e8533fd3012bfd99b16cf..e369bd38aa742b8c9488de15894173b05eb7aa73 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -964,7 +964,7 @@
 	$He receives @@.lime;direct injections of atrophiers right into $his penis,@@ causing $his body to begin pulling resources from it<<if $slaves[$i].geneMods.NCS == 1>>, $his @@.orange;NCS@@ amplifies the effectiveness<</if>>.
 	<<set _shrinkage = 0>>
 	<<if $slaves[$i].dick == 1>>
-		$His penis is now so miniscule that further drug use will fail to shrink it further; @@.yellow;$his drug regimen has been ended.@@
+		$His penis is now so minuscule that further drug use will fail to shrink it further; @@.yellow;$his drug regimen has been ended.@@
 		<<set $slaves[$i].drugs = "no drugs">>
 	<<elseif $slaves[$i].dick >= 20>>
 		@@.lime;$His cock shrinks painfully,@@ becoming massively shorter and thinner.
diff --git a/src/uncategorized/saGetMilked.tw b/src/uncategorized/saGetMilked.tw
deleted file mode 100644
index 1606670832d08b9170799e2904cb2c235ee2830c..0000000000000000000000000000000000000000
--- a/src/uncategorized/saGetMilked.tw
+++ /dev/null
@@ -1,683 +0,0 @@
-:: SA get milked [nobr]
-
-<!-- Statistics gathering -->
-<<set _incomeStats = getSlaveStatisticData($slaves[$i], $slaves[$i].assignment === Job.DAIRY ? $facility.dairy : undefined)>>
-<<set _incomeStats.milk = 0; _incomeStats.cum = 0; _incomeStats.fluid = 0>>
-
-<<if ndef $slaves[$i].lactationAdaptation>>
-	<<set $slaves[$i].lactationAdaptation = 0>>
-<</if>>
-
-<<set $milk = 0, $cum = 0>>
-
-gets milked this week.
-<<if $dairy > 0 && $dairyRestraintsSetting < 2>>
-	<<if (($universalRulesFacilityWork == 1) && ($slaves[$i].assignment == "get milked") && ($dairySpots > 0)) || ($slaves[$i].assignment == "work in the dairy")>>
-		<<if ($slaves[$i].assignment == "get milked")>>
-			Since there's extra space in $dairyName, $he spends most of $his milkings there.
-			<<set $dairySpots -= 1>>
-		<</if>>
-		<<if ($Milkmaid != 0)>>
-			While there, $he gets the benefit of $Milkmaid.slaveName's <<if ($Milkmaid.physicalAge < 21)>>youthful energy<<else>>care<</if>><<if ($Milkmaid.skill.oral >= 100)>> and talented tongue<</if>>.
-			<<if ($slaves[$i].devotion < $milkmaidDevotionThreshold)>>
-				<<set $slaves[$i].devotion += $milkmaidDevotionBonus>>
-			<</if>>
-			<<if ($slaves[$i].trust < $milkmaidTrustThreshold)>>
-				<<set $slaves[$i].trust += $milkmaidTrustBonus>>
-			<</if>>
-			<<if ($slaves[$i].health < 100)>>
-				<<set $slaves[$i].health += $milkmaidHealthBonus>>
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-
-<<if $slaves[$i].lactation > 0>>
-
-	<<set $milk = milkAmount($slaves[$i])>>
-
-	$He produces from $his <<print either("boobs", "breasts", "mammaries", "tits", "udders")>>, which have a combined volume of <<print $slaves[$i].boobs*2>> CCs;
-	<<if ($slaves[$i].boobsImplant > 0)>>
-		<<set _implantEffect = $slaves[$i].boobsImplant/$slaves[$i].boobs>>
-	<</if>>
-	<<if ($slaves[$i].lactation == 1)>>
-		$he is lactating naturally and produces
-		<<if _implantEffect >= .90>>
-			a weak trickle of milk.
-		<<elseif _implantEffect >= .75>>
-			a weak stream of milk.
-		<<else>>
-			a healthy stream of milk.
-		<</if>>
-	<<elseif ($slaves[$i].lactation == 2)>>
-		$he is on lactation drugs and produces
-		<<if _implantEffect >= .90>>
-			a steady flow of milk.
-		<<elseif _implantEffect >= .75>>
-			strong bursts of milk.
-		<<else>>
-			a river of milk.
-		<</if>>
-		<<if $slaves[$i].lactationAdaptation < 100>>
-			$His udders are forced to adapt to this unnatural productivity.
-			<<set $slaves[$i].lactationAdaptation += 1>>
-		<</if>>
-		<<if $slaves[$i].curatives == 0 && $slaves[$i].inflationType != "curative">>
-			The stress of extreme milk production @@.red;damages $his health.@@
-			<<set $slaves[$i].health -= 3>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].boobsMilk > 0)>>
-		$He was in need of a good milking, too.
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 50)>>
-		$He's such a happy cow that $his mental state has a positive impact on $his production.
-	<<elseif ($slaves[$i].devotion < -50)>>
-		$He's such an unhappy cow that $his mental state has a negative impact on $his production.
-	<</if>>
-
-	<<if ($slaves[$i].boobsImplant > 0)>>
-		However, $his
-		<<if _implantEffect >= .90>>
-			breast implants are ill-suited for
-		<<elseif _implantEffect >= .75>>
-			breasts are almost entirely implant, greatly restricting $his
-		<<elseif _implantEffect >= .60>>
-			breasts are mostly implant, restricting $his
-		<<elseif _implantEffect >= .45>>
-			implants make up a considerable amount of $his breasts and greatly impede
-		<<elseif _implantEffect >= .30>>
-			breast implants take up enough space to impede
-		<<elseif _implantEffect >= .10>>
-			breast implants slightly impede
-		<<else>>
-			breast implants cause a minor decrease in
-		<</if>>
-		milk production<<if _implantEffect >= .90>>, given the lack of actual breast flesh<</if>>.
-	<</if>>
-
-	<<set $hormones = $slaves[$i].hormoneBalance/100>>
-	<<if ($slaves[$i].balls != 0)>>
-		<<set $hormones -= 1>>
-	<</if>>
-	<<if (($slaves[$i].ovaries != 0) || ($slaves[$i].mpreg != 0))>>
-		<<set $hormones += 1>>
-	<</if>>
-	<<if ($hormones > 1)>>
-		$His internal chemistry is perfectly suited to milk production.
-	<<elseif ($hormones > 0)>>
-		$His hormonal balance favors milk production.
-	<<elseif ($hormones < 0)>>
-		$His hormonal balance impedes milk production.
-	<<elseif ($hormones < -1)>>
-		$His internal chemistry is poorly suited to milk production.
-	<</if>>
-
-	<<if $slaves[$i].lactationAdaptation < 100>>
-		<<if ($slaves[$i].assignment == "get milked") || ($slaves[$i].assignment == "work in the dairy")>>
-			Living as a cow helps $his body and mind adapt to producing milk.
-			<<set $slaves[$i].lactationAdaptation += 1>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].preg > $slaves[$i].pregData.normalBirth/8) && ($slaves[$i].pregKnown == 1)>>
-		$His pregnancy helps $his body produce more milk naturally<<if $slaves[$i].lactationAdaptation < 100>>, and also helps it adapt to milk production<<set $slaves[$i].lactationAdaptation += 1>><</if>>.
-	<</if>>
-
-	<<if ($slaves[$i].health > 50)>>
-		$His shining health helps $him really produce.
-	<<elseif ($slaves[$i].health < -50)>>
-		$His poor health impedes milk production.
-	<</if>>
-
-	<<if ($slaves[$i].weight > 10)>>
-		$His extra weight supports $his productivity.
-	<<elseif ($slaves[$i].weight < -10)>>
-		$His thinness hinders $his productivity.
-	<</if>>
-
-	<<if $slaves[$i].lactationAdaptation > 10>>
-		<<if $slaves[$i].lactationAdaptation > 50>>
-			$His body has adapted heavily to milk production, making $him extremely productive.
-		<<else>>
-			$His body has gotten used to producing milk, making $him very productive.
-		<</if>>
-	<</if>>
-
-	<<if $dairySlimMaintainUpgrade == 1>>
-		<<if $dairySlimMaintain == 1>>
-			<<if ($slaves[$i].boobs <= 700)>>
-				<<if ($arcologies[0].FSSlimnessEnthusiast > 80)>>
-					Your arcology's milkers are optimized to extract maximum output from small breasted slaves, which substantially increases $his otherwise modest productivity.
-					<<set $milk *= 1.5>>
-				<<elseif ($arcologies[0].FSSlimnessEnthusiast > 20)>>
-					Your arcology's milkers have been carefully modified to more readily accommodate slaves with tiny breasts, which slightly mitigates $his less than ideal physiology for milk production.
-					<<set $milk *= 1.1>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-
-	/* This is going to be where the dairy overhaul takes place (milk half) */
-	<<if ($slaves[$i].assignment == "work in the dairy")>>
-		<<if ($dairyFeedersUpgrade == 1)>>
-			<<if ($dairyFeedersSetting > 0)>>
-				<<set $milk += $milk*(0.1*($dairyFeedersUpgrade+$dairyRestraintsSetting+((50-$slaves[$i].physicalAge)/20)))>>
-				<<if ($slaves[$i].chem > 360)>>
-					<<set $milk *= 0.6>>
-				<<elseif ($slaves[$i].chem > 100)>>
-					<<set $milk *= ((600-$slaves[$i].chem)/600)>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<<elseif ($slaves[$i].assignment == "be confined in the arcade")>>
-		<<set $milk *= 0.5>>
-	<</if>>
-
-	<<set $milk *= $servantMilkersMultiplier>>
-
-	<<set $milk = Math.trunc($milk)>>
-	<<if $milk < 1>>
-		<<set $milk = 1>>
-	<</if>>
-	<<set $slaves[$i].counter.milk += $milk>>
-	<<set $milkTotal += $milk>>
-
-	As a result, $he produces $milk liters of milk over the week.
-	<<set _incomeStats.milk = $milk>>
-
-	<<if ($arcologies[0].FSPastoralistLaw == 1)>>
-		<<set $milkSale = $milk*(8+Math.trunc($arcologies[0].FSPastoralist/30))>>
-		Since breast milk is $arcologies[0].name's only legal dairy product, $he can scarcely be milked fast enough, and $he makes @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
-	<<elseif ($arcologies[0].FSPastoralist != "unset")>>
-		<<set $milkSale = $milk*(6+Math.trunc($arcologies[0].FSPastoralist/30))>>
-		Since milk is fast becoming a major part of the $arcologies[0].name's dietary culture, $his milk is in demand, and $he makes @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
-	<<else>>
-		<<set $milkSale = $milk*6>>
-		$His milk is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
-	<</if>>
-	<<if $slaves[$i].assignment == "work in the dairy">>
-		<<run cashX($milkSale, "milkedDairy", $slaves[$i])>>
-	<<elseif $slaves[$i].assignment == "get milked">>
-		<<run cashX($milkSale, "milked", $slaves[$i])>>
-	<<else>>
-		<<run cashX($milkSale, "extraMilk", $slaves[$i])>>
-	<</if>>
-
-	<<set _incomeStats.income += $milkSale>>
-
-	<<if $slaves[$i].fetishKnown>>
-		<<if ($slaves[$i].fetish == "boobs") || ($slaves[$i].energy > 95)>>
-			Getting constantly milked is as good as sex, as far as $he's concerned. @@.hotpink;$He is happy@@ to have $his breasts receive so much attention.
-			<<set $slaves[$i].devotion += 1>>
-			<<if $slaves[$i].need>><<set $slaves[$i].need = 0>><</if>>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].career == "a dairy cow" && $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-		$He feels like @@.hotpink;$he was made to be milked,@@ @@.mediumaquamarine;not that $he'd complain about such a good feeling.@@
-		<<set $slaves[$i].devotion++, $slaves[$i].trust++>>
-		<<if $slaves[$i].need>><<set $slaves[$i].need = 0>><</if>>
-	<</if>>
-
-	<<if ($slaves[$i].nipples != "huge")>>
-		<<if ($slaves[$i].nipples == "inverted")>>
-			<<if ($slaves[$i].fetish == "masochist") && ($slaves[$i].fetishKnown == 1)>>
-				Having the milkers constantly haul $his inverted nipples out is @@.hotpink;extremely uncomfortable; $he loves it.@@
-				<<set $slaves[$i].devotion += 3>>
-			<<else>>
-				Having the milkers constantly haul $his inverted nipples out is @@.mediumorchid;extremely uncomfortable.@@
-				<<set $slaves[$i].devotion -= 3>>
-			<</if>>
-			<<if (random(1,100) > 50)>>
-				The constant suction @@.lime;permanently protrudes them,@@ and
-				<<if (random(1,2) == 1)>>
-					it turns out they're absolutely massive.
-					<<set $slaves[$i].nipples = "huge">>
-				<<else>>
-					it turns out they're nice and puffy.
-					<<set $slaves[$i].nipples = "puffy">>
-				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].nipples == "partially inverted")>>
-			<<if ($slaves[$i].fetish == "masochist") && ($slaves[$i].fetishKnown == 1)>>
-				Having the milkers constantly haul $his inverted nipples out is @@.hotpink;quite uncomfortable; $he loves it.@@
-				<<set $slaves[$i].devotion += 1>>
-			<<else>>
-				Having the milkers constantly haul $his inverted nipples out is @@.mediumorchid;quite uncomfortable.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<</if>>
-			<<if (random(1,100) > 30)>>
-				The constant suction @@.lime;permanently protrudes them,@@ and
-				<<if (random(1,2) == 1)>>
-					it turns out they're pretty cute.
-					<<set $slaves[$i].nipples = "cute">>
-				<<else>>
-					it turns out they're nice and puffy.
-					<<set $slaves[$i].nipples = "puffy">>
-				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].nipples == "puffy") && (random(1,100) > 90)>>
-			Producing this river of milk @@.lime;enlarges $his nipples:@@ they're now enormous.
-			<<set $slaves[$i].nipples = "huge">>
-		<<elseif ($slaves[$i].nipples == "cute") && (random(1,100) > 80)>>
-			Producing this river of milk @@.lime;makes $his nipples nice and puffy.@@
-			<<set $slaves[$i].nipples = "puffy">>
-		<<elseif ($slaves[$i].nipples == "tiny")>>
-			Producing this river of milk @@.lime;makes $his nipples grow to a nice size.@@
-			<<set $slaves[$i].nipples = "cute">>
-		<<elseif ($slaves[$i].areolae < 4) && (random(1,100) > 30+($slaves[$i].areolae*20))>>
-			Producing this river of milk @@.lime;broadens $his areolae.@@
-			<<set $slaves[$i].areolae += 1>>
-		<</if>>
-	<</if>>
-	<<set $slaves[$i].lactationDuration = 2>>
-	<<if $slaves[$i].boobsMilk > 0>>
-		<<set $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
-	<</if>>
-
-<</if>> /* CLOSES BREAST MILKING */
-
-<<if ["be confined in the arcade", "get milked", "work in the dairy"].includes($slaves[$i].assignment)>> /* prevents penthouse milkers from overstepping their boundaries */
-
-	<<if ($slaves[$i].balls > 0)>>
-
-		<<set $cumSlaves += 1>>
-		<<set $cum = cumAmount($slaves[$i])>>
-
-		<<if $slaves[$i].lactation > 0>>
-			$His
-		<<else>>
-			$slaves[$i].slaveName's
-		<</if>>
-
-		<<if $slaves[$i].dick > 0>>
-			<<if ($slaves[$i].dick > 6)>>
-				inhuman
-			<<elseif ($slaves[$i].dick > 5)>>
-				massive
-			<<elseif ($slaves[$i].dick > 4)>>
-				big
-			<<elseif ($slaves[$i].dick > 3)>>
-				sizable
-			<<elseif ($slaves[$i].dick > 2)>>
-				moderate
-			<<elseif ($slaves[$i].dick > 1)>>
-				little
-			<<else>>
-				tiny
-			<</if>>
-			prick is
-			<<if $slaves[$i].lactation > 0>>
-				also
-			<</if>>
-			machine-milked
-		<<else>>
-			butt is machine-fucked
-		<</if>>
-		to extract the cum from $his
-		<<if ($slaves[$i].scrotum == 0)>>
-			invisible
-		<<else>>
-			<<switch $slaves[$i].balls>>
-			<<case 10>>inhuman
-			<<case 9>>titanic
-			<<case 8>>gigantic
-			<<case 7>>monstrous
-			<<case 6>>huge
-			<<case 5>>pendulous
-			<<case 4>>swinging
-			<<case 3>>big
-			<<case 2>>average
-			<<case 1>>pathetic
-			<<default>>hypertrophied
-			<</switch>>
-		<</if>>
-		<<if $slaves[$i].drugs == "testicle enhancement">>
-			balls, relieving them of the excessive cum production caused by the testicle enhancement drugs.
-		<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
-			balls, relieving them of the excessive cum production caused by the hyper testicle enhancement drugs.
-		<<else>>
-			balls.
-		<</if>>
-
-		<<if $slaves[$i].diet == "cum production">>
-			$His diet is designed for cum production.
-		<</if>>
-
-		<<set $hormones = $slaves[$i].hormoneBalance/50>>
-		<<if $hormones < -1>>
-			$His internal chemistry is perfectly suited to cum production.
-		<<elseif $hormones < 0>>
-			$His hormonal balance favors cum production.
-		<<elseif $hormones > 0>>
-			$His hormonal balance impedes cum production.
-		<<elseif $hormones > 1>>
-			$His internal chemistry is poorly suited to cum production.
-		<</if>>
-
-		<<if $slaves[$i].scrotum == 0>>
-			$He does produce cum despite $his apparent ballslessness, but less than $he would if they weren't hidden inside $him.
-		<</if>>
-
-		<<if $slaves[$i].prostate>>
-			<<if $slaves[$i].prostate > 2>>
-				$His heavily altered prostate greatly increases the volume of $his ejaculations and promotes excessive, watery semen production. This dilute ejaculate @@.red;sells poorly@@ compared to normal cum.
-			<<elseif $slaves[$i].prostate > 1>>
-				$His hyperactive prostate increases the volume of $his ejaculations and promotes good semen production.
-			<</if>>
-		<<else>>
-			$His lack of a prostate reduces the health and volume of $his ejaculations.
-		<</if>>
-
-		<<if ($slaves[$i].devotion > 50)>>
-			$He's so happy that $his mental state has a positive impact on $his semen production.
-		<<elseif ($slaves[$i].devotion < -50)>>
-			$He's so unhappy that $his mental state has a negative impact on $his semen production.
-		<</if>>
-
-		<<if ($slaves[$i].health > 50)>>
-			$His shining health helps $him really produce.
-		<<elseif ($slaves[$i].health < -50)>>
-			$His poor health impedes semen production.
-		<</if>>
-
-		<<if $slaves[$i].vasectomy == 1>>
-			$His cum lacks the primary ingredient, sperm, thanks to $his vasectomy, @@.red;considerably lowering the value@@ of $his ejaculate.
-		<<elseif $slaves[$i].ballType == "sterile">>
-			$His cum lacks vigor entirely, thanks to $his chemical castration, @@.red;considerably lowering the value@@ of $his ejaculate.
-		<</if>>
-
-		/* Dairy rework cum half here */
-		<<if ($slaves[$i].assignment == "work in the dairy")>>
-			<<if ($dairyStimulatorsUpgrade == 1)>>
-				<<if ($dairyStimulatorsSetting > 0)>>
-					<<set $cum += $cum*(0.2*($dairyStimulatorsSetting+$dairyRestraintsSetting+Math.trunc((50-$slaves[$i].physicalAge)/20)))>>
-				<</if>>
-				<<if ($slaves[$i].chem > 360)>>
-					<<set $cum = Math.trunc($cum*0.6)>>
-				<<elseif ($slaves[$i].chem > 100)>>
-					<<set $cum = Math.trunc($cum*((600-$slaves[$i].chem)/600))>>
-				<</if>>
-			<<elseif ($Milkmaid != 0)>>
-				<<if ($Milkmaid.dick > 4) && canAchieveErection($Milkmaid)>>
-					$Milkmaid.slaveName sometimes stands in for the machines, which is a polite way of saying $he sometimes fucks $slaves[$i].slaveName's ass to help $him cum.
-					<<set $cum += $cum*0.2>>
-				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].assignment == "be confined in the arcade")>>
-			<<set $cum = $cum*0.5>>
-		<</if>>
-
-		<<set $cum = Math.trunc($cum)>>
-		<<if $cum < 1>>
-			<<set $cum = 1>>
-		<</if>>
-		<<set $slaves[$i].counter.cum += $cum>>
-		<<set $cumTotal += $cum>>
-		<<set _incomeStats.cum = $cum>>
-
-		<<if ($arcologies[0].FSPastoralist == "unset")>>
-			<<set _cumSale = ($cum*random(15,25))>>
-			<<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>>
-			$He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@
-		<<elseif $arcologies[0].FSPastoralistLaw == 1>>
-			<<set _cumSale = ($cum*(random(20,40)))>>
-			<<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>>
-			$He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of $arcologies[0].name's few legal sources of animal protein, is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@
-		<<else>>
-			<<set _cumSale = ($cum*(random(10,20)+Math.trunc($arcologies[0].FSPastoralist/10)))>>
-			<<if $slaves[$i].vasectomy == 1 || $slaves[$i].ballType == "sterile">><<set _cumSale *= 0.2>><<elseif $slaves[$i].prostate == 3>><<set _cumSale *= 0.5>><</if>>
-			$He produces <<print $cum>> deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for @@.yellowgreen;<<print cashFormat(_cumSale)>>.@@
-		<</if>>
-		<<if $slaves[$i].assignment == "work in the dairy">>
-			<<run cashX(_cumSale, "milkedDairy", $slaves[$i])>>
-		<<elseif $slaves[$i].assignment == "get milked">>
-			<<run cashX(_cumSale, "milked", $slaves[$i])>>
-		<<else>>
-			<<run cashX(_cumSale, "extraMilk", $slaves[$i])>>
-		<</if>>
-		<<set _incomeStats.income += _cumSale>>
-
-		<<if ($slaves[$i].energy > 95)>>
-			Getting $his dick constantly milked is almost as good as getting constant blowjobs as far as $he's concerned. @@.hotpink;$He is happy@@ to have $his member receive so much attention.
-			<<set $slaves[$i].devotion += 1>>
-		<</if>>
-
-		<<if $slaves[$i].need>>
-			$His cock and balls are milked so thoroughly that $he's involuntarily sexually sated, regardless of $his feelings and tastes.
-			<<set $slaves[$i].need = 0>>
-		<</if>>
-
-		<<if !canAchieveErection($slaves[$i])>>
-			Since $he cannot maintain an erection, $he requires @@.gold;painful@@ and @@.mediumorchid;degrading@@ anal electrostimulation to produce.
-			<<set $slaves[$i].devotion -= 2>>
-			<<set $slaves[$i].trust -= 2>>
-			<<if ($slaves[$i].anus == 0)>>
-				The electrostimulator @@.lime;breaks in $his virgin asshole.@@
-				<<set $slaves[$i].anus = 1>>
-			<</if>>
-		<<elseif ($slaves[$i].devotion <= 20)>>
-			Since $he's unaroused by $his situation, $he requires @@.gold;painful@@ and @@.mediumorchid;degrading@@ anal electrostimulation to produce.
-			<<set $slaves[$i].devotion -= 2>>
-			<<set $slaves[$i].trust -= 2>>
-			<<if ($slaves[$i].anus == 0)>>
-				The electrostimulator @@.lime;breaks in $his virgin asshole.@@
-				<<set $slaves[$i].anus = 1>>
-			<</if>>
-		<</if>>
-
-		<<if ($slaves[$i].balls < 3) && $slaves[$i].ballType != "sterile">>
-			<<if ($slaves[$i].balls < 2)>>
-				<<if (random(1,100) > (70 + ($slaves[$i].geneMods.NCS * 15)))>>
-					Constant semen production and continual emptying and refilling @@.lime;increases the size of $his tiny testicles.@@
-					<<set $slaves[$i].balls += 1>>
-				<</if>>
-			<<elseif (random(1,100) > (90 + ($slaves[$i].geneMods.NCS * 5)))>>
-				Constant semen production and continual emptying and refilling @@.lime;increases the size of $his small testicles.@@
-				<<set $slaves[$i].balls += 1>>
-			<</if>>
-		<</if>>
-
-	<</if>> /* CLOSES COCK MILKING */
-
-	<<if $slaves[$i].genes == "XX" && $slaves[$i].prostate > 0 && $slaves[$i].balls == 0>>
-		$His female prostate fluid is considered an exotic delicacy.
-		<<set $fluid = $slaves[$i].prostate * $slaves[$i].energy/5 + 1>>
-		<<if $slaves[$i].energy > 10>>
-			<<if $slaves[$i].health > 50>>
-				<<if $slaves[$i].energy > 90>>
-					As a nympho, $he has no trouble orgasming almost constantly.
-				<</if>>
-				<<set $fluid = $fluid*$slaves[$i].health/50>>
-				$His shining health keeps $his juices flowing.
-			<<elseif $slaves[$i].health < -50>>
-				<<set $fluid = $fluid * (1 + $slaves[$i].health/50)>>
-				$He is so unwell, $he produces less than normal.
-			<</if>>
-		<<else>>
-			/* $slaves[$i].energy <= 10 */
-			Unfortunately, $he is frigid and rarely reaches orgasm in spite of the intense automatic stimulation.
-		<</if>>
-		<<set $fluid = Math.clamp(Math.trunc($fluid),1,1000)>>
-		<<set _incomeStats.fluid = $fluid>>
-		<<print $fluid >> deciliters of uncommon ejaculate is gathered during $his milkings.
-		<<set $fluidSale = $fluid*random(40,50)>>
-		<<if $arcologies[0].FSPastoralist != "unset" && $arcologies[0].FSPastoralist > 30>>
-			<<set $fluidSale = Math.trunc($fluidSale*(1 + ($arcologies[0].FSPastoralist-30)/140))>> /* fully accepted parsoralism gives +50% on the price*/
-			Because of your arcology's cultural preferences, it comes with extra value.
-		<</if>>
-		It is sold for @@.yellowgreen;<<print cashFormat($fluidSale)>>.@@
-		<<if $slaves[$i].assignment == "work in the dairy">>
-			<<run cashX($fluidSale, "milkedDairy", $slaves[$i])>>
-		<<elseif $slaves[$i].assignment == "get milked">>
-			<<run cashX($fluidSale, "milked", $slaves[$i])>>
-		<<else>>
-			<<run cashX($fluidSale, "extraMilk", $slaves[$i])>>
-		<</if>>
-		<<set _incomeStats.income += $fluidSale>>
-	<</if>> /* CLOSES FEMALE PROSTATE FLUID GATHERING */
-
-	<<if ($slaves[$i].behavioralQuirk == "fitness")>>
-		$slaves[$i].slaveName @@.hotpink;privately enjoys@@ the focus on $his health and fitness that comes with being a cow.
-		<<set $slaves[$i].devotion += 1>>
-	<</if>>
-
-	<<if ($showVignettes == 1 && ($slaves[$i].assignment == "get milked" || $slaves[$i].assignment == "work in the dairy"))>>
-		<<set _vignette = GetVignette($slaves[$i])>>
-		__This week__ _vignette.text
-		<<if (_vignette.type == "cash")>>
-			<<set $FResult = FResult($slaves[$i])>>
-			<<if (_vignette.effect > 0)>>
-				@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
-			<<elseif (_vignette.effect < 0)>>
-				@@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@
-			<<else>>
-				an incident without lasting effect.
-			<</if>>
-			<<if $slaves[$i].assignment == "work in the dairy">>
-				<<run cashX(Math.trunc($FResult*_vignette.effect), "milkedDairy", $slaves[$i])>>
-			<<elseif $slaves[$i].assignment == "get milked">>
-				<<run cashX(Math.trunc($FResult*_vignette.effect), "milked", $slaves[$i])>>
-			<<else>>
-				<<run cashX(Math.trunc($FResult*_vignette.effect), "extraMilk", $slaves[$i])>>
-			<</if>>
-			<<set _incomeStats.income += Math.trunc($FResult*_vignette.effect)>>
-		<<elseif (_vignette.type == "devotion")>>
-			<<if (_vignette.effect > 0)>>
-				<<if $slaves[$i].devotion > 50>>
-					@@.hotpink;increasing $his devotion to you.@@
-				<<elseif $slaves[$i].devotion >= -20>>
-					@@.hotpink;increasing $his acceptance of you.@@
-				<<elseif $slaves[$i].devotion > -10>>
-					@@.hotpink;reducing $his dislike of you.@@
-				<<else>>
-					@@.hotpink;reducing $his hatred of you.@@
-				<</if>>
-			<<elseif (_vignette.effect < 0)>>
-				<<if $slaves[$i].devotion > 50>>
-					@@.mediumorchid;reducing $his devotion to you.@@
-				<<elseif $slaves[$i].devotion >= -20>>
-					@@.mediumorchid;reducing $his acceptance of you.@@
-				<<elseif $slaves[$i].devotion > -10>>
-					@@.mediumorchid;increasing $his dislike of you.@@
-				<<else>>
-					@@.mediumorchid;increasing $his hatred of you.@@
-				<</if>>
-			<<else>>
-				an incident without lasting effect.
-			<</if>>
-			<<set $slaves[$i].devotion += 1*_vignette.effect>>
-		<<elseif (_vignette.type == "trust")>>
-			<<if (_vignette.effect > 0)>>
-				<<if $slaves[$i].trust > 20>>
-					@@.mediumaquamarine;increasing $his trust in you.@@
-				<<elseif $slaves[$i].trust > -10>>
-					@@.mediumaquamarine;reducing $his fear of you.@@
-				<<else>>
-					@@.mediumaquamarine;reducing $his terror of you.@@
-				<</if>>
-			<<elseif (_vignette.effect < 0)>>
-				<<if $slaves[$i].trust > 20>>
-					@@.gold;reducing $his trust in you.@@
-				<<elseif $slaves[$i].trust >= -20>>
-					@@.gold;increasing $his fear of you.@@
-				<<else>>
-					@@.gold;increasing $his terror of you.@@
-				<</if>>
-			<<else>>
-				an incident without lasting effect.
-			<</if>>
-			<<set $slaves[$i].trust += 1*_vignette.effect>>
-		<<elseif (_vignette.type == "health")>>
-			<<if (_vignette.effect > 0)>>
-				@@.green;improving $his health.@@
-			<<elseif (_vignette.effect < 0)>>
-				@@.red;affecting $his health.@@
-			<<else>>
-				an incident without lasting effect.
-			<</if>>
-			<<set $slaves[$i].health += 2*_vignette.effect>>
-		<<else>>
-			<<set $FResult = FResult($slaves[$i])>>
-			<<if (_vignette.effect > 0)>>
-				@@.green;gaining you a bit of reputation.@@
-			<<elseif (_vignette.effect < 0)>>
-				@@.red;losing you a bit of reputation.@@
-			<<else>>
-				an incident without lasting effect.
-			<</if>>
-			<<run repX( Math.trunc($FResult*_vignette.effect*0.1), "vignette", $slaves[$i])>>
-			<<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect*0.1)>>
-		<</if>>
-	<</if>>
-
-	/* FACILITY DECORATION IMPACTS */
-
-	<<if $slaves[$i].assignment == "work in the dairy">>
-		<<if $dairyDecoration != "standard">>
-			<<set _fsGain = Math.min(0.0001*$FSSingleSlaveRep*($milk+5*$cum), 1)>>
-			<<switch $dairyDecoration>>
-			<<case "Roman Revivalist">>
-				<<set $arcologies[0].FSRomanRevivalist = Math.clamp($arcologies[0].FSRomanRevivalist += _fsGain,0,100)>>
-			<<case "Aztec Revivalist">>
-				<<set $arcologies[0].FSAztecRevivalist = Math.clamp($arcologies[0].FSAztecRevivalist += _fsGain,0,100)>>
-			<<case "Egyptian Revivalist">>
-				<<set $arcologies[0].FSEgyptianRevivalist = Math.clamp($arcologies[0].FSEgyptianRevivalist += _fsGain,0,100)>>
-			<<case "Edo Revivalist">>
-				<<set $arcologies[0].FSEdoRevivalist = Math.clamp($arcologies[0].FSEdoRevivalist += _fsGain,0,100)>>
-			<<case "Arabian Revivalist">>
-				<<set $arcologies[0].FSArabianRevivalist = Math.clamp($arcologies[0].FSArabianRevivalist += _fsGain,0,100)>>
-			<<case "Chinese Revivalist">>
-				<<set $arcologies[0].FSChineseRevivalist = Math.clamp($arcologies[0].FSChineseRevivalist += _fsGain,0,100)>>
-			<<case "Chattel Religionist">>
-				<<set $arcologies[0].FSChattelReligionist = Math.clamp($arcologies[0].FSChattelReligionist += _fsGain,0,100)>>
-			<<case "Degradationist">>
-				<<set $arcologies[0].FSDegradationist = Math.clamp($arcologies[0].FSDegradationist += _fsGain,0,100)>>
-			<<case "Repopulation Focus">>
-				<<set $arcologies[0].FSRepopulationFocus = Math.clamp($arcologies[0].FSRepopulationFocus += _fsGain,0,100)>>
-			<<case "Eugenics">>
-				<<set $arcologies[0].FSRestart = Math.clamp($arcologies[0].FSRestart += _fsGain,0,100)>>
-			<<case "Asset Expansionist">>
-				<<set $arcologies[0].FSAssetExpansionist = Math.clamp($arcologies[0].FSAssetExpansionist += _fsGain,0,100)>>
-			<<case "Transformation Fetishist">>
-				<<set $arcologies[0].FSTransformationFetishist = Math.clamp($arcologies[0].FSTransformationFetishist += _fsGain,0,100)>>
-			<<case "Gender Radicalist">>
-				<<set $arcologies[0].FSGenderRadicalist = Math.clamp($arcologies[0].FSGenderRadicalist += _fsGain,0,100)>>
-			<<case "Gender Fundamentalist">>
-				<<set $arcologies[0].FSGenderFundamentalist = Math.clamp($arcologies[0].FSGenderFundamentalist += _fsGain,0,100)>>
-			<<case "Physical Idealist">>
-				<<set $arcologies[0].FSPhysicalIdealist = Math.clamp($arcologies[0].FSPhysicalIdealist += _fsGain,0,100)>>
-			<<case "Hedonistic">>
-				<<set $arcologies[0].FSHedonisticDecadence = Math.clamp($arcologies[0].FSHedonisticDecadence += _fsGain,0,100)>>
-			<<case "Supremacist">>
-				<<set $arcologies[0].FSSupremacist = Math.clamp($arcologies[0].FSSupremacist += _fsGain,0,100)>>
-			<<case "Subjugationist">>
-				<<set $arcologies[0].FSSubjugationist = Math.clamp($arcologies[0].FSSubjugationist += _fsGain,0,100)>>
-			<<case "Paternalist">>
-				<<set $arcologies[0].FSPaternalist = Math.clamp($arcologies[0].FSPaternalist += _fsGain,0,100)>>
-			<<case "Pastoralist">>
-				<<set $arcologies[0].FSPastoralist = Math.clamp($arcologies[0].FSPastoralist += _fsGain,0,100)>>
-			<<case "Maturity Preferentialist">>
-				<<set $arcologies[0].FSMaturityPreferentialist = Math.clamp($arcologies[0].FSMaturityPreferentialist += _fsGain,0,100)>>
-			<<case "Youth Preferentialist">>
-				<<set $arcologies[0].FSYouthPreferentialist = Math.clamp($arcologies[0].FSYouthPreferentialist += _fsGain,0,100)>>
-			<<case "Body Purist">>
-				<<set $arcologies[0].FSBodyPurist = Math.clamp($arcologies[0].FSBodyPurist += _fsGain,0,100)>>
-			<<case "Slimness Enthusiast">>
-				<<set $arcologies[0].FSSlimnessEnthusiast = Math.clamp($arcologies[0].FSSlimnessEnthusiast += _fsGain,0,100)>>
-			<<case "Slave Professionalism">>
-				<<set $arcologies[0].FSSlaveProfessionalism = Math.clamp($arcologies[0].FSSlaveProfessionalism += _fsGain,0,100)>>
-			<<case "Intellectual Dependency">>
-				<<set $arcologies[0].FSIntellectualDependency = Math.clamp($arcologies[0].FSIntellectualDependency += _fsGain,0,100)>>
-			<<case "Petite Admiration">>
-				<<set $arcologies[0].FSPetiteAdmiration = Math.clamp($arcologies[0].FSPetiteAdmiration += _fsGain,0,100)>>
-			<<case "Statuesque Glorification">>
-				<<set $arcologies[0].FSStatuesqueGlorification = Math.clamp($arcologies[0].FSStatuesqueGlorification += _fsGain,0,100)>>
-			<</switch>>
-		<</if>>
-	<</if>>
-
-<</if>>
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index 3a77c1b06edbe6154c3a3a03e34f96e4ec474ce7..3bb46e6dde83b2643e7db126a0a9a9287746da9c 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -180,7 +180,7 @@ Being continually trusted with your life @@.hotpink;increases $his devotion to y
 
 <<if $bodyguardTrains == 1 && $slaves[$i].devotion > 95 && $slaves[$i].trust > 50 && $slaves[$i].skill.combat > 0 && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 15>>
 	$He's confident in $his martial skills, but smart enough to know that $he isn't immortal, and devoted enough to worry about who will protect you should $he die.
-	<<set _successorCandidates = $slaves.filter( function(s) { return (s.assignmentVisible == 1 || s.assignment == "be your Concubine" || s.assignment == "be the Wardeness" || s.assignment == "be your Head Girl" || s.assignment == "work as a servant" || s.assignment == "serve in the master suite") && bodyguardSuccessorEligible(s); } )>>
+	<<set _successorCandidates = $slaves.filter( function(s) { return (assignmentVisible(s) || s.assignment == "be your Concubine" || s.assignment == "be the Wardeness" || s.assignment == "be your Head Girl" || s.assignment == "work as a servant" || s.assignment == "serve in the master suite") && bodyguardSuccessorEligible(s); } )>>
 	<<set _combatSkilled = _successorCandidates.filter( function(s) { return s.skill.combat > 0; })>>
 	<<if _combatSkilled.length < 2>>
 		<<unset $subSlave>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 61d39d0705d245138301ee34aec13a7eadeba498..4efa182534b205ceda41ef2d1a1a06e86c7a46ad 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -114,7 +114,7 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].assignmentVisible == 1 && ($slaves[$i].assignment !== "live with your Head Girl" || $HGSuiteSurgery === 0)>> /* OPENS AUTOSURGERY, CLOTHES, AND ACCESSORIES */
+<<if assignmentVisible($slaves[$i]) && ($slaves[$i].assignment !== "live with your Head Girl" || $HGSuiteSurgery === 0)>> /* OPENS AUTOSURGERY, CLOTHES, AND ACCESSORIES */
 	<<if hasSurgeryRule($slaves[$i], $defaultRules) && $slaves[$i].useRulesAssistant == 1 && $slaves[$i].indentureRestrictions < 2 && $cash > 0>>
 		<<= rulesAutosurgery($slaves[$i])>>
 	<</if>>
@@ -7043,52 +7043,54 @@
 				<</if>>
 			<</if>>
 		<</if>>
-		<<if ($slaves[$i].boobs > 40000)>> /* raise me later */
-			$His immense breasts are so big they pin $him to the floor, taking the weight off $his body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along somewhat annoying, but $he's happy to do so if it pleases you.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 25000)>>
-			<<if canWalk($slaves[$i])>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].boobs > 40000)>> /* raise me later */
+				$His immense breasts are so big they pin $him to the floor, taking the weight off $his body.
 				<<if $slaves[$i].sexualFlaw == "breast growth">>
-					$His giant tits are debilitatingly big and a constant reminder of $his progress. No amount of discomfort or pain could dissuade $him from going bigger.
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
 				<<elseif $slaves[$i].devotion <= 50>>
-					$His giant tits are debilitatingly big. They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his body.
-					<<set $slaves[$i].devotion -= 3>>
-					<<set $slaves[$i].health -= 5>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
 				<<else>>
-					$His giant tits are debilitatingly big, but $he takes measures to keep comfortable and pain free as to not concern you with $his troubles.
+					$He finds pulling them along somewhat annoying, but $he's happy to do so if it pleases you.
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 10000)>>
-			<<if ($slaves[$i].muscles <= 30)>>
+			<<elseif ($slaves[$i].boobs > 25000)>>
 				<<if canWalk($slaves[$i])>>
 					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						$His huge breasts are becoming troublesome for $his slight form, but that only drives $his desire to go even bigger.
+						$His giant tits are debilitatingly big and a constant reminder of $his progress. No amount of discomfort or pain could dissuade $him from going bigger.
 					<<elseif $slaves[$i].devotion <= 50>>
-						Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 2>>
-						<<set $slaves[$i].health -= 2>>
+						$His giant tits are debilitatingly big. They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his body.
+						<<set $slaves[$i].devotion -= 3>>
+						<<set $slaves[$i].health -= 5>>
 					<<else>>
-						$He finds $his breasts uncomfortably large, but $he grins and bears it for you.
+						$His giant tits are debilitatingly big, but $he takes measures to keep comfortable and pain free as to not concern you with $his troubles.
 					<</if>>
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 4000)>>
-			<<if ($slaves[$i].muscles <= 30)>>
-				<<if canWalk($slaves[$i])>>
-					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
-					<<elseif $slaves[$i].devotion <= 50>>
-						The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 2>>
-					<<else>>
-						The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+			<<elseif ($slaves[$i].boobs > 10000)>>
+				<<if ($slaves[$i].muscles <= 30)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							$His huge breasts are becoming troublesome for $his slight form, but that only drives $his desire to go even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 2>>
+							<<set $slaves[$i].health -= 2>>
+						<<else>>
+							$He finds $his breasts uncomfortably large, but $he grins and bears it for you.
+						<</if>>
+					<</if>>
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 4000)>>
+				<<if ($slaves[$i].muscles <= 30)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 2>>
+						<<else>>
+							The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+						<</if>>
 					<</if>>
 				<</if>>
 			<</if>>
@@ -7113,63 +7115,65 @@
 				<</if>>
 			<</if>>
 		<</if>>
-		<<if ($slaves[$i].boobs > 40000)>>
-			$His titanic breasts are so massive they dwarf $his body. $He <<if $slaves[$i].sexualFlaw == "breast growth">>happily embraces<<else>>has no choice but to accept<</if>> immobility.
-		<<elseif ($slaves[$i].boobs > 20000)>>
-			$His immense breasts are so huge they rest upon the floor even when $he tries to stand, taking the weight off $his tiny body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along a big burden, but $his devotion to you is far stronger than $his discomfort.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 6000)>>
-			$His giant breasts are so big they pin $him to the floor, taking the weight off $his tiny body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along a little annoying, but your will is far more important to $him.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 5000)>>
-			<<if canWalk($slaves[$i])>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].boobs > 40000)>>
+				$His titanic breasts are so massive they dwarf $his body. $He <<if $slaves[$i].sexualFlaw == "breast growth">>happily embraces<<else>>has no choice but to accept<</if>> immobility.
+			<<elseif ($slaves[$i].boobs > 20000)>>
+				$His immense breasts are so huge they rest upon the floor even when $he tries to stand, taking the weight off $his tiny body.
 				<<if $slaves[$i].sexualFlaw == "breast growth">>
-					$His giant tits are debilitatingly big and a constant reminder of $his progress. No amount of discomfort or pain could dissuade $him from going bigger.
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
 				<<elseif $slaves[$i].devotion <= 50>>
-					$His giant tits are debilitatingly big. They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his childish form.
-					<<set $slaves[$i].devotion -= 3>>
-					<<set $slaves[$i].health -= 4>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
 				<<else>>
-					$His giant tits are debilitatingly big. $He does everything $he can to keep comfortable and pain free as to not bother you.
+					$He finds pulling them along a big burden, but $his devotion to you is far stronger than $his discomfort.
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 2500)>>
-			<<if ($slaves[$i].muscles <= 80)>>
+			<<elseif ($slaves[$i].boobs > 6000)>>
+				$His giant breasts are so big they pin $him to the floor, taking the weight off $his tiny body.
+				<<if $slaves[$i].sexualFlaw == "breast growth">>
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
+				<<elseif $slaves[$i].devotion <= 50>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
+				<<else>>
+					$He finds pulling them along a little annoying, but your will is far more important to $him.
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 5000)>>
 				<<if canWalk($slaves[$i])>>
 					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						$His huge breasts are troublesome for $his childish form, but that only drives $his desire to go even bigger.
+						$His giant tits are debilitatingly big and a constant reminder of $his progress. No amount of discomfort or pain could dissuade $him from going bigger.
 					<<elseif $slaves[$i].devotion <= 50>>
-						Hauling $his huge tits around is @@.mediumorchid;uncomfortable@@ for $his childish form.
-						<<set $slaves[$i].devotion -= 2>>
+						$His giant tits are debilitatingly big. They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his childish form.
+						<<set $slaves[$i].devotion -= 3>>
+						<<set $slaves[$i].health -= 4>>
 					<<else>>
-						$He finds $his breasts uncomfortably large for $his tiny body, but $he grins and bears it for you.
+						$His giant tits are debilitatingly big. $He does everything $he can to keep comfortable and pain free as to not bother you.
 					<</if>>
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 1000)>>
-			<<if ($slaves[$i].muscles <= 30)>>
-				<<if canWalk($slaves[$i])>>
-					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
-					<<elseif $slaves[$i].devotion <= 50>>
-						The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 2>>
-					<<else>>
-						The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+			<<elseif ($slaves[$i].boobs > 2500)>>
+				<<if ($slaves[$i].muscles <= 80)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							$His huge breasts are troublesome for $his childish form, but that only drives $his desire to go even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							Hauling $his huge tits around is @@.mediumorchid;uncomfortable@@ for $his childish form.
+							<<set $slaves[$i].devotion -= 2>>
+						<<else>>
+							$He finds $his breasts uncomfortably large for $his tiny body, but $he grins and bears it for you.
+						<</if>>
+					<</if>>
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 1000)>>
+				<<if ($slaves[$i].muscles <= 30)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 2>>
+						<<else>>
+							The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+						<</if>>
 					<</if>>
 				<</if>>
 			<</if>>
@@ -7194,63 +7198,65 @@
 				<</if>>
 			<</if>>
 		<</if>>
-		<<if ($slaves[$i].boobs > 40000)>>
-			$His immense breasts are so huge they rest upon the floor even when $he tries to stand, taking the weight off $his small body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along a burden, but $his devotion to you is far stronger than $his discomfort.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 12000)>>
-			$His giant breasts are so big they pin $him to the floor, taking the weight off $his young body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along a little annoying, but your will is far more important to $him.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 10000)>>
-			<<if canWalk($slaves[$i])>>
-				$His giant tits are debilitatingly big.
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].boobs > 40000)>>
+				$His immense breasts are so huge they rest upon the floor even when $he tries to stand, taking the weight off $his small body.
 				<<if $slaves[$i].sexualFlaw == "breast growth">>
-					No amount of discomfort or pain could dissuade $him from going bigger.
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
 				<<elseif $slaves[$i].devotion <= 50>>
-					They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his childish form.
-					<<set $slaves[$i].devotion -= 3>>
-					<<set $slaves[$i].health -= 5>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
 				<<else>>
-					$He does $his best to not let them get the better of $his youthful body.
+					$He finds pulling them along a burden, but $his devotion to you is far stronger than $his discomfort.
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 5000)>>
-			<<if ($slaves[$i].muscles <= 80)>>
+			<<elseif ($slaves[$i].boobs > 12000)>>
+				$His giant breasts are so big they pin $him to the floor, taking the weight off $his young body.
+				<<if $slaves[$i].sexualFlaw == "breast growth">>
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
+				<<elseif $slaves[$i].devotion <= 50>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
+				<<else>>
+					$He finds pulling them along a little annoying, but your will is far more important to $him.
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 10000)>>
 				<<if canWalk($slaves[$i])>>
+					$His giant tits are debilitatingly big.
 					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						$His huge breasts are troublesome for $his childish form, but that only drives $his desire to go even bigger.
+						No amount of discomfort or pain could dissuade $him from going bigger.
 					<<elseif $slaves[$i].devotion <= 50>>
-						Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his childish form.
-						<<set $slaves[$i].devotion -= 2>>
-						<<set $slaves[$i].health -= 4>>
+						They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his childish form.
+						<<set $slaves[$i].devotion -= 3>>
+						<<set $slaves[$i].health -= 5>>
 					<<else>>
-						$His huge tits are uncomfortably big for $his childish form, but $he keeps it to $himself out of devotion to you.
+						$He does $his best to not let them get the better of $his youthful body.
 					<</if>>
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 2000)>>
-			<<if ($slaves[$i].muscles <= 30)>>
-				<<if canWalk($slaves[$i])>>
-					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
-					<<elseif $slaves[$i].devotion <= 50>>
-						The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 1>>
-					<<else>>
-						The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+			<<elseif ($slaves[$i].boobs > 5000)>>
+				<<if ($slaves[$i].muscles <= 80)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							$His huge breasts are troublesome for $his childish form, but that only drives $his desire to go even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his childish form.
+							<<set $slaves[$i].devotion -= 2>>
+							<<set $slaves[$i].health -= 4>>
+						<<else>>
+							$His huge tits are uncomfortably big for $his childish form, but $he keeps it to $himself out of devotion to you.
+						<</if>>
+					<</if>>
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 2000)>>
+				<<if ($slaves[$i].muscles <= 30)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 1>>
+						<<else>>
+							The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+						<</if>>
 					<</if>>
 				<</if>>
 			<</if>>
@@ -7275,49 +7281,51 @@
 				<</if>>
 			<</if>>
 		<</if>>
-		<<if ($slaves[$i].boobs > 25000)>>
-			$His immense breasts are so big they pin $him to the floor, taking the weight off $his youthful body.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
-			<<elseif $slaves[$i].devotion <= 50>>
-				$He finds pulling them along @@.mediumorchid;mildly annoying.@@
-				<<set $slaves[$i].devotion -= 1>>
-			<<else>>
-				$He finds pulling them along a little annoying, but your will is far more important to $him.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 17000)>>
-			$His giant tits are debilitatingly big.
-			<<if $slaves[$i].sexualFlaw == "breast growth">>
-				No amount of discomfort or pain could dissuade $him from going bigger.
-			<<elseif $slaves[$i].devotion <= 50>>
-				They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his youthful form.
-				<<set $slaves[$i].devotion -= 3, $slaves[$i].health -= 10>>
-			<<else>>
-				$He finds them painfully uncomfortable, but finds ways to mitigate it to not distract you with $his worries.
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 10000)>>
-			<<if ($slaves[$i].muscles <= 30)>>
-				<<if canWalk($slaves[$i])>>
-					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						$His huge breasts are troublesome for $his slight form, but that only drives $his desire to go even bigger.
-					<<elseif $slaves[$i].devotion <= 50>>
-						Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 2, $slaves[$i].health -= 3>>
-					<<else>>
-						$His huge tits are uncomfortably big for $his slight form, but $he keeps it to $himself out of devotion to you.
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].boobs > 25000)>>
+				$His immense breasts are so big they pin $him to the floor, taking the weight off $his youthful body.
+				<<if $slaves[$i].sexualFlaw == "breast growth">>
+					$He's perfectly fine with dragging them along as a testament to how much $he's managed to grow.
+				<<elseif $slaves[$i].devotion <= 50>>
+					$He finds pulling them along @@.mediumorchid;mildly annoying.@@
+					<<set $slaves[$i].devotion -= 1>>
+				<<else>>
+					$He finds pulling them along a little annoying, but your will is far more important to $him.
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 17000)>>
+				$His giant tits are debilitatingly big.
+				<<if $slaves[$i].sexualFlaw == "breast growth">>
+					No amount of discomfort or pain could dissuade $him from going bigger.
+				<<elseif $slaves[$i].devotion <= 50>>
+					They are @@.mediumorchid;very uncomfortable@@ and @@.red;painful@@ for $his youthful form.
+					<<set $slaves[$i].devotion -= 3, $slaves[$i].health -= 10>>
+				<<else>>
+					$He finds them painfully uncomfortable, but finds ways to mitigate it to not distract you with $his worries.
+				<</if>>
+			<<elseif ($slaves[$i].boobs > 10000)>>
+				<<if ($slaves[$i].muscles <= 30)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							$His huge breasts are troublesome for $his slight form, but that only drives $his desire to go even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							Dragging $his huge tits around is @@.mediumorchid;uncomfortable@@ and @@.red;painful@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 2, $slaves[$i].health -= 3>>
+						<<else>>
+							$His huge tits are uncomfortably big for $his slight form, but $he keeps it to $himself out of devotion to you.
+						<</if>>
 					<</if>>
 				<</if>>
-			<</if>>
-		<<elseif ($slaves[$i].boobs > 2000)>>
-			<<if ($slaves[$i].muscles <= 5)>>
-				<<if canWalk($slaves[$i])>>
-					<<if $slaves[$i].sexualFlaw == "breast growth">>
-						The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
-					<<elseif $slaves[$i].devotion <= 50>>
-						The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
-						<<set $slaves[$i].devotion -= 1>>
-					<<else>>
-						The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+			<<elseif ($slaves[$i].boobs > 2000)>>
+				<<if ($slaves[$i].muscles <= 5)>>
+					<<if canWalk($slaves[$i])>>
+						<<if $slaves[$i].sexualFlaw == "breast growth">>
+							The weight of $his big boobs serves as a reminder that $he needs to get even bigger.
+						<<elseif $slaves[$i].devotion <= 50>>
+							The weight of $his big boobs is @@.mediumorchid;uncomfortable@@ for $his slight form.
+							<<set $slaves[$i].devotion -= 1>>
+						<<else>>
+							The weight of $his big boobs is uncomfortable for $his slight form, but $he bears it out of devotion to you.
+						<</if>>
 					<</if>>
 				<</if>>
 			<</if>>
@@ -7327,112 +7335,120 @@
 	/* physical is countered by .pregAdaptation */
 	<<if $slaves[$i].belly > ($slaves[$i].pregAdaptation*4500)>>
 		$His bloated <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>implant-filled middle<<else>>womb<</if>> is constantly straining to hold together and puts @@.red;overwhelming pressure on $his skin and organs.@@ $His stomach is streaked with deep stretch marks and black and blue from the tension.
-		<<if ($slaves[$i].sexualFlaw == "breeder" || $slaves[$i].sexualFlaw == "self hating") && $slaves[$i].preg > 0>>
-			$He spends every painful moment in sheer joy, each agonizing motion sending quivers of lust through $his breaking body.
-			<<if $slaves[$i].sexualFlaw == "breeder">>
-				$He has achieved $his desires of being nothing more than a baby factory absolutely.
-			<<else>>
-				$He is on the brink of sacrificing $his worthless life for the lives of $his children and $he couldn't be happier.
-			<</if>>
-		<<elseif $slaves[$i].devotion > 90>>
-			$He believes in you so absolutely that even if $he doesn't make it, $he accepts it as your will.
-		<<elseif $slaves[$i].fetish == "mindbroken">>
-			$He struggles along $his daily tasks as if nothing is out of the ordinary.
-		<<else>>
-			This is @@.mediumorchid;horrifying@@ to $him. $He is in excruciating pain and each
-			<<if $slaves[$i].bellyPreg > 100>>
-				movement within $his tearing <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>belly<<else>>womb<</if>>
-			<<else>>
-				breath
-			<</if>>
-			feels like it may be $his last. $He is @@.gold;terrified@@ that at any moment $his body may fail causing $him to burst.
-			<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
-				$His slowed gestation rate gives $his body more time to adapt to $his gravidity, but given $his situation, it just means more suffering.
-				<<set $slaves[$i].devotion -= 15, $slaves[$i].trust -= 20>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].sexualFlaw == "breeder" || $slaves[$i].sexualFlaw == "self hating") && $slaves[$i].preg > 0>>
+				$He spends every painful moment in sheer joy, each agonizing motion sending quivers of lust through $his breaking body.
+				<<if $slaves[$i].sexualFlaw == "breeder">>
+					$He has achieved $his desires of being nothing more than a baby factory absolutely.
+				<<else>>
+					$He is on the brink of sacrificing $his worthless life for the lives of $his children and $he couldn't be happier.
+				<</if>>
+			<<elseif $slaves[$i].devotion > 90>>
+				$He believes in you so absolutely that even if $he doesn't make it, $he accepts it as your will.
+			<<elseif $slaves[$i].fetish == "mindbroken">>
+				$He struggles along $his daily tasks as if nothing is out of the ordinary.
 			<<else>>
-				<<set $slaves[$i].devotion -= 20, $slaves[$i].trust -= 20>>
+				This is @@.mediumorchid;horrifying@@ to $him. $He is in excruciating pain and each
+				<<if $slaves[$i].bellyPreg > 100>>
+					movement within $his tearing <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>belly<<else>>womb<</if>>
+				<<else>>
+					breath
+				<</if>>
+				feels like it may be $his last. $He is @@.gold;terrified@@ that at any moment $his body may fail causing $him to burst.
+				<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
+					$His slowed gestation rate gives $his body more time to adapt to $his gravidity, but given $his situation, it just means more suffering.
+					<<set $slaves[$i].devotion -= 15, $slaves[$i].trust -= 20>>
+				<<else>>
+					<<set $slaves[$i].devotion -= 20, $slaves[$i].trust -= 20>>
+				<</if>>
 			<</if>>
 		<</if>>
 		<<set $slaves[$i].health -= 30, $slaves[$i].pregAdaptation += 1>>
 	<<elseif $slaves[$i].belly > ($slaves[$i].pregAdaptation*3200)>>
 		$His <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>implant filled abdominal cavity<<else>>straining womb<</if>> takes up most of $his body and puts @@.red;tremendous pressure on $his skin and organs.@@
-		<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
-			$He does $his best to ignore the pain; after all, $his wishes to be hugely pregnant have come true.
-		<<elseif $slaves[$i].devotion > 70>>
-			Despite
-			<<if $slaves[$i].bellyPreg > 100>>
-				every movement within $him
-			<<else>>
-				every breath
-			<</if>>
-			feeling like a knife being driven into $his body, $he has faith in your plans for $him.
-		<<elseif $slaves[$i].fetish == "mindbroken">>
-			$He carries on $his daily tasks as if nothing is bothering $him.
-		<<else>>
-			This is @@.mediumorchid;very worrying@@ to $him. $He is in constant pain and
-			<<if $slaves[$i].bellyPreg > 100>>
-				each movement within $his straining womb
-			<<else>>
-				every breath $he takes,
-			<</if>>
-			causes additional agony. $He is @@.gold;terrified@@ of what
-			<<if $slaves[$i].bellyPreg > 100>>
-				awaits $him at the end of this pregnancy.
-			<<else>>
-				will become of $him.
-			<</if>>
-			<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
-				$His slowed gestation rate gives $his body more time to adapt to $his gravidity, but given $his situation, it isn't very comforting.
-				<<set $slaves[$i].devotion -= 7, $slaves[$i].trust -= 10>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
+				$He does $his best to ignore the pain; after all, $his wishes to be hugely pregnant have come true.
+			<<elseif $slaves[$i].devotion > 70>>
+				Despite
+				<<if $slaves[$i].bellyPreg > 100>>
+					every movement within $him
+				<<else>>
+					every breath
+				<</if>>
+				feeling like a knife being driven into $his body, $he has faith in your plans for $him.
+			<<elseif $slaves[$i].fetish == "mindbroken">>
+				$He carries on $his daily tasks as if nothing is bothering $him.
 			<<else>>
-				<<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 10>>
+				This is @@.mediumorchid;very worrying@@ to $him. $He is in constant pain and
+				<<if $slaves[$i].bellyPreg > 100>>
+					each movement within $his straining womb
+				<<else>>
+					every breath $he takes,
+				<</if>>
+				causes additional agony. $He is @@.gold;terrified@@ of what
+				<<if $slaves[$i].bellyPreg > 100>>
+					awaits $him at the end of this pregnancy.
+				<<else>>
+					will become of $him.
+				<</if>>
+				<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
+					$His slowed gestation rate gives $his body more time to adapt to $his gravidity, but given $his situation, it isn't very comforting.
+					<<set $slaves[$i].devotion -= 7, $slaves[$i].trust -= 10>>
+				<<else>>
+					<<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 10>>
+				<</if>>
 			<</if>>
 		<</if>>
 		<<set $slaves[$i].health -= 20, $slaves[$i].pregAdaptation += .4>>
 	<<elseif $slaves[$i].belly > ($slaves[$i].pregAdaptation*2000)>>
 		$His <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>belly implant<<else>>womb<</if>> takes up most of $his body and @@.red;puts tremendous pressure on $his skin and organs.@@
-		<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
-			Every painful kick is a reminder of just how pregnant $he really is, but it just makes $his condition hotter to $him.
-		<<elseif $slaves[$i].devotion > 50>>
-			While
-			<<if $slaves[$i].bellyPreg > 100>>
-				every stirring of the life within $him is uncomfortable,
-			<<else>>
-				every motion $he takes is uncomfortable,
-			<</if>>
-			$he tries $his best to not bother you with $his worries.
-		<<elseif $slaves[$i].fetish == "mindbroken">>
-			$He tries $his best to stay still to minimize the amount of discomfort $he's in.
-		<<else>>
-			This is @@.mediumorchid;very worrying@@ to $him. $He moans in discomfort
-			<<if $slaves[$i].bellyPreg > 100>>
-				with each movement within $him.
-			<<else>>
-				whenever $he is forced to move.
-			<</if>>
-			<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
-				$His slowed gestation rate gives $his body more time to adapt to $his gravidity, easing some of $his worries.
-				<<set $slaves[$i].devotion -= 3>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
+				Every painful kick is a reminder of just how pregnant $he really is, but it just makes $his condition hotter to $him.
+			<<elseif $slaves[$i].devotion > 50>>
+				While
+				<<if $slaves[$i].bellyPreg > 100>>
+					every stirring of the life within $him is uncomfortable,
+				<<else>>
+					every motion $he takes is uncomfortable,
+				<</if>>
+				$he tries $his best to not bother you with $his worries.
+			<<elseif $slaves[$i].fetish == "mindbroken">>
+				$He tries $his best to stay still to minimize the amount of discomfort $he's in.
 			<<else>>
-				<<set $slaves[$i].devotion -= 5>>
+				This is @@.mediumorchid;very worrying@@ to $him. $He moans in discomfort
+				<<if $slaves[$i].bellyPreg > 100>>
+					with each movement within $him.
+				<<else>>
+					whenever $he is forced to move.
+				<</if>>
+				<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
+					$His slowed gestation rate gives $his body more time to adapt to $his gravidity, easing some of $his worries.
+					<<set $slaves[$i].devotion -= 3>>
+				<<else>>
+					<<set $slaves[$i].devotion -= 5>>
+				<</if>>
 			<</if>>
 		<</if>>
 		<<set $slaves[$i].health -= (10/_bellyBand), $slaves[$i].pregAdaptation += .3>>
 	<<elseif $slaves[$i].belly > ($slaves[$i].pregAdaptation*1000)>>
 		$His <<if $slaves[$i].mpreg == 0 && $slaves[$i].ovaries == 0>>belly implant<<else>>womb<</if>> fills $his body and @@.red;compresses $his internal organs.@@
-		<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
-			While $he may be uncomfortable, it only serves to remind $him that $he can sustain larger.
-		<<elseif $slaves[$i].devotion > 50>>
-			$He is in constant discomfort, but $he grins and bears it for you.
-		<<elseif $slaves[$i].fetish == "mindbroken">>
-			Such discomforts are meaningless to $his broken mind.
-		<<else>>
-			$He is in constant @@.mediumorchid;discomfort@@ and can't wait for these children to be born.
-			<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
-				$His slowed gestation rate gives $his body more time to adapt to $his gravidity, easing some of $his worries.
-				<<set $slaves[$i].devotion -= 1>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if $slaves[$i].sexualFlaw == "breeder" && $slaves[$i].preg > 0>>
+				While $he may be uncomfortable, it only serves to remind $him that $he can sustain larger.
+			<<elseif $slaves[$i].devotion > 50>>
+				$He is in constant discomfort, but $he grins and bears it for you.
+			<<elseif $slaves[$i].fetish == "mindbroken">>
+				Such discomforts are meaningless to $his broken mind.
 			<<else>>
-				<<set $slaves[$i].devotion -= 2>>
+				$He is in constant @@.mediumorchid;discomfort@@ and can't wait for these children to be born.
+				<<if $slaves[$i].pregControl == "slow gestation" && $slaves[$i].intelligence+$slaves[$i].intelligenceImplant >= -50>>
+					$His slowed gestation rate gives $his body more time to adapt to $his gravidity, easing some of $his worries.
+					<<set $slaves[$i].devotion -= 1>>
+				<<else>>
+					<<set $slaves[$i].devotion -= 2>>
+				<</if>>
 			<</if>>
 		<</if>>
 		<<set $slaves[$i].health -= (2/_bellyBand), $slaves[$i].pregAdaptation += .2>>
@@ -7457,7 +7473,7 @@
 	<</if>>
 
 	/*body inconvenience*/
-	<<if $slaves[$i].fuckdoll != 0 && $slaves[$i].fetish != "mindbroken">>
+	<<if $slaves[$i].fuckdoll != 0 && $slaves[$i].fetish != "mindbroken" && isSlaveAvailable($slaves[$i])>>
 		<<set _belly = bellyAdjective($slaves[$i])>>
 		<<if $slaves[$i].physicalAge < 4>>
 			<<if $slaves[$i].belly >= 150000>>
@@ -7689,24 +7705,26 @@
 
 <<if $slaves[$i].fuckdoll == 0>>
 	<<if $slaves[$i].fetish != "mindbroken">>
-		<<if ($slaves[$i].boobs > 20000)>>
-			<<if $boobAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with gigantic boobs.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His gigantic boobs make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
-				<<if $slaves[$i].sexualFlaw == "breast growth">>
-					Every little inconvenience just feeds $his breast growth obsession, so $he's more bothered that they aren't an even bigger problem for $his daily life.
-				<<elseif ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 2>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].boobs > 20000)>>
+				<<if $boobAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with gigantic boobs.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 2>>
+					$His gigantic boobs make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
+					<<if $slaves[$i].sexualFlaw == "breast growth">>
+						Every little inconvenience just feeds $his breast growth obsession, so $he's more bothered that they aren't an even bigger problem for $his daily life.
+					<<elseif ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 2>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 2>>
+					<</if>>
 				<</if>>
 			<</if>>
 		<</if>>
@@ -8012,196 +8030,196 @@
 
 <<if $slaves[$i].fuckdoll == 0>>
 	<<if $slaves[$i].fetish != "mindbroken">>
-
-		<<if ($slaves[$i].bellyPreg >= 100000)>>
-			<<if $pregAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to heavily pregnant life.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His giant pregnancy makes life a struggle: <<if $buttAccessibility == 1 || $boobAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
-				<<if $slaves[$i].sexualFlaw == "breeder">>
-					But all this just feeds $his obsession with being a breeder.
-				<<elseif ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 2>>
+		<<if isSlaveAvailable($slaves[$i])>>
+			<<if ($slaves[$i].bellyPreg >= 100000)>>
+				<<if $pregAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to heavily pregnant life.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 2>>
+					$His giant pregnancy makes life a struggle: <<if $buttAccessibility == 1 || $boobAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
+					<<if $slaves[$i].sexualFlaw == "breeder">>
+						But all this just feeds $his obsession with being a breeder.
+					<<elseif ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 2>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 2>>
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
-		<<if $slaves[$i].bellyImplant >= 100000>>
-			<<if $pregAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with an enormous belly.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His giant belly makes life a struggle: <<if $buttAccessibility == 1 || $boobAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
-				<<if ($slaves[$i].devotion > 40)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 2>>
+			<<if $slaves[$i].bellyImplant >= 100000>>
+				<<if $pregAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with an enormous belly.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 2>>
+					$His giant belly makes life a struggle: <<if $buttAccessibility == 1 || $boobAccessibility == 1 || $ballsAccessibility == 1>>$he has trouble using appliances and furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and constantly bumps into things<</if>>.
+					<<if ($slaves[$i].devotion > 40)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 2>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 2>>
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if canWalk($slaves[$i])>>
-			<<if ($slaves[$i].dick >= 30)>>
-				<<if ($slaves[$i].devotion <= 50)>>
-					$His titanic penis rests upon the floor even when $he stands. $He finds moving @@.mediumorchid;terrifying@@ since $he drags $his cock along.
-					<<set $slaves[$i].devotion -= 3>>
-				<<else>>
-					$His titanic penis rests upon the floor even when $he stands. $He pays close attention as $he moves to keep it pristine for you.
-				<</if>>
-			<<elseif ($slaves[$i].dick > 20)>>
-				<<if ($slaves[$i].devotion <= 50)>>
-					$His enormous cock is @@.mediumorchid;very uncomfortable@@ for $him to drag around.
-					<<set $slaves[$i].devotion -= 2>>
-				<<else>>
-					$His enormous cock is uncomfortable for $him to move with, but $he bears its weight out of devotion to you.
-				<</if>>
-			<<elseif ($slaves[$i].dick >= 10)>>
-				<<if canWalk($slaves[$i])>>
+			<<if canWalk($slaves[$i])>>
+				<<if ($slaves[$i].dick >= 30)>>
 					<<if ($slaves[$i].devotion <= 50)>>
-						$His giant dick is @@.mediumorchid;uncomfortable@@ for $his body.
-						<<set $slaves[$i].devotion -= 1>>
+						$His titanic penis rests upon the floor even when $he stands. $He finds moving @@.mediumorchid;terrifying@@ since $he drags $his cock along.
+						<<set $slaves[$i].devotion -= 3>>
+					<<else>>
+						$His titanic penis rests upon the floor even when $he stands. $He pays close attention as $he moves to keep it pristine for you.
+					<</if>>
+				<<elseif ($slaves[$i].dick > 20)>>
+					<<if ($slaves[$i].devotion <= 50)>>
+						$His enormous cock is @@.mediumorchid;very uncomfortable@@ for $him to drag around.
+						<<set $slaves[$i].devotion -= 2>>
 					<<else>>
-						$He can't seem to get comfortable with $his giant dick, but $he keeps it to $himself out of devotion.
+						$His enormous cock is uncomfortable for $him to move with, but $he bears its weight out of devotion to you.
+					<</if>>
+				<<elseif ($slaves[$i].dick >= 10)>>
+					<<if canWalk($slaves[$i])>>
+						<<if ($slaves[$i].devotion <= 50)>>
+							$His giant dick is @@.mediumorchid;uncomfortable@@ for $his body.
+							<<set $slaves[$i].devotion -= 1>>
+						<<else>>
+							$He can't seem to get comfortable with $his giant dick, but $he keeps it to $himself out of devotion.
+						<</if>>
 					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if ($slaves[$i].dick >= 20)>>
-			<<if $dickAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with an enormous dick.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His giant penis make life a struggle: $he has to drag it along as $he moves, has trouble fitting into beds and sitting in chairs, and constantly has to make sure to not get $his dick caught in doors.
-				<<if ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 2>>
+			<<if ($slaves[$i].dick >= 20)>>
+				<<if $dickAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with an enormous dick.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 3>>
+					$His giant penis make life a struggle: $he has to drag it along as $he moves, has trouble fitting into beds and sitting in chairs, and constantly has to make sure to not get $his dick caught in doors.
+					<<if ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 2>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 3>>
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if canWalk($slaves[$i])>>
-			<<if ($slaves[$i].balls > 90)>>
-				$His titanic balls rest upon the floor even when $he stands.
-				<<if ($slaves[$i].devotion <= 50)>>
-					$He finds them @@.mediumorchid;annoying@@ to lug around.
-					<<set $slaves[$i].devotion -= 1>>
-				<<else>>
-					They are a little annoying at times, but $he bears them with pride.
-				<</if>>
-			<<elseif ($slaves[$i].balls > 50)>>
-				<<if ($slaves[$i].devotion <= 50)>>
-					$His enormous balls are @@.mediumorchid;very uncomfortable@@ for $him to carry.
-					<<set $slaves[$i].devotion -= 2>>
-				<<else>>
-					$He finds $his enormous balls a little uncomfortable, but $he bears their weight out of devotion to you.
-				<</if>>
-			<<elseif ($slaves[$i].balls > 25)>>
-				<<if ($slaves[$i].devotion <= 50)>>
-					$His huge balls are @@.mediumorchid;uncomfortable@@ for $his body.
-					<<set $slaves[$i].devotion -= 1>>
-				<<else>>
-					$He can't seem to get comfortable with $his huge balls, but $he keeps it to $himself out of devotion.
+			<<if canWalk($slaves[$i])>>
+				<<if ($slaves[$i].balls > 90)>>
+					$His titanic balls rest upon the floor even when $he stands.
+					<<if ($slaves[$i].devotion <= 50)>>
+						$He finds them @@.mediumorchid;annoying@@ to lug around.
+						<<set $slaves[$i].devotion -= 1>>
+					<<else>>
+						They are a little annoying at times, but $he bears them with pride.
+					<</if>>
+				<<elseif ($slaves[$i].balls > 50)>>
+					<<if ($slaves[$i].devotion <= 50)>>
+						$His enormous balls are @@.mediumorchid;very uncomfortable@@ for $him to carry.
+						<<set $slaves[$i].devotion -= 2>>
+					<<else>>
+						$He finds $his enormous balls a little uncomfortable, but $he bears their weight out of devotion to you.
+					<</if>>
+				<<elseif ($slaves[$i].balls > 25)>>
+					<<if ($slaves[$i].devotion <= 50)>>
+						$His huge balls are @@.mediumorchid;uncomfortable@@ for $his body.
+						<<set $slaves[$i].devotion -= 1>>
+					<<else>>
+						$He can't seem to get comfortable with $his huge balls, but $he keeps it to $himself out of devotion.
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if ($slaves[$i].balls > 90)>>
-			<<if $ballsAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with enormous testicles.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His giant balls make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $boobAccessibility == 1>>$he has trouble using appliances and furniture, and has to be constantly mindful of things striking $his oversensitive testicles, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and has to be constantly mindful of things striking $his oversensitive testicles<</if>>.
-				<<if ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 2>>
+			<<if ($slaves[$i].balls > 90)>>
+				<<if $ballsAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with enormous testicles.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 3>>
+					$His giant balls make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $boobAccessibility == 1>>$he has trouble using appliances and furniture, and has to be constantly mindful of things striking $his oversensitive testicles, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using appliances and furniture, and has to be constantly mindful of things striking $his oversensitive testicles<</if>>.
+					<<if ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 2>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 3>>
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if canWalk($slaves[$i])>>
-			<<if ($slaves[$i].hips > 2)>>
-				$His inhumanly wide hips make walking difficult. $He can barely move without swinging them side to side seductively, and $he keeps bumping things with them.
-				<<if ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he embraces $his wide body and does everything $he can to show it off for you.
-				<<elseif ($slaves[$i].devotion >= -20)>>
-					This gait makes $him feel like a huge whore, @@.hotpink;increasing $his submissiveness.@@
-					<<set $slaves[$i].devotion += 2>>
-				<<else>>
-					$He hates that $he is forced to bear such freakish hips and @@.mediumorchid;blames you@@ for every trip, bumped object, and hip checked slave.
-					<<set $slaves[$i].devotion -= 3>>
+			<<if canWalk($slaves[$i])>>
+				<<if ($slaves[$i].hips > 2)>>
+					$His inhumanly wide hips make walking difficult. $He can barely move without swinging them side to side seductively, and $he keeps bumping things with them.
+					<<if ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he embraces $his wide body and does everything $he can to show it off for you.
+					<<elseif ($slaves[$i].devotion >= -20)>>
+						This gait makes $him feel like a huge whore, @@.hotpink;increasing $his submissiveness.@@
+						<<set $slaves[$i].devotion += 2>>
+					<<else>>
+						$He hates that $he is forced to bear such freakish hips and @@.mediumorchid;blames you@@ for every trip, bumped object, and hip checked slave.
+						<<set $slaves[$i].devotion -= 3>>
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if canWalk($slaves[$i])>>
-			<<if ($slaves[$i].butt > 15)>>
-				$His butt is a massive burden to $him. $He dreads walking down narrow hallways and getting dressed in the morning.
-				<<if ($slaves[$i].devotion <= 50)>>
-					$He lives a life of @@.mediumorchid;annoyance@@ over knocking things over, bumping people, and getting stuck in chairs with $his godly ass.
-					<<set $slaves[$i].devotion -= 2>>
-				<<else>>
-					$He lives a life of minor annoyances knocking things over, bumping people and getting stuck in chairs with $his godly ass, but bears them with pride out of devotion.
-				<</if>>
-			<<elseif ($slaves[$i].butt > 10)>>
-				$His butt has gotten absolutely enormous.
-				<<if ($slaves[$i].devotion <= 50)>>
-					$He finds it a @@.mediumorchid;massive nuisance@@ to live with.
-					<<set $slaves[$i].devotion -= 1>>
-				<<else>>
-					$He finds it a massive nuisance to live with, but does anyway out of devotion to you.
+			<<if canWalk($slaves[$i])>>
+				<<if ($slaves[$i].butt > 15)>>
+					$His butt is a massive burden to $him. $He dreads walking down narrow hallways and getting dressed in the morning.
+					<<if ($slaves[$i].devotion <= 50)>>
+						$He lives a life of @@.mediumorchid;annoyance@@ over knocking things over, bumping people, and getting stuck in chairs with $his godly ass.
+						<<set $slaves[$i].devotion -= 2>>
+					<<else>>
+						$He lives a life of minor annoyances knocking things over, bumping people and getting stuck in chairs with $his godly ass, but bears them with pride out of devotion.
+					<</if>>
+				<<elseif ($slaves[$i].butt > 10)>>
+					$His butt has gotten absolutely enormous.
+					<<if ($slaves[$i].devotion <= 50)>>
+						$He finds it a @@.mediumorchid;massive nuisance@@ to live with.
+						<<set $slaves[$i].devotion -= 1>>
+					<<else>>
+						$He finds it a massive nuisance to live with, but does anyway out of devotion to you.
+					<</if>>
 				<</if>>
 			<</if>>
-		<</if>>
 
-		<<if ($slaves[$i].butt > 15)>>
-			<<if $buttAccessibility == 1>>
-				<<if ($slaves[$i].devotion > 20)>>
-					$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with way too much excess junk in the trunk.
-					<<set $slaves[$i].trust += 1>>
-				<</if>>
-			<<else>>
-				$His giant butt make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $boobAccessibility == 1>>$he has trouble using furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using furniture, and constantly bumps into things<</if>>.
-				<<if ($slaves[$i].devotion > 50)>>
-					Since $he's devoted to you, $he just does $his best.
-				<<elseif ($slaves[$i].trust >= -20)>>
-					This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
-					<<set $slaves[$i].trust -= 1>>
+			<<if ($slaves[$i].butt > 15)>>
+				<<if $buttAccessibility == 1>>
+					<<if ($slaves[$i].devotion > 20)>>
+						$He's @@.mediumaquamarine;thankful@@ to you for providing living spaces adapted to life with way too much excess junk in the trunk.
+						<<set $slaves[$i].trust += 1>>
+					<</if>>
 				<<else>>
-					$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
-					<<set $slaves[$i].devotion -= 2>>
+					$His giant butt make life a struggle: <<if $buttAccessibility == 1 || $pregAccessibility == 1 || $boobAccessibility == 1>>$he has trouble using furniture, and constantly bumps into things, but at least the doors have already been widened for your other slaves<<else>>$he barely fits through doors, has trouble using furniture, and constantly bumps into things<</if>>.
+					<<if ($slaves[$i].devotion > 50)>>
+						Since $he's devoted to you, $he just does $his best.
+					<<elseif ($slaves[$i].trust >= -20)>>
+						This torment makes $him @@.gold;less trusting@@ of your willingness to look after $him.
+						<<set $slaves[$i].trust -= 1>>
+					<<else>>
+						$He already believes you capable of tormenting $him, so this proof of your indifference @@.mediumorchid;angers $him@@ daily.
+						<<set $slaves[$i].devotion -= 2>>
+					<</if>>
 				<</if>>
 			<</if>>
 		<</if>>
-
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index 7dfc748cb3705f9a8efa2e93dc401ded887648b0..7b6720083fdf3a030d7b14f77846d294ff51a0d8 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -387,7 +387,7 @@ serves you this week.
 				<</if>>
 				<<if $slaves[$i].fetish == "cumslut">>
 					<<if $slaves[$i].fetishKnown == 1>>
-						$He @@.hotpink;quivers with ecstasy@@ just from the taste of your <<if $PC.dick == 0>>girl<</if>>cum on $his tongue.
+						$He @@.hotpink;quivers with ecstasy@@ just from the <<if canTaste($slaves[$i])>>taste<<else>>feeling<</if>> of your <<if $PC.dick == 0>>girl<</if>>cum on $his tongue.
 					<<else>>
 						$He @@.hotpink;seems to enjoy@@ $his role as a cum receptacle more than you'd expect.
 					<</if>>
diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw
index 080792d3c83e7174216bb1c049df9e709330aaef..b49c1168c702c2945dda00218545906b6041fec9 100644
--- a/src/uncategorized/saRelationships.tw
+++ b/src/uncategorized/saRelationships.tw
@@ -858,7 +858,11 @@
 						<<switch _SlaveI.assignment>>
 						<<case "be a servant" "work as a servant" "serve in the master suite" "please you" "be your Concubine">>
 							$He lives a nice life by your side, despite $his inability to realize it. Since $he is so malleable and willing, you rarely have reason to punish $him anymore.
-							<<set _SlaveI.kindness += 2>>
+							<<if def _SlaveI.kindness>>
+								<<set _SlaveI.kindness += 2>>
+							<<else>>
+								<<set _SlaveI.kindness = 2>>
+							<</if>>
 						<<case "whore" "work in the brothel" "serve the public" "serve in the club" "work a glory hole" "be confined in the arcade">>
 							You, others, it doesn't matter. They are all the same to your mindbroken $wife. The public, however, is less forgiving of you ordering your slave $wife to fuck random citizens, @@.red;seriously damaging your reputation.@@
 							<<run repX(-100, "PCRelationships", _SlaveI)>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 97e0168ca594c99ea33196fe202d5a3a7e5f8daa..9a445f86b65f760420ec978a6f6cab4318de91d2 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -144,7 +144,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -637,7 +637,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -1111,7 +1111,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -1482,7 +1482,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -1788,7 +1788,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -2293,7 +2293,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -2814,7 +2814,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -3311,7 +3311,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
@@ -3809,7 +3809,7 @@
 			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses milkers whenever $he can,
 				<<set $servantMilkersMultiplier = 0.75>>
-				<<silently>><<include "SA get milked">><</silently>>
+				<<run saGetMilked($slaves[$i])>>
 				<<set $servantMilkersMultiplier = 1>>
 				giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 			<</if>>
@@ -4363,7 +4363,7 @@
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
-					<<silently>><<include "SA get milked">><</silently>>
+					<<run saGetMilked($slaves[$i])>>
 					<<set $servantMilkersMultiplier = 1>>
 					giving $milk liters of milk over the week, which is sold for @@.yellowgreen;<<print cashFormat($milkSale)>>.@@
 				<<else>>
diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw
index ec010ee868be85a9e64c6143bd7a4365695658ff..853a50862a28dcfe09081e799ccc44c5c60182bf 100644
--- a/src/uncategorized/servantsQuartersReport.tw
+++ b/src/uncategorized/servantsQuartersReport.tw
@@ -285,7 +285,7 @@
 		<</if>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;_He2 <<= saServant($slaves[$i])>>
 		<<if ($servantMilkers == 1) && ($slaves[$i].lactation > 0)>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;_He2 <<include "SA get milked">>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;_He2 <<= saGetMilked($slaves[$i])>>
 			<<set _SQMilk += $milk, _SQMilkSale += $milkSale>>
 		<</if>>
 		<br>&nbsp;&nbsp;&nbsp;
@@ -302,7 +302,7 @@
 		<<include "SA chooses own job">>
 		<<run saServant($slaves[$i])>>
 		<<if ($servantMilkers == 1) && ($slaves[$i].lactation > 0)>>
-			<<include "SA get milked">>
+			<<run saGetMilked($slaves[$i])>>
 			<<set _SQMilk += $milk, _SQMilkSale += $milkSale>>
 		<</if>>
 		<<run saChoosesOwnClothes($slaves[$i])>>
diff --git a/src/uncategorized/shops.tw b/src/uncategorized/shops.tw
index 5c06ee8e39f73f01a7d4bd7c4673350b3edbbe9f..8b5e83f6905091ff93ecdf32238fae0f4c229760 100644
--- a/src/uncategorized/shops.tw
+++ b/src/uncategorized/shops.tw
@@ -96,7 +96,7 @@ This is a section of the promenade
 	dedicated to Petite Admiration. The shops here are mostly focused on providing the tools and equipment a short slave will need to properly care for their Master and his abode. Several fashion lines have cropped up to provide matching clothing tailored to the shorter clientele and their often taller owners. There's even a sex shop that specializes in extreme differences in height.
 	<<if $PC.height >= 170>>
 		<span id="result"><<link "Take a harness out for a spin">><<replace "#result">>
-			The shop has a selection of harnesses available for testing and a number of miniscule slave<<print _girlU>>s to try out. You fasten one on and carry on browsing the rest of the stores.
+			The shop has a selection of harnesses available for testing and a number of minuscule slave<<print _girlU>>s to try out. You fasten one on and carry on browsing the rest of the stores.
 			<<if $PC.dick > 0>>
 				The squirming _girlU currently housing your cock makes it very difficult to focus on anything else, so you mostly just walk the hall, busting load after load into the overstimulated slave and effectively giving the store free advertisement.
 			<<else>>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 999c467f35541a292512b9d302e296abfa41cb56..46728bde823ba58cae45a73650abc655ae2cb4e3 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -28,6 +28,7 @@ _upperClassSexDemand = Math.trunc($upperClass * $whoreBudget.upperClass),
 _upperClassSexDemandRef = Math.max(_upperClassSexDemand + Math.trunc(_visitorsSexDemand * 0.5), 1),
 _topClassSexDemand = Math.trunc($topClass * $whoreBudget.topClass),
 _topClassSexDemandRef = Math.max(_topClassSexDemand, 1),
+_arcadeSupply = {lowerClass: 0, middleClass: 0, upperClass: 0},
 $whorePriceAdjustment = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
 $NPCMarketShare = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
 $sexDemandResult = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
@@ -67,10 +68,12 @@ $slaveJobValues = slaveJobValues(_lowerClassSexDemandRef, _middleClassSexDemandR
 		<<else>>
 			<<set $arcadeDemandDegResult = 3>>
 		<</if>>
-		<<set _lowerClassSexDemand -= Math.trunc(1.15 * $slaveJobValues.arcade * (_lowerClassArcadeSexDemand / _arcadeDemandDeg)),
-		_middleClassSexDemand -= Math.trunc(1.15 * $slaveJobValues.arcade * (_middleClassArcadeSexDemand / _arcadeDemandDeg)),
-		_upperClassSexDemand -= Math.trunc(1.15 *$slaveJobValues.arcade * (_upperClassArcadeSexDemand / _arcadeDemandDeg)),
-		_visitorsSexDemand -= Math.trunc(1.15 * $slaveJobValues.arcade * (_visitorsArcadeSexDemand / _arcadeDemandDeg))>> /*There's a 15% satisfaction bonus from getting release in a societally approved way*/
+		<<set _arcadeSupply.lowerClass += Math.trunc(1.15 * $slaveJobValues.arcade * (_lowerClassArcadeSexDemand / _arcadeDemandDeg)),
+		_lowerClassSexDemand -= _arcadeSupply.lowerClass,
+		_arcadeSupply.middleClass += Math.trunc(1.15 * $slaveJobValues.arcade * ((_middleClassArcadeSexDemand + _visitorsArcadeSexDemand * 0.5) / _arcadeDemandDeg)),
+		_middleClassSexDemand -= _arcadeSupply.middleClass,
+		_upperClassSexDemand _arcadeSupply.upperClass += Math.trunc(1.15 * $slaveJobValues.arcade * ((_upperClassArcadeSexDemand + _visitorsArcadeSexDemand * 0.5) / _arcadeDemandDeg)),
+		_upperClassSexDemand -= _arcadeSupply.upperClass>> /*There's a 15% satisfaction bonus from getting release in a societally approved way*/
 	<<else>>
 		<<if $slaveJobValues.arcade >= _arcadeDemandDeg * 1.5>>
 			<<set $arcologies[0].FSDegradationist += 2,
@@ -79,10 +82,12 @@ $slaveJobValues = slaveJobValues(_lowerClassSexDemandRef, _middleClassSexDemandR
 		<<else>>
 			<<set $arcadeDemandDegResult = 5>>
 		<</if>>
-		<<set _lowerClassSexDemand -= Math.trunc(1.15 * _lowerClassArcadeSexDemand),
-		_middleClassSexDemand -= Math.trunc(1.15 * _middleClassArcadeSexDemand),
-		_upperClassSexDemand -= Math.trunc(1.15 * _upperClassArcadeSexDemand),
-		_visitorsSexDemand -= Math.trunc(1.15 * _visitorsArcadeSexDemand)>>
+		<<set _arcadeSupply.lowerClass += Math.trunc(1.15 * _lowerClassArcadeSexDemand),
+		_lowerClassSexDemand -= _arcadeSupply.lowerClass,
+		_arcadeSupply.middleClass += Math.trunc(1.15 * (_middleClassArcadeSexDemand + _visitorsArcadeSexDemand * 0.5)),
+		_middleClassSexDemand -= _arcadeSupply,
+		_arcadeSupply.upperClass += Math.trunc(1.15 * (_upperClassArcadeSexDemand + _visitorsArcadeSexDemand * 0.5)),
+		_upperClassSexDemand -= _arcadeSupply.upperClass>>
 	<</if>>
 <<else>>
 	<<set _arcadeDemandDeg = 0>>
@@ -215,10 +220,10 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / _topClas
 <</if>>
 
 /*Sexual satisfaction effects*/
-<<set $sexDemandResult.lowerClass = Math.trunc(((_lowerClassSexDemandRef - _lowerClassSexDemand) * 1000) / _lowerClassSexDemandRef),
-$sexDemandResult.middleClass = Math.trunc(((_middleClassSexDemandRef - _middleClassSexDemand) * 1000) / _middleClassSexDemandRef),
-$sexDemandResult.upperClass = Math.trunc(((_upperClassSexDemandRef - _upperClassSexDemand) * 1000) / _upperClassSexDemandRef),
-$sexDemandResult.topClass = Math.trunc(((_topClassSexDemandRef - _topClassSexDemand) * 1000) / _topClassSexDemandRef)>>
+<<set $sexDemandResult.lowerClass = Math.trunc((($NPCSexSupply.lowerClass + $slaveJobValues.brothel.lowerClass + $slaveJobValues.club * $slaveJobValues.clubSP * _lowerClassClubRatio + $slaveJobValues.arcade + _arcadeSupply.lowerClass) * 1000) / _lowerClassSexDemandRef),
+$sexDemandResult.middleClass = Math.trunc((($NPCSexSupply.middleClass + $slaveJobValues.brothel.middleClass + $slaveJobValues.club * $slaveJobValues.clubSP * _middleClassClubRatio + _arcadeSupply.middleClass) * 1000) / _middleClassSexDemandRef),
+$sexDemandResult.upperClass = Math.trunc((($NPCSexSupply.upperClass + $slaveJobValues.brothel.upperClass + _arcadeSupply.upperClass) * 1000) / _upperClassSexDemandRef),
+$sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValues.brothel.topClass) * 1000) / _topClassSexDemandRef)>>
 <<if $sexDemandResult.lowerClass < 400>> /*You are providing < 40% of their desired amount of sex*/
 	<<if $week <= 30>>
 		<<set $classSatisfied.lowerClass = 0>>
@@ -791,7 +796,7 @@ $sexDemandResult.topClass = Math.trunc(((_topClassSexDemandRef - _topClassSexDem
 	<<set _HGPossibleSlaves = [[], [], [], [], [], []]>>
 	<<for $i = 0; $i < _SL; $i++>>
 		<<set _Slave = $slaves[$i]>>
-		<<if _Slave.assignmentVisible == 0 || _Slave.fuckdoll == 1 || _Slave.ID == $Bodyguard.ID || _Slave.ID == $HeadGirl.ID || _Slave.fetish == "mindbroken">>
+		<<if !assignmentVisible(_Slave) || _Slave.fuckdoll == 1 || _Slave.ID == $Bodyguard.ID || _Slave.ID == $HeadGirl.ID || _Slave.fetish == "mindbroken">>
 			<<continue>>
 		<<elseif Array.isArray($personalAttention) && $personalAttention.findIndex(function(s) { return s.ID == _Slave.ID; }) != -1>>
 			<<continue>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 68e1e121b2478f95b050df3182c2b0560eba6817..d270559bb455ac85f9b7dee13a1ce177d89e134c 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -8,7 +8,7 @@
 <<setLocalPronouns $activeSlave>>
 <<run Enunciate($activeSlave)>>
 
-<<if ($activeSlave.assignmentVisible == 0)>>
+<<if !assignmentVisible($activeSlave)>>
 	<<switch $activeSlave.assignment>>
 	<<case "work in the brothel" "be the Madam">>
 		<<set $returnTo = "Brothel">>
@@ -243,33 +243,21 @@
 	| <<link "Abuse $him">><<replace "#miniscene">><<include "FAbuse">><</replace>><</link>>
 	<<if $seeIncest == 1>>
 		<<if $familyTesting == 1>>
-			<<for $i = 0; $i < _SL; $i++>>
-				<<if $activeSlave.mother == $slaves[$i].ID>>
-					<<if isSlaveAvailable($slaves[$i])>>
-						| <<link "Fuck $him with $his mother">><<replace "#miniscene">><<set $partner = "mother">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<else>>
-						//$His mother, $slaves[$i].slaveName, is unavailable//
-					<</if>>
-				<</if>>
-				/*
-				<<if $activeSlave.father == $slaves[$i].ID>>
-					<<if isSlaveAvailable($slaves[$i])>>
-						| <<link "Fuck $him with $his father">><<replace "#miniscene">><<set $partner = "father">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<else>>
-						//$His father, $slaves[$i].slaveName, is unavailable//
-					<</if>>
-				<</if>>
-				*/
-			<</for>>
+			<<set _availRelatives = availableRelatives($activeSlave)>>
+			<<if _availRelatives.mother>>
+				| <<link "Fuck $him with $his mother">><<replace "#miniscene">><<set $partner = "mother">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+			<<elseif _availRelatives.motherName !== null>>
+				//$His mother, _availRelatives.motherName, is unavailable//
+			<</if>>
+			/*
+			<<if _availRelatives.father>>
+				| <<link "Fuck $him with $his father">><<replace "#miniscene">><<set $partner = "father">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+			<<elseif _availRelatives.fatherName !== null>>
+				//$His father, _availRelatives.fatherName, is unavailable//
+			<</if>>
+			*/
 			<<if $activeSlave.daughters > 0>>
-				<<set $relation = 0>>
-				<<for $i = 0; $i < _SL; $i++>>
-					<<setLocalPronouns $slaves[$i] 2>>
-					<<if ($activeSlave.ID == $slaves[$i].father || $activeSlave.ID == $slaves[$i].mother) && !isSlaveAvailable($slaves[$i])>>
-						<<set $relation++>>
-					<</if>>
-				<</for>>
-				<<if $relation == $activeSlave.daughters>>
+				<<if _availRelatives.daughters == 0>>
 					<<if $activeSlave.daughters == 1>>
 						//$His _daughter2 is unavailable//
 					<<else>>
@@ -281,22 +269,15 @@
 					<<else>>
 						| <<link "Fuck $him with one of $his daughters">><<replace "#miniscene">><<set $partner = "daughter">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 					<</if>>
+					/*
+					<<if _availRelatives.daughters > 1>>
+						| <<link "Fuck $him with $his daughters">><<replace "#miniscene">><<set $partner = "daughters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+					<</if>>
+					*/
 				<</if>>
 			<</if>>
-			/*
-			<<if $activeSlave.daughters > 1>>
-				| <<link "Fuck $him with $his daughters">><<replace "#miniscene">><<set $partner = "daughters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<</if>>
-			*/
 			<<if $activeSlave.sisters > 0>>
-				<<set $relation = 0>>
-				<<for $i = 0; $i < _SL; $i++>>
-					<<setLocalPronouns $slaves[$i] 2>>
-					<<if areSisters($activeSlave, $slaves[$i]) > 0 && !isSlaveAvailable($slaves[$i])>>
-						<<set $relation++>>
-					<</if>>
-				<</for>>
-				<<if $relation == $activeSlave.sisters>>
+				<<if _availRelatives.sisters == 0>>
 					<<if $activeSlave.sisters == 1>>
 						//$His _sister2 is unavailable//
 					<<else>>
@@ -308,13 +289,13 @@
 					<<else>>
 						| <<link "Fuck $him with one of $his sisters">><<replace "#miniscene">><<set $partner = "sister">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 					<</if>>
+					/*
+					<<if _availRelatives.sisters > 1>>
+						| <<link "Fuck $him with $his sisters">><<replace "#miniscene">><<set $partner = "sisters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+					<</if>>
+					*/
 				<</if>>
 			<</if>>
-			/*
-			<<if $activeSlave.sisters > 1>>
-				| <<link "Fuck $him with $his sisters">><<replace "#miniscene">><<set $partner = "sisters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<</if>>
-			*/
 		<<else>>
 			<<if ($activeSlave.relation != 0)>>
 				<<set _assayedSlave = getSlave($activeSlave.relationTarget)>>
@@ -550,291 +531,294 @@
 <br><br>__Appearance:__
 
 <<if $activeSlave.fuckdoll == 0>>
-	<br>Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
-	| <<link "Let $him choose">><<set $activeSlave.clothes = "choosing her own clothes",$activeSlave.choosesOwnClothes = 1>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+	<<if $showMainClothing != 0>>
+		<br>Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
+		| <<link "Let $him choose">><<set $activeSlave.clothes = "choosing her own clothes",$activeSlave.choosesOwnClothes = 1>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
 
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;//Nice://
-	<<link "Apron">><<set $activeSlave.clothes = "an apron",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a ball gown")>>
-		|	<<link "Ballgown">><<set $activeSlave.clothes = "a ball gown",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Bangles">><<set $activeSlave.clothes = "slutty jewelry",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("battlearmor")>>
-		|	<<link "Battlearmor">><<set $activeSlave.clothes = "battlearmor",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("battledress")>>
-		|	<<link "Battledress">><<set $activeSlave.clothes = "battledress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a biyelgee costume")>>
-		|	<<link "Biyelgee costume">><<set $activeSlave.clothes = "a biyelgee costume",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Bodysuit">><<set $activeSlave.clothes = "a comfortable bodysuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("boyshorts")>>
-		|	<<link "Boyshorts">><<set $activeSlave.clothes = "boyshorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a bra")>>
-		|	<<link "Bra">><<set $activeSlave.clothes = "a bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a burkini")>>
-		|	<<link "Burkini">><<set $activeSlave.clothes = "a burkini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a burqa")>>
-		|	<<link "Burqa">><<set $activeSlave.clothes = "a burqa",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a button-up shirt and panties")>>
-		|	<<link "Button-up shirt and panties">><<set $activeSlave.clothes = "a button-up shirt and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a button-up shirt")>>
-		|	<<link "Button-up shirt">><<set $activeSlave.clothes = "a button-up shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Cheerleader">><<set $activeSlave.clothes = "a cheerleader outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">><<print $activeSlave.clothes>><</replace>><</link>>
-	|	<<link "Clubslut netting">><<set $activeSlave.clothes = "clubslut netting",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	|	<<link "Cutoffs and a t-shirt">><<set $activeSlave.clothes = "cutoffs and a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("cutoffs")>>
-		|	<<link "Cutoffs">><<set $activeSlave.clothes = "cutoffs",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a cybersuit")>>
-		|	<<link "Cybersuit">><<set $activeSlave.clothes = "a cybersuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a dirndl")>>
-		|	<<link "Dirndl">><<set $activeSlave.clothes = "a dirndl",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Fallen nun">><<set $activeSlave.clothes = "a fallen nuns habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a gothic lolita dress")>>
-		|	<<link "Gothic lolita dress">><<set $activeSlave.clothes = "a gothic lolita dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a halter top dress")>>
-		|	<<link "Haltertop dress">><<set $activeSlave.clothes = "a halter top dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a hanbok")>>
-		|	<<link "Hanbok">><<set $activeSlave.clothes = "a hanbok",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Hijab and abaya">><<set $activeSlave.clothes = "a hijab and abaya",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a hijab and blouse")>>
-		|	<<link "Hijab and blouse">><<set $activeSlave.clothes = "a hijab and blouse",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("jeans")>>
-		|	<<link "Jeans">><<set $activeSlave.clothes = "jeans",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("kitty lingerie")>>
-		|	<<link "Kitty lingerie">><<set $activeSlave.clothes = "kitty lingerie",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a klan robe")>>
-		|	<<link "Ku Klux Klan robe (nice)">><<set $activeSlave.clothes = "a klan robe",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a slutty klan robe")>>
-		|	<<link "Ku Klux Klan robe (slutty)">><<set $activeSlave.clothes = "a slutty klan robe",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a latex catsuit")>>
-		|	<<link "Latex catsuit">><<set $activeSlave.clothes = "a latex catsuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("leather pants and a tube top")>>
-		|	<<link "Leather pants and a tube top">><<set $activeSlave.clothes = "leather pants and a tube top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("leather pants and pasties")>>
-		|	<<link "Leather pants and pasties">><<set $activeSlave.clothes = "leather pants and pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("leather pants")>>
-		|	<<link "Leather pants">><<set $activeSlave.clothes = "leather pants",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("lederhosen")>>
-		|	<<link "Lederhosen">><<set $activeSlave.clothes = "lederhosen",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Leotard">><<set $activeSlave.clothes = "a leotard",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a nice maid outfit")>>
-		|	<<link "Maid (nice)">><<set $activeSlave.clothes = "a nice maid outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Maid (slutty)">><<set $activeSlave.clothes = "a slutty maid outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a military uniform")>>
-		|	<<link "Military uniform">><<set $activeSlave.clothes = "a military uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a mini dress")>>
-		|	<<link "Mini dress">><<set $activeSlave.clothes = "a mini dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a monokini")>>
-		|	<<link "Monokini">><<set $activeSlave.clothes = "a monokini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a mounty outfit")>>
-		|	<<link "Mounty outfit">><<set $activeSlave.clothes = "a mounty outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Nice lingerie">><<set $activeSlave.clothes = "attractive lingerie",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a niqab and abaya")>>
-		|	<<link "Niqab and abaya">><<set $activeSlave.clothes = "a niqab and abaya",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a nice nurse outfit")>>
-		|	<<link "Nurse (nice)">><<set $activeSlave.clothes = "a nice nurse outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Nurse (slutty)">><<set $activeSlave.clothes = "a slutty nurse outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a one-piece swimsuit")>>
-		|	<<link "One-piece swimsuit">><<set $activeSlave.clothes = "a one-piece swimsuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Overalls">><<set $activeSlave.clothes = "overalls",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("an oversized t-shirt and boyshorts")>>
-		|	<<link "Oversized t-shirt and boyshorts">><<set $activeSlave.clothes = "an oversized t-shirt and boyshorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("an oversized t-shirt")>>
-		|	<<link "Oversized t-shirt">><<set $activeSlave.clothes = "an oversized t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("panties and pasties")>>
-		|	<<link "Panties and pasties">><<set $activeSlave.clothes = "panties and pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Panties">><<set $activeSlave.clothes = "panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("pasties")>>
-		|	<<link "Pasties">><<set $activeSlave.clothes = "pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a police uniform")>>
-		|	<<link "Police uniform">><<set $activeSlave.clothes = "a police uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a nice pony outfit")>>
-		|	<<link "Pony outfit (nice)">><<set $activeSlave.clothes = "a nice pony outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a slutty pony outfit")>>
-		|	<<link "Pony outfit (slutty)">><<set $activeSlave.clothes = "a slutty pony outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a red army uniform")>>
-		|	<<link "Red Army uniform">><<set $activeSlave.clothes = "a red army uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a Santa dress")>>
-		|	<<link "Santa dress">><<set $activeSlave.clothes = "a Santa dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Scalemail bikini">><<set $activeSlave.clothes = "a scalemail bikini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	|	<<link "Schoolgirl">><<set $activeSlave.clothes = "a schoolgirl outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a schutzstaffel uniform")>>
-		|	<<link "Schutzstaffel uniform (nice)">><<set $activeSlave.clothes = "a schutzstaffel uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a slutty schutzstaffel uniform")>>
-		|	<<link "Schutzstaffel uniform (slutty)">><<set $activeSlave.clothes = "a slutty schutzstaffel uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a skimpy loincloth")>>
-		|	<<link "Skimpy loincloth">><<set $activeSlave.clothes = "a skimpy loincloth",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a slave gown")>>
-		|	<<link "Slave gown">><<set $activeSlave.clothes = "a slave gown",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Slutty outfit">><<set $activeSlave.clothes = "a slutty outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	|	<<link "Spats and a tank top">><<set $activeSlave.clothes = "spats and a tank top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("sport shorts and a sports bra")>>
-		|	<<link "Sport shorts and a sports bra">><<set $activeSlave.clothes = "sport shorts and a sports bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("sport shorts and a t-shirt")>>
-		|	<<link "Sport shorts and a t-shirt">><<set $activeSlave.clothes = "sport shorts and a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("sport shorts")>>
-		|	<<link "Sport shorts">><<set $activeSlave.clothes = "sport shorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a sports bra")>>
-		|	<<link "Sports bra">><<set $activeSlave.clothes = "a sports bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "String bikini">><<set $activeSlave.clothes = "a string bikini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a striped bra")>>
-		|	<<link "Striped bra">><<set $activeSlave.clothes = "a striped bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("striped panties")>>
-		|	<<link "Striped panties">><<set $activeSlave.clothes = "striped panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("striped underwear")>>
-		|	<<link "Striped underwear">><<set $activeSlave.clothes = "striped underwear",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Succubus costume">><<set $activeSlave.clothes = "a succubus outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("nice business attire")>>
-		|	<<link "Suit (nice)">><<set $activeSlave.clothes = "nice business attire",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	|	<<link "Suit (slutty)">><<set $activeSlave.clothes = "slutty business attire",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("a sweater and cutoffs")>>
-		|	<<link "Sweater and cutoffs">><<set $activeSlave.clothes = "a sweater and cutoffs",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a sweater and panties")>>
-		|	<<link "Sweater and panties">><<set $activeSlave.clothes = "a sweater and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a sweater")>>
-		|	<<link "Sweater">><<set $activeSlave.clothes = "a sweater",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a t-shirt and jeans")>>
-		|	<<link "T-shirt and jeans">><<set $activeSlave.clothes = "a t-shirt and jeans",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a t-shirt and panties")>>
-		|	<<link "T-shirt and panties">><<set $activeSlave.clothes = "a t-shirt and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a t-shirt and thong")>>
-		|	<<link "T-shirt and thong">><<set $activeSlave.clothes = "a t-shirt and thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a t-shirt")>>
-		|	<<link "T-shirt">><<set $activeSlave.clothes = "a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a tank-top and panties")>>
-		|	<<link "Tank-top and panties">><<set $activeSlave.clothes = "a tank-top and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a tank-top")>>
-		|	<<link "Tank-top">><<set $activeSlave.clothes = "a tank-top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a thong")>>
-		|	<<link "Thong">><<set $activeSlave.clothes = "a thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a tube top and thong")>>
-		|	<<link "Tube top and thong">><<set $activeSlave.clothes = "a tube top and thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a tube top")>>
-		|	<<link "Tube top">><<set $activeSlave.clothes = "a tube top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Nice://
+		<<link "Apron">><<set $activeSlave.clothes = "an apron",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a ball gown")>>
+			|	<<link "Ballgown">><<set $activeSlave.clothes = "a ball gown",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Bangles">><<set $activeSlave.clothes = "slutty jewelry",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("battlearmor")>>
+			|	<<link "Battlearmor">><<set $activeSlave.clothes = "battlearmor",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("battledress")>>
+			|	<<link "Battledress">><<set $activeSlave.clothes = "battledress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a biyelgee costume")>>
+			|	<<link "Biyelgee costume">><<set $activeSlave.clothes = "a biyelgee costume",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Bodysuit">><<set $activeSlave.clothes = "a comfortable bodysuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("boyshorts")>>
+			|	<<link "Boyshorts">><<set $activeSlave.clothes = "boyshorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a bra")>>
+			|	<<link "Bra">><<set $activeSlave.clothes = "a bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a burkini")>>
+			|	<<link "Burkini">><<set $activeSlave.clothes = "a burkini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a burqa")>>
+			|	<<link "Burqa">><<set $activeSlave.clothes = "a burqa",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a button-up shirt and panties")>>
+			|	<<link "Button-up shirt and panties">><<set $activeSlave.clothes = "a button-up shirt and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a button-up shirt")>>
+			|	<<link "Button-up shirt">><<set $activeSlave.clothes = "a button-up shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Cheerleader">><<set $activeSlave.clothes = "a cheerleader outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">><<print $activeSlave.clothes>><</replace>><</link>>
+		|	<<link "Clubslut netting">><<set $activeSlave.clothes = "clubslut netting",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		|	<<link "Cutoffs and a t-shirt">><<set $activeSlave.clothes = "cutoffs and a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("cutoffs")>>
+			|	<<link "Cutoffs">><<set $activeSlave.clothes = "cutoffs",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a cybersuit")>>
+			|	<<link "Cybersuit">><<set $activeSlave.clothes = "a cybersuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a dirndl")>>
+			|	<<link "Dirndl">><<set $activeSlave.clothes = "a dirndl",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Fallen nun">><<set $activeSlave.clothes = "a fallen nuns habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a gothic lolita dress")>>
+			|	<<link "Gothic lolita dress">><<set $activeSlave.clothes = "a gothic lolita dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a halter top dress")>>
+			|	<<link "Haltertop dress">><<set $activeSlave.clothes = "a halter top dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a hanbok")>>
+			|	<<link "Hanbok">><<set $activeSlave.clothes = "a hanbok",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Hijab and abaya">><<set $activeSlave.clothes = "a hijab and abaya",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a hijab and blouse")>>
+			|	<<link "Hijab and blouse">><<set $activeSlave.clothes = "a hijab and blouse",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("jeans")>>
+			|	<<link "Jeans">><<set $activeSlave.clothes = "jeans",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("kitty lingerie")>>
+			|	<<link "Kitty lingerie">><<set $activeSlave.clothes = "kitty lingerie",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a klan robe")>>
+			|	<<link "Ku Klux Klan robe (nice)">><<set $activeSlave.clothes = "a klan robe",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a slutty klan robe")>>
+			|	<<link "Ku Klux Klan robe (slutty)">><<set $activeSlave.clothes = "a slutty klan robe",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a latex catsuit")>>
+			|	<<link "Latex catsuit">><<set $activeSlave.clothes = "a latex catsuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("leather pants and a tube top")>>
+			|	<<link "Leather pants and a tube top">><<set $activeSlave.clothes = "leather pants and a tube top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("leather pants and pasties")>>
+			|	<<link "Leather pants and pasties">><<set $activeSlave.clothes = "leather pants and pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("leather pants")>>
+			|	<<link "Leather pants">><<set $activeSlave.clothes = "leather pants",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("lederhosen")>>
+			|	<<link "Lederhosen">><<set $activeSlave.clothes = "lederhosen",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Leotard">><<set $activeSlave.clothes = "a leotard",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a nice maid outfit")>>
+			|	<<link "Maid (nice)">><<set $activeSlave.clothes = "a nice maid outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Maid (slutty)">><<set $activeSlave.clothes = "a slutty maid outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a military uniform")>>
+			|	<<link "Military uniform">><<set $activeSlave.clothes = "a military uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a mini dress")>>
+			|	<<link "Mini dress">><<set $activeSlave.clothes = "a mini dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a monokini")>>
+			|	<<link "Monokini">><<set $activeSlave.clothes = "a monokini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a mounty outfit")>>
+			|	<<link "Mounty outfit">><<set $activeSlave.clothes = "a mounty outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Nice lingerie">><<set $activeSlave.clothes = "attractive lingerie",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a niqab and abaya")>>
+			|	<<link "Niqab and abaya">><<set $activeSlave.clothes = "a niqab and abaya",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a nice nurse outfit")>>
+			|	<<link "Nurse (nice)">><<set $activeSlave.clothes = "a nice nurse outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Nurse (slutty)">><<set $activeSlave.clothes = "a slutty nurse outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a one-piece swimsuit")>>
+			|	<<link "One-piece swimsuit">><<set $activeSlave.clothes = "a one-piece swimsuit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Overalls">><<set $activeSlave.clothes = "overalls",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("an oversized t-shirt and boyshorts")>>
+			|	<<link "Oversized t-shirt and boyshorts">><<set $activeSlave.clothes = "an oversized t-shirt and boyshorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("an oversized t-shirt")>>
+			|	<<link "Oversized t-shirt">><<set $activeSlave.clothes = "an oversized t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("panties and pasties")>>
+			|	<<link "Panties and pasties">><<set $activeSlave.clothes = "panties and pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Panties">><<set $activeSlave.clothes = "panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("pasties")>>
+			|	<<link "Pasties">><<set $activeSlave.clothes = "pasties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a police uniform")>>
+			|	<<link "Police uniform">><<set $activeSlave.clothes = "a police uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a nice pony outfit")>>
+			|	<<link "Pony outfit (nice)">><<set $activeSlave.clothes = "a nice pony outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a slutty pony outfit")>>
+			|	<<link "Pony outfit (slutty)">><<set $activeSlave.clothes = "a slutty pony outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a red army uniform")>>
+			|	<<link "Red Army uniform">><<set $activeSlave.clothes = "a red army uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a Santa dress")>>
+			|	<<link "Santa dress">><<set $activeSlave.clothes = "a Santa dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Scalemail bikini">><<set $activeSlave.clothes = "a scalemail bikini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		|	<<link "Schoolgirl">><<set $activeSlave.clothes = "a schoolgirl outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a schutzstaffel uniform")>>
+			|	<<link "Schutzstaffel uniform (nice)">><<set $activeSlave.clothes = "a schutzstaffel uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a slutty schutzstaffel uniform")>>
+			|	<<link "Schutzstaffel uniform (slutty)">><<set $activeSlave.clothes = "a slutty schutzstaffel uniform",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a skimpy loincloth")>>
+			|	<<link "Skimpy loincloth">><<set $activeSlave.clothes = "a skimpy loincloth",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a slave gown")>>
+			|	<<link "Slave gown">><<set $activeSlave.clothes = "a slave gown",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Slutty outfit">><<set $activeSlave.clothes = "a slutty outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		|	<<link "Spats and a tank top">><<set $activeSlave.clothes = "spats and a tank top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("sport shorts and a sports bra")>>
+			|	<<link "Sport shorts and a sports bra">><<set $activeSlave.clothes = "sport shorts and a sports bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("sport shorts and a t-shirt")>>
+			|	<<link "Sport shorts and a t-shirt">><<set $activeSlave.clothes = "sport shorts and a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("sport shorts")>>
+			|	<<link "Sport shorts">><<set $activeSlave.clothes = "sport shorts",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a sports bra")>>
+			|	<<link "Sports bra">><<set $activeSlave.clothes = "a sports bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "String bikini">><<set $activeSlave.clothes = "a string bikini",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a striped bra")>>
+			|	<<link "Striped bra">><<set $activeSlave.clothes = "a striped bra",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("striped panties")>>
+			|	<<link "Striped panties">><<set $activeSlave.clothes = "striped panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("striped underwear")>>
+			|	<<link "Striped underwear">><<set $activeSlave.clothes = "striped underwear",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Succubus costume">><<set $activeSlave.clothes = "a succubus outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("nice business attire")>>
+			|	<<link "Suit (nice)">><<set $activeSlave.clothes = "nice business attire",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		|	<<link "Suit (slutty)">><<set $activeSlave.clothes = "slutty business attire",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("a sweater and cutoffs")>>
+			|	<<link "Sweater and cutoffs">><<set $activeSlave.clothes = "a sweater and cutoffs",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a sweater and panties")>>
+			|	<<link "Sweater and panties">><<set $activeSlave.clothes = "a sweater and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a sweater")>>
+			|	<<link "Sweater">><<set $activeSlave.clothes = "a sweater",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a t-shirt and jeans")>>
+			|	<<link "T-shirt and jeans">><<set $activeSlave.clothes = "a t-shirt and jeans",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a t-shirt and panties")>>
+			|	<<link "T-shirt and panties">><<set $activeSlave.clothes = "a t-shirt and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a t-shirt and thong")>>
+			|	<<link "T-shirt and thong">><<set $activeSlave.clothes = "a t-shirt and thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a t-shirt")>>
+			|	<<link "T-shirt">><<set $activeSlave.clothes = "a t-shirt",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a tank-top and panties")>>
+			|	<<link "Tank-top and panties">><<set $activeSlave.clothes = "a tank-top and panties",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a tank-top")>>
+			|	<<link "Tank-top">><<set $activeSlave.clothes = "a tank-top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a thong")>>
+			|	<<link "Thong">><<set $activeSlave.clothes = "a thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a tube top and thong")>>
+			|	<<link "Tube top and thong">><<set $activeSlave.clothes = "a tube top and thong",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a tube top")>>
+			|	<<link "Tube top">><<set $activeSlave.clothes = "a tube top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
 
-	<<if isItemAccessible("attractive lingerie for a pregnant woman")>>
-		| //FS// <<link "Attractive lingerie for a pregnant woman">><<set $activeSlave.clothes = "attractive lingerie for a pregnant woman",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a bimbo outfit")>>
-		| //FS// <<link "Bimbo outfit">><<set $activeSlave.clothes = "a bimbo outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a bunny outfit")>>
-		| //FS// <<link "Bunny outfit">><<set $activeSlave.clothes = "a bunny outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("body oil")>>
-		| //FS// <<link "Body oil">><<set $activeSlave.clothes = "body oil",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a chattel habit")>>
-		| //FS// <<link "Chattel habit">><<set $activeSlave.clothes = "a chattel habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("conservative clothing")>>
-		| //FS// <<link "Conservative clothing">><<set $activeSlave.clothes = "conservative clothing",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a courtesan dress")>>
-		| //FS// <<link "Courtesan dress">><<set $activeSlave.clothes = "a courtesan dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("harem gauze")>>
-		| //FS// <<link "Harem gauze">><<set $activeSlave.clothes = "harem gauze",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a huipil")>>
-		| //FS// <<link "Huipil">><<set $activeSlave.clothes = "a huipil",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a kimono")>>
-		| //FS// <<link "Kimono">><<set $activeSlave.clothes = "a kimono",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a maternity dress")>>
-		| //FS// <<link "Maternity dress">><<set $activeSlave.clothes = "a maternity dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a long qipao")>>
-		| //FS// <<link "Qipao (nice)">><<set $activeSlave.clothes = "a long qipao",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a slutty qipao")>>
-		| //FS// <<link "Qipao (slutty)">><<set $activeSlave.clothes = "a slutty qipao",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("stretch pants and a crop-top")>>
-		| //FS// <<link "Stretch pants and a crop-top">><<set $activeSlave.clothes = "stretch pants and a crop-top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("a toga")>>
-		| //FS// <<link "Toga">><<set $activeSlave.clothes = "a toga",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
-	<<if isItemAccessible("Western clothing")>>
-		| //FS// <<link "Western clothing">><<set $activeSlave.clothes = "Western clothing",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<</if>>
+		<<if isItemAccessible("attractive lingerie for a pregnant woman")>>
+			| //FS// <<link "Attractive lingerie for a pregnant woman">><<set $activeSlave.clothes = "attractive lingerie for a pregnant woman",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a bimbo outfit")>>
+			| //FS// <<link "Bimbo outfit">><<set $activeSlave.clothes = "a bimbo outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a bunny outfit")>>
+			| //FS// <<link "Bunny outfit">><<set $activeSlave.clothes = "a bunny outfit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("body oil")>>
+			| //FS// <<link "Body oil">><<set $activeSlave.clothes = "body oil",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a chattel habit")>>
+			| //FS// <<link "Chattel habit">><<set $activeSlave.clothes = "a chattel habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("conservative clothing")>>
+			| //FS// <<link "Conservative clothing">><<set $activeSlave.clothes = "conservative clothing",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a courtesan dress")>>
+			| //FS// <<link "Courtesan dress">><<set $activeSlave.clothes = "a courtesan dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("harem gauze")>>
+			| //FS// <<link "Harem gauze">><<set $activeSlave.clothes = "harem gauze",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a huipil")>>
+			| //FS// <<link "Huipil">><<set $activeSlave.clothes = "a huipil",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a kimono")>>
+			| //FS// <<link "Kimono">><<set $activeSlave.clothes = "a kimono",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a maternity dress")>>
+			| //FS// <<link "Maternity dress">><<set $activeSlave.clothes = "a maternity dress",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a long qipao")>>
+			| //FS// <<link "Qipao (nice)">><<set $activeSlave.clothes = "a long qipao",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a slutty qipao")>>
+			| //FS// <<link "Qipao (slutty)">><<set $activeSlave.clothes = "a slutty qipao",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("stretch pants and a crop-top")>>
+			| //FS// <<link "Stretch pants and a crop-top">><<set $activeSlave.clothes = "stretch pants and a crop-top",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("a toga")>>
+			| //FS// <<link "Toga">><<set $activeSlave.clothes = "a toga",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		<<if isItemAccessible("Western clothing")>>
+			| //FS// <<link "Western clothing">><<set $activeSlave.clothes = "Western clothing",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Harsh://
+		<<link "Go naked">><<set $activeSlave.clothes = "no clothing", $activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<<if isItemAccessible("chains")>>
+			| //FS// <<link "Chains">><<set $activeSlave.clothes = "chains",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		<</if>>
+		| <<link "Penitent nun">><<set $activeSlave.clothes = "a penitent nuns habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		| <<link "Restrictive latex">><<set $activeSlave.clothes = "restrictive latex",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		| <<link "Shibari ropes">><<set $activeSlave.clothes = "shibari ropes",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
+		| <<link "Uncomfortable straps">><<set $activeSlave.clothes = "uncomfortable straps",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
 
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;//Harsh://
-	<<link "Go naked">><<set $activeSlave.clothes = "no clothing", $activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	<<if isItemAccessible("chains")>>
-		| //FS// <<link "Chains">><<set $activeSlave.clothes = "chains",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
 	<</if>>
-	| <<link "Penitent nun">><<set $activeSlave.clothes = "a penitent nuns habit",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	| <<link "Restrictive latex">><<set $activeSlave.clothes = "restrictive latex",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	| <<link "Shibari ropes">><<set $activeSlave.clothes = "shibari ropes",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
-	| <<link "Uncomfortable straps">><<set $activeSlave.clothes = "uncomfortable straps",$activeSlave.choosesOwnClothes = 0>><<replace "#clothes">>$activeSlave.clothes<</replace>><</link>>
 
 	<br>Collar: ''<span id="collar">$activeSlave.collar</span>.''
 	<<link "None">><<set $activeSlave.collar = "none">><<replace "#collar">>$activeSlave.collar<</replace>><</link>>
@@ -1527,20 +1511,10 @@ Hormones: <strong><span id="hormones">
 <<if $activeSlave.fuckdoll > 0>>
 	//Rules have little meaning for living sex toys//
 <<else>>
-	<<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
-	<<for $i = 0; $i < _SL; $i++>>
-		<<if $slaves[$i].assignmentVisible == 1 && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-			<<if $slaves[$i].rules.living == "luxurious">>
-				<<if $slaves[$i].relationship >= 4>>
-					<<set $roomsPopulation += 0.5>>
-				<<else>>
-					<<set $roomsPopulation++>>
-				<</if>>
-			<<else>>
-				<<set $dormitoryPopulation++>>
-			<</if>>
-		<</if>>
-	<</for>>
+	<<set _visibleSlaves = $slaves.filter(s => assignmentVisible(s) && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
+		$dormitoryPopulation = _visibleSlaves.filter(s => s.rules.living != "luxurious").length,
+		$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.rules.living == "luxurious" && s.relationship >= 4).length * 0.5>>
+
 	Living standard: ''<span id="livingRules">$activeSlave.rules.living</span>.''
 	<<if setup.facilityCareers.includes($activeSlave.assignment)>>
 		//$His living conditions are managed by $his assignment.//
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index 2b58dccd294e4df2728f0471ea874f7b7a0438b0..e1cfda14b952de2b30dcabf7a26598566884f924 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -21,7 +21,7 @@
 <</widget>>
 
 <<widget "security">>
-	<<if ($SF.Toggle && $SF.Active >= 1) || $secExpEnabled > 0 && ($SecExp.buildings.propHub.active + $secHQ + $SecExp.buildings.barracks.active  + $riotCenter) > 1>>
+	<<if ($SF.Toggle && $SF.Active >= 1) || $secExpEnabled > 0 && ($SecExp.buildings.propHub.active + $secHQ + $SecExp.buildings.barracks.active + $riotCenter) > 1>>
 		<br>
 	<</if>>
 	<<if $SF.Toggle && $SF.Active >= 1 && _Pass != "Firebase">>
@@ -539,6 +539,12 @@
 			<<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>>
 		<</if>>
 
+		<<if _Pass === "Main">>
+			<span id="findSlave"> <br>
+				<<link [[Locate Slave|Find Slave]]>><</link>>
+			</span>
+		<</if>>
+
 		<<if $sideBarOptions.compact === 0 && _Pass === "Main" || $sideBarOptions.compact === 1 && _Pass === "Manage Arcology">> <br>
 			<<if $FSAnnounced>>
 				<span id="FSButton"> <br>
diff --git a/src/uncategorized/universalRules.tw b/src/uncategorized/universalRules.tw
index 3cbb439bf8fd394f0ad31b707182bf698d695c0b..e6803999d8bb30cde3cae45f063456a44f1c64d4 100644
--- a/src/uncategorized/universalRules.tw
+++ b/src/uncategorized/universalRules.tw
@@ -456,57 +456,57 @@ Slave nicknames are
 		Future society names for new slaves are currently @@.red;NOT APPLIED.@@ [[Apply|Universal Rules][$useFSNames = 1]]
 	<<else>>
 		Future society names for new slaves are currently @@.cyan;APPLIED.@@ [[Stop applying|Universal Rules][$useFSNames = 0]]
-		
+
 		<<if $FSNamePref == 0>>
-		    You are currently not setting direction towards which Future Society names are preferred.
+			You are currently not setting direction towards which Future Society names are preferred.
 		<<elseif $FSNamePref == 1>>
-		    New Slaves are currently being given devotional names.
+			New Slaves are currently being given devotional names.
 		<<elseif $FSNamePref == 2>>
-		    New slaves are currently being named according to Roman Custom.
+			New slaves are currently being named according to Roman Custom.
 		<<elseif $FSNamePref == 3>>
-		    New slaves are currently being named according to ancient Aztec Custom.
+			New slaves are currently being named according to ancient Aztec Custom.
 		<<elseif $FSNamePref == 4>>
-		    New slaves are currently being named according to ancient Egyptian Custom.
+			New slaves are currently being named according to ancient Egyptian Custom.
 		<<elseif $FSNamePref == 5>>
-		    New slaves are currently being named according to feudal Japanese Custom.
+			New slaves are currently being named according to feudal Japanese Custom.
 		<<elseif $FSNamePref == 6>>
-		    New slaves are currently being named according to Degradationalist Custom.
+			New slaves are currently being named according to Degradationalist Custom.
 		<<elseif $FSNamePref == 7>>
-		    New slaves are currently being named according to Paternalist Custom.
+			New slaves are currently being named according to Paternalist Custom.
 		<<elseif $FSNamePref == 8>>
-		    New slaves are currently being given simple bimbo names.
+			New slaves are currently being given simple bimbo names.
 		<<elseif $FSNamePref == 9>>
-		    New Slaves are currently being named according to Pastoralist Custom.
+			New Slaves are currently being named according to Pastoralist Custom.
 		<</if>>
-		
+
 		<br>
-		
+
 		<<if $FSNamePref != 0>>
-		    [[No Longer Specify which Future Society to Draw Names From.|Universal Rules][$FSNamePref = 0]] <br>
+			[[No Longer Specify which Future Society to Draw Names From.|Universal Rules][$FSNamePref = 0]] <br>
 		<</if>>
 		<<if $FSNamePref != 1 && $arcologies[0].FSChattelReligionist >= 20>>
-		    [[Give New Slaves Devotional Names|Universal Rules][$FSNamePref = 1]] <br>
+			[[Give New Slaves Devotional Names|Universal Rules][$FSNamePref = 1]] <br>
 		<</if>>
 		<<if $FSNamePref != 2 && $arcologies[0].FSRomanRevivalist > 20>>
-		    [[Give New slaves Roman Names|Universal Rules][$FSNamePref = 2]] <br>
+			[[Give New slaves Roman Names|Universal Rules][$FSNamePref = 2]] <br>
 		<</if>>
 		<<if $FSNamePref != 3 && $arcologies[0].FSAztecRevivalist > 20>>
-		    [[Give New Slaves Ancient Aztec Names.|Universal Rules][$FSNamePref = 3]] <br>
+			[[Give New Slaves Ancient Aztec Names.|Universal Rules][$FSNamePref = 3]] <br>
 		<</if>>
 		<<if $FSNamePref != 4 && $arcologies[0].FSEgyptianRevivalist > 20>>
-		    [[Give New Slaves Ancient Egyptian Names|Universal Rules][$FSNamePref = 4]] <br>
+			[[Give New Slaves Ancient Egyptian Names|Universal Rules][$FSNamePref = 4]] <br>
 		<</if>>
 		<<if $FSNamePref != 5 && $arcologies[0].FSEdoRevivalist > 20>>
-		    [[Give New Slaves Feudal Japanese Names|Universal Rules][$FSNamePref = 5]] <br>
+			[[Give New Slaves Feudal Japanese Names|Universal Rules][$FSNamePref = 5]] <br>
 		<</if>>
 		<<if $FSNamePref != 6 && $arcologies[0].FSDegradationist !== "unset">>
-		    [[Give New Slaves Degrading Names|Universal Rules][$FSNamePref = 6]] <br>
+			[[Give New Slaves Degrading Names|Universal Rules][$FSNamePref = 6]] <br>
 		<</if>>
 		<<if $FSNamePref != 7 && $arcologies[0].FSPaternalist >= 20>>
-		    [[Give New Slaves Paternalist Names|Universal Rules][$FSNamePref = 7]] <br>
+			[[Give New Slaves Paternalist Names|Universal Rules][$FSNamePref = 7]] <br>
 		<</if>>
 		<<if $FSNamePref != 8 && $arcologies[0].FSIntellectualDependency >= 20>>
-		    [[Give New Slaves Simple Bimbo Names|Universal Rules][$FSNamePref = 8]]
+			[[Give New Slaves Simple Bimbo Names|Universal Rules][$FSNamePref = 8]]
 		<</if>>
 	<</if>>
 <</if>>
diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw
index 727818a51506e21d95ec60768ec66137ccef4baa..4ddd9bfd54b761f1ea6800b916cd6b78da9be41a 100644
--- a/src/utility/birthWidgets.tw
+++ b/src/utility/birthWidgets.tw
@@ -1791,7 +1791,7 @@ Feeling childbirth approaching, $slaves[$i].slaveName is helped to $his prepared
 	<<else>>
 		Quickly $he spreads $his legs apart and begins pushing out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].counter.birthsTotal == 0>>$his first<<else>>this week's<</if>> baby<<else>>$his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>.<<if $slaves[$i].fetish == "humiliation">> $He is thrilled that $his underwear reveals what's happening between $his legs<<else>> $He does $his best to hide what's happening between $his legs<</if>>.
 	<</if>>
-	
+
 <<case "a t-shirt and thong" "a thong" "a tube top and thong" "a bimbo outfit">>
 	<<if $slaves[$i].fetish == "mindbroken">>
 		Instinctively, $he begins to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].counter.birthsTotal == 0>>$his first<<else>>this week's<</if>> baby<<else>>$his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>, indifferent to the thong covering $his <<if $slaves[$i].mpreg == 1>>anus<<else>>vagina<</if>>. $He crowns into the straining undergarment until the straps give out and clear $his <<if $slaves[$i].mpreg == 1>>anus<<else>>birth canal<</if>>, allowing $him to carry on with childbirth.
@@ -1812,7 +1812,7 @@ Feeling childbirth approaching, $slaves[$i].slaveName is helped to $his prepared
 	<<else>>
 		Quickly $he spreads $his legs apart and begins pushing out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].counter.birthsTotal == 0>>$his first<<else>>this week's<</if>> baby<<else>>$his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>.<<if $slaves[$i].fetish == "humiliation">> $He is thrilled that $his swimsuit fully reveals what's happening between $his legs<<else>> $He does $his best to hide what's happening between $his legs<</if>>.
 	<</if>>
-	
+
 <<case "a courtesan dress">>
 	<<if $slaves[$i].fetish == "mindbroken">>
 		Instinctively, $he begins to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].counter.birthsTotal == 0>>$his first<<else>>this week's<</if>> baby<<else>>$his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>, indifferent to who may be watching the show under $his parted dress.
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 4cd8914ed198b50129656c165c877f8f523ef35e..bb36bbde986cc95b3d30922690ce23240a36a6cd 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -3845,7 +3845,7 @@ $He's got a
 				<<if $activeSlave.dick == 0>>
 					Bizarrely, $he's been given a functional prostate gland. It's attached to $his urethra, of course, <<if $activeSlave.balls > 0>>which in combination with $his testicles make $his squirt unreasonable volume of fluids and semen with each orgasm<<else>>meaning that when $he orgasms, $he squirts an unreasonable volume of fluid<</if>>.
 					<<if $activeSlave.prostate > 2>>
-						With the implant embedded in it; that gush is insane. Everything around $him is at risk of being splashed. Changes of clothes are a must with $him, as are supplies to mop up afterwards.
+						With the implant embedded in it, that gush is insane. Everything around $him is at risk of being splashed. Changes of clothes are a must with $him, as are supplies to mop up afterwards.
 					<</if>>
 				<</if>>
 			<</if>>
diff --git a/src/utility/extendedFamilyWidgets.tw b/src/utility/extendedFamilyWidgets.tw
index b66d4b481b166fb02a44df974056520ba89ef065..1872c453e6cf96a6c989495720a804ed36c65605 100644
--- a/src/utility/extendedFamilyWidgets.tw
+++ b/src/utility/extendedFamilyWidgets.tw
@@ -46,14 +46,7 @@
 
 <<set _children = $slaves.filter(function(s) { return $activeSlave.ID == s.father; })>>
 <<if _children.length > 2>>
-	$He @@.lightgreen;fathered
-	<<for _efw = 0; _efw < _children.length; _efw++>>
-		<<if _efw < _children.length-1>>
-			_children[_efw].slaveName,
-		<<else>>
-			and _children[_efw].slaveName.@@
-		<</if>>
-	<</for>>
+	$He @@.lightgreen;fathered <<print _children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 <<elseif _children.length > 1>>
 	$He @@.lightgreen;fathered a pair of your slaves: _children[0].slaveName, and _children[1].slaveName.@@
 <<elseif _children.length > 0>>
@@ -62,14 +55,7 @@
 
 <<set _children = $slaves.filter(function(s) { return $activeSlave.ID == s.mother; })>>
 <<if _children.length > 2>>
-	$He @@.lightgreen;gave birth to
-	<<for _efw = 0; _efw < _children.length; _efw++>>
-		<<if _efw < _children.length-1>>
-			_children[_efw].slaveName,
-		<<else>>
-			and _children[_efw].slaveName.@@
-		<</if>>
-	<</for>>
+	$He @@.lightgreen;gave birth to <<print _children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 <<elseif _children.length > 1>>
 	$He @@.lightgreen;gave birth to a pair of your slaves: _children[0].slaveName, and _children[1].slaveName.@@
 <<elseif _children.length > 0>>
@@ -178,388 +164,160 @@
 	<</if>>
 
 	/*testtest grandchild passage - determines how many grandchildren the current slave has*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if $activeSlave.ID == $slaves[$i].mother || $activeSlave.ID == $slaves[$i].father>>
-				<<for $j = 0; $j < $slaves.length; $j++>>
-					<<if $slaves[$i].ID != $slaves[$j].ID>>
-						<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
-							<<set $children.push($slaves[$j])>>
-						<</if>>
-					<</if>>
-				<</for>>
-			<</if>>
-		<</if>>
-	<</for>>
+	<<set $children = $slaves.filter((s) => { return isGrandparentP(s, $activeSlave); });>>
 	<<if $children.length > 0>>
 		$He
 		<<if $children.length > 2>>
-			has @@.lightgreen;many grandchildren,
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName amongst your slaves.@@
-				<</if>>
-			<</for>>
+			has @@.lightgreen;many grandchildren, <<print $children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>, amongst your slaves.@@
 		<<elseif $children.length > 1>>
 			has @@.lightgreen;two grandchildren, $children[0].slaveName, and $children[1].slaveName as your slaves.@@
-		<<elseif $children.length > 0>>
+		<<else>>
 			has a @@.lightgreen;grandchild, $children[0].slaveName as your slave.@@
 		<</if>>
 	<</if>>
 	<<set $children = []>>
 
-	/*testtest PC aunt passage - determines how many aunts you have*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-				<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
-					<<for $j = 0; $j < $slaves.length; $j++>>
-						<<if $slaves[$i].ID != $slaves[$j].ID>>
-							<<if $slaves[$j].genes == "XX">>
-								<<if areSisters($slaves[$j], $activeSlave) == 1 || areSisters($slaves[$j], $activeSlave) == 2>>
-									<<set $children.push($slaves[$j])>>
-								<</if>>
-							<</if>>
-						<</if>>
-					<</for>>
+	/*testtest PC aunt and uncle passage - determines how many aunts and uncles you have*/
+	<<set _aunts = [], _uncles = []>>
+	<<if isAunt($PC, $activeSlave)>>
+		<<set _momsiblings = $slaves.filter((s) => { const sis = areSisters(s, $PC.mother); return sis == 1 || sis == 2; }),
+			  _dadsiblings = $slaves.filter((s) => { const sis = areSisters(s, $PC.father); return sis == 1 || sis == 2; })>>
+		<<for $i = 0; $i < _momsiblings.length; $i++>>
+			<<if _momsiblings[$i].ID != $activeSlave.ID>>
+				<<if _momsiblings[$i].genes == "XX">>
+					<<set _aunts.push(_momsiblings[$i])>>
+				<<else>>
+					<<set _uncles.push(_momsiblings[$i])>>
 				<</if>>
 			<</if>>
-		<</if>>
-	<</for>>
-	<<if $activeSlave.genes == "XX" && $children.length > 0>>
-		$He
-		<<if $children.length > 2>>
-			is @@.lightgreen;your aunt along with
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
+		<</for>>
+		<<for $i = 0; $i < _dadsiblings.length; $i++>>
+			<<if _dadsiblings[$i].ID != $activeSlave.ID>>
+				<<if _dadsiblings[$i].genes == "XX">>
+					<<set _aunts.push(_dadsiblings[$i])>>
 				<<else>>
-					and $children[$j].slaveName.@@
+					<<set _uncles.push(_dadsiblings[$i])>>
 				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			is @@.lightgreen;your aunt along with $children[0].slaveName.@@
-		<<elseif $children.length > 0>>
-			<<for $i = 0; $i < $slaves.length; $i++>>
-				<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XX">>
-					<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-						<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
-							$He is @@.lightgreen;your aunt.@@
-						<</if>>
-					<</if>>
-				<</if>>
-			<</for>>
-		<</if>>
-	<</if>>
-	<<set $children = []>>
+			<</if>>
+		<</for>>
 
-	/*testtest PC uncle passage - determines how many uncles you have*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-				<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
-					<<for $j = 0; $j < $slaves.length; $j++>>
-						<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].dick > 0 && $slaves[$j].genes == "XY">>
-							<<if areSisters($slaves[$j], $activeSlave) == 1 || areSisters($slaves[$j], $activeSlave) == 2>>
-								<<set $children.push($slaves[$j])>>
-							<</if>>
-						<</if>>
-					<</for>>
-				<</if>>
+		<<if $activeSlave.genes == "XX">>
+			$He
+			<<if _aunts.length > 1>>
+				is @@.lightgreen;your aunt along with <<print _aunts.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+			<<elseif _aunts.length > 0>>
+				is @@.lightgreen;your aunt along with _aunts[0].slaveName.@@
+			<<else>>
+				is @@.lightgreen;your aunt.@@
+			<</if>>
+		<<else>>
+			$He
+			<<if _uncles.length > 1>>
+				is @@.lightgreen;your uncle along with <<print _uncles.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+			<<elseif _uncles.length > 0>>
+				is @@.lightgreen;your uncle along with _uncles[0].slaveName.@@
+			<<else>>
+				is @@.lightgreen;your uncle.@@
 			<</if>>
-		<</if>>
-	<</for>>
-	<<if $activeSlave.genes == "XY" && $children.length > 0>>
-		$He
-		<<if $children.length > 2>>
-			is @@.lightgreen;your uncle along with
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			is @@.lightgreen;your uncle along with $children[0].slaveName.@@
-		<<elseif $children.length > 0>>
-			<<for $i = 0; $i < $slaves.length; $i++>>
-				<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XY">>
-					<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-						<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
-							$He is @@.lightgreen;your uncle.@@
-						<</if>>
-					<</if>>
-				<</if>>
-			<</for>>
 		<</if>>
 	<</if>>
-	<<set $children = []>>
 
-	/*testtest aunt passage - determines how many aunts a slave has*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-				<<for $j = 0; $j < $slaves.length; $j++>>
-					<<if $slaves[$j].genes == "XX">>
-						<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>>
-							<<set $children.push($slaves[$j])>>
-						<</if>>
-					<</if>>
-				<</for>>
-			<</if>>
+	/*testtest aunt and uncle passage - determines how many aunts and uncles a slave has*/
+	<<set _aunts = [], _uncles = []>>
+	<<set _momsiblings = $slaves.filter((s) => { const sis = areSisters(s, $activeSlave.mother); return sis == 1 || sis == 2; }),
+		  _dadsiblings = $slaves.filter((s) => { const sis = areSisters(s, $activeSlave.father); return sis == 1 || sis == 2; })>>
+	<<for $i = 0; $i < _momsiblings.length; $i++>>
+		<<if _momsiblings[$i].genes == "XX">>
+			<<set _aunts.push(_momsiblings[$i])>>
+		<<else>>
+			<<set _uncles.push(_momsiblings[$i])>>
 		<</if>>
 	<</for>>
-	<<if $children.length > 0>>
-		$He
-		<<if $children.length > 2>>
-			has @@.lightgreen;many aunts,
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			has @@.lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@
-		<<elseif $children.length > 0>>
-			has @@.lightgreen;an aunt, $children[0].slaveName.@@
-		<</if>>
-	<</if>>
-	<<set $children = []>>
-
-	/*testtest uncle passage - determines how many uncles a slave has*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-				<<for $j = 0; $j < $slaves.length; $j++>>
-					<<if $slaves[$j].genes == "XY">>
-						<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>>
-							<<set $children.push($slaves[$j])>>
-						<</if>>
-					<</if>>
-				<</for>>
-			<</if>>
+	<<for $i = 0; $i < _dadsiblings.length; $i++>>
+		<<if _dadsiblings[$i].genes == "XX">>
+			<<set _aunts.push(_dadsiblings[$i])>>
+		<<else>>
+			<<set _uncles.push(_dadsiblings[$i])>>
 		<</if>>
 	<</for>>
-	<<if $children.length > 0>>
+	
+	<<if _aunts.length > 0>>
 		$He
-		<<if $children.length > 2>>
-			has @@.lightgreen;many uncles,
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			has @@.lightgreen;two uncles, $children[0].slaveName, and $children[1].slaveName.@@
-		<<elseif $children.length > 0>>
-			has @@.lightgreen;an uncle, $children[0].slaveName.@@
+		<<if _aunts.length > 2>>
+			has @@.lightgreen;many aunts, <<print _aunts.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+		<<elseif _aunts.length > 1>>
+			has @@.lightgreen;two aunts, _aunts[0].slaveName, and _aunts[1].slaveName.@@
+		<<else>>
+			has @@.lightgreen;an aunt, _aunts[0].slaveName.@@
 		<</if>>
 	<</if>>
-	<<set $children = []>>
-
-	/*testtest PC niece passage - determines how many nieces you have*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>>
-				<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-					<<for $j = 0; $j < $slaves.length; $j++>>
-						<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$j].genes == "XX">>
-							<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
-								<<set $children.push($slaves[$j])>>
-							<</if>>
-						<</if>>
-					<</for>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</for>>
-	<<if $activeSlave.genes == "XX" && $children.length > 0>>
+	<<if _uncles.length > 0>>
 		$He
-		<<if $children.length > 2>>
-			is @@.lightgreen;your niece along with
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			is @@.lightgreen;your niece along with $children[0].slaveName.@@
-		<<elseif $children.length > 0>>
-			<<for $i = 0; $i < $slaves.length; $i++>>
-				<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XX">>
-					<<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>>
-						<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-							is @@.lightgreen;your niece.@@
-						<</if>>
-					<</if>>
-				<</if>>
-			<</for>>
+		<<if _uncles.length > 2>>
+			has @@.lightgreen;many uncles, <<print _uncles.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+		<<elseif _uncles.length > 1>>
+			has @@.lightgreen;two uncles, _uncles[0].slaveName, and _uncles[1].slaveName.@@
+		<<else>>
+			has @@.lightgreen;an uncle, _uncles[0].slaveName.@@
 		<</if>>
 	<</if>>
-	<<set $children = []>>
 
-	/* testtest niece passage - determines how many nieces a slave has*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-				<<for $j = 0; $j < $slaves.length; $j++>>
-					<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$j].genes == "XX">>
-						<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
-							<<set $children.push($slaves[$j])>>
-						<</if>>
-					<</if>>
-				<</for>>
+	/*testtest PC niece and nephew passage - determines how many nieces and nephews you have*/
+	<<set _nieces = [], _nephews = []>>
+	<<if isAunt($activeSlave, $PC)>>
+		<<set _nieces = $slaves.filter((s) => { return (isAunt(s, $PC) && (s.genes == "XX")); })>>
+		<<set _nephews = $slaves.filter((s) => { return (isAunt(s, $PC) && (s.genes == "XY")); })>>
+
+		<<if $activeSlave.genes == "XX">>
+			$He
+			<<if _nieces.length > 1>>
+				is @@.lightgreen;your niece along with <<print _nieces.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+			<<elseif _nieces.length > 0>>
+				is @@.lightgreen;your niece along with _nieces[0].slaveName.@@
+			<<else>>
+				is @@.lightgreen;your niece.@@
+			<</if>>
+		<<else>>
+			$He
+			<<if _nephews.length > 1>>
+				is @@.lightgreen;your nephew along with <<print _nephews.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
+			<<elseif _nephews.length > 0>>
+				is @@.lightgreen;your nephew along with _nephews[0].slaveName.@@
+			<<else>>
+				is @@.lightgreen;your nephew.@@
 			<</if>>
-		<</if>>
-	<</for>>
-	<<if $children.length > 0>>
-		$He
-		<<if $children.length > 2>>
-			has @@.lightgreen;many nieces,
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName, who are your slaves.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			has @@.lightgreen;two nieces, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@
-		<<elseif $children.length > 0>>
-			has @@.lightgreen;a niece, $children[0].slaveName, who is your slave.@@
 		<</if>>
 	<</if>>
-	<<set $children = []>>
 
-	/*testtest PC nephew passage - determines how many nephews you have*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>>
-				<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-					<<for $j = 0; $j < $slaves.length; $j++>>
-						<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$i].genes == "XY">>
-							<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
-								<<set $children.push($slaves[$j])>>
-							<</if>>
-						<</if>>
-					<</for>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</for>>
-	<<if $activeSlave.genes == "XY" && $children.length > 0>>
+	/* testtest niece and nephew passage - determines how many nieces and nephews a slave has*/
+	<<set _nieces = $slaves.filter((s) => { return( (s.ID != $activeSlave.ID) && (isAunt(s, $activeSlave)) && (s.genes == "XX")); })>>
+	<<set _nephews = $slaves.filter((s) => { return( (s.ID != $activeSlave.ID) && (isAunt(s, $activeSlave)) && (s.genes == "XY")); })>>
+
+	<<if _nieces.length > 0>>
 		$He
-		<<if $children.length > 2>>
-			is @@.lightgreen;your nephew along with
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			is @@.lightgreen;your nephew along with $children[0].slaveName.@@
-		<<elseif $children.length > 0>>
-			<<for $i = 0; $i < $slaves.length; $i++>>
-				<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XY">>
-					<<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>>
-						<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
-							is @@.lightgreen;your nephew.@@
-						<</if>>
-					<</if>>
-				<</if>>
-			<</for>>
+		<<if _nieces.length > 2>>
+			has @@.lightgreen;many nieces, <<print _nieces.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>, who are your slaves.@@
+		<<elseif _nieces.length > 1>>
+			has @@.lightgreen;two nieces, _nieces[0].slaveName, and _nieces[1].slaveName, who are your slaves.@@
+		<<else>>
+			has @@.lightgreen;a niece, _nieces[0].slaveName, who is your slave.@@
 		<</if>>
 	<</if>>
-	<<set $children = []>>
 
-	/* testtest nephew passage - determines how many nephews a slave has*/
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
-				<<for $j = 0; $j < $slaves.length; $j++>>
-					<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$j].genes == "XY">>
-						<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
-							<<set $children.push($slaves[$j])>>
-						<</if>>
-					<</if>>
-				<</for>>
-			<</if>>
-		<</if>>
-	<</for>>
-	<<if $children.length > 0>>
+	<<if _nephews.length > 0>>
 		$He
-		<<if $children.length > 2>>
-			has @@.lightgreen;many nephews,
-			<<for $j = 0; $j < $children.length; $j++>>
-				<<if $j < $children.length-1>>
-					$children[$j].slaveName,
-				<<else>>
-					and $children[$j].slaveName, who are your slaves.@@
-				<</if>>
-			<</for>>
-		<<elseif $children.length > 1>>
-			has @@.lightgreen;two nephews, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@
-		<<elseif $children.length > 0>>
-			has @@.lightgreen;a nephew, $children[0].slaveName, who is your slave.@@
+		<<if _nephews.length > 2>>
+			has @@.lightgreen;many nephews,	<<print _nephews.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>, who are your slaves.@@
+		<<elseif _nephews.length > 1>>
+			has @@.lightgreen;two nephews, _nephews[0].slaveName, and _nephews[1].slaveName, who are your slaves.@@
+		<<else>>
+			has @@.lightgreen;a nephew, _nephews[0].slaveName, who is your slave.@@
 		<</if>>
 	<</if>>
 	<<set $children = []>>
 <</if>> /* end distant relatives toggle check */
 
-/*testtest PC sibling passages - determines how many siblings you have
-<<set $children = []>>
-<<set _rel_num = areSisters($activeSlave, $PC)>>
-<<if(_rel_num > 0)>>
-	<<if ($activeSlave.genes == "XX")>>
-		<<set _rel_type = "sister">>
-	<<else>>
-		<<set _rel_type = "brother">>
-	<</if>>
-	<<if (_rel_num == 1)>>
-		<<set _rel_desc = "your twin">>
-	<<elseif _rel_num == 2>>
-		<<set _rel_desc = "your ">>
-	<<elseif _rel_num == 3>>
-		<<set _rel_desc = "your half-">>
-	<</if>>
-	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].ID != $activeSlave.ID>>
-			<<if _rel_num == areSisters($activeSlave, $slaves[$i]) && ($activeSlave.vagina > -1) == ($slaves[$i].vagina > -1)>>
-				<<set console.log('sisters', $slaves[$i].birthName)>>
-				<<set $children.push($slaves[$i])>>
-			<</if>>
-		<</if>>
-	<</for>>
-	$He
-	<<if $children.length > 1>>
-		@@.lightgreen;is _rel_desc _rel_type along with
-		<<for $j = 0; $j < $children.length; $j++>>
-			<<if $j < $children.length-1>>
-				$children[$j].slaveName,
-			<<else>>
-				and $children[$j].slaveName.@@
-			<</if>>
-		<</for>>
-	<<elseif $children.length > 0>>
-		is @@.lightgreen;_rel_desc _rel_type with $children[0].slaveName.@@
-	<<else>>
-		is @@.lightgreen;_rel_desc _rel_type.@@
-	<</if>>
-<</if>>
-<<set $children = []>>
-*/
-
+/*testtest PC sibling passages - determines how many siblings you have*/
 <<set _twins = [], _sisters = [], _brothers = [], _halfsisters = [], _halfbrothers = [], _cousins = []>>
 <<for _efw = 0; _efw < $slaves.length; _efw++>>
 	<<set _sisterCheck = areSisters($slaves[_efw], $activeSlave)>>
@@ -573,8 +331,7 @@
 		<<run ($slaves[_efw].genes == 'XX' ? _halfsisters : _halfbrothers).push($slaves[_efw])>>
 	<</if>>
 	<<if (def $showDistantRelatives) && $showDistantRelatives == 1>>
-		<<set _cousinCheck = areCousins($slaves[_efw], $activeSlave)>>
-		<<if _cousinCheck == true>>
+		<<if areCousins($slaves[_efw], $activeSlave) == true>>
 			<<run _cousins.push($slaves[_efw])>>
 		<</if>>
 	<</if>>
@@ -675,15 +432,7 @@
 /*testtest half-sister - determines how many half-sisters a slave has*/
 <<set _children = $slaves.filter(function(s) { return s.ID != $activeSlave.ID && areSisters($activeSlave, s) == 3 && s.genes == "XX"; })>>
 <<if _children.length > 2>>
-	@@.lightgreen;
-	<<for _efw = 0; _efw < _children.length; _efw++>>
-		<<if _efw < _children.length-1>>
-			_children[_efw].slaveName,
-		<<else>>
-			and _children[_efw].slaveName
-		<</if>>
-	<</for>>
-	are half-sisters to $him.@@
+	@@.lightgreen;<<print _children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>> are half-sisters to $him.@@
 <<elseif _children.length > 1>>
 	@@.lightgreen;_children[0].slaveName and _children[1].slaveName are half-sisters to $him.@@
 <<elseif _children.length > 0>>
@@ -694,15 +443,7 @@
 /*testtest half-brother - determines how many half-brothers a slave has*/
 <<set _children = $slaves.filter(function(s) { return s.ID != $activeSlave.ID && areSisters($activeSlave, s) == 3 && s.genes == "XY"; })>>
 <<if _children.length > 2>>
-	@@.lightgreen;
-	<<for _efw = 0; _efw < _children.length; _efw++>>
-		<<if _efw < _children.length-1>>
-			_children[_efw].slaveName,
-		<<else>>
-			and _children[_efw].slaveName
-		<</if>>
-	<</for>>
-	are half-brothers to $him.@@
+	@@.lightgreen;<<print _children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>> are half-brothers to $him.@@
 <<elseif _children.length > 1>>
 	@@.lightgreen;_children[0].slaveName and _children[1].slaveName are half-brothers to $him.@@
 <<elseif _children.length > 0>>
@@ -716,7 +457,7 @@
 		<<if _cousins.length > 1>>
 			@@.lightgreen;is your cousin along with <<print _cousins.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 		<<elseif _cousins.length > 0>>
-			is @@.lightgreen;your cousin along with _sisters[0].slaveName.@@
+			is @@.lightgreen;your cousin along with _cousins[0].slaveName.@@
 		<<else>>
 			is @@.lightgreen;your cousin.@@
 		<</if>>
@@ -725,15 +466,7 @@
 	/*testtest cousin - determines how many cousins a slave has*/
 	<<set _children = $slaves.filter(function(s) { return s.ID != $activeSlave.ID && areCousins($activeSlave, s)})>>
 	<<if _children.length > 2>>
-		@@.lightgreen;
-		<<for _efw = 0; _efw < _children.length; _efw++>>
-			<<if _efw < _children.length-1>>
-				_children[_efw].slaveName,
-			<<else>>
-				and _children[_efw].slaveName
-			<</if>>
-		<</for>>
-		are cousins to $him.@@
+		@@.lightgreen;<<print _children.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>> are cousins to $him.@@
 	<<elseif _children.length > 1>>
 		@@.lightgreen;_children[0].slaveName and _children[1].slaveName are cousins to $him.@@
 	<<elseif _children.length > 0>>
diff --git a/src/utility/saRulesWidgets.tw b/src/utility/saRulesWidgets.tw
index 396500dbccc4811fafd060d0b4e43c4c13f846e8..5ee00e65d1b4e0f40aff2e9e9478ac2c259c1fcb 100644
--- a/src/utility/saRulesWidgets.tw
+++ b/src/utility/saRulesWidgets.tw
@@ -437,13 +437,13 @@ and
 		<<set $slaves[$i].counter.oral += _fuckCount, $oralTotal += _fuckCount>>
 	<<elseif ($slaves[$i].fetish == "humiliation")>>
 		demand that other slaves let $him fuck them in public.
-		<<if $slaves[$i].assignmentVisible>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<if !$slaves[$i].rivalry>>
 				<<SlaveIDSort $RapeableIDs>>
 				<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
 					<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
 					<<if !$slaves[_j].rivalry>>
-						<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+						<<if assignmentVisible($slaves[_j]) || $slaves[_j].assignment == $slaves[$i].assignment>>
 							<<if $slaves[_j].devotion <= 20>>
 								<<if $slaves[_j].trust < -20>>
 									Craving a rush, $he repeatedly forces a reluctant <<= SlaveFullName($slaves[_j])>> to have sex with $him in public. $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse @@.lightsalmon;starts a rivalry@@ between them.
@@ -490,14 +490,14 @@ and
 		<<set $slaves[$i].counter.mammary += _fuckCount, $mammaryTotal += _fuckCount>>
 	<<elseif ($slaves[$i].fetish == "sadist")>>
 		force the most reluctant slaves to let $him fuck them.
-		<<if $slaves[$i].assignmentVisible>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<if !$slaves[$i].rivalry>>
 				<<SlaveIDSort $RapeableIDs>>
 				<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
 					<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
 					<<setLocalPronouns $slaves[_j] 2>>
 					<<if !$slaves[_j].rivalry>>
-						<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+						<<if assignmentVisible($slaves[_j]) || $slaves[_j].assignment == $slaves[$i].assignment>>
 							<<if $slaves[_j].devotion <= 50>>
 								<<if $slaves[_j].sexualFlaw != "none">>
 									$He focuses on <<= SlaveFullName($slaves[_j])>>, who has a sexual flaw $slaves[$i].slaveName can exploit. $He sadistically
@@ -557,13 +557,13 @@ and
 		<<run SimpleSexAct.Slave($slaves[$i], 12)>>
 	<<elseif ($slaves[$i].fetish == "dom")>>
 		force other slaves to submit to $him.
-		<<if $slaves[$i].assignmentVisible>>
+		<<if assignmentVisible($slaves[$i])>>
 			<<if !$slaves[$i].rivalry>>
 				<<SlaveIDSort $RapeableIDs>>
 				<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
 					<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
 					<<if !$slaves[_j].rivalry>>
-						<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+						<<if assignmentVisible($slaves[_j]) || $slaves[_j].assignment == $slaves[$i].assignment>>
 							<<if $slaves[_j].devotion <= 20>>
 								<<if $slaves[_j].trust < -20>>
 									$He repeatedly rapes a reluctant <<= SlaveFullName($slaves[_j])>>; $he can't seem to keep $his hand<<if (hasBothArms($slaves[$i]) || !hasAnyArms($slaves[$i]))>>s<</if>><<if (!hasAnyArms($slaves[$i]))>> (so to speak)<</if>> off the poor slave, who can't avoid $him. Not surprisingly, $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse @@.lightsalmon;starts a rivalry@@ between them.