diff --git a/.gitignore b/.gitignore
index ec93e78dba80af00f0ea5d6d850f71e01effc949..25465c247765b92d4e5772b770f731b133d83b64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,6 +25,7 @@ var/
 *.egg-info/
 .installed.cfg
 *.egg
+bin/*
 
 # PyInstaller
 #  Usually these files are written by a python script from a template
@@ -103,4 +104,5 @@ package.json
 fc-pregmod
 *.outline
 *.todo
-TODO.txt
\ No newline at end of file
+TODO.txt
+.vscode/settings.json
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 474880409f2eb7e1e60e1f030f7bb46364ea574c..7a73a41bfdf76d6f793007240d80983a52f15f97 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,2 @@
 {
-    "eslint.enable": false
 }
\ No newline at end of file
diff --git a/README.md b/README.md
index c0ec961ee0da5790afa4846358cf05894b22ff15..b33a96a73bd2b9a825f399b67dbc87dcf98cfb70 100644
--- a/README.md
+++ b/README.md
@@ -31,12 +31,12 @@ How to mod (basic doc):
 1. All sources now in the src subdir, in separate files. 1 passage = 1 file.
 
 2. Special files and dir's:
-	- src/config 		- configuration of the story is here.
-	- src/config/start.tw 	- contains list of .tw passage files, regenerated automatic, by building scripts. Do not change by hands. (original passage Start from pregmod renamed and moved to src/events/intro/introSummary.tw)
+	- src/config		- configuration of the story is here.
+	- src/config/start.tw	- contains list of .tw passage files, regenerated automatic, by building scripts. Do not change by hands. (original passage Start from pregmod renamed and moved to src/events/intro/introSummary.tw)
 	- src/js/storyJS.tw		- special passage with [script] tag - contain all native JavaScript from pregmod.
 	- devTools/tweeGo/targets/sugarcube-2/userlib.js - on original FC JS moved here (I deleted it after moving JS to storyJS.tw). Compare to storyJS.tw but do not copy file here. May conflict with src/js/storyJS.tw if copied.
-	- src/pregmod 		- I put all pregmod-only passages here.
-	- .gitignore 		- special file for git - to ignore some files. For example - compilation results.
+	- src/pregmod		- I put all pregmod-only passages here.
+	- .gitignore		- special file for git - to ignore some files. For example - compilation results.
 
 3. Compilation:
 
diff --git a/SanityCheck.jar b/SanityCheck.jar
index bebdf1da3e6277f966e8fff78ea96d884fe27b0b..478417de473b6dd0de5575eef4d474e2ef3d7073 100644
Binary files a/SanityCheck.jar and b/SanityCheck.jar differ
diff --git a/bin/.gitignore b/bin/.gitignore
deleted file mode 100644
index 835f2b74dbda0fdaf8bcecc49ad6a3fb8abc80c9..0000000000000000000000000000000000000000
--- a/bin/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Ignore everything in this directory
-*
-# Except the following:
-!.gitignore
\ No newline at end of file
diff --git a/compile b/compile
index c9bb6c0cd576c3111a246d3985f774f3c7670586..d11d2047cdfbb115363e96ab21f792b3783a2673 100755
--- a/compile
+++ b/compile
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+mkdir -p bin
+
 while [[ "$1" ]]
 do
 	case $1 in
@@ -68,4 +70,3 @@ sed -i -e '/^.*<div id="store-area".*$/s/\\t/\t/g' -e '/^.*<div id="store-area".
 	&& mv bin/FC_pregmod_tmp.html bin/FC_pregmod.html
 
 echo "bin/FC_pregmod.html compilation finished."
-
diff --git a/compile-git b/compile-git
index 43304f9a1090397b866dd284c853f9b6a80502ad..5e011a38ed513eaf9982a78b6600402f7ec3b767 100755
--- a/compile-git
+++ b/compile-git
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+mkdir -p bin
+
 # Run sanity check.
 ./sanityCheck
 
diff --git a/compile-git+java-sanityCheck.bat b/compile-git+java-sanityCheck.bat
new file mode 100644
index 0000000000000000000000000000000000000000..b1050a2d7d8a4257f1ba91cdafccb5f6b7f8daec
--- /dev/null
+++ b/compile-git+java-sanityCheck.bat
@@ -0,0 +1,39 @@
+@echo off
+:: Free Cities Basic Compiler - Windows
+
+:: Set working directory
+pushd %~dp0
+
+:: See if we can find a git installation
+setlocal enabledelayedexpansion
+
+for %%k in (HKCU HKLM) do (
+	for %%w in (\ \Wow6432Node\) do (
+		for /f "skip=2 delims=: tokens=1*" %%a in ('reg query "%%k\SOFTWARE%%wMicrosoft\Windows\CurrentVersion\Uninstall\Git_is1" /v InstallLocation 2^> nul') do (
+			for /f "tokens=3" %%z in ("%%a") do (
+				set GIT=%%z:%%b
+				set GITFOUND=yes
+				goto FOUND
+			)
+		)
+	)
+)
+:FOUND
+if %GITFOUND% == yes (
+	set "PATH=%GIT%bin;%PATH%"
+	bash --login -c ./java+gitGrep-sanityCheck.sh
+)
+
+:: Compile the game
+call "%~dp0compile.bat"
+
+if %GITFOUND% == yes (
+	:: Make the output prettier, replacing \t with a tab and \n with a newline
+	bash -c "sed -i -e '/^.*<div id=\"store-area\".*$/s/\\\t/\t/g' -e '/^.*<div id=\"store-area\".*$/s/\\\n/\n/g' bin/FC_pregmod.html"
+
+	:: Revert ./src/init/storyInit.tw for next compilation
+	git checkout -- ./src/init/storyInit.tw
+)
+
+popd
+PAUSE
diff --git a/compile-git+java-sanityCheck.sh b/compile-git+java-sanityCheck.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7833bb97dadc1f3da55dba14502c4b5df5c6629f
--- /dev/null
+++ b/compile-git+java-sanityCheck.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+mkdir -p bin
+
+# Run sanity check.
+./java+gitGrep-sanityCheck.sh
+
+HASH="$(git rev-list -n 1 --abbrev-commit HEAD)"
+
+export TWEEGO_PATH=devTools/tweeGo/storyFormats
+TWEEGO_EXE="tweego"
+
+if hash $TWEEGO_EXE 2>/dev/null; then
+	echo "system tweego binary"
+else
+	case "$(uname -m)" in
+	x86_64|amd64)
+		echo "x64 arch"
+		if [ "$(uname -s)" = "Darwin" ]; then
+			TWEEGO_EXE="./devTools/tweeGo/tweego_osx64"
+		else
+			TWEEGO_EXE="./devTools/tweeGo/tweego_nix64"
+		fi
+		;;
+	x86|i[3-6]86)
+		echo "x86 arch"
+		if [ "$(uname -s)" = "Darwin" ]; then
+			TWEEGO_EXE="./devTools/tweeGo/tweego_osx86"
+		else
+			TWEEGO_EXE="./devTools/tweeGo/tweego_nix86"
+		fi
+		;;
+	*)
+		echo "No system tweego binary found, and no precompiled binary for your platform available"
+		echo "Please compile tweego and put the executable in PATH"
+		exit 2
+	esac
+fi
+
+$TWEEGO_EXE -o "bin/FC_pregmod_${HASH}_tmp.html" src/
+
+#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'  "bin/FC_pregmod_${HASH}_tmp.html" \
+	&& mv "bin/FC_pregmod_${HASH}_tmp.html" "bin/FC_pregmod_${HASH}.html"
+
+echo "FC_pregmod_$HASH.html compilation finished."
diff --git a/compile.bat b/compile.bat
index 535d53bf3428e56d93b18778ba837697b1e6cb3f..03d861e77d597d40a7594f7c9a954ca7ae92f10a 100644
--- a/compile.bat
+++ b/compile.bat
@@ -3,7 +3,7 @@
 
 :: Set working directory
 pushd %~dp0
-
+if not exist "bin\" mkdir bin
 :: Run the appropriate compiler for the user's CPU architecture.
 if %PROCESSOR_ARCHITECTURE% == AMD64 (
 	CALL "%~dp0devTools\tweeGo\tweego_win64.exe" -o "%~dp0bin/FC_pregmod.html" "%~dp0src"
diff --git a/devNotes/Useful JS Function Documentation.txt b/devNotes/Useful JS Function Documentation.txt
index 8f1186b094e7df8479a806c141d379f88b14df9d..a074ec31fe01ee7930e6633f7c62ba8474ed1831 100644
--- a/devNotes/Useful JS Function Documentation.txt	
+++ b/devNotes/Useful JS Function Documentation.txt	
@@ -349,3 +349,11 @@ UtilJS [script]
 	HackingSkillMultiplier() - outputs a value based off of the PC's hacking skill.
 
 	upgradeMultiplierArcology() - outputs a value based off of the PC's engineering skill.
+
+	passageLink() - Creates a HTML element with custom SugarCube attributes which works as a passage link
+
+	SkillIncrease() - Depeciates the sugarcube fuctions.
+
+	jsNdef - A .js port of sugarcube's ndef.
+
+	jsDef - A .js port of sugarcube's def.
\ No newline at end of file
diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 579ba6ae6c235153c6a1bfdc7ed4eb98b9da19bd..1342cedb0711246cff669bd194e61d60fad566b8 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,13 @@ Pregmod
 
 0.10.7.1-2.2.x
 
+03/15/2019
+
+	5
+	-fixes
+	-code cleaning
+	-CSS tweaks to intro summary
+
 03/13/2019
 
 	4
diff --git a/devNotes/legacy files/walkPast.txt b/devNotes/legacy files/walkPast.txt
index 75b2b2d01ca71fb226e8635cf8b391fa24b9cfc4..04f52549568f45d24a2fb730ba2e1b3d9cd500ac 100644
--- a/devNotes/legacy files/walkPast.txt	
+++ b/devNotes/legacy files/walkPast.txt	
@@ -812,7 +812,7 @@
 	<<if ($activeSlave.actualAge >= _partnerSlave.actualAge+10) && canTalk(_partnerSlave)>>
 		tidying up their room together. _partnerSlave.slaveName is chattering about _his2 day, while $activeSlave.slaveName listens quietly, smiling fondly at $his _activeSlaveRel's prattle.
 	<<elseif ($activeSlave.amp !== 1) && !canTalk($activeSlave)>>
-		getting ready for bed. $activeSlave.slaveName is using gestures to tell $his $activeSlave.slaveName about $his day; _partnerSlave.slaveName is very patient and does _his2 best to follow.
+		getting ready for bed. $activeSlave.slaveName is using gestures to tell $his _activeSlaveRel about $his day; _partnerSlave.slaveName is very patient and does _his2 best to follow.
 	<<elseif ($activeSlave.behavioralQuirk == "confident") && canTalk($activeSlave)>>
 		finishing up a meal together. $activeSlave.slaveName is concluding a story, $his clear confident voice ringing as $he relates a slight.
 	<<elseif ($activeSlave.behavioralQuirk == "cutting") && canTalk($activeSlave)>>
diff --git a/devNotes/sugarcube stuff/sugarcube-fc-changes-2-24.0.patch b/devNotes/sugarcube stuff/sugarcube-fc-changes-2-24.0.patch
index 9be9b46470fbae6dd3d44f2fb3475cbaa3a6fd3e..e862341c89fd58d67bc72c1e5217d6ac06f89992 100644
--- a/devNotes/sugarcube stuff/sugarcube-fc-changes-2-24.0.patch	
+++ b/devNotes/sugarcube stuff/sugarcube-fc-changes-2-24.0.patch	
@@ -2,65 +2,65 @@ diff -r cd5d732c8669 src/lib/jquery-plugins.js
 --- a/src/lib/jquery-plugins.js	Fri Mar 09 07:43:39 2018 -0600
 +++ b/src/lib/jquery-plugins.js	Fri Jan 25 18:37:15 2019 +0100
 @@ -37,6 +37,10 @@
- 		return function () {
- 			const $this = jQuery(this);
- 
+		return function () {
+			const $this = jQuery(this);
+
 +			const dataPassage = $this.attr('data-passage');
 +			const initialDataPassage = window && window.SugarCube && window.SugarCube.State && window.SugarCube.State.passage;
 +			const savedYOffset = window.pageYOffset;
 +
- 			// Toggle "aria-pressed" status, if the attribute exists.
- 			if ($this.is('[aria-pressed]')) {
- 				$this.attr('aria-pressed', $this.attr('aria-pressed') === 'true' ? 'false' : 'true');
+			// Toggle "aria-pressed" status, if the attribute exists.
+			if ($this.is('[aria-pressed]')) {
+				$this.attr('aria-pressed', $this.attr('aria-pressed') === 'true' ? 'false' : 'true');
 @@ -44,6 +48,11 @@
- 
- 			// Call the true handler.
- 			fn.apply(this, arguments);
+
+			// Call the true handler.
+			fn.apply(this, arguments);
 +
 +			const doJump = function(){ window.scrollTo(0, savedYOffset); }
 +			if ( dataPassage && (window.lastDataPassageLink === dataPassage || initialDataPassage === dataPassage))
 +				doJump();
 +			window.lastDataPassageLink = dataPassage;
- 		};
- 	}
- 
+		};
+	}
+
 diff -r cd5d732c8669 src/lib/simplestore/adapters/webstorage.js
 --- a/src/lib/simplestore/adapters/webstorage.js	Fri Mar 09 07:43:39 2018 -0600
 +++ b/src/lib/simplestore/adapters/webstorage.js	Fri Jan 25 18:37:15 2019 +0100
 @@ -192,11 +192,11 @@
- 		}
- 
- 		static _serialize(obj) {
+		}
+
+		static _serialize(obj) {
 -			return LZString.compressToUTF16(JSON.stringify(obj));
 +			return JSON.stringify(obj);
- 		}
- 
- 		static _deserialize(str) {
+		}
+
+		static _deserialize(str) {
 -			return JSON.parse(LZString.decompressFromUTF16(str));
 +			return JSON.parse((!str || str[0] == "{") ? str : LZString.decompressFromUTF16(str));
- 		}
- 	}
- 
+		}
+	}
+
 diff -r cd5d732c8669 src/state.js
 --- a/src/state.js	Fri Mar 09 07:43:39 2018 -0600
 +++ b/src/state.js	Fri Jan 25 18:37:15 2019 +0100
 @@ -104,7 +104,7 @@
- 		}
- 
- 		if (_expired.length > 0) {
+		}
+
+		if (_expired.length > 0) {
 -			stateObj.expired = [..._expired];
 +			stateObj.expired = [];
- 		}
- 
- 		if (_prng !== null) {
+		}
+
+		if (_prng !== null) {
 diff -r cd5d732c8669 src/ui.js
 --- a/src/ui.js	Fri Mar 09 07:43:39 2018 -0600
 +++ b/src/ui.js	Fri Jan 25 18:37:15 2019 +0100
 @@ -337,6 +337,7 @@
- 				if (saves.slots[i]) {
- 					// Add the load button.
- 					$tdLoad.append(
+				if (saves.slots[i]) {
+					// Add the load button.
+					$tdLoad.append(
 +						createButton('save', 'ui-close', L10n.get('savesLabelSave'), i, Save.slots.save),
- 						createButton('load', 'ui-close', L10n.get('savesLabelLoad'), i, slot => {
- 							jQuery(document).one(':dialogclose', () => Save.slots.load(slot));
- 						})
+						createButton('load', 'ui-close', L10n.get('savesLabelLoad'), i, slot => {
+							jQuery(document).one(':dialogclose', () => Save.slots.load(slot));
+						})
diff --git a/devNotes/sugarcube stuff/sugarcube-fc-changes.patch b/devNotes/sugarcube stuff/sugarcube-fc-changes.patch
index 61c709cadbcb784c2295217515e2f567254b6225..c34da2f36d0ec05dba22ae7e126b2adcc37f808e 100644
--- a/devNotes/sugarcube stuff/sugarcube-fc-changes.patch	
+++ b/devNotes/sugarcube stuff/sugarcube-fc-changes.patch	
@@ -2,9 +2,9 @@ diff -r df721eb4cd55 src/lib/jquery-plugins.js
 --- a/src/lib/jquery-plugins.js	Sun Dec 16 04:39:00 2018 -0600
 +++ b/src/lib/jquery-plugins.js	Fri Jan 25 00:54:01 2019 +0100
 @@ -43,14 +43,9 @@
- 		return function () {
- 			const $this = jQuery(this);
- 
+		return function () {
+			const $this = jQuery(this);
+
 -			// Exit if the element is disabled.
 -			//
 -			// NOTE: This should only be necessary for elements which are not disableable
@@ -16,58 +16,58 @@ diff -r df721eb4cd55 src/lib/jquery-plugins.js
 +			const dataPassage = $this.attr('data-passage');
 +			const initialDataPassage = window && window.SugarCube && window.SugarCube.State && window.SugarCube.State.passage;
 +			const savedYOffset = window.pageYOffset;
- 
- 			// Toggle "aria-pressed" status, if the attribute exists.
- 			if ($this.is('[aria-pressed]')) {
+
+			// Toggle "aria-pressed" status, if the attribute exists.
+			if ($this.is('[aria-pressed]')) {
 @@ -59,6 +54,11 @@
- 
- 			// Call the true handler.
- 			fn.apply(this, arguments);
+
+			// Call the true handler.
+			fn.apply(this, arguments);
 +
 +			const doJump = function(){ window.scrollTo(0, savedYOffset); }
 +			if ( dataPassage && (window.lastDataPassageLink === dataPassage || initialDataPassage === dataPassage))
 +				doJump();
 +			window.lastDataPassageLink = dataPassage;
- 		};
- 	}
- 
+		};
+	}
+
 diff -r df721eb4cd55 src/lib/simplestore/adapters/webstorage.js
 --- a/src/lib/simplestore/adapters/webstorage.js	Sun Dec 16 04:39:00 2018 -0600
 +++ b/src/lib/simplestore/adapters/webstorage.js	Fri Jan 25 00:54:01 2019 +0100
 @@ -189,11 +189,11 @@
- 		}
- 
- 		static _serialize(obj) {
+		}
+
+		static _serialize(obj) {
 -			return LZString.compressToUTF16(JSON.stringify(obj));
 +			return JSON.stringify(obj);
- 		}
- 
- 		static _deserialize(str) {
+		}
+
+		static _deserialize(str) {
 -			return JSON.parse(LZString.decompressFromUTF16(str));
 +			return JSON.parse((!str || str[0] == "{") ? str : LZString.decompressFromUTF16(str));
- 		}
- 	}
- 
+		}
+	}
+
 diff -r df721eb4cd55 src/state.js
 --- a/src/state.js	Sun Dec 16 04:39:00 2018 -0600
 +++ b/src/state.js	Fri Jan 25 00:54:01 2019 +0100
 @@ -104,7 +104,7 @@
- 		}
- 
- 		if (_expired.length > 0) {
+		}
+
+		if (_expired.length > 0) {
 -			stateObj.expired = [..._expired];
 +			stateObj.expired = [];
- 		}
- 
- 		if (_prng !== null) {
+		}
+
+		if (_prng !== null) {
 diff -r df721eb4cd55 src/ui.js
 --- a/src/ui.js	Sun Dec 16 04:39:00 2018 -0600
 +++ b/src/ui.js	Fri Jan 25 00:54:01 2019 +0100
 @@ -334,6 +334,7 @@
- 				if (saves.slots[i]) {
- 					// Add the load button.
- 					$tdLoad.append(
+				if (saves.slots[i]) {
+					// Add the load button.
+					$tdLoad.append(
 +						createButton('save', 'ui-close', L10n.get('savesLabelSave'), i, Save.slots.save),
- 						createButton('load', 'ui-close', L10n.get('savesLabelLoad'), i, slot => {
- 							jQuery(document).one(':dialogclose', () => Save.slots.load(slot));
- 						})
+						createButton('load', 'ui-close', L10n.get('savesLabelLoad'), i, slot => {
+							jQuery(document).one(':dialogclose', () => Save.slots.load(slot));
+						})
diff --git a/devNotes/twine CSS b/devNotes/twine CSS
index 0c11d518885273e3fa7335bb94c87d15efb5d4a1..ce696d3590d694d484ba475d3fd3065682aea4b1 100644
--- a/devNotes/twine CSS	
+++ b/devNotes/twine CSS	
@@ -623,3 +623,107 @@ div.tab button.active {
 		opacity: 1;
 	}
 }
+
+/*:: Options Macro [stylesheet]*/
+
+.optionMacro {
+	margin-top: 8px;
+	display: inline-block;
+}
+
+.optionDescription {
+	display: inline-block;
+	width: 500px;
+	margin-right: 10px;
+	line-height: 1.2;
+	text-align: right;
+}
+
+@media only screen and (max-width: 1200px) {
+	.optionDescription {
+		display: block;
+		width: unset;
+	}
+
+	.optionMacro {
+		margin-top: 30px;
+	}
+
+}
+
+.optionMacroOption {
+	border: #555 solid 0.5px;
+	border-top-width: 0;
+	vertical-align: top;
+	background: linear-gradient(transparent,#222);
+	-moz-user-select: none;
+	min-width: 79px; /* 80px - 1px for border */
+	display: inline-block;
+	text-align: center;
+}
+
+.optionComment {
+	vertical-align: top;
+	color: gray;
+}
+
+/* But don't add the | after the last one */
+.optionMacroOption:last-child {
+	border-top-right-radius: 6px;
+	border-bottom-right-radius: 6px;
+	border-right-width: 0;
+}
+
+.optionMacroOption:first-child {
+	border-top-left-radius: 6px;
+	border-bottom-left-radius: 6px;
+}
+
+.optionMacroOption a {
+	padding: 0 10px;
+	box-sizing: border-box;
+	width: 100%;
+	display: block;
+}
+
+.optionMacroOption:hover {
+	background: linear-gradient(#2F2F2F,#111);
+}
+
+.optionMacroSelected {
+	background: linear-gradient(#2F2F2F,#111);
+	padding: 0 10px;
+	min-width: 80px;
+	cursor: pointer;
+	box-sizing: border-box;
+}
+
+.optionValue input {
+	padding: 3px;
+	background: linear-gradient(transparent,#222);
+	border: #555 solid 0.5px;
+	border-top-width: 0;
+	min-width: reset;
+	width: 140px;
+}
+
+.optionValue input:last-child {
+	border-top-right-radius: 6px;
+	border-bottom-right-radius: 6px;
+	border-right-width: 0;
+}
+
+.optionValue input:first-child {
+	border-top-left-radius: 6px;
+	border-bottom-left-radius: 6px;
+}
+
+.optionMacroSelected.optionMacroEnable {
+	color: rgb(230,255,230);
+	background-image: linear-gradient(rgba(0, 255,0, 0.12), transparent);
+}
+
+.optionMacroSelected.optionMacroDisable {
+	color: rgb(255,240,240);
+	background-image: linear-gradient(rgba(255, 100, 0, 0.2), transparent);
+}
diff --git a/devTools/PreCompile.sh b/devTools/PreCompile.sh
index d06102056df6394b2c006913de51c8526b71a967..8ea804f5c908eb10b8bcfee67d64831a856b78c2 100755
--- a/devTools/PreCompile.sh
+++ b/devTools/PreCompile.sh
@@ -1,8 +1,7 @@
 #!/bin/sh
-x=bin/* #Packages required: MEGAcmd,minify,git. U=$1 P=$2 remtDir=$3 locDir=$4 repo=$5
-echo 'New clone? 0:y 1:n 2:na';read Opt;clear;mega-login $U $P >/dev/null
-while true;do cd $4 2>/dev/null && if [ $? -eq 0 ];then cd $4;fi
-	if [ $Opt -eq 0 ];then A=[$(mega-ls $3/|cut -c 29-|sed s/.html//|paste -sd,"")];mkdir -p $4 && git clone -q --no-tags --depth 1 $5 $4 && cd $4 && V=$(git log -1|grep comm|cut -c 8-11);if [[ ! " ${A[@]} " =~ " ${V} " ]];then gen=1;fi #arraryCheck:stackoverflow.com/a/15394738
-	elif [[ $Opt > 0||$gen < 1 ]];then git fetch -q;if [ `git rev-list HEAD...origin/pregmod-master --count` -gt 0 ];then git reset -q --hard HEAD && git pull -q && gen=1;fi ;fi #gitCheck:stackoverflow.com/a/17192101
-	if [[ $Opt > 1||$gen > 0 ]];then rm $x 2>/dev/null;minify -rao $4 $4 && ./compile --insane >/dev/null && mv $x bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%d-%m-%Y-%H-%M')-$(git log -1|grep comm|cut -c 8-11).html && mega-put -c $x $3 && if [ `mega-ls $3|wc -l` -gt 10 ];then mega-rm $3$(mega-ls $3|sort -r|tail -n +11);fi ; fi
-gen=0;Opt=-1;sleep 15m;done
\ No newline at end of file
+mega-login $1 $2;echo 'New clone? 0:y 1:n 2:na';read Opt #Requirements:MEGAcmd,minify,git. U=$1 P=$2 rDir=$3 lDir=$4 repo=$5
+while true;do cd $4;gen=0
+	if [ $Opt == 0 ];then mkdir -p $4&&git clone -q --depth 1 $5 $4&&cd $4&&if [[ ! `mega-ls $3|cut -c29-32|paste -sd,` =~ `git log|head -1|cut -c8-11` ]];then gen=1;fi #arraryCheck:stackoverflow.com/a/15394738
+	elif [[ $Opt > 0||$gen < 1 ]];then git fetch -q&&if [ `git rev-list ...origin --count` -gt 0 ];then git reset -q --hard&&git pull -q&&gen=1;fi ;fi #gitCheck:stackoverflow.com/a/17192101
+	if [[ $Opt > 1||$gen > 0 ]];then minify -rao $4 $4&&./compile --insane&&cd bin/&&rm FC-*;mv * FC-pregmod-`git log -1 --format=%cd --date=format:%m-%d-%Y-%H-%M`-`git log|head -1|cut -c8-11`.html&&mega-put -c * $3&&mega-rm $3`mega-ls $3|sort -r|tail -n +11`;fi
+Opt=-1;clear;sleep 15m;done
diff --git a/devTools/javaSanityCheck/excluded b/devTools/javaSanityCheck/excluded
index 28ff834dcbab00ca86653880aa605a6a64163fd2..eb522cb6bac88f489da3aeae75878591398e5838 100644
--- a/devTools/javaSanityCheck/excluded
+++ b/devTools/javaSanityCheck/excluded
@@ -3,14 +3,4 @@
 #
 src/art/
 src/gui/svgFilters.tw
-#
-#excluded to reduce false positives until better solution:
-src/pregmod/basenationalitiesControls.tw
 src/pregmod/editGenetics.tw
-src/pregmod/widgets/bodySwapReaction.tw
-src/uncategorized/costsBudget.tw
-src/uncategorized/initRules.tw
-src/uncategorized/slaveAssignmentsReport.tw
-src/uncategorized/storyCaption.tw
-src/cheats/
-src/pregmod/customizeSlaveTrade.tw
diff --git a/devTools/javaSanityCheck/htmlTags b/devTools/javaSanityCheck/htmlTags
index 751b084ff5822f4162e3f79ea622b91f60c5472b..466a9b301e715f5b896bd84c38941bf61c4ec985 100644
--- a/devTools/javaSanityCheck/htmlTags
+++ b/devTools/javaSanityCheck/htmlTags
@@ -8,6 +8,7 @@
 #included to reduce false positives until better solution
 !--
 http://www.gnu.org/licenses/
+-400
 #html tags
 a;1
 b;1
diff --git a/devTools/javaSanityCheck/src/Main.java b/devTools/javaSanityCheck/src/Main.java
index d8af45777314f08b03eb5f471be4cdb9ba72f703..84c471d2148d57206c18d5ac8a217f67bac07d21 100644
--- a/devTools/javaSanityCheck/src/Main.java
+++ b/devTools/javaSanityCheck/src/Main.java
@@ -12,6 +12,9 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.*;
 
+/**
+ * @author Arkerthan
+ */
 public class Main {
 
 	public static TagSearchTree<Tag> htmlTags, twineTags;
@@ -22,6 +25,7 @@ public class Main {
 	private static String[] excluded;
 
 	public static void main(String[] args) {
+
 		//setup
 		setupExclude();
 		setupHtmlTags();
@@ -31,7 +35,7 @@ public class Main {
 		//actual sanityCheck
 		runSanityCheckInDirectory(workingDir, new File("src/"));
 
-		//handle errors
+		//output errors
 		for (SyntaxError e :
 				errors) {
 			System.out.println(e.getError());
@@ -41,7 +45,7 @@ public class Main {
 
 	/**
 	 * Goes through the whole directory including subdirectories and runs
-	 * sanityCheck() on all .tw files
+	 * {@link Main#sanityCheck(Path)} on all .tw files
 	 *
 	 * @param dir to be checked
 	 */
@@ -61,7 +65,7 @@ public class Main {
 			}
 		} catch (NullPointerException e) {
 			e.printStackTrace();
-			System.err.println("Couldn't find directory " + currentFile);
+			System.err.println("Couldn't read directory " + currentFile);
 			System.exit(-1);
 		}
 	}
@@ -78,42 +82,33 @@ public class Main {
 		Charset encoding = Charset.defaultCharset();
 
 		if (!excluded(file.getPath())) {
-			try {
-				currentFile = file.getPath();
-				currentLine = 1;
-				stack = new Stack<>();
-
-				//actually opening and reading the file
-				try (InputStream in = new FileInputStream(file);
-					 Reader reader = new InputStreamReader(in, encoding);
-					 // buffer for efficiency
-					 Reader buffer = new BufferedReader(reader)) {
-					handleCharacters(buffer);
-				}
+			currentFile = file.getPath();
+			currentLine = 1;
+			stack = new Stack<>();
+
+			//actually opening and reading the file
+			try (InputStream in = new FileInputStream(file);
+				 Reader reader = new InputStreamReader(in, encoding);
+				 // buffer for efficiency
+				 Reader buffer = new BufferedReader(reader)) {
+				handleCharacters(buffer);
 			} catch (IOException e) {
+				e.printStackTrace();
 				System.err.println("Couldn't read " + file);
 			}
 		}
 	}
 
 	/**
-	 * sets up the alphabetical search tree for fast access of HTML tags later
+	 * sets up a {@link TagSearchTree<Tag>} for fast access of HTML tags later
 	 */
 	private static void setupHtmlTags() {
 		//load HTML tags into a list
-		List<Tag> TagsList = new LinkedList<>();
-		try {
-
-			Files.lines(new File("devTools/javaSanityCheck/htmlTags").toPath()).map(String::trim)
-					.filter(s -> !s.startsWith("#"))
-					.forEach(s -> TagsList.add(parseTag(s)));
-		} catch (IOException e) {
-			System.err.println("Couldn't read devTools/javaSanityCheck/htmlTags");
-		}
+		List<Tag> TagsList = loadTags("devTools/javaSanityCheck/htmlTags");
 
 		//turn List into alphabetical search tree
 		try {
-			htmlTags = new TagSearchTree(TagsList);
+			htmlTags = new TagSearchTree<>(TagsList);
 		} catch (ArrayIndexOutOfBoundsException e) {
 			System.err.println("Illegal Character in devTools/javaSanityCheck/htmlTags");
 			System.exit(-1);
@@ -121,29 +116,39 @@ public class Main {
 	}
 
 	/**
-	 * sets up the alphabetical search tree for fast access of twine tags later
+	 * sets up a {@link TagSearchTree<Tag>} for fast access of twine tags later
 	 */
 	private static void setupTwineTags() {
 		//load twine tags into a list
-		List<Tag> TagsList = new LinkedList<>();
-		try {
-
-			Files.lines(new File("devTools/javaSanityCheck/twineTags").toPath()).map(String::trim)
-					.filter(s -> !s.startsWith("#"))
-					.forEach(s -> TagsList.add(parseTag(s)));
-		} catch (IOException e) {
-			System.err.println("Couldn't read devTools/javaSanityCheck/twineTags");
-		}
+		List tagsList = loadTags("devTools/javaSanityCheck/twineTags");
 
 		//turn List into alphabetical search tree
 		try {
-			twineTags = new TagSearchTree(TagsList);
+			twineTags = new TagSearchTree<>(tagsList);
 		} catch (ArrayIndexOutOfBoundsException e) {
 			System.err.println("Illegal Character in devTools/javaSanityCheck/twineTags");
 			System.exit(-1);
 		}
 	}
 
+	/**
+	 * Loads a list of tags from a file
+	 *
+	 * @param filePath file to load tags from
+	 * @return loaded tags
+	 */
+	private static List<Tag> loadTags(String filePath) {
+		List<Tag> tagsList = new LinkedList<>();
+		try {
+			Files.lines(new File(filePath).toPath()).map(String::trim)
+					.filter(s -> !s.startsWith("#"))
+					.forEach(s -> tagsList.add(parseTag(s)));
+		} catch (IOException e) {
+			System.err.println("Couldn't read " + filePath);
+		}
+		return tagsList;
+	}
+
 	/**
 	 * Turns a string into a Tag
 	 * ";1" at the end of the String indicates that the tag needs to be closed later
@@ -160,7 +165,7 @@ public class Main {
 	}
 
 	/**
-	 * sets up the excluded array.
+	 * sets up the excluded files array.
 	 */
 	private static void setupExclude() {
 		//load excluded files
@@ -173,7 +178,7 @@ public class Main {
 			System.err.println("Couldn't read devTools/javaSanityCheck/excluded");
 		}
 
-		//turn excluded files into an array and change them to windows style if needed
+		//turn excluded files into an array and change path to windows style if needed
 		if (isWindows()) {
 			excluded = new String[excludedList.size()];
 			int i = 0;
@@ -252,33 +257,37 @@ public class Main {
 					stack.pop();
 					return;
 				}
-				//3 means the Element is complete and part of a two tag system
+				//3 means the Element is complete and part of a two or more tag system
 				if (change == 3) {
 					//remove the topmost element from stack since it is complete
 					KnownElement k = stack.pop().getKnownElement();
-					/*if (k.isOpening()) {
-						stack.push(k);
-					} else */
+					//if KnownElement k is closing another element, check if there is one and remove it
 					if (k.isClosing()) {
-						if (stack.empty()) {
-							addError(new SyntaxError("Closed tag " + k.getShortDescription() + " without having any open tags.", -2));
+						if (stack.empty()) { //there are no open elements at all
+							addError(new SyntaxError("Closed tag " + k.getShortDescription() + " without " +
+									"having any open tags.", -2));
 						} else if (stack.peek() instanceof KnownElement) {
+							//get opening tag
 							KnownElement kFirst = (KnownElement) stack.pop();
+							//check if closing element matches the opening element
 							if (!kFirst.isMatchingElement(k)) {
 								addError(new SyntaxError("Opening tag " + kFirst.getShortDescription() +
 										" does not match closing tag " + k.getShortDescription() + ".", -2));
 							}
-							//stack.pop();
 						} else {
+							//There closing tag inside another not Known element: <div </html>
 							addError(new SyntaxError("Closing tag " + k.getShortDescription() + " inside " +
-									"another tag: " + stack.peek().getShortDescription(), -2, true));
+									"another tag " + stack.peek().getShortDescription() + " without opening first.",
+									-2, true));
 						}
 					}
+					//check if the element needs to be closed by another
 					if (k.isOpening()) {
 						stack.push(k);
 					}
 					return;
 				}
+				//means the element couldn't do anything with it and is finished
 				if (change == 4) {
 					stack.pop();
 				} else {
@@ -291,7 +300,7 @@ public class Main {
 		//innermost element was uninterested, trying to find matching element
 		switch (c) {
 			//case '@':
-			//  stack.push(new AtElement(currentLine, currentPosition));
+			//stack.push(new AtElement(currentLine, currentPosition));
 			//break;
 			case '<':
 				stack.push(new AngleBracketElement(currentLine, currentPosition));
diff --git a/devTools/javaSanityCheck/src/SyntaxError.java b/devTools/javaSanityCheck/src/SyntaxError.java
index 2eaf24c6ec434192048c93891d72897c29dea9a6..c30e5fbc101c558ff3cabe669d38c0e89f50e3f7 100644
--- a/devTools/javaSanityCheck/src/SyntaxError.java
+++ b/devTools/javaSanityCheck/src/SyntaxError.java
@@ -7,33 +7,57 @@ public class SyntaxError extends Exception {
 	private int change; //see Element for values; -2 means not thrown
 	private boolean warning = false;
 
+	/**
+	 * @param description description of error
+	 * @param change	  state change as specified in Element
+	 */
 	public SyntaxError(String description, int change) {
 		this.description = description;
 		this.change = change;
 	}
 
+	/**
+	 * @param description description of error
+	 * @param change	  state change as specified in Element
+	 * @param warning	 whether it is a warning or an error
+	 */
 	public SyntaxError(String description, int change, boolean warning) {
 		this(description, change);
 		this.warning = warning;
 	}
 
+	/**
+	 * @param file at which the error occurred
+	 */
 	public void setFile(String file) {
 		this.file = file;
 	}
 
+	/**
+	 * @param line in which the error occurred
+	 */
 	public void setLine(int line) {
 		this.line = line;
 	}
 
+	/**
+	 * @param position at which the error occurred
+	 */
 	public void setPosition(int position) {
 		this.position = position;
 	}
 
+	/**
+	 * @return error message
+	 */
 	public String getError() {
 		String s = warning ? "Warning: " : "Error: ";
-		return s + file + ": " + line + ":" + position + " : "+ description;
+		return s + file + ": " + line + ":" + position + " : " + description;
 	}
 
+	/**
+	 * @return change that happened in Element before it was thrown. -1 if not thrown.
+	 */
 	public int getChange() {
 		return change;
 	}
diff --git a/devTools/javaSanityCheck/src/element/AngleBracketElement.java b/devTools/javaSanityCheck/src/element/AngleBracketElement.java
index 99549cda24411a29d1dfe32a0693cff99edbb46c..e129ee20cf401a23d83e520474a4aaa5a1b69991 100644
--- a/devTools/javaSanityCheck/src/element/AngleBracketElement.java
+++ b/devTools/javaSanityCheck/src/element/AngleBracketElement.java
@@ -64,7 +64,7 @@ public class AngleBracketElement extends Element {
 							return handleOpeningHTML(c);
 						} catch (SyntaxError e) {
 							state = 1;
-							throw new SyntaxError("Opening \"<\" missing, found " + c + " [debug:initialCase]", 1);
+							throw new SyntaxError("Opening \"<\" missing, found " + c, 1);
 						}
 				}
 			case 1:
@@ -105,7 +105,7 @@ public class AngleBracketElement extends Element {
 					state = 3;
 					return 1;
 				} else {
-					throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 2);
+					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
 				}
 			case 4:
 				if (c == '>') {
@@ -120,20 +120,20 @@ public class AngleBracketElement extends Element {
 					state = 4;
 					return 1;
 				} else {
-					throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 2);
+					throw new SyntaxError("Closing \">\" missing, opened tag at[" + line + ":" + pos + "]", 2);
 				}
 			case 5:
 				if (c == '>') {
 					state = -5;
 					return 1;
 				} else {
-					throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 2);
+					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
 				}
 			case -5:
 				if (c == '>') {
 					return 2;
 				}
-				throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 2);
+				throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 2);
 			case 6:
 				if (c == '>') {
 					return 3;
@@ -141,13 +141,13 @@ public class AngleBracketElement extends Element {
 					state = 3;
 					return 1;
 				} else {
-					throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 3);
+					throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 3);
 				}
 			case -6:
 				if (c == '>') {
 					return 3;
 				}
-				throw new SyntaxError("Closing \">\" missing, opened [" + line + ":" + pos + "]", 3);
+				throw new SyntaxError("Closing \">\" missing, opened tag at [" + line + ":" + pos + "]", 3);
 
 			case -9:
 				if (c == '>') {
@@ -218,7 +218,7 @@ public class AngleBracketElement extends Element {
 	private int handleClosingHTML(char c) throws SyntaxError {
 		if (c == '>') {
 			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown HTML tag", 2);
+				throw new SyntaxError("Unknown HTML tag: " + tree.getPath(), 2);
 			}
 			if (tree.getElement().single) {
 				throw new SyntaxError("Single HTML tag used as closing Tag: " + tree.getElement().tag, 2);
@@ -243,7 +243,6 @@ public class AngleBracketElement extends Element {
 			if (tree.getElement() == null) {
 				//assuming not listed means widget until better solution
 				return 1;
-				//throw new SyntaxError("Unknown Twine tag or closing \">>\" missing, found " + tree.getPath(), 1);
 			}
 			if (!tree.getElement().single) {
 				if (logicTags.contains(tree.getElement().tag)) {
@@ -260,7 +259,6 @@ public class AngleBracketElement extends Element {
 			state = -5;
 			if (tree.getElement() == null) {
 				//assuming not listed means widget until better solution
-				//throw new SyntaxError("Unknown Twine tag or closing \">>\" missing, found " + tree.getPath(), 1);
 				return 1;
 			}
 			if (!tree.getElement().single) {
@@ -279,7 +277,6 @@ public class AngleBracketElement extends Element {
 		if (tree == null) {
 			//assuming not listed means widget until better solution
 			state = 3;
-			//throw new SyntaxError("Unknown Twine tag or closing \">>\" missing, found " + c, 1);
 		}
 
 		return 1;
@@ -288,7 +285,7 @@ public class AngleBracketElement extends Element {
 	private int handleClosingTwine(char c) throws SyntaxError {
 		if (c == '>') {
 			if (tree.getElement() == null) {
-				throw new SyntaxError("Unknown Twine tag", 2);
+				throw new SyntaxError("Unknown Twine tag: " + tree.getPath(), 2);
 			}
 			if (tree.getElement().single) {
 				throw new SyntaxError("Single Twine tag used as closing Tag: " + tree.getElement().tag, 2);
@@ -319,6 +316,7 @@ public class AngleBracketElement extends Element {
 			case 0:
 				builder.append("<");
 				break;
+			//TWINE
 			case 1:
 				builder.append("<<");
 				break;
@@ -332,28 +330,49 @@ public class AngleBracketElement extends Element {
 				builder.append("<</").append(tree.getPath());
 				break;
 			case 3:
-				builder.append("<<??? ???");
-				break;
-			case 4:
-				builder.append("<<?").append(tree.getPath()).append(" ???");
+				builder.append("<<???");
 				break;
 			case -3:
-				builder.append("<<??? ???>");
+				builder.append("<<???>");
+				break;
+			case 4:
+				builder.append("<<").append(tree.getPath()).append(" ???");
 				break;
 			case -4:
-				builder.append("<<?").append(tree.getPath()).append(" ???>");
+				builder.append("<<").append(tree.getPath()).append(" ???>");
 				break;
 			case 5:
-				builder.append("<").append(tree.getPath()).append(" ???");
+				builder.append("<<???");
 				break;
 			case -5:
-				builder.append("</").append(tree.getPath());
+				builder.append("<<").append(tree == null ? "???" : tree.getPath()).append(">");
 				break;
 			case 6:
-				builder.append("<").append(tree.getPath()).append(" ???");
+				builder.append("<<").append(tree.getPath()).append(" ???>");
+				break;
+			case -6:
+				builder.append("<</").append(tree.getPath()).append(">");
+				break;
+			//HTML
+			case -9:
+				builder.append("</");
 				break;
+			case 10:
+				builder.append("<").append(tree.getPath());
+				break;
+			case -10:
+				builder.append("</").append(tree.getPath());
+				break;
+			case 11:
+				builder.append("<?").append(tree == null ? "???" : tree.getPath());
+				break;
+			case -11:
+				builder.append("</").append(tree == null ? "???" : tree.getPath());
+				break;
+			case 12:
+				builder.append("<").append(tree.getPath()).append(" ???");
 			default:
-				//throw new UnknownStateException(state);
+				throw new UnknownStateException(state);
 		}
 		return builder.toString();
 	}
diff --git a/devTools/javaSanityCheck/src/element/CommentElement.java b/devTools/javaSanityCheck/src/element/CommentElement.java
index 7906986e3dae2c3829d3ff5bd2bf76eddcbbd5c7..0ae0908201c914db2284087e89079760d42ae245 100644
--- a/devTools/javaSanityCheck/src/element/CommentElement.java
+++ b/devTools/javaSanityCheck/src/element/CommentElement.java
@@ -4,7 +4,7 @@ import org.arkerthan.sanityCheck.SyntaxError;
 import org.arkerthan.sanityCheck.UnknownStateException;
 
 public class CommentElement extends Element {
-	int state = 0;
+	private int state = 0;
 	/*
 	0 - /
 	1 - /*???
@@ -13,6 +13,10 @@ public class CommentElement extends Element {
 	4 - /%???%
 	 */
 
+	/**
+	 * @param line line in which comment starts
+	 * @param pos  position in line where comment starts
+	 */
 	public CommentElement(int line, int pos) {
 		super(line, pos);
 	}
diff --git a/devTools/javaSanityCheck/src/element/Element.java b/devTools/javaSanityCheck/src/element/Element.java
index f80a85f8c1800ca4cb3422f9a29c91938900b39f..d0e1bf7cd1210b08f1f888103278cd66ad1a218d 100644
--- a/devTools/javaSanityCheck/src/element/Element.java
+++ b/devTools/javaSanityCheck/src/element/Element.java
@@ -23,12 +23,15 @@ public abstract class Element {
 	 * 3 - the Element is finished and a KnownHtmlElement was generated
 	 * 4 - the Element is finished and the char is still open for use
 	 *
-	 * @param c
-	 * @return
-	 * @throws Error
+	 * @param c char to be parsed
+	 * @return state change
+	 * @throws SyntaxError thrown when an syntax error is detected
 	 */
 	public abstract int handleChar(char c) throws SyntaxError;
 
+	/**
+	 * @return the constructed KnownElement. null if none was constructed yet.
+	 */
 	public KnownElement getKnownElement() {
 		return k;
 	}
diff --git a/devTools/javaSanityCheck/src/element/KnownElement.java b/devTools/javaSanityCheck/src/element/KnownElement.java
index b3164c2a5890f646bbf75207827049d7ae5d5658..d09a5a7a5cc7279bda7cc03a0a674b1243217847 100644
--- a/devTools/javaSanityCheck/src/element/KnownElement.java
+++ b/devTools/javaSanityCheck/src/element/KnownElement.java
@@ -4,6 +4,10 @@ import org.arkerthan.sanityCheck.SyntaxError;
 
 public abstract class KnownElement extends Element {
 
+	/**
+	 * @param line at which it begins
+	 * @param pos  at which it begins
+	 */
 	public KnownElement(int line, int pos) {
 		super(line, pos);
 	}
diff --git a/devTools/javaSanityCheck/src/element/KnownHtmlElement.java b/devTools/javaSanityCheck/src/element/KnownHtmlElement.java
index 51abacd60ac47a000fa47b2fe88f61ca8daf2bc6..8ae21e1a402d3fd8c3a8a5010c03527aab2c9a3c 100644
--- a/devTools/javaSanityCheck/src/element/KnownHtmlElement.java
+++ b/devTools/javaSanityCheck/src/element/KnownHtmlElement.java
@@ -5,6 +5,12 @@ public class KnownHtmlElement extends KnownElement {
 	private boolean opening;
 	private String statement;
 
+	/**
+	 * @param line	  at which it begins
+	 * @param pos	   at which it begins
+	 * @param opening   if it opens a tag: <tag>  or closes it: </tag>
+	 * @param statement statement inside the tag
+	 */
 	public KnownHtmlElement(int line, int pos, boolean opening, String statement) {
 		super(line, pos);
 		this.opening = opening;
diff --git a/devTools/javaSanityCheck/src/element/KnownTwineElement.java b/devTools/javaSanityCheck/src/element/KnownTwineElement.java
index 399fa5192181044e589ffd5d4222941b001f3066..4bd78b2d585d014186d7ded56d804352e8e5d8db 100644
--- a/devTools/javaSanityCheck/src/element/KnownTwineElement.java
+++ b/devTools/javaSanityCheck/src/element/KnownTwineElement.java
@@ -5,6 +5,13 @@ public class KnownTwineElement extends KnownElement {
 	private boolean opening;
 	private String statement;
 
+	/**
+	 *
+	 * @param line at which it begins
+	 * @param pos at which it begins
+	 * @param opening if it opens a tag: <<tag>>  or closes it: <</tag>>
+	 * @param statement statement inside the tag
+	 */
 	public KnownTwineElement(int line, int pos, boolean opening, String statement) {
 		super(line, pos);
 		this.opening = opening;
diff --git a/devTools/javaSanityCheck/twineTags b/devTools/javaSanityCheck/twineTags
index e1dea71621bd818041d6aad43d7b3053b2c78132..bfaa9ccc4de7ab664404577c17f6e58c9debe228 100644
--- a/devTools/javaSanityCheck/twineTags
+++ b/devTools/javaSanityCheck/twineTags
@@ -2,8 +2,6 @@
 #Effectively everything that is allowed in a statements like this:
 #<<tag>> or <<tag ???>>
 #when ;1 is specified it expects a matching closing tag like this: <</tag>>
-#Everything belonging to if and switch statements is hard coded and does not
-#need to be included here.
 #Do not add HTML Tags here.
 #Characters outside of ASCII scope are not supported.
 #
@@ -11,19 +9,20 @@
 capture;1
 continue;0
 for;1
-#does foreach really exist?
 foreach;1
 goto;0
 htag;1
 include;0
 link;1
 nobr;1
+options;1
 print;0
 replace;1
 run;0
 script;1
 set;0
 silently;1
+span;1
 textbox;0
 timed;1
 unset;0
diff --git a/devTools/sugarcube.d.ts b/devTools/sugarcube.d.ts
index b7a10f44290810d8e3bd2453cdd2d7445d3d27d8..8ecc4ea5dbeb387749a9c2ab70e58e103a97eb0b 100644
--- a/devTools/sugarcube.d.ts
+++ b/devTools/sugarcube.d.ts
@@ -204,7 +204,7 @@ declare namespace SugarCubeLib {
 		 * Config.addVisitedLinkClass = true;
 		 * // An example style: (Twine 2: goes in Story Stylesheet; Twine 1/Twee: goes in a stylesheet-tagged passage)
 		 * .link-visited {
-		 *   	color: purple;
+		 *  	color: purple;
 		 * }
 		 */
 		addVisitedLinkClass: boolean;
@@ -269,8 +269,8 @@ declare namespace SugarCubeLib {
 		 * @param targets The DOM element(s) to attach the handler to—may be either an HTMLElement object, a jQuery object,
 		 * or a jQuery-style selector set.
 		 * @param options he options object; the currently understood properties are:
-		 * 	top: Top y-coordinate of the dialog (default: 50; in pixels, but without the unit).
-		 * 	opacity: Opacity of the overlay (default: 0.8).
+		 *	top: Top y-coordinate of the dialog (default: 50; in pixels, but without the unit).
+		 *	opacity: Opacity of the overlay (default: 0.8).
 		 * @param tartFn The function to execute at the start of Dialog.addClickHandler(). This is commonly used to setup
 		 * the dialog.
 		 * @param doneFn The function to execute at the end of Dialog.addClickHandler().
@@ -322,11 +322,11 @@ declare namespace SugarCubeLib {
 		 * @since 2.0.0
 		 * @example
 		 * if (Dialog.isOpen()) {
-		 * 		// code to execute if the dialog is open...
+		 *		// code to execute if the dialog is open...
 		 * }
 		 * @example
 		 * if (Dialog.isOpen("saves")) {
-		 * 		// code to execute if the Saves dialog is open
+		 *		// code to execute if the Saves dialog is open
 		 * }
 		 */
 		isOpen(classNames?: string): boolean;
@@ -389,10 +389,10 @@ declare namespace SugarCubeLib {
 		/**
 		 * Returns the current state of the engine ("idle", "playing", "rendering").
 		 * States:
-		 * 	"idle": The engine is idle, awaiting the triggering of passage navigation—the default state.
-		 * 	"playing": Passage navigation has been triggered and a turn is being processed.
-		 * 	"rendering": The incoming passage is being rendered and added to the page—takes place during turn processing,
-		 * 	so implies "playing".
+		 *	"idle": The engine is idle, awaiting the triggering of passage navigation—the default state.
+		 *	"playing": Passage navigation has been triggered and a turn is being processed.
+		 *	"rendering": The incoming passage is being rendered and added to the page—takes place during turn processing,
+		 *	so implies "playing".
 		 * @since 2.7.0
 		 */
 		state: string;
@@ -635,24 +635,24 @@ declare namespace SugarCubeLib {
 		 * @example
 		 * // Example of a very simple/naive <<if>>/<<elseif>>/<<else>> macro implementation.
 		 * Macro.add('if', {
-		 * 	skipArgs: true,
-		 * 	tags: ['elseif', 'else'],
-		 * 	handler: function () {
-		 * 		try {
-		 * 			for (var i = 0, len = this.payload.length; i < len; ++i) {
-		 * 				if (
-		 * 					this.payload[i].name === 'else' ||
-		 * 					!!Scripting.evalJavaScript(this.payload[i].args.full)
-		 * 				) {
-		 * 					jQuery(this.output).wiki(this.payload[i].contents);
-		 * 					break;
-		 * 				}
-		 * 			}
-		 * 		}
-		 * 		catch (ex) {
-		 * 			return this.error('bad conditional expression: ' + ex.message);
-		 * 		}
-		 * 	}
+		 *	skipArgs: true,
+		 *	tags: ['elseif', 'else'],
+		 *	handler: function () {
+		 *		try {
+		 *			for (var i = 0, len = this.payload.length; i < len; ++i) {
+		 *				if (
+		 *					this.payload[i].name === 'else' ||
+		 *					!!Scripting.evalJavaScript(this.payload[i].args.full)
+		 *				) {
+		 *					jQuery(this.output).wiki(this.payload[i].contents);
+		 *					break;
+		 *				}
+		 *			}
+		 *		}
+		 *		catch (ex) {
+		 *			return this.error('bad conditional expression: ' + ex.message);
+		 *		}
+		 *	}
 		 * });
 		 */
 		add(name: string | string[],
@@ -1519,8 +1519,8 @@ declare global {
 	 * // Use the returned Promise later on to ensure that the script has been fully
 	 * // loaded before executing dependent code
 	 * setup.aScriptImport
-	 * 	.then(function () {
-	 * 		// Code that depends on the script goes here.
+	 *	.then(function () {
+	 *		// Code that depends on the script goes here.
 	 * })
 	 *  .catch(function (err) {
 	 *	 // There was an error loading the script, log it to the console.
@@ -1542,29 +1542,29 @@ declare global {
 	 * @example <caption>Basic usage</caption>
 	 * // Import all stylesheets concurrently
 	 * importStyles(
-	 * 	 "https://somesite/a/path/a.css",
-	 * 	 "https://somesite/a/path/b.css",
-	 * 	 "https://somesite/a/path/c.css",
-	 * 	 "https://somesite/a/path/d.css"
+	 *	"https://somesite/a/path/a.css",
+	 *	"https://somesite/a/path/b.css",
+	 *	"https://somesite/a/path/c.css",
+	 *	"https://somesite/a/path/d.css"
 	 * );
 	 *
 	 * // Import all stylesheets sequentially
 	 * importStyles([
-	 * 	 "https://somesite/a/path/a.css",
-	 * 	 "https://somesite/a/path/b.css",
-	 * 	 "https://somesite/a/path/c.css",
-	 * 	 "https://somesite/a/path/d.css"
+	 *	"https://somesite/a/path/a.css",
+	 *	"https://somesite/a/path/b.css",
+	 *	"https://somesite/a/path/c.css",
+	 *	"https://somesite/a/path/d.css"
 	 * ]);
 	 *
 	 * // Import stylesheets a.css, b.css, and the c.css/d.css group concurrently,
 	 * // while importing c.css and d.css sequentially relative to each other
 	 * importStyles(
-	 * 	 "https://somesite/a/path/a.css",
-	 * 	 "https://somesite/a/path/b.css",
-	 * 	 [
-	 * 		 "https://somesite/a/path/c.css",
-	 * 		 "https://somesite/a/path/d.css"
-	 * 	 ]
+	 *	"https://somesite/a/path/a.css",
+	 *	"https://somesite/a/path/b.css",
+	 *	[
+	 *		 "https://somesite/a/path/c.css",
+	 *		 "https://somesite/a/path/d.css"
+	 *	]
 	 * );
 	 *
 	 * @example <caption>Basic usage with the returned Promise object</caption>
@@ -1574,9 +1574,9 @@ declare global {
 	 * // Import a stylesheet while using the returned Promise to ensure that the
 	 * // stylesheet has been fully loaded before unlocking the loading screen
 	 * importStyles("https://somesite/a/path/a.css")
-	 * 	 .then(function () {
+	 *	.then(function () {
 	 *	  // The stylesheet has been loaded, release the loading screen lock.
-	 * 		LoadScreen.unlock(lsLockId);
+	 *		LoadScreen.unlock(lsLockId);
 	 * })
 	 *   .catch(function (err) {
 	 *	  // There was an error loading the stylesheet, log it to the console.
@@ -1688,12 +1688,12 @@ declare global {
 	 * In the darkness, something wicked this way comes.  Quickly!  Do you \
 	 * <<link "try to run back into the light">>
 	 *   <<if time() lt 5000>>
-	 * 		/% The player clicked the link in under 5s, so they escape %/
-	 * 		<<goto "Well lit passageway">>
+	 *		/% The player clicked the link in under 5s, so they escape %/
+	 *		<<goto "Well lit passageway">>
 	 *   <<else>>
-	 * 		/% Else, they're eaten by a grue %/
-	 * 		<<goto "Eaten by a grue">>
-	 * 	 <</if>>
+	 *		/% Else, they're eaten by a grue %/
+	 *		<<goto "Eaten by a grue">>
+	 *	<</if>>
 	 * <</link>> \
 	 * or [[stand your ground|Eaten by a grue]]?
 	 */
@@ -1812,7 +1812,7 @@ declare global {
 		 * // and now $fruits is ["Apples", "Oranges"]
 		 *
 		 * $fruits.deleteWith(function (val) {
-		 * 	return val.startsWith("Ap");
+		 *	return val.startsWith("Ap");
 		 * }) // Returns ["Apples", "Apricots"];
 		 * // and now $fruits is ["Oranges"]
 		 *
diff --git a/fixSpellingMistakes2 b/fixSpellingMistakes2
index 40e4d9aa129d40be36240f44171d86008c2c7ee0..d2f677c94ec483aa7f53bc0430a9b6432a4c1598 100755
--- a/fixSpellingMistakes2
+++ b/fixSpellingMistakes2
@@ -2,7 +2,7 @@
 if [ ! -d ".git" ]; then
 	exit 0
 fi
-GREP="git grep -lz" 
+GREP="git grep -lz"
 $GREP "\babandonned\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\babandonned\b/abandoned/g" *.tw
 $GREP "\baberation\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\baberation\b/aberration/g" *.tw
 $GREP "\babilityes\b" -- src/ | xargs -0 perl -i -pE "BEGIN{ @ARGV = map glob, @ARGV } s/\babilityes\b/abilities/g" *.tw
diff --git a/java+gitGrep-sanityCheck.sh b/java+gitGrep-sanityCheck.sh
new file mode 100755
index 0000000000000000000000000000000000000000..02e5e0853125872d38d548a37361eedd16fca35d
--- /dev/null
+++ b/java+gitGrep-sanityCheck.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+if [ ! -d ".git" ]; then
+	#not running in git repo, so can't use git commands :-)
+	echo "No .git repo found - skipping sanity checks"
+	exit 0
+fi
+
+WARNING='\033[93m'
+WARNING='\033[93m'
+ENDC='\033[0m'
+
+myprint() {
+	while read data; do
+		echo -n -e "[$1]$WARNING"
+		echo "$data"
+	done
+}
+
+GREP="git grep -n --color"
+# Check for missing right angle bracket: <</if>
+#$GREP "<</[^>]*>[^>]" -- 'src/*'  | myprint "MissingClosingAngleBracket"
+#$GREP "<<[^>()]*>[^()<>"$'\r]*\r'"\?$" -- 'src/*' | myprint "MissingClosingAngleBracket"
+# Check for missing left angle bracket: </if>>
+#$GREP "\([^<]\|^\)</\?\(if\|else\|case\|set\|print\|elseif\)" -- 'src/*' | myprint "MissingOpeningAngleBracket2"
+# Check for accidental assignment.  e.g.:   <<if $foo = "hello">>
+$GREP "<<[ ]*if[^>=]*[^><\!=]=[^=][^>]*>>" -- 'src/*' | myprint "AccidentalAssignmentInIf"
+# Check for accidental assignment.  e.g.:   <<elseif $foo = "hello">>
+$GREP "<<[ ]*elseif[^>=]*[^><\!=]=[^=][^>]*>>" -- 'src/*' | myprint "AccidentalAssignmentInElseIf"
+# Check for missing ".  e.g.:   <<if $foo == "hello>>
+$GREP "<<[^\"<>]*\"[^\"<>]*>>" -- 'src/*' | myprint "MissingSpeechMark"
+# Check for missing ".  e.g.:   <<if $foo = "hello)
+$GREP -e "<<[^\"<>]*\([^\"<>]*\"[^><\"]*\"\| [<>] \)*\"\([^\"<>]*\"[^><\"]*\"\| [<>] \)*\([^\"<>]\| [<>] \)*>>" --and --not -e "*[^']*" -- 'src/*' | myprint "MissingSpeechMark2"
+# Check for colors like: @@color:red   - should be @@.red
+$GREP -e "@@color:" --and --not -e  "@@color:rgb([0-9 ]\+,[0-9 ]\+,[0-9 ]\+)" -- "src/*" | myprint "UseCssColors"
+# Check for missing $ in activeSlave or PC
+$GREP "<<[ ]*[^\$><_\[]*\(activeSlave\|PC\)[.]"  -- "src/*" | myprint "MissingDollar"
+# Check for closing bracket without opening bracket.  e.g.:  <<if foo)>>	  (but  <<case "foo")>>   is valid, so ignore those
+$GREP -e "<<[ a-zA-Z]\+\([^()<>]\|[^()<>][<>][^()<>]\)*)" --and --not -e "<< *case"  -- "src/*" | myprint "MissingOpeningBracket"
+# Check for opening bracket without closing bracket.  e.g.:  <<if (foo>>
+$GREP -e "<<[ a-zA-Z]\([^<>]\|[^<>][<>][^<>]\)\+(\([^()<>]\|[^<>()][<>][^<>()]\|([^<>()]*])\)*>>" -- "src/*" | myprint "MissingClosingBracket"
+# Check for two closing brackets but one opening bracket.  e.g.:  <<if (foo))>>
+$GREP -e "<<[ a-zA-Z]\+[^()<>]*([^()]*)[^()]*)[^()<>]*>>"  -- "src/*" | myprint "MissingOpeningBracket2"
+# Check for one closing bracket but two opening brackets.  e.g.:  <<if ((foo)>>
+$GREP -e "<<[ a-zA-Z]\+[^()<>]*([^()]*([^()]*)[^()<>]*>>"  -- "src/*" | myprint "MissingClosingBracket2"
+$GREP -e "<<.*[(][^<>)]*[(][^<>)]*)\?[^<>)]*>>" -- "src/*" | myprint "MissingClosingBracket3"
+# Check for missing >>.  e.g.:   <<if $foo
+#$GREP "<<[^<>]*[^,\"\[{"$'\r]\r'"\?$" -- 'src/*' | myprint "MissingClosingAngleBrackets"
+# Check for too many >>>.  e.g.: <</if>>>
+$GREP "<<[^<>]*[<>]\?[^<>]*>>>" -- "src/*.tw" | myprint "TooManyAngleBrackets"
+# Check for too many <<<.  e.g.: <<</if>>
+#$GREP "<<<[^<>]*[<>]\?[^<>]*>>" -- "src/*.tw" | myprint "TooManyAngleBrackets"
+# Check for wrong capitalization on 'activeslave' and other common typos
+$GREP -e "\$act" --and --not -e "\$\(activeSlave\|activeChild\|activeArcology\|activeStandard\|activeOrgan\|activeLimbs\|activeUnits\|activeCanine\|activeHooved\|activeFeline\)" -- "src/*" | myprint "WrongCapitilization"
+$GREP  "\(csae\|[a-z] She \|attepmts\|youreslf\|advnaces\|canAcheive\|setBellySize\|SetbellySize\|setbellySize\|bellypreg\|pregBelly\|bellyimplant\|bellyfluid\|pronounCaps\|carress\|hormonebalance\|fetishknown\)" -- 'src/*' | myprint "SpellCheck"
+$GREP  "\(recieve\|recieves\)" -- 'src/*' | myprint "PregmodderCannotSpellReceive"
+$GREP "\$slave\[" -- 'src/*' | myprint "ShouldBeSlaves"
+# Check for strange spaces e.g.  $slaves[$i]. lips
+$GREP "\$slaves\[\$i\]\. " -- 'src/*' | myprint "MissingPropertyAfterSlaves"
+# Check using refreshmentType instead of refreshment
+$GREP "\$PC.refreshmentType[^ =]" -- 'src/*' | myprint "ShouldBeRefreshment"
+# Check, e.g., <<//if>>
+$GREP "<</[a-zA-Z]*[^a-zA-Z<>]\+[a-zA-Z]*>>" -- 'src/*' | myprint "DoubleSlash"
+# Check, e.g.  <<else $foo==4
+#$GREP "<<else >\?[^>]" -- 'src/*' | myprint "ShouldBeElseIf"
+# Check, e.g., =to
+$GREP "=to" -- 'src/*' | myprint "EqualAndTo"
+# Check doing  $slaves.foo instead of $slaves[i].foo
+$GREP -e "[$]slaves[.]"  --and --not -e '[$]slaves[.]\(length\|random\|map\|filter\|deleteAt\|push\|find\|includes\|delete\|forEach\)' -- 'src/*' | myprint "MissingSlavesIndex"
+# Try to check for accidentally mixing slaves[] and activeSlave.  This can have a lot of false matches, but has caught a lot of bugs so it's worth the pain
+$GREP -e "activeSlave[.]" --and -e "slaves\[..\?\][.]" --and --not -e '[.]ID' --and --not -e 'slaves\[..\?\][.]\(slaveName\|slaveSurname\|actualAge\|relation\|assignment\|age\|devotion\|trust\|vagina\|mother\|father\|training\)' -- 'src/*' | myprint "MaybeAccidentalMixingOfSlavesAndActiveSlave"
+# Check, e.g.  <<set foo == 4>>
+$GREP "<<set[^{>=]*==" -- 'src/*' | myprint "DoubleEqualsInSet"
+# Check for, e.g   <<if slaves[foo]>>
+$GREP "<<\([^>]\|[^>]>[^>]\)*[^$]slaves\[" -- 'src/*' | myprint "MissingDollar"
+# Check for missing $ or _ in variable name:
+$GREP -e "<<[a-zA-Z]\([^>\"]\|[^>]>[^>]\|\"[^\"]*\"\)* [a-zA-Z]\+ * =" -- src/*.tw | myprint "MissingDollar2"
+# Check for missing command, e.g.  <<foo =
+$GREP -e "<<[a-zA-Z]* = *" -- src/*.tw | myprint "BadCommand"
+# Check for duplicate words, e.g. with with
+$GREP -e  " \(\b[a-zA-Z][a-zA-Z]\+\) \1\b " --and --not -e " her her " --and --not -e " you you " --and --not -e " New New " --and --not -e "Slave Slave " --and --not -e " that that " --and --not -e " in in " --and --not -e " is is " -- 'src/*' | myprint "Duplicate words"
+# Check for obsolete SugarCube macros
+$GREP -E "<<display |<<click|<<.*\.contains" -- src/*.tw | myprint "ObsoleteMacro"
+# Check for double articles
+$GREP -E "\Wa an\W" -- src/*.tw | myprint "DoubleArticle"
+# Check for incorrect articles
+$GREP -i -E "\Wa (a|e|i|o|u)." -- src/*.tw | grep -a -i -vE "\Wa (un|eu|us|ut|on|ur|in)." | grep -a -i -vE "(&|<<s>>|UM)." | myprint "IncorrectArticle"
+$GREP -i -E "\Wan (b|c|d|f|g|j|k|l|m|n|p|q|r|s|t|v|w|x|y|z)\w." -- src/*.tw | grep -a -i -vE "[A-Z]{3}" | myprint "IncorrectArticle"
+# Check for $ sign mid-word
+$GREP -i "\w$\w" -- src/*.tw | myprint "VarSignMidWord"
+# check for $ sign at beginning of macro
+$GREP '<<\s*\$' -- 'src/*'  | myprint "VarSignAtMacroStart"
+# check for missing ; before statement
+$GREP 'if $ ' -- 'src/*'  | myprint "missing ; before statement"
+$GREP 'elseif $ ' -- 'src/*'  | myprint "missing ; before statement"
+# Check for a . inside a <<>>
+$GREP "<<[a-zA-Z]\([^\"'>]\|[^\"'>]>[^\"'>]\)*[a-zA-Z][.][^a-zA-Z]" | myprint "StrangeCharacterAfterDot"
+# Check for @@. instead of .@@
+$GREP -E "@@(\.|,|;|:)\s" -- src/*.tw | myprint "WrongSelectorPunctuation"
+
+# Check that we do not have any variables that we use only once.   e.g.	 $onlyUsedOnce
+# Ignore  *Nationalities
+(
+cd src/
+cat $(find . -name "*.tw" ) | tr -c '$a-zA-Z' '\n'  | sed -n '/^[$]/p' | grep -v "Nationalities" | sort | uniq -u | sed 's/^[$]/-e[$]/' | sed 's/$/\\\\W/' | xargs -r  git grep -n --color | myprint "OnlyUsedOnce"
+cat $(find . -name "*.tw" ) | tr -c '.$a-zA-Z[]_' '\n' | sed 's/SugarCube\.State\.variables\./$/g' | sed -n -e 's/^[$]\(PC\|activeSlave\|\(slaves\|tanks\)\[[^]]*\]*\)[.]\([a-zA-Z]\+\).*$/[.]\3/p' | sort | uniq -u |sed 's/^\(.*\)$/-e\1\\\\\b/'  | xargs -r git grep -n --color | myprint "SlaveAttributeUsedOnce"
+$GREP "\$\(PC\|activeSlave\|slaves\|tanks\)[.][^a-zA-Z]" | myprint "UnexpectedCharAfterDot"
+
+)
+
+#run the java sanity check
+java -jar SanityCheck.jar
diff --git a/resources/vector/body/addon/boob 0 areola piercing.svg b/resources/vector/body/addon/boob 0 areola piercing.svg
index 69b5e73b56aa0929a9b4ca8b34319aded3ece8dc..b7555d1ca85063a875bd588419aada36c313ac1d 100644
--- a/resources/vector/body/addon/boob 0 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 0 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_234_" class="st0" cx="467.2" cy="271" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_233_" class="st0" cx="468.3" cy="270.5" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_232_" class="st0" cx="466.3" cy="277.3" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_231_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 918.0208 572.7028)" class="st0" cx="465.8" cy="275.5" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_230_" class="st0" cx="472" cy="274" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_229_" class="st0" cx="472.8" cy="276" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_228_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 1007.9313 386.819)" class="st0" cx="470.3" cy="281.1" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_227_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 1009.6696 387.3601)" class="st0" cx="471.5" cy="280.5" rx="0.5" ry="0.7"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 0 piercing heavy.svg b/resources/vector/body/addon/boob 0 piercing heavy.svg
index 0f2e9484b80eaf5540a6feee9575817a8163291d..030587ff4af2bb03d4530ae366928fe0ef80c25c 100644
--- a/resources/vector/body/addon/boob 0 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 0 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_222_" class="st0" cx="532.4" cy="278.7" r="1"/>
 	<circle id="XMLID_221_" class="st0" cx="530.2" cy="276" r="1"/>
 	<circle id="XMLID_220_" class="st0" cx="530.4" cy="280.9" r="1"/>
-	
+
 		<ellipse id="XMLID_219_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 985.4068 454.8795)" class="st0" cx="470.4" cy="275.7" rx="0.6" ry="0.8"/>
-	
+
 		<ellipse id="XMLID_218_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 855.6479 655.2993)" class="st0" cx="467.6" cy="275.7" rx="0.6" ry="0.8"/>
-	
+
 		<ellipse id="XMLID_217_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 296.3026 788.395)" class="st0" cx="468.2" cy="273.9" rx="0.6" ry="0.5"/>
-	
+
 		<ellipse id="XMLID_216_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 707.4532 -212.5916)" class="st0" cx="469.2" cy="277.9" rx="0.6" ry="0.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 0 piercing.svg b/resources/vector/body/addon/boob 0 piercing.svg
index c547be020d4a0cddf59601d27a0dd91f6dcfab29..d21f482ead009f49d5e7124e8c05ba087bae135b 100644
--- a/resources/vector/body/addon/boob 0 piercing.svg	
+++ b/resources/vector/body/addon/boob 0 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_214_" class="st0" cx="532.4" cy="278.7" r="1"/>
 	</g>
 	<g id="XMLID_531_">
-		
+
 			<ellipse id="XMLID_213_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 985.4068 454.8795)" class="st0" cx="470.4" cy="275.7" rx="0.6" ry="0.8"/>
-		
+
 			<ellipse id="XMLID_212_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 855.6479 655.2993)" class="st0" cx="467.6" cy="275.7" rx="0.6" ry="0.8"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 1 areola piercing.svg b/resources/vector/body/addon/boob 1 areola piercing.svg
index a245e90132fd651cac960cb9095c0be9ef5319a9..217e2c99a7f243e14f9960f8ef44fb65475886dc 100644
--- a/resources/vector/body/addon/boob 1 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 1 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_196_" class="st0" cx="451.7" cy="271.3" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_195_" class="st0" cx="452.9" cy="270.8" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_194_" class="st0" cx="450.8" cy="277.6" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_193_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 887.0982 572.5067)" class="st0" cx="450.3" cy="275.7" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_192_" class="st0" cx="456.5" cy="274.3" rx="0.5" ry="0.7"/>
 	<ellipse id="XMLID_191_" class="st0" cx="457.2" cy="276.2" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_190_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 978.0084 392.5092)" class="st0" cx="454.9" cy="281.3" rx="0.5" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_189_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 979.7283 392.9969)" class="st0" cx="456.1" cy="280.8" rx="0.5" ry="0.7"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 1 piercing heavy.svg b/resources/vector/body/addon/boob 1 piercing heavy.svg
index ad3ed18a2d0db2d9a96e3b3f94b7582b8f0a8ade..f8a0ddd4e28390803d17d5c58a28fd1646151bff 100644
--- a/resources/vector/body/addon/boob 1 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 1 piercing heavy.svg	
@@ -18,13 +18,13 @@
 	<circle id="XMLID_184_" class="st0" cx="516.8" cy="279" r="1"/>
 	<circle id="XMLID_183_" class="st0" cx="514.6" cy="276.2" r="1"/>
 	<circle id="XMLID_182_" class="st0" cx="515" cy="281.2" r="1"/>
-	
+
 		<ellipse id="XMLID_181_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 954.8359 458.3842)" class="st0" cx="455" cy="276" rx="0.6" ry="0.8"/>
-	
+
 		<ellipse id="XMLID_180_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 825.0893 652.1412)" class="st0" cx="452.1" cy="276" rx="0.6" ry="0.8"/>
-	
+
 		<ellipse id="XMLID_179_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 277.3305 773.6921)" class="st0" cx="452.7" cy="274.3" rx="0.6" ry="0.5"/>
-	
+
 		<ellipse id="XMLID_178_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 693.3712 -196.8819)" class="st0" cx="453.6" cy="278.1" rx="0.6" ry="0.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 1 piercing.svg b/resources/vector/body/addon/boob 1 piercing.svg
index dd492587c06515db56eae9660eeb5ea147f6644b..ed25eb35e828df34853562b5e8df751727004b7d 100644
--- a/resources/vector/body/addon/boob 1 piercing.svg	
+++ b/resources/vector/body/addon/boob 1 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_176_" class="st0" cx="516.8" cy="279" r="1"/>
 	</g>
 	<g id="XMLID_491_">
-		
+
 			<ellipse id="XMLID_175_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 954.8359 458.3842)" class="st0" cx="455" cy="276" rx="0.6" ry="0.8"/>
-		
+
 			<ellipse id="XMLID_174_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 825.0893 652.1412)" class="st0" cx="452.1" cy="276" rx="0.6" ry="0.8"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 2 areola piercing.svg b/resources/vector/body/addon/boob 2 areola piercing.svg
index 143fe6b2ec6034410cdd156d1d6d95122f68e8e9..2a065b9bff2d7078bd87ece2fb453c6998a85010 100644
--- a/resources/vector/body/addon/boob 2 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 2 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_158_" class="st0" cx="436.2" cy="284.4" rx="0.7" ry="0.9"/>
 	<ellipse id="XMLID_157_" class="st0" cx="437.7" cy="283.9" rx="0.7" ry="0.9"/>
 	<ellipse id="XMLID_156_" class="st0" cx="435.1" cy="292.2" rx="0.7" ry="0.9"/>
-	
+
 		<ellipse id="XMLID_155_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 854.8103 600.1753)" class="st0" cx="434.5" cy="289.9" rx="0.7" ry="0.9"/>
 	<ellipse id="XMLID_154_" class="st0" cx="442.2" cy="288.1" rx="0.7" ry="0.9"/>
 	<ellipse id="XMLID_153_" class="st0" cx="443.1" cy="290.5" rx="0.7" ry="0.9"/>
-	
+
 		<ellipse id="XMLID_152_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 954.6022 427.724)" class="st0" cx="440.1" cy="296.9" rx="0.7" ry="0.9"/>
-	
+
 		<ellipse id="XMLID_151_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 956.7655 427.9553)" class="st0" cx="441.6" cy="296.3" rx="0.7" ry="0.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 2 piercing heavy.svg b/resources/vector/body/addon/boob 2 piercing heavy.svg
index 9527bb6d541dd22d62c20608c062d18c1250df50..6573c2f26485b8d186f5c141c3a6df1c8bacd034 100644
--- a/resources/vector/body/addon/boob 2 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 2 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_146_" class="st0" cx="517.1" cy="294" r="1.2"/>
 	<circle id="XMLID_145_" class="st0" cx="514.3" cy="290.6" r="1.2"/>
 	<circle id="XMLID_144_" class="st0" cx="514.7" cy="296.8" r="1.2"/>
-	
+
 		<ellipse id="XMLID_143_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 928.3824 489.6277)" class="st0" cx="440.2" cy="290.3" rx="0.8" ry="1"/>
-	
+
 		<ellipse id="XMLID_142_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 791.3661 676.6553)" class="st0" cx="436.7" cy="290.3" rx="0.8" ry="1"/>
-	
+
 		<ellipse id="XMLID_141_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 245.4174 775.3432)" class="st0" cx="437.4" cy="288.1" rx="0.8" ry="0.7"/>
-	
+
 		<ellipse id="XMLID_140_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 694.4183 -168.4039)" class="st0" cx="438.7" cy="292.9" rx="0.8" ry="0.7"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 2 piercing.svg b/resources/vector/body/addon/boob 2 piercing.svg
index 71054e82931b1bdeda1ce42837ee553406776288..375e9bf20b3c006252df328bf8c0d8328384f0ef 100644
--- a/resources/vector/body/addon/boob 2 piercing.svg	
+++ b/resources/vector/body/addon/boob 2 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_138_" class="st0" cx="517.1" cy="294" r="1.2"/>
 	</g>
 	<g id="XMLID_451_">
-		
+
 			<ellipse id="XMLID_137_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 928.3824 489.6277)" class="st0" cx="440.2" cy="290.3" rx="0.8" ry="1"/>
-		
+
 			<ellipse id="XMLID_136_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 791.3661 676.6553)" class="st0" cx="436.7" cy="290.3" rx="0.8" ry="1"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 3 areola piercing.svg b/resources/vector/body/addon/boob 3 areola piercing.svg
index 542b1bac542e017c808fb6ddeb076ef0fc756021..f8aacd56e71b2ff615d959f9f6024dec1be55fdf 100644
--- a/resources/vector/body/addon/boob 3 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 3 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_120_" class="st0" cx="423.4" cy="295.4" rx="0.9" ry="1.1"/>
 	<ellipse id="XMLID_119_" class="st0" cx="425.1" cy="294.8" rx="0.9" ry="1.1"/>
 	<ellipse id="XMLID_118_" class="st0" cx="422" cy="304.8" rx="0.9" ry="1.1"/>
-	
+
 		<ellipse id="XMLID_117_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 827.7614 624.0518)" class="st0" cx="421.3" cy="302.2" rx="0.9" ry="1.1"/>
 	<ellipse id="XMLID_116_" class="st0" cx="430.6" cy="300" rx="0.9" ry="1.1"/>
 	<ellipse id="XMLID_115_" class="st0" cx="431.7" cy="302.8" rx="0.9" ry="1.1"/>
-	
+
 		<ellipse id="XMLID_114_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 935.8943 458.1015)" class="st0" cx="428.1" cy="310.4" rx="0.9" ry="1.1"/>
-	
+
 		<ellipse id="XMLID_113_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 938.5138 458.1071)" class="st0" cx="429.9" cy="309.8" rx="0.9" ry="1.1"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 3 piercing heavy.svg b/resources/vector/body/addon/boob 3 piercing heavy.svg
index a4a80b25939099bda1e624b2f50e102689ba1b9b..622d7672770749283debac5a1785c13bf095a59a 100644
--- a/resources/vector/body/addon/boob 3 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 3 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_108_" class="st0" cx="520.9" cy="307.1" r="1.5"/>
 	<circle id="XMLID_107_" class="st0" cx="517.6" cy="303" r="1.5"/>
 	<circle id="XMLID_106_" class="st0" cx="518.1" cy="310.4" r="1.5"/>
-	
+
 		<ellipse id="XMLID_105_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 907.0026 516.2271)" class="st0" cx="428.2" cy="302.5" rx="1" ry="1.2"/>
-	
+
 		<ellipse id="XMLID_104_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 763.2371 697.7639)" class="st0" cx="424" cy="302.6" rx="1" ry="1.2"/>
-	
+
 		<ellipse id="XMLID_103_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 218.8256 777.2117)" class="st0" cx="424.9" cy="299.8" rx="1" ry="0.9"/>
-	
+
 		<ellipse id="XMLID_102_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 695.8627 -144.3055)" class="st0" cx="426.3" cy="305.8" rx="1" ry="0.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 3 piercing.svg b/resources/vector/body/addon/boob 3 piercing.svg
index e225c9ab1d90b04800b07c9382804fc910e8d247..7dc4ed1e9ebdfec73cff5416e70797a3d351b8f7 100644
--- a/resources/vector/body/addon/boob 3 piercing.svg	
+++ b/resources/vector/body/addon/boob 3 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_100_" class="st0" cx="520.9" cy="307.1" r="1.5"/>
 	</g>
 	<g id="XMLID_411_">
-		
+
 			<ellipse id="XMLID_99_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 907.0026 516.2271)" class="st0" cx="428.2" cy="302.5" rx="1" ry="1.2"/>
-		
+
 			<ellipse id="XMLID_98_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 763.2371 697.7639)" class="st0" cx="424" cy="302.6" rx="1" ry="1.2"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 4 areola piercing.svg b/resources/vector/body/addon/boob 4 areola piercing.svg
index 639beaffa41588be1db9b01b56bb44e1d980bba2..2a0af44506720d57cc454462afb0e4594976dad6 100644
--- a/resources/vector/body/addon/boob 4 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 4 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_82_" class="st0" cx="393.5" cy="322.8" rx="1.2" ry="1.4"/>
 	<ellipse id="XMLID_81_" class="st0" cx="395.7" cy="322" rx="1.2" ry="1.4"/>
 	<ellipse id="XMLID_80_" class="st0" cx="391.7" cy="335.1" rx="1.2" ry="1.4"/>
-	
+
 		<ellipse id="XMLID_79_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 765.4359 681.4077)" class="st0" cx="390.8" cy="331.6" rx="1.2" ry="1.4"/>
 	<ellipse id="XMLID_78_" class="st0" cx="402.9" cy="328.7" rx="1.2" ry="1.4"/>
 	<ellipse id="XMLID_77_" class="st0" cx="404.3" cy="332.5" rx="1.2" ry="1.4"/>
-	
+
 		<ellipse id="XMLID_76_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 891.3522 529.8864)" class="st0" cx="399.6" cy="342.4" rx="1.2" ry="1.4"/>
-	
+
 		<ellipse id="XMLID_75_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 894.9265 529.0276)" class="st0" cx="402" cy="341.5" rx="1.2" ry="1.4"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 4 piercing heavy.svg b/resources/vector/body/addon/boob 4 piercing heavy.svg
index 85778abc194c74c72a70d4595e086a14de114765..07ac28940f80e3d83e6d78b1232b86c8b8876d97 100644
--- a/resources/vector/body/addon/boob 4 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 4 piercing heavy.svg	
@@ -18,13 +18,13 @@
 	<circle id="XMLID_70_" class="st0" cx="520.8" cy="337.9" r="2"/>
 	<circle id="XMLID_69_" class="st0" cx="516.5" cy="332.6" r="2"/>
 	<circle id="XMLID_68_" class="st0" cx="517" cy="342.3" r="2"/>
-	
+
 		<ellipse id="XMLID_67_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 856.431 580.3391)" class="st0" cx="399.8" cy="332.1" rx="1.2" ry="1.5"/>
-	
+
 		<ellipse id="XMLID_66_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 697.4272 749.1066)" class="st0" cx="394.2" cy="332.2" rx="1.2" ry="1.5"/>
-	
+
 		<ellipse id="XMLID_65_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 155.0886 783.064)" class="st0" cx="395.4" cy="328.6" rx="1.2" ry="1.2"/>
-	
+
 		<ellipse id="XMLID_64_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 699.5681 -87.4572)" class="st0" cx="397.3" cy="336.2" rx="1.2" ry="1.2"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 4 piercing.svg b/resources/vector/body/addon/boob 4 piercing.svg
index caec1c7f3ba06e93b4ba4247b6834fdcdccd772f..74bef4f2fe3b93a8928d32ce04a978940ed8d3ed 100644
--- a/resources/vector/body/addon/boob 4 piercing.svg	
+++ b/resources/vector/body/addon/boob 4 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_62_" class="st0" cx="520.8" cy="337.9" r="2"/>
 	</g>
 	<g id="XMLID_371_">
-		
+
 			<ellipse id="XMLID_61_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 856.431 580.3391)" class="st0" cx="399.8" cy="332.1" rx="1.2" ry="1.5"/>
-		
+
 			<ellipse id="XMLID_60_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 697.4272 749.1066)" class="st0" cx="394.2" cy="332.2" rx="1.2" ry="1.5"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 5 areola piercing.svg b/resources/vector/body/addon/boob 5 areola piercing.svg
index 769773681aac936b95d1f4ddf02eeb955c1def2e..61b568ef9bdad1ccc7f14f7a155f706e11038c89 100644
--- a/resources/vector/body/addon/boob 5 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 5 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_44_" class="st0" cx="352.7" cy="360.5" rx="1.5" ry="1.9"/>
 	<ellipse id="XMLID_43_" class="st0" cx="355.6" cy="359.3" rx="1.5" ry="1.9"/>
 	<ellipse id="XMLID_42_" class="st0" cx="350.2" cy="377" rx="1.5" ry="1.9"/>
-	
+
 		<ellipse id="XMLID_41_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 679.8478 760.7689)" class="st0" cx="349" cy="372.3" rx="1.5" ry="1.9"/>
 	<ellipse id="XMLID_40_" class="st0" cx="365.2" cy="368.4" rx="1.5" ry="1.9"/>
 	<ellipse id="XMLID_39_" class="st0" cx="367.1" cy="373.4" rx="1.5" ry="1.9"/>
-	
+
 		<ellipse id="XMLID_38_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 831.1002 629.0543)" class="st0" cx="360.9" cy="386.8" rx="1.5" ry="1.9"/>
-	
+
 		<ellipse id="XMLID_37_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 835.9724 627.3287)" class="st0" cx="364" cy="385.6" rx="1.5" ry="1.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 5 piercing heavy.svg b/resources/vector/body/addon/boob 5 piercing heavy.svg
index 086ffdb965d16dddb285e1bfd8de031504aa0334..5391c86472830bb566b561c5137380dfd230f0c2 100644
--- a/resources/vector/body/addon/boob 5 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 5 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_32_" class="st0" cx="523.9" cy="380.7" r="2.7"/>
 	<circle id="XMLID_31_" class="st0" cx="518" cy="373.6" r="2.7"/>
 	<circle id="XMLID_30_" class="st0" cx="518.7" cy="386.6" r="2.7"/>
-	
+
 		<ellipse id="XMLID_29_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 787.6197 668.8575)" class="st0" cx="361" cy="373" rx="1.7" ry="2"/>
-	
+
 		<ellipse id="XMLID_28_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 607.6005 819.9565)" class="st0" cx="353.6" cy="373.1" rx="1.7" ry="2"/>
-	
+
 		<ellipse id="XMLID_27_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 67.8569 791.334)" class="st0" cx="355.1" cy="368.1" rx="1.7" ry="1.5"/>
-	
+
 		<ellipse id="XMLID_26_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 705.519 -9.3184)" class="st0" cx="357.8" cy="378.5" rx="1.7" ry="1.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 5 piercing.svg b/resources/vector/body/addon/boob 5 piercing.svg
index 99a0e33cc141af99a5261c5f0b8fe3e9bf8585ae..34308e8e7cdaf9391ac635776e06f91010680dc2 100644
--- a/resources/vector/body/addon/boob 5 piercing.svg	
+++ b/resources/vector/body/addon/boob 5 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_24_" class="st0" cx="523.9" cy="380.7" r="2.7"/>
 	</g>
 	<g id="XMLID_331_">
-		
+
 			<ellipse id="XMLID_23_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 787.6197 668.8575)" class="st0" cx="361" cy="373" rx="1.7" ry="2"/>
-		
+
 			<ellipse id="XMLID_22_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 607.6005 819.9565)" class="st0" cx="353.6" cy="373.1" rx="1.7" ry="2"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 6 areola piercing.svg b/resources/vector/body/addon/boob 6 areola piercing.svg
index 412de0c08acfd967703caceff398a52a4316bf4f..096d5754b1a2566c9c255f73d7d036931aea974b 100644
--- a/resources/vector/body/addon/boob 6 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 6 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_401_" class="st0" cx="301.1" cy="406.9" rx="2" ry="2.5"/>
 	<ellipse id="XMLID_400_" class="st0" cx="305" cy="405.3" rx="2" ry="2.5"/>
 	<ellipse id="XMLID_399_" class="st0" cx="297.9" cy="428.6" rx="2" ry="2.5"/>
-	
+
 		<ellipse id="XMLID_398_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 572.0126 858.504)" class="st0" cx="296.2" cy="422.5" rx="2" ry="2.5"/>
 	<ellipse id="XMLID_397_" class="st0" cx="317.7" cy="417.3" rx="2" ry="2.5"/>
 	<ellipse id="XMLID_396_" class="st0" cx="320.1" cy="424" rx="2" ry="2.5"/>
-	
+
 		<ellipse id="XMLID_395_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 754.4891 751.8561)" class="st0" cx="311.9" cy="441.5" rx="2" ry="2.5"/>
-	
+
 		<ellipse id="XMLID_394_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 760.9403 748.9292)" class="st0" cx="316.1" cy="439.9" rx="2" ry="2.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 6 piercing heavy.svg b/resources/vector/body/addon/boob 6 piercing heavy.svg
index cd9535bfd4f32e658dbbd5f3f70449658f3a7a93..68bca634e469c5efe3e014bbdcf45471904058d5 100644
--- a/resources/vector/body/addon/boob 6 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 6 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_389_" class="st0" cx="526.6" cy="433.6" r="3.5"/>
 	<circle id="XMLID_388_" class="st0" cx="518.8" cy="424.2" r="3.5"/>
 	<circle id="XMLID_387_" class="st0" cx="519.8" cy="441.3" r="3.5"/>
-	
+
 		<ellipse id="XMLID_386_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 700.4802 778.1339)" class="st0" cx="312.1" cy="423.4" rx="2.2" ry="2.7"/>
-	
+
 		<ellipse id="XMLID_385_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 494.4378 907.0223)" class="st0" cx="302.3" cy="423.5" rx="2.2" ry="2.7"/>
-	
+
 		<ellipse id="XMLID_384_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 -41.1507 800.4734)" class="st0" cx="304.4" cy="416.9" rx="2.2" ry="2"/>
-	
+
 		<ellipse id="XMLID_383_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 711.6222 88.2673)" class="st0" cx="307.9" cy="430.6" rx="2.2" ry="2"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 6 piercing.svg b/resources/vector/body/addon/boob 6 piercing.svg
index 4f315d7b5810d154ca77e6a40b272cb5505a0be2..a027fed2623936d1552d408d16493e5afca24e03 100644
--- a/resources/vector/body/addon/boob 6 piercing.svg	
+++ b/resources/vector/body/addon/boob 6 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_381_" class="st0" cx="526.6" cy="433.6" r="3.5"/>
 	</g>
 	<g id="XMLID_372_">
-		
+
 			<ellipse id="XMLID_379_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 700.4802 778.1339)" class="st0" cx="312.1" cy="423.4" rx="2.2" ry="2.7"/>
-		
+
 			<ellipse id="XMLID_375_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 494.4378 907.0223)" class="st0" cx="302.3" cy="423.5" rx="2.2" ry="2.7"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/boob 7 areola piercing.svg b/resources/vector/body/addon/boob 7 areola piercing.svg
index 7cfd4c90735383ec780787b6ac6f1bf3529da7f8..b4fc2fc4d0b3418bc34fc51412eb0fc47da67cab 100644
--- a/resources/vector/body/addon/boob 7 areola piercing.svg	
+++ b/resources/vector/body/addon/boob 7 areola piercing.svg	
@@ -17,13 +17,13 @@
 	<ellipse id="XMLID_443_" class="st0" cx="257.4" cy="448.8" rx="2.4" ry="3"/>
 	<ellipse id="XMLID_442_" class="st0" cx="262.1" cy="447" rx="2.4" ry="3"/>
 	<ellipse id="XMLID_441_" class="st0" cx="253.4" cy="475.3" rx="2.4" ry="3"/>
-	
+
 		<ellipse id="XMLID_440_" transform="matrix(-0.9989 -4.745027e-002 4.745027e-002 -0.9989 480.3226 947.0313)" class="st0" cx="251.4" cy="467.8" rx="2.4" ry="3"/>
 	<ellipse id="XMLID_439_" class="st0" cx="277.5" cy="461.5" rx="2.4" ry="3"/>
 	<ellipse id="XMLID_438_" class="st0" cx="280.5" cy="469.6" rx="2.4" ry="3"/>
-	
+
 		<ellipse id="XMLID_437_" transform="matrix(-0.9413 0.3376 -0.3376 -0.9413 690.8691 861.9293)" class="st0" cx="270.5" cy="491" rx="2.4" ry="3"/>
-	
+
 		<ellipse id="XMLID_436_" transform="matrix(-0.9425 0.3341 -0.3341 -0.9425 698.752 857.9261)" class="st0" cx="275.6" cy="489.1" rx="2.4" ry="3"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 7 piercing heavy.svg b/resources/vector/body/addon/boob 7 piercing heavy.svg
index d390047ded94c2893dbc5d04365945e74aeb7b9c..d1a19844a5d04b2ecbeafb5856eb7f8a5459b02e 100644
--- a/resources/vector/body/addon/boob 7 piercing heavy.svg	
+++ b/resources/vector/body/addon/boob 7 piercing heavy.svg	
@@ -17,13 +17,13 @@
 	<circle id="XMLID_431_" class="st0" cx="532" cy="481.3" r="4.3"/>
 	<circle id="XMLID_430_" class="st0" cx="522.5" cy="469.9" r="4.3"/>
 	<circle id="XMLID_429_" class="st0" cx="523.7" cy="490.7" r="4.3"/>
-	
+
 		<ellipse id="XMLID_428_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 627.4544 876.3939)" class="st0" cx="270.8" cy="468.9" rx="2.7" ry="3.3"/>
-	
+
 		<ellipse id="XMLID_427_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 397.8483 986.4601)" class="st0" cx="258.8" cy="469.1" rx="2.7" ry="3.3"/>
-	
+
 		<ellipse id="XMLID_426_" transform="matrix(-0.2055 -0.9787 0.9787 -0.2055 -136.2163 811.5947)" class="st0" cx="261.3" cy="461.1" rx="2.7" ry="2.4"/>
-	
+
 		<ellipse id="XMLID_425_" transform="matrix(8.246086e-002 0.9966 -0.9966 8.246086e-002 719.8191 173.6128)" class="st0" cx="265.6" cy="477.7" rx="2.7" ry="2.4"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/boob 7 piercing.svg b/resources/vector/body/addon/boob 7 piercing.svg
index 88818c77c4acc4525c0a3b779eb385a59cdae4fc..74a993b8eff335ff98221d0922a209ddc00d844c 100644
--- a/resources/vector/body/addon/boob 7 piercing.svg	
+++ b/resources/vector/body/addon/boob 7 piercing.svg	
@@ -11,9 +11,9 @@
 		<circle id="XMLID_423_" class="st0" cx="532" cy="481.3" r="4.3"/>
 	</g>
 	<g id="XMLID_419_">
-		
+
 			<ellipse id="XMLID_421_" transform="matrix(-0.981 0.1941 -0.1941 -0.981 627.4544 876.3939)" class="st0" cx="270.8" cy="468.9" rx="2.7" ry="3.3"/>
-		
+
 			<ellipse id="XMLID_420_" transform="matrix(-0.971 -0.2392 0.2392 -0.971 397.8483 986.4601)" class="st0" cx="258.8" cy="469.1" rx="2.7" ry="3.3"/>
 	</g>
 </g>
diff --git a/resources/vector/body/addon/clit piercing smart.svg b/resources/vector/body/addon/clit piercing smart.svg
index ae117891a1950c99a03e06bf12d61e243608e5fe..5bb94d51522af3901e1b0820a8d78b77d63e1af2 100644
--- a/resources/vector/body/addon/clit piercing smart.svg	
+++ b/resources/vector/body/addon/clit piercing smart.svg	
@@ -11,7 +11,7 @@
 	<circle id="XMLID_1_" class="st0" cx="483.6" cy="436.1" r="1.2"/>
 	<path id="XMLID_311_" class="st0" d="M483.8,436.2c-0.1-0.1-2.3,3.3-1.1,5.5c1.4,2.7,6.4,2.1,7.4-0.8c0.8-2.4-1.6-5.4-1.8-5.3
 		c-0.1,0.1,1.4,2.5,0.5,4.4c-1,2.1-3.6,2.3-4.9,0.3C482.7,438.5,483.9,436.3,483.8,436.2z"/>
-	
+
 		<rect id="XMLID_312_" x="482.9" y="443.1" transform="matrix(0.7488 0.6629 -0.6629 0.7488 418.3834 -210.2396)" class="st1" width="7.3" height="7.3"/>
 </g>
 </svg>
diff --git a/resources/vector/body/addon/pussy piercing heavy.svg b/resources/vector/body/addon/pussy piercing heavy.svg
index 195f0379d6a18deeb562b5846fb354ad00496ac9..1cc659402fbbad8b3f78ee71aaffeb59a54627e9 100644
--- a/resources/vector/body/addon/pussy piercing heavy.svg	
+++ b/resources/vector/body/addon/pussy piercing heavy.svg	
@@ -9,9 +9,9 @@
 	<path id="XMLID_275_" class="st0" d="M491.3,459.9c0.2,0,2,2.8,0.8,5.2c-1,2-3.6,3.1-6,2c-2.1-1.1-2.8-3.7-2-5.6
 		c0.9-2.4,3.7-3.1,3.9-2.9c0.1,0.2-2.6,1.4-2.7,3.6c-0.1,1.2,0.5,2.6,1.9,3.1c1.4,0.6,3.1,0,3.9-1
 		C492.4,462.6,491.2,460,491.3,459.9z"/>
-	
+
 		<ellipse id="XMLID_274_" transform="matrix(-0.9904 0.1385 -0.1385 -0.9904 1031.9863 859.9408)" class="st0" cx="486.1" cy="465.9" rx="1.8" ry="2"/>
-	
+
 		<ellipse id="XMLID_273_" transform="matrix(-0.9904 0.1385 -0.1385 -0.9904 1037.9608 861.3239)" class="st0" cx="489" cy="466.8" rx="1.7" ry="1.8"/>
 	<path id="XMLID_272_" class="st0" d="M488,449.7c0.2,0,1.7,3,0.1,5.2c-1.2,1.8-4.1,2.6-6.1,1.2c-2-1.4-2.2-4.1-1.2-5.8
 		c1.2-2.2,4.2-2.6,4.3-2.4c0.1,0.2-2.8,1.1-3.1,3.1c-0.2,1.2,0.2,2.6,1.4,3.4c1.3,0.9,3.1,0.4,4-0.4
@@ -20,16 +20,16 @@
 	<ellipse id="XMLID_270_" class="st0" cx="482.6" cy="455.4" rx="1.7" ry="1.8"/>
 	<path id="XMLID_269_" class="st0" d="M491.3,459.3c-0.2,0-1.4,3.2,0.4,5.2c1.4,1.7,4.3,2.2,6.2,0.6c1.9-1.5,1.9-4.3,0.8-5.9
 		c-1.3-2.1-4.4-2.2-4.4-2s2.8,0.8,3.4,2.8c0.3,1.1,0,2.6-1.1,3.5c-1.2,1-3,0.7-4-0.2C490.9,462.1,491.5,459.3,491.3,459.3z"/>
-	
+
 		<ellipse id="XMLID_268_" transform="matrix(0.9965 -8.364829e-002 8.364829e-002 0.9965 -37.0735 43.2815)" class="st0" cx="498" cy="464.1" rx="1.8" ry="2"/>
-	
+
 		<ellipse id="XMLID_267_" transform="matrix(0.9965 -8.364948e-002 8.364948e-002 0.9965 -37.2023 43.0654)" class="st0" cx="495.3" cy="465.5" rx="1.7" ry="1.8"/>
 	<path id="XMLID_266_" class="st0" d="M488.5,449.9c-0.2,0-0.8,3.4,1.3,5.1c1.7,1.3,4.6,1.4,6.2-0.5c1.5-1.9,1-4.5-0.4-6
 		c-1.8-1.8-4.7-1.3-4.7-1.2c-0.1,0.3,2.9,0.3,3.9,2.1c0.5,1.1,0.5,2.6-0.4,3.6c-1.1,1.2-2.8,1.2-4,0.6
 		C488.7,452.7,488.7,449.8,488.5,449.9z"/>
-	
+
 		<ellipse id="XMLID_265_" transform="matrix(0.9627 -0.2707 0.2707 0.9627 -104.7882 150.3477)" class="st0" cx="492.7" cy="455.1" rx="1.8" ry="2"/>
-	
+
 		<ellipse id="XMLID_264_" transform="matrix(0.9627 -0.2707 0.2707 0.9627 -104.396 151.0398)" class="st0" cx="495.4" cy="454" rx="1.7" ry="1.8"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/belly preg.svg b/resources/vector/body/white/belly preg.svg
index 4dca6783247b96bf94926c9e14013263d899543d..3deef9e3db4f70d176fffde06096ab352cb180ee 100644
--- a/resources/vector/body/white/belly preg.svg	
+++ b/resources/vector/body/white/belly preg.svg	
@@ -12,7 +12,7 @@
 		c-40.1,6.2-61.8,42.8-63.9,96.9C435.1,417.8,466,435.8,494.8,433.8z"/>
 	<path id="XMLID_251_" class="st1" d="M494.8,433.8c20.8,0.1,49.4-13,61.9-42.4c12.5-29.4-18.5-83.4-46-101.7
 		c-6.5-4.3-38.7-8.2-40.4,0c-2.6,11.6-44.9,33.3-41.4,96.8C430.7,421.3,474,433.7,494.8,433.8z"/>
-	
+
 		<ellipse id="XMLID_250_" transform="matrix(0.9799 -0.1994 0.1994 0.9799 -69.6424 101.0976)" class="st2" cx="467.1" cy="396.3" rx="2.8" ry="3.1"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 0 areola.svg b/resources/vector/body/white/boob 0 areola.svg
index 82b63852a9220b724bd8f05127a1c3f0d446e192..d56b2b1ca0dba30cb2498de799feb4932e3f1e68 100644
--- a/resources/vector/body/white/boob 0 areola.svg	
+++ b/resources/vector/body/white/boob 0 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_3_">
 	<path id="XMLID_244_" class="st0" d="M467.8,271.4c1.3-0.4,2.9,1.2,3.5,3.5c0.5,2.3-0.1,4.5-1.3,4.9c-1.3,0.4-2.9-1.2-3.5-3.5
 		C465.7,273.9,466.4,271.8,467.8,271.4z"/>
-	
+
 		<ellipse id="XMLID_243_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 774.4482 -268.8443)" class="st0" cx="530.7" cy="278.8" rx="6.1" ry="4.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 1 areola.svg b/resources/vector/body/white/boob 1 areola.svg
index 76007aded515f067f4ceb1f42a6dfa4a163b787e..9f08607efef937f6c47ca40fcde5e31be04bd9a8 100644
--- a/resources/vector/body/white/boob 1 areola.svg	
+++ b/resources/vector/body/white/boob 1 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_2_">
 	<path id="XMLID_206_" class="st0" d="M452.2,271.7c1.3-0.4,2.9,1.2,3.5,3.5c0.5,2.3-0.1,4.5-1.3,4.9c-1.3,0.4-2.9-1.2-3.5-3.5
 		C450.3,274.3,450.9,272.1,452.2,271.7z"/>
-	
+
 		<ellipse id="XMLID_205_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 760.2567 -253.1356)" class="st0" cx="515.2" cy="279.1" rx="6.1" ry="4.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 2 areola.svg b/resources/vector/body/white/boob 2 areola.svg
index 4246d25049391aab6ac3f6968dc4094aad78d0bf..0097842d090dfef141fce4556ec4503ceeeb2aad 100644
--- a/resources/vector/body/white/boob 2 areola.svg	
+++ b/resources/vector/body/white/boob 2 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola">
 	<path id="XMLID_168_" class="st0" d="M437,285c1.7-0.4,3.6,1.5,4.4,4.4c0.7,2.8-0.1,5.6-1.7,6c-1.7,0.4-3.6-1.5-4.4-4.4
 		C434.5,288.1,435.3,285.5,437,285z"/>
-	
+
 		<ellipse id="XMLID_167_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 775.0793 -238.9386)" class="st0" cx="515" cy="294.1" rx="7.6" ry="6"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 3 areola.svg b/resources/vector/body/white/boob 3 areola.svg
index ffb493c51d5ad82c4ffaabd30970e4c00c40de14..994bb23e88fad7da7f402b3dc4dfdd3b59053b44 100644
--- a/resources/vector/body/white/boob 3 areola.svg	
+++ b/resources/vector/body/white/boob 3 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_4_">
 	<path id="XMLID_130_" class="st0" d="M424.2,296.1c2-0.5,4.4,1.9,5.2,5.2c0.9,3.5-0.1,6.8-2,7.3c-2,0.5-4.4-1.9-5.2-5.2
 		C421.2,299.9,422.2,296.7,424.2,296.1z"/>
-	
+
 		<ellipse id="XMLID_129_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 791.2404 -230.0869)" class="st0" cx="518.4" cy="307.1" rx="9.2" ry="7.3"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 4 areola.svg b/resources/vector/body/white/boob 4 areola.svg
index 81a2954d7175d3021dd589af98edac620faa773e..8741a94158444eb223d2dfedb9509bccaf4072f2 100644
--- a/resources/vector/body/white/boob 4 areola.svg	
+++ b/resources/vector/body/white/boob 4 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_5_">
 	<path id="XMLID_92_" class="st0" d="M394.6,323.8c2.7-0.7,5.8,2.4,6.8,6.8c1.2,4.4-0.2,8.8-2.7,9.5c-2.7,0.7-5.8-2.4-6.8-6.8
 		C390.7,328.7,392,324.4,394.6,323.8z"/>
-	
+
 		<ellipse id="XMLID_91_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 821.1389 -200.3058)" class="st0" cx="517.4" cy="338" rx="11.9" ry="9.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 5 areola.svg b/resources/vector/body/white/boob 5 areola.svg
index c2cbd5fdbfc22b0e096905e3625190d17834f43b..366759edaa0578e58eebe74887ddef30735f3876 100644
--- a/resources/vector/body/white/boob 5 areola.svg	
+++ b/resources/vector/body/white/boob 5 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_1_">
 	<path id="XMLID_54_" class="st0" d="M354.1,361.7c3.6-1,7.7,3.2,9.2,9.2c1.5,6-0.2,11.8-3.6,12.8c-3.6,1-7.7-3.2-9.2-9.2
 		C348.9,368.3,350.6,362.6,354.1,361.7z"/>
-	
+
 		<ellipse id="XMLID_53_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 865.7677 -162.0763)" class="st0" cx="519.4" cy="380.9" rx="16" ry="12.8"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 6 areola.svg b/resources/vector/body/white/boob 6 areola.svg
index c8de7c78ca8c7af5addc78ee3df3c8c268127d2f..3c04e1546e78cfc045723bbf0cbda7f1bd382cfd 100644
--- a/resources/vector/body/white/boob 6 areola.svg	
+++ b/resources/vector/body/white/boob 6 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_6_">
 	<path id="XMLID_412_" class="st0" d="M303,408.5c4.7-1.3,10.2,4.2,12.2,12.2c2,8-0.2,15.6-4.7,16.9c-4.7,1.3-10.2-4.2-12.2-12.2
 		C296.1,417.2,298.3,409.7,303,408.5z"/>
-	
+
 		<ellipse id="XMLID_410_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 919.7263 -113.9278)" class="st0" cx="520.6" cy="433.7" rx="21.1" ry="16.9"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/boob 7 areola.svg b/resources/vector/body/white/boob 7 areola.svg
index 957dcf1917adde1dfff978c0ea68abe645e4985f..fcd9714602a98d48aa312a80fe4d87531882f356 100644
--- a/resources/vector/body/white/boob 7 areola.svg	
+++ b/resources/vector/body/white/boob 7 areola.svg	
@@ -8,7 +8,7 @@
 <g id="Areola_7_">
 	<path id="XMLID_455_" class="st0" d="M259.7,450.8c5.7-1.6,12.4,5.1,14.8,14.8c2.4,9.7-0.3,19-5.7,20.5
 		c-5.7,1.6-12.4-5.1-14.8-14.8C251.3,461.4,254,452.2,259.7,450.8z"/>
-	
+
 		<ellipse id="XMLID_453_" transform="matrix(6.481902e-002 0.9979 -0.9979 6.481902e-002 971.2539 -73.2956)" class="st0" cx="524.7" cy="481.5" rx="25.7" ry="20.5"/>
 </g>
 </svg>
diff --git a/resources/vector/body/white/preg belly 5000.svg b/resources/vector/body/white/preg belly 5000.svg
index 4dca6783247b96bf94926c9e14013263d899543d..3deef9e3db4f70d176fffde06096ab352cb180ee 100644
--- a/resources/vector/body/white/preg belly 5000.svg	
+++ b/resources/vector/body/white/preg belly 5000.svg	
@@ -12,7 +12,7 @@
 		c-40.1,6.2-61.8,42.8-63.9,96.9C435.1,417.8,466,435.8,494.8,433.8z"/>
 	<path id="XMLID_251_" class="st1" d="M494.8,433.8c20.8,0.1,49.4-13,61.9-42.4c12.5-29.4-18.5-83.4-46-101.7
 		c-6.5-4.3-38.7-8.2-40.4,0c-2.6,11.6-44.9,33.3-41.4,96.8C430.7,421.3,474,433.7,494.8,433.8z"/>
-	
+
 		<ellipse id="XMLID_250_" transform="matrix(0.9799 -0.1994 0.1994 0.9799 -69.6424 101.0976)" class="st2" cx="467.1" cy="396.3" rx="2.8" ry="3.1"/>
 </g>
 </svg>
diff --git a/resources/vector/outfit/ball gag fore.svg b/resources/vector/outfit/ball gag fore.svg
index cee02bd60401faa681a61ec81fd3f6fcb2ec41e3..78cb74192280ba95ae781dd59733c006f1314f5c 100644
--- a/resources/vector/outfit/ball gag fore.svg	
+++ b/resources/vector/outfit/ball gag fore.svg	
@@ -15,7 +15,7 @@
 <g id="Gag">
 	<path id="XMLID_867_" inkscape:connector-curvature="0" class="st0" d="M498,167.3c2.6,3.9,7.6,0.9,14,5.1c7.8,5,8.1,14,13.2,14
 		c1.7,0,3.5-1,4.3-2.4c4.5-7.7-18.1-34.7-27.5-31.1C497.6,154.6,495.3,163.1,498,167.3z"/>
-	<polygon id="XMLID_892_" class="st1" points="541.3,165 489,163.9 486.4,157.1 545.1,157.1 	"/>
+	<polygon id="XMLID_892_" class="st1" points="541.3,165 489,163.9 486.4,157.1 545.1,157.1	"/>
 	<ellipse id="XMLID_893_" class="st2" cx="502.8" cy="161.1" rx="7.6" ry="8.7"/>
 </g>
 </svg>
diff --git a/resources/vector/outfit/chastity male fore 0.svg b/resources/vector/outfit/chastity male fore 0.svg
index 947bd94f3c14d2d164028bd8d8be81e54a8131bb..d693cf15c67e542d8b00377fcaf82238f0e56fc7 100644
--- a/resources/vector/outfit/chastity male fore 0.svg	
+++ b/resources/vector/outfit/chastity male fore 0.svg	
@@ -9,33 +9,33 @@
 	<g id="chastity_male_5_5_">
 		<g>
 			<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.0013 4.3553)" cx="480.3" cy="445.3" rx="1.8" ry="0.3"/>
-			
+
 				<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.0019 4.3547)" class="st0" cx="480.3" cy="445.4" rx="1.8" ry="0.3"/>
 		</g>
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -109.747 170.7623)" cx="484.8" cy="432.2" rx="0.3" ry="2.3"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -109.7311 170.7343)" class="st0" cx="484.7" cy="432.2" rx="0.3" ry="2.3"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -143.7794 266.5528)" cx="483.4" cy="432.8" rx="0.3" ry="2.6"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -143.7645 266.4998)" class="st0" cx="483.3" cy="432.8" rx="0.3" ry="2.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -153.1334 571.2214)" cx="481.1" cy="435.1" rx="0.3" ry="2.8"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -153.1785 571.1201)" class="st0" cx="481" cy="435.1" rx="0.3" ry="2.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -29.4134 842.6671)" cx="480.2" cy="438.6" rx="0.3" ry="2.7"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -29.5523 842.6018)" class="st0" cx="480.1" cy="438.7" rx="0.3" ry="2.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.3898 3.7013)" cx="480.2" cy="443.2" rx="0.3" ry="2.4"/>
-				
+
 					<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.3891 3.7008)" class="st0" cx="480.1" cy="443.1" rx="0.3" ry="2.4"/>
 			</g>
 			<g>
@@ -56,23 +56,23 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.6319 118.5546)" cx="486.2" cy="431.8" rx="0.2" ry="2.1"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.6187 118.5391)" class="st0" cx="486.1" cy="431.7" rx="0.2" ry="2.1"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -3.9805 4.3536)" cx="480.2" cy="443" rx="2.4" ry="0.3"/>
-				
+
 					<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -3.9811 4.3528)" class="st0" cx="480.1" cy="443.1" rx="2.3" ry="0.3"/>
 			</g>
 			<path d="M484.5,437.4"/>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -166.3126 423.3106)" cx="482.3" cy="433.8" rx="0.3" ry="2.7"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -166.3191 423.2261)" class="st0" cx="482.2" cy="433.8" rx="0.3" ry="2.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -103.3024 720.9841)" cx="480.6" cy="436.8" rx="0.3" ry="2.8"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -103.3987 720.8875)" class="st0" cx="480.5" cy="436.8" rx="0.3" ry="2.7"/>
 			</g>
 			<path d="M487.1,431.5c0,0.1-1.5,0.4-3.2,1.6c-0.6,0.4-1.3,0.9-2,1.7c-0.9,1.1-1.2,2.1-1.3,2.4c-0.2,0.7-0.3,1.4-0.3,2
@@ -87,15 +87,15 @@
 			<path class="st0" d="M479.5,432.6"/>
 			<path d="M478,431.7"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 21.5063 903.8339)" cx="480.3" cy="440.7" rx="0.3" ry="2.5"/>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 21.3531 903.7986)" class="st0" cx="480.2" cy="440.8" rx="0.3" ry="2.5"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9759 16.3235)" cx="487.4" cy="431.4" rx="0.2" ry="2"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9736 16.3218)" class="st0" cx="487.3" cy="431.4" rx="0.2" ry="2"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 1.svg b/resources/vector/outfit/chastity male fore 1.svg
index f8d469e66a4c0c3adcd78a0b2ea044fd02ce7856..a290ea8877f6b0a93e9c6d896135e119bcde6a23 100644
--- a/resources/vector/outfit/chastity male fore 1.svg	
+++ b/resources/vector/outfit/chastity male fore 1.svg	
@@ -9,33 +9,33 @@
 	<g id="chastity_male_5_4_">
 		<g>
 			<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.1116 4.312)" cx="475.5" cy="457.5" rx="3.3" ry="0.6"/>
-			
+
 				<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.1127 4.3109)" class="st0" cx="475.4" cy="457.6" rx="3.2" ry="0.5"/>
 		</g>
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.1412 170.4926)" cx="483.8" cy="433.3" rx="0.5" ry="4.3"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.1119 170.4408)" class="st0" cx="483.6" cy="433.2" rx="0.5" ry="4.2"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -144.7493 265.7138)" cx="481.2" cy="434.4" rx="0.6" ry="4.9"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -144.7218 265.6161)" class="st0" cx="481" cy="434.3" rx="0.5" ry="4.8"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -157.7537 569.306)" cx="476.9" cy="438.7" rx="0.6" ry="5.1"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -157.8369 569.1187)" class="st0" cx="476.7" cy="438.7" rx="0.5" ry="5.1"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -40.0248 843.2256)" cx="475.2" cy="445.1" rx="0.6" ry="4.9"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -40.2815 843.1051)" class="st0" cx="475" cy="445.2" rx="0.5" ry="4.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.4698 3.6635)" cx="475.3" cy="453.6" rx="0.6" ry="4.5"/>
-				
+
 					<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.4685 3.6626)" class="st0" cx="475.1" cy="453.4" rx="0.5" ry="4.4"/>
 			</g>
 			<g>
@@ -56,22 +56,22 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.7847 118.5983)" cx="486.3" cy="432.5" rx="0.4" ry="3.9"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.7604 118.5697)" class="st0" cx="486.2" cy="432.3" rx="0.4" ry="3.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.0731 4.3089)" cx="475.2" cy="453.2" rx="4.4" ry="0.6"/>
-				
+
 					<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.0743 4.3074)" class="st0" cx="475" cy="453.4" rx="4.3" ry="0.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -168.7034 421.8014)" cx="479.1" cy="436.2" rx="0.6" ry="5"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -168.7155 421.6453)" class="st0" cx="478.8" cy="436.2" rx="0.5" ry="5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -110.7958 719.8)" cx="476" cy="441.7" rx="0.6" ry="5.1"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -110.9738 719.6215)" class="st0" cx="475.8" cy="441.7" rx="0.5" ry="5.1"/>
 			</g>
 			<path d="M488.1,432c0,0.1-2.7,0.7-5.9,2.9c-1.2,0.8-2.4,1.6-3.6,3.1c-1.6,2-2.2,3.9-2.4,4.4c-0.4,1.3-0.5,2.7-0.6,3.6
@@ -82,15 +82,15 @@
 				c-0.1,0.1-0.3,0.5-0.6,1.1c-2.3,4.7-1.4,9.4-1.8,9.4c-0.1,0-0.3-0.4-0.3-0.7c-0.2-0.7-0.8-3,0.7-7.3c0.3-0.8,0.7-1.8,1.3-3
 				c0.7-1.1,1.4-1.9,1.9-2.4c0,0,0.1-0.1,0.1-0.1c2.7-2.7,7.3-3.8,7.3-3.8C487.2,432,488.1,431.9,488.1,431.9z"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 8.4805 906.9459)" cx="475.4" cy="449.1" rx="0.6" ry="4.6"/>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 8.1973 906.8807)" class="st0" cx="475.2" cy="449.2" rx="0.5" ry="4.6"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9896 16.3609)" cx="488.5" cy="431.9" rx="0.4" ry="3.6"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9853 16.3578)" class="st0" cx="488.4" cy="431.7" rx="0.4" ry="3.6"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 2.svg b/resources/vector/outfit/chastity male fore 2.svg
index 5ad3f4f7dd2f6b1ecd863caa92660ff0c49f3098..3c084356ad1e2b33fe235a2e64d22b698985524b 100644
--- a/resources/vector/outfit/chastity male fore 2.svg	
+++ b/resources/vector/outfit/chastity male fore 2.svg	
@@ -14,27 +14,27 @@
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.4285 169.0153)" cx="479" cy="433.5" rx="0.7" ry="6.1"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.3869 168.9417)" class="st0" cx="478.7" cy="433.3" rx="0.7" ry="6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -145.6728 263.1042)" cx="475.3" cy="435" rx="0.8" ry="6.9"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -145.6338 262.9652)" class="st0" cx="475" cy="434.9" rx="0.8" ry="6.8"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -162.9033 564.0713)" cx="469.3" cy="441.1" rx="0.8" ry="7.2"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -163.0215 563.8052)" class="st0" cx="468.9" cy="441.1" rx="0.8" ry="7.2"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -52.1584 839.2234)" cx="466.8" cy="450.2" rx="0.8" ry="7"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -52.5232 839.0521)" class="st0" cx="466.5" cy="450.4" rx="0.8" ry="6.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.5368 3.5993)" cx="466.9" cy="462.3" rx="0.8" ry="6.4"/>
-				
+
 					<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.535 3.5979)" class="st0" cx="466.7" cy="462.1" rx="0.8" ry="6.3"/>
 			</g>
 			<g>
@@ -55,22 +55,22 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.8322 117.7637)" cx="482.6" cy="432.3" rx="0.6" ry="5.5"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.7977 117.723)" class="st0" cx="482.4" cy="432.1" rx="0.5" ry="5.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.1506 4.233)" cx="466.7" cy="461.8" rx="6.2" ry="0.8"/>
-				
+
 					<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.1522 4.2309)" class="st0" cx="466.5" cy="462" rx="6.2" ry="0.8"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -171.2854 417.6797)" cx="472.3" cy="437.6" rx="0.8" ry="7.2"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -171.3025 417.4578)" class="st0" cx="472" cy="437.5" rx="0.8" ry="7.1"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -119.3037 714.6041)" cx="467.9" cy="445.4" rx="0.8" ry="7.2"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -119.5567 714.3504)" class="st0" cx="467.6" cy="445.4" rx="0.8" ry="7.2"/>
 			</g>
 			<path d="M485,431.6c0.1,0.2-3.8,1.1-8.4,4.1c-1.6,1.1-3.4,2.3-5.2,4.5c-2.3,2.8-3.1,5.6-3.4,6.3c-0.6,1.9-0.8,3.8-0.9,5.2
@@ -81,15 +81,15 @@
 				c-0.1,0.2-0.4,0.7-0.8,1.5c-3.3,6.7-2,13.4-2.6,13.4c-0.2,0-0.4-0.6-0.5-1c-0.3-1-1.1-4.3,0.9-10.4c0.4-1.1,1-2.6,1.9-4.3
 				c1-1.5,2-2.6,2.8-3.4c0,0,0.1-0.1,0.1-0.1c3.9-3.8,10.4-5.4,10.4-5.4C483.8,431.6,485.1,431.4,485.1,431.5z"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 -6.3255 905.137)" cx="467" cy="455.9" rx="0.8" ry="6.5"/>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 -6.7279 905.0443)" class="st0" cx="466.8" cy="456" rx="0.8" ry="6.5"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9762 16.2676)" cx="485.7" cy="431.4" rx="0.6" ry="5.2"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9701 16.2633)" class="st0" cx="485.6" cy="431.2" rx="0.5" ry="5.1"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 3.svg b/resources/vector/outfit/chastity male fore 3.svg
index 3dfe58ddf9febcbadaf13efcf5b5ab6814e14ed3..70a3a21351899367022844bb705a8a38b047daf7 100644
--- a/resources/vector/outfit/chastity male fore 3.svg	
+++ b/resources/vector/outfit/chastity male fore 3.svg	
@@ -9,33 +9,33 @@
 	<g id="chastity_male_5_2_">
 		<g>
 			<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.3743 4.1632)" cx="458.9" cy="486.5" rx="7.2" ry="1.3"/>
-			
+
 				<ellipse transform="matrix(1 -9.029423e-03 9.029423e-03 1 -4.3767 4.1608)" class="st0" cx="458.6" cy="486.8" rx="7.1" ry="1.2"/>
 		</g>
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.5409 168.4236)" cx="477" cy="433.6" rx="1.1" ry="9.3"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -110.4769 168.3101)" class="st0" cx="476.7" cy="433.3" rx="1" ry="9.3"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -146.4997 261.4242)" cx="471.4" cy="435.9" rx="1.3" ry="10.7"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -146.4395 261.2099)" class="st0" cx="471" cy="435.7" rx="1.2" ry="10.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -169.265 559.971)" cx="462.1" cy="445.2" rx="1.3" ry="11.2"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -169.4474 559.5605)" class="st0" cx="461.6" cy="445.2" rx="1.2" ry="11.1"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -68.3341 838.4819)" cx="458.3" cy="459.4" rx="1.3" ry="10.7"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -68.8968 838.2177)" class="st0" cx="457.8" cy="459.6" rx="1.2" ry="10.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.6574 3.5345)" cx="458.4" cy="478" rx="1.3" ry="9.8"/>
-				
+
 					<ellipse transform="matrix(1 -7.680404e-03 7.680404e-03 1 -3.6546 3.5324)" class="st0" cx="458.1" cy="477.6" rx="1.2" ry="9.7"/>
 			</g>
 			<g>
@@ -56,23 +56,23 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.6923 117.7559)" cx="482.6" cy="431.6" rx="0.9" ry="8.6"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -83.6391 117.6932)" class="st0" cx="482.4" cy="431.4" rx="0.8" ry="8.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.29 4.1563)" cx="458.2" cy="477.2" rx="9.6" ry="1.3"/>
-				
+
 					<ellipse transform="matrix(1 -9.029380e-03 9.029380e-03 1 -4.2924 4.1531)" class="st0" cx="457.8" cy="477.4" rx="9.5" ry="1.2"/>
 			</g>
 			<path d="M475.7,454.4"/>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -174.1549 414.5935)" cx="466.7" cy="439.9" rx="1.3" ry="11.1"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -174.1813 414.2514)" class="st0" cx="466.2" cy="439.8" rx="1.2" ry="11"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -130.3141 711.3275)" cx="460" cy="451.9" rx="1.3" ry="11.2"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -130.7043 710.9363)" class="st0" cx="459.5" cy="452" rx="1.2" ry="11.1"/>
 			</g>
 			<path d="M486.4,430.5c0.1,0.2-5.9,1.6-13,6.3c-2.5,1.7-5.3,3.5-8,6.9c-3.5,4.4-4.8,8.6-5.2,9.7c-0.9,2.9-1.2,5.9-1.4,8
@@ -87,15 +87,15 @@
 			<path class="st0" d="M455.6,434.9"/>
 			<path d="M449.2,431.5"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 -26.5543 908.4625)" cx="458.7" cy="468" rx="1.3" ry="10.1"/>
-				
+
 					<ellipse transform="matrix(3.821885e-02 -0.9993 0.9993 3.821885e-02 -27.1749 908.3197)" class="st0" cx="458.3" cy="468.3" rx="1.2" ry="10"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9396 16.324)" cx="487.4" cy="430.3" rx="0.9" ry="8"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300942e-02 3.300942e-02 0.9995 -13.9302 16.3173)" class="st0" cx="487.2" cy="430" rx="0.8" ry="7.9"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 4.svg b/resources/vector/outfit/chastity male fore 4.svg
index e60ef11ba84d0e55ab733ab2e4712f1772ad76b2..428b6d35cf42634a7508bcd30a8eb32db68fe9bb 100644
--- a/resources/vector/outfit/chastity male fore 4.svg	
+++ b/resources/vector/outfit/chastity male fore 4.svg	
@@ -9,33 +9,33 @@
 	<g id="chastity_male_5_2_">
 		<g>
 			<ellipse transform="matrix(1 -9.029055e-03 9.029055e-03 1 -4.5007 4.0808)" cx="449.7" cy="500.5" rx="8.8" ry="1.6"/>
-			
+
 				<ellipse transform="matrix(1 -9.029055e-03 9.029055e-03 1 -4.504 4.0775)" class="st0" cx="449.3" cy="500.9" rx="8.7" ry="1.5"/>
 		</g>
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -111.5603 166.926)" cx="471.8" cy="436" rx="1.3" ry="11.3"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -111.4638 166.7897)" class="st0" cx="471.4" cy="435.7" rx="1.2" ry="11.3"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -148.5177 258.8278)" cx="464.9" cy="438.8" rx="1.6" ry="13"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -148.4524 258.5858)" class="st0" cx="464.5" cy="438.6" rx="1.5" ry="12.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -176.8199 555.0465)" cx="453.5" cy="450.2" rx="1.6" ry="13.6"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -177.0554 554.5748)" class="st0" cx="452.9" cy="450.1" rx="1.5" ry="13.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -84.0521 836.002)" cx="448.9" cy="467.4" rx="1.6" ry="13"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -84.8221 835.7343)" class="st0" cx="448.4" cy="467.7" rx="1.5" ry="12.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -3.7511 3.4635)" cx="449.1" cy="490.1" rx="1.6" ry="11.9"/>
-				
+
 					<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -3.7473 3.4607)" class="st0" cx="448.7" cy="489.6" rx="1.5" ry="11.8"/>
 			</g>
 			<g>
@@ -56,22 +56,22 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.2233 116.8819)" cx="478.5" cy="433.6" rx="1.1" ry="10.5"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.1713 116.8251)" class="st0" cx="478.3" cy="433.3" rx="1" ry="10.4"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.3984 4.0726)" cx="448.9" cy="489.2" rx="11.7" ry="1.6"/>
-				
+
 					<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.4006 4.0682)" class="st0" cx="448.4" cy="489.4" rx="11.6" ry="1.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -178.5176 410.5447)" cx="459.1" cy="443.7" rx="1.6" ry="13.5"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -178.5867 410.1426)" class="st0" cx="458.6" cy="443.6" rx="1.5" ry="13.4"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -141.8914 707.0615)" cx="451.1" cy="458.3" rx="1.6" ry="13.6"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -142.386 706.5995)" class="st0" cx="450.5" cy="458.4" rx="1.5" ry="13.5"/>
 			</g>
 			<path d="M483.2,432.2c0.1,0.2-7.2,1.9-15.8,7.7c-3,2.1-6.5,4.3-9.7,8.4c-4.3,5.4-5.8,10.5-6.3,11.8c-1.1,3.5-1.5,7.2-1.7,9.7
@@ -82,15 +82,15 @@
 				c-0.2,0.2-0.9,1.3-1.6,2.8c-6.2,12.5-3.7,25.1-4.8,25.2c-0.4,0-0.7-1.1-0.9-1.8c-0.5-1.9-2.1-8,1.8-19.5c0.7-2.1,1.8-4.9,3.5-8
 				c1.9-2.8,3.8-5,5.2-6.3c0.1-0.1,0.1-0.1,0.2-0.2c7.3-7.2,19.5-10.1,19.5-10.1C480.9,432.4,483.3,432,483.3,432.2z"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -45.3476 908.6811)" cx="449.4" cy="477.9" rx="1.6" ry="12.3"/>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -46.0682 908.5864)" class="st0" cx="449" cy="478.2" rx="1.5" ry="12.2"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9963 16.2254)" cx="484.4" cy="432" rx="1.1" ry="9.7"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9844 16.2172)" class="st0" cx="484.2" cy="431.7" rx="1" ry="9.6"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 5.svg b/resources/vector/outfit/chastity male fore 5.svg
index a38bfc843eac3a726292790551207eee496aadea..9e705da0d8dcfbeefe38584109f4663e1cc857f3 100644
--- a/resources/vector/outfit/chastity male fore 5.svg	
+++ b/resources/vector/outfit/chastity male fore 5.svg	
@@ -9,33 +9,33 @@
 	<g id="chastity_male_5_2_">
 		<g>
 			<ellipse transform="matrix(1 -9.029055e-03 9.029055e-03 1 -4.6774 3.9848)" cx="439" cy="520" rx="11.4" ry="2.1"/>
-			
+
 				<ellipse transform="matrix(1 -9.029055e-03 9.029055e-03 1 -4.6817 3.9806)" class="st0" cx="438.5" cy="520.5" rx="11.2" ry="1.9"/>
 		</g>
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -111.8841 165.6582)" cx="467.6" cy="436.4" rx="1.7" ry="14.7"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -111.759 165.4814)" class="st0" cx="467.1" cy="435.9" rx="1.6" ry="14.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -149.7426 256.1461)" cx="458.7" cy="440" rx="2.1" ry="16.9"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -149.6579 255.8323)" class="st0" cx="458.1" cy="439.7" rx="1.9" ry="16.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -184.5233 549.1611)" cx="443.9" cy="454.7" rx="2.1" ry="17.7"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -184.8288 548.5495)" class="st0" cx="443.1" cy="454.7" rx="1.9" ry="17.5"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -102.8167 833.3342)" cx="438" cy="477" rx="2.1" ry="16.9"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -103.8153 832.9871)" class="st0" cx="437.3" cy="477.5" rx="1.9" ry="16.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -3.8777 3.3803)" cx="438.2" cy="506.6" rx="2.1" ry="15.5"/>
-				
+
 					<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -3.8729 3.3766)" class="st0" cx="437.7" cy="505.9" rx="1.9" ry="15.3"/>
 			</g>
 			<g>
@@ -56,22 +56,22 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.2034 116.3937)" cx="476.4" cy="433.3" rx="1.4" ry="13.6"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.1359 116.3201)" class="st0" cx="476.1" cy="432.9" rx="1.3" ry="13.4"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.5447 3.9742)" cx="437.9" cy="505.3" rx="15.2" ry="2.1"/>
-				
+
 					<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.5476 3.9685)" class="st0" cx="437.2" cy="505.6" rx="15" ry="1.9"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -182.219 406.0033)" cx="451.2" cy="446.4" rx="2.1" ry="17.5"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -182.3086 405.4819)" class="st0" cx="450.5" cy="446.3" rx="1.9" ry="17.4"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -154.8735 701.8762)" cx="440.7" cy="465.3" rx="2.1" ry="17.7"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -155.5149 701.2772)" class="st0" cx="440" cy="465.4" rx="1.9" ry="17.5"/>
 			</g>
 			<path d="M482.4,431.5c0.2,0.3-9.3,2.5-20.5,10c-3.9,2.7-8.4,5.5-12.6,10.9c-5.5,7-7.6,13.6-8.2,15.3c-1.4,4.6-1.9,9.3-2.2,12.6
@@ -83,15 +83,15 @@
 				c0.9-2.7,2.4-6.3,4.6-10.4c2.5-3.6,4.9-6.5,6.8-8.2c0.2-0.2,0.2-0.2,0.3-0.3c9.5-9.3,25.3-13.1,25.3-13.1
 				C479.4,431.7,482.6,431.2,482.6,431.5z"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -68.5551 910.1953)" cx="438.6" cy="490.7" rx="2.1" ry="16"/>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -69.4896 910.0724)" class="st0" cx="438" cy="491.1" rx="1.9" ry="15.8"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9701 16.2114)" cx="484" cy="431.2" rx="1.4" ry="12.6"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9546 16.2007)" class="st0" cx="483.7" cy="430.8" rx="1.3" ry="12.5"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/chastity male fore 6.svg b/resources/vector/outfit/chastity male fore 6.svg
index 5d84a9acd793fcf1ab7144e779f030aad2fb7e9f..e497afd4f0bd91e49a2cb6640a2fc4aee164cbe2 100644
--- a/resources/vector/outfit/chastity male fore 6.svg	
+++ b/resources/vector/outfit/chastity male fore 6.svg	
@@ -14,27 +14,27 @@
 		<g>
 			<g>
 				<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -112.1837 163.5743)" cx="460.9" cy="436.3" rx="2.1" ry="18.1"/>
-				
+
 					<ellipse transform="matrix(0.9512 -0.3087 0.3087 0.9512 -112.0293 163.3563)" class="st0" cx="460.3" cy="435.7" rx="1.9" ry="18.1"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -151.0392 252.23)" cx="449.9" cy="440.8" rx="2.5" ry="20.9"/>
-				
+
 					<ellipse transform="matrix(0.8911 -0.4539 0.4539 0.8911 -150.9347 251.8429)" class="st0" cx="449.2" cy="440.4" rx="2.3" ry="20.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -193.0136 540.9384)" cx="431.6" cy="458.9" rx="2.5" ry="21.8"/>
-				
+
 					<ellipse transform="matrix(0.5844 -0.8114 0.8114 0.5844 -193.3904 540.184)" class="st0" cx="430.7" cy="458.9" rx="2.3" ry="21.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -123.5585 827.7478)" cx="424.3" cy="486.4" rx="2.5" ry="20.9"/>
-				
+
 					<ellipse transform="matrix(0.1595 -0.9872 0.9872 0.1595 -124.7902 827.3197)" class="st0" cx="423.5" cy="486.9" rx="2.3" ry="20.7"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -4.0032 3.2763)" cx="424.6" cy="522.9" rx="2.5" ry="19.1"/>
-				
+
 					<ellipse transform="matrix(1 -7.680178e-03 7.680178e-03 1 -3.9972 3.2718)" class="st0" cx="424" cy="522.1" rx="2.3" ry="18.9"/>
 			</g>
 			<g>
@@ -55,22 +55,22 @@
 			</g>
 			<g>
 				<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.1357 115.333)" cx="471.7" cy="432.4" rx="1.8" ry="16.8"/>
-				
+
 					<ellipse transform="matrix(0.9751 -0.2217 0.2217 0.9751 -84.0525 115.2422)" class="st0" cx="471.3" cy="432" rx="1.6" ry="16.6"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.6897 3.8514)" cx="424.2" cy="521.3" rx="18.7" ry="2.5"/>
-				
+
 					<ellipse transform="matrix(1 -9.029012e-03 9.029012e-03 1 -4.6932 3.8443)" class="st0" cx="423.4" cy="521.7" rx="18.5" ry="2.3"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -186.2816 399.6193)" cx="440.7" cy="448.6" rx="2.5" ry="21.6"/>
-				
+
 					<ellipse transform="matrix(0.7542 -0.6566 0.6566 0.7542 -186.3922 398.9762)" class="st0" cx="439.8" cy="448.5" rx="2.3" ry="21.4"/>
 			</g>
 			<g>
 				<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -169.2202 693.9716)" cx="427.7" cy="471.9" rx="2.5" ry="21.8"/>
-				
+
 					<ellipse transform="matrix(0.3711 -0.9286 0.9286 0.3711 -170.0115 693.2327)" class="st0" cx="426.8" cy="472.1" rx="2.3" ry="21.6"/>
 			</g>
 			<path d="M479.1,430.3c0.2,0.4-11.5,3.1-25.3,12.3c-4.9,3.3-10.3,6.8-15.6,13.4c-6.8,8.6-9.4,16.8-10.1,18.9
@@ -82,15 +82,15 @@
 				c1.2-3.3,2.9-7.8,5.7-12.9c3.1-4.5,6-8,8.4-10.1c0.2-0.2,0.2-0.2,0.4-0.4c11.7-11.5,31.2-16.2,31.2-16.2
 				C475.4,430.5,479.3,429.9,479.3,430.3z"/>
 			<g>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -94.1239 908.785)" cx="425" cy="503.3" rx="2.5" ry="19.7"/>
-				
+
 					<ellipse transform="matrix(3.821768e-02 -0.9993 0.9993 3.821768e-02 -95.2766 908.6335)" class="st0" cx="424.4" cy="503.8" rx="2.3" ry="19.5"/>
 			</g>
 			<g>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9284 16.1148)" cx="481.1" cy="429.9" rx="1.8" ry="15.6"/>
-				
+
 					<ellipse transform="matrix(0.9995 -3.300794e-02 3.300794e-02 0.9995 -13.9093 16.1016)" class="st0" cx="480.7" cy="429.3" rx="1.6" ry="15.4"/>
 			</g>
 		</g>
diff --git a/resources/vector/outfit/cruel retirement counter.svg b/resources/vector/outfit/cruel retirement counter.svg
index 1be1c7994179eb951591c58af432591fcc20b11a..0a9a5bafa0e7160d3b11a36681ad0578e7e13400 100644
--- a/resources/vector/outfit/cruel retirement counter.svg	
+++ b/resources/vector/outfit/cruel retirement counter.svg	
@@ -21,7 +21,7 @@
 			</g>
 		</g>
 		<g>
-			<polygon points="523.1,193.8 516.9,193.8 516.4,190.9 523.6,190.9 			"/>
+			<polygon points="523.1,193.8 516.9,193.8 516.4,190.9 523.6,190.9			"/>
 			<path class="st0" d="M523.1,191.4v2.4H517v-2.4H523.1 M523.6,190.9l-7.3-0.1l0.2,3h7.1V190.9L523.6,190.9z"/>
 		</g>
 		<text transform="matrix(1 0 0 1 517.1331 193.5328)" class="st1 st2 st3">8888</text>
diff --git a/resources/vector/outfit/dildo gag.svg b/resources/vector/outfit/dildo gag.svg
index 83369c4c4b26f710105b25fbece20a038cc16266..ddff2ca5ce452703fa96bd54fdbf15f6e2d9e5bb 100644
--- a/resources/vector/outfit/dildo gag.svg	
+++ b/resources/vector/outfit/dildo gag.svg	
@@ -10,7 +10,7 @@
 <g id="Gag">
 	<path id="XMLID_3_" class="st0" d="M498,167.3c2.6,3.9,7.6,0.9,14,5.1c7.8,5,8.1,14,13.2,14c1.7,0,3.5-1,4.3-2.4
 		c4.5-7.7-18.1-34.7-27.5-31.1C497.6,154.6,495.3,163.1,498,167.3z"/>
-	<polygon id="XMLID_2_" class="st1" points="486.4,157.1 545.1,157.1 541.3,165 489,163.9 	"/>
+	<polygon id="XMLID_2_" class="st1" points="486.4,157.1 545.1,157.1 541.3,165 489,163.9	"/>
 	<ellipse id="XMLID_309_" class="st2" cx="502.8" cy="161.1" rx="7.6" ry="8.7"/>
 </g>
 </svg>
diff --git a/resources/vector/outfit/gag.svg b/resources/vector/outfit/gag.svg
index 83369c4c4b26f710105b25fbece20a038cc16266..ddff2ca5ce452703fa96bd54fdbf15f6e2d9e5bb 100644
--- a/resources/vector/outfit/gag.svg
+++ b/resources/vector/outfit/gag.svg
@@ -10,7 +10,7 @@
 <g id="Gag">
 	<path id="XMLID_3_" class="st0" d="M498,167.3c2.6,3.9,7.6,0.9,14,5.1c7.8,5,8.1,14,13.2,14c1.7,0,3.5-1,4.3-2.4
 		c4.5-7.7-18.1-34.7-27.5-31.1C497.6,154.6,495.3,163.1,498,167.3z"/>
-	<polygon id="XMLID_2_" class="st1" points="486.4,157.1 545.1,157.1 541.3,165 489,163.9 	"/>
+	<polygon id="XMLID_2_" class="st1" points="486.4,157.1 545.1,157.1 541.3,165 489,163.9	"/>
 	<ellipse id="XMLID_309_" class="st2" cx="502.8" cy="161.1" rx="7.6" ry="8.7"/>
 </g>
 </svg>
diff --git a/resources/vector/outfit/leather with cowbell.svg b/resources/vector/outfit/leather with cowbell.svg
index 84b437e6fda9bcc4c4b22a98f52e3be5be5e2859..814b66e8eac9e64b4a83abae4abdcc2a5e9201fa 100644
--- a/resources/vector/outfit/leather with cowbell.svg	
+++ b/resources/vector/outfit/leather with cowbell.svg	
@@ -15,10 +15,10 @@
 				c-5.2,0-7.1-1.8-7.6-2.5c-0.1-0.1-0.1-0.3-0.1-0.4l0.9-3.4C513.2,189,513.5,188.9,513.8,189z"/>
 		</g>
 		<g id="Layer_13">
-			<polygon points="530.4,221.7 507.9,220.9 504.2,215.8 514.5,198 524.6,199 			"/>
+			<polygon points="530.4,221.7 507.9,220.9 504.2,215.8 514.5,198 524.6,199			"/>
 			<path d="M522.8,204.6L516,204l1.1-11.5l6.8,0.7L522.8,204.6z M517.2,202.8l4.5,0.4l0.9-9l-4.5-0.4L517.2,202.8z"/>
 			<path class="st0" d="M522.3,203.5l-7-0.7l1-10.7l7,0.7L522.3,203.5z M516.6,201.8l4.6,0.4l0.8-8.3l-4.6-0.4L516.6,201.8z"/>
-			<polygon class="st0" points="528.1,216.8 504.2,215.8 514.4,198 524,198.9 			"/>
+			<polygon class="st0" points="528.1,216.8 504.2,215.8 514.4,198 524,198.9			"/>
 			<line class="st1" x1="520.1" y1="191.4" x2="519.8" y2="194.8"/>
 		</g>
 	</g>
diff --git a/resources/vector/outfit/nice retirement counter.svg b/resources/vector/outfit/nice retirement counter.svg
index 00160374c0a4a11a968d898b49df375d078c51a7..ca5005bd944a3593286ef021a1263cee98d7b385 100644
--- a/resources/vector/outfit/nice retirement counter.svg	
+++ b/resources/vector/outfit/nice retirement counter.svg	
@@ -49,11 +49,11 @@
 		<path d="M534.3,193.3c-0.2,0.2-0.3,0.5-0.6,0.9c-0.2,0.4-0.4,0.7-0.5,0.9c0.2-0.2,0.3-0.5,0.6-0.9l0,0
 			C534,193.9,534.2,193.5,534.3,193.3z"/>
 		<g>
-			<polygon points="521,216.1 513.7,215.7 513.9,212.1 521.2,212.6 			"/>
+			<polygon points="521,216.1 513.7,215.7 513.9,212.1 521.2,212.6			"/>
 			<path d="M514.4,212.7l6.3,0.4l-0.1,2.5l-6.3-0.4L514.4,212.7 M513.9,212.1l-0.2,3.6l7.3,0.4l0.2-3.6L513.9,212.1L513.9,212.1z"/>
 		</g>
 		<g>
-			
+
 				<rect x="513.8" y="212.2" transform="matrix(0.9983 5.764509e-02 -5.764509e-02 0.9983 13.1916 -29.4672)" width="7.1" height="3.4"/>
 			<path class="st0" d="M514.4,212.6l6.1,0.4l-0.1,2.4l-6.1-0.4L514.4,212.6 M513.9,212l-0.2,3.4l7.1,0.4l0.2-3.4L513.9,212
 				L513.9,212z"/>
diff --git a/resources/vector/outfit/shock punishment.svg b/resources/vector/outfit/shock punishment.svg
index 9b30583def8502ca1267a680eaa60dfb0b2cb99b..212f1569d0ef92169a3151a5f76e6f51ff3424de 100644
--- a/resources/vector/outfit/shock punishment.svg	
+++ b/resources/vector/outfit/shock punishment.svg	
@@ -16,9 +16,9 @@
 			<path d="M519.9,194.4c-5.4,0-7.7-3.1-7.8-3.3c-0.5-0.7-0.3-1.6,0.4-2.1c0.7-0.5,1.6-0.3,2.1,0.4c0.2,0.3,4.4,5.6,16.9-2
 				c0.7-0.4,1.6-0.2,2.1,0.5c0.4,0.7,0.2,1.6-0.5,2.1C527.4,193.4,523.1,194.4,519.9,194.4z"/>
 		</g>
-		
+
 			<rect x="515.8" y="187.9" transform="matrix(0.9976 6.930247e-02 -6.930247e-02 0.9976 14.6313 -35.5031)" class="st0" width="6.3" height="10.5"/>
-		
+
 			<rect x="515.8" y="187.9" transform="matrix(0.9976 6.930247e-02 -6.930247e-02 0.9976 14.6186 -35.4925)" class="st1" width="6" height="10.1"/>
 		<circle class="st2" cx="518.7" cy="192.8" r="1.3"/>
 		<circle class="st3" cx="518.7" cy="192.7" r="1.2"/>
diff --git a/resources/vector/outfit/stylish leather.svg b/resources/vector/outfit/stylish leather.svg
index 56606c2a315d126df88729f74af57c6f2a74d722..d73b6d7d4615c98f672bed4783e80e9a5cb8a068 100644
--- a/resources/vector/outfit/stylish leather.svg	
+++ b/resources/vector/outfit/stylish leather.svg	
@@ -13,9 +13,9 @@
 			<path d="M513.7,188.8c1.8,1,8.4,3.6,18-1.9c0.3-0.2,0.6,0,0.7,0.3l0.7,3.5c0,0.2-0.1,0.4-0.2,0.5c-5.6,3.3-9.7,4.3-13,4.3
 				c-5.2,0-7.1-1.8-7.6-2.5c-0.1-0.1-0.1-0.3-0.1-0.4l0.9-3.4C513.1,188.8,513.4,188.6,513.7,188.8z"/>
 		</g>
-		<polygon class="st0" points="522.9,196.2 517.5,196.2 517.5,189.2 522.9,189.2 522.9,190.5 521.9,190.6 521.9,190.1 518.5,190.1 
-			518.5,195.3 521.9,195.3 521.9,194.7 522.9,194.7 		"/>
-		
+		<polygon class="st0" points="522.9,196.2 517.5,196.2 517.5,189.2 522.9,189.2 522.9,190.5 521.9,190.6 521.9,190.1 518.5,190.1
+			518.5,195.3 521.9,195.3 521.9,194.7 522.9,194.7		"/>
+
 			<rect x="517.4" y="191.4" transform="matrix(3.349746e-02 -0.9994 0.9994 3.349746e-02 307.9673 703.8356)" class="st0" width="1" height="2.5"/>
 	</g>
 </g>
diff --git a/resources/vector/test ui.svg b/resources/vector/test ui.svg
index fc38bb76305081ac8036bc82aa756972c860b2a8..c57ef7a8fc5055b2ea29b4de82897cf194cf60d2 100644
--- a/resources/vector/test ui.svg	
+++ b/resources/vector/test ui.svg	
@@ -67,7 +67,7 @@
 <circle id="XMLID_377_" class="st0" cx="85.5" cy="633.2" r="63.3"/>
 <circle id="XMLID_376_" class="st0" cx="219.4" cy="633.2" r="63.3"/>
 <circle id="XMLID_378_" class="st0" cx="149" cy="432.5" r="130.5"/>
-<polygon id="XMLID_370_" class="st1" points="111.7,363.3 186.3,363.3 230.3,386.7 213.7,414 189,410 193,470 109,470 112.3,408.7 
+<polygon id="XMLID_370_" class="st1" points="111.7,363.3 186.3,363.3 230.3,386.7 213.7,414 189,410 193,470 109,470 112.3,408.7
 	91.7,412.7 77.7,380 "/>
 <polygon id="XMLID_373_" class="st2" points="109,470 193,470 199.7,534.7 167,537.3 154,488 133.7,536 97.7,527.3 "/>
 </svg>
diff --git a/sanityCheck b/sanityCheck
index a9540854dbdfd26adc43ea2907aeb95349758530..dc0328cde623ce8b13859db984a3291b3eb73472 100755
--- a/sanityCheck
+++ b/sanityCheck
@@ -57,7 +57,7 @@ $GREP "\$slave\[" -- 'src/*' | myprint "ShouldBeSlaves"
 # Check for strange spaces e.g.  $slaves[$i]. lips
 $GREP "\$slaves\[\$i\]\. " -- 'src/*' | myprint "MissingPropertyAfterSlaves"
 # Check using refreshmentType instead of refreshment
-$GREP "\$PC.refreshmentType[^ =]" -- 'src/*' | myprint "ShouldBeRefreshment"
+$GREP "\$PC.refreshmentType[^ =]" -- 'src/*' | grep -v src/events/intro/introSummary.tw | myprint "ShouldBeRefreshment"
 # Check, e.g., <<//if>>
 $GREP "<</[a-zA-Z]*[^a-zA-Z<>]\+[a-zA-Z]*>>" -- 'src/*' | myprint "DoubleSlash"
 # Check, e.g.  <<else $foo==4
diff --git a/sanityCheck-java b/sanityCheck-java
deleted file mode 100755
index 455bbfbc243ec664f5aac2daa2ad74903d104962..0000000000000000000000000000000000000000
--- a/sanityCheck-java
+++ /dev/null
@@ -1 +0,0 @@
-java -jar SanityCheck.jar
diff --git a/sanityCheck-java.bat b/sanityCheck-java.bat
deleted file mode 100644
index 455bbfbc243ec664f5aac2daa2ad74903d104962..0000000000000000000000000000000000000000
--- a/sanityCheck-java.bat
+++ /dev/null
@@ -1 +0,0 @@
-java -jar SanityCheck.jar
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 477a44f14ee1bf6953d39b5505fe0d972ad7dddb..1af42e954557b838aa58704757de0d6ef98c8f3f 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -3631,10 +3631,10 @@ Once finished, add it into "customSlavesDatabase".
 To test if your slave is functioning, start up a normal game, swap to cheat mode, max your rep, and view other slaveowner's stock in the slave market. If you cannot find your slave in the list, and you didn't start the game with your slave, you should double check your slave for errors. If a slave named "Blank" is present, then you likely messed up. Once you find your slave, check their description to make sure it is correct. If it is not, you messed up somewhere in setting them up.
 
 
-@@.green; 			- something good or health/libido/attraction gain
-@@.red; 			- something bad or health/libido/attraction loss
+@@.green;			- something good or health/libido/attraction gain
+@@.red;			- something bad or health/libido/attraction loss
 @@.hotpink;			- devotion gain
-@@.mediumorchid; 		- devotion loss
+@@.mediumorchid;		- devotion loss
 @@.mediumaquamarine;		- trust gain
 @@.gold;					- trust loss
 @@.coral;					- notable change and fetish loss
@@ -3732,8 +3732,8 @@ or
 
 	Property list:
 
-	type 			- name of species. Should math slave.ovaType
-	normalOvaMin 	- normal/base ova count on ovulation (minimal)
+	type			- name of species. Should math slave.ovaType
+	normalOvaMin	- normal/base ova count on ovulation (minimal)
 	normalOvaMax	- normal/base ova count on ovulation (maximal)
 	normalBirth		- typical normal pregnancy length in weeks
 	minLiveBirth	- typical weeks that guarantee at least 90% chance to fetus survival if normal birth occur.
diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw
index 75abf368f29948f0bf93ec5b605b191cca57f4af..26bc7714d21d1db40fc983c89b44cd08aaf36e36 100644
--- a/src/SecExp/attackHandler.tw
+++ b/src/SecExp/attackHandler.tw
@@ -77,7 +77,7 @@
 	<<set _enemyHp = 0>>
 	<<set _enemyBaseHp = 0>>
 	<<set _woundChance = 5>>								/* leader has a base chance of 5% to get wounded */
-	<<set _tacChance = 0.5>> 								/* by default tactics have a 50% chance of succeeding */
+	<<set _tacChance = 0.5>>								/* by default tactics have a 50% chance of succeeding */
 	<<set _atkMod = 1>>
 	<<set _defMod = 1>>
 	<<set _militiaMod = 1>>
diff --git a/src/SecExp/rebellionGenerator.tw b/src/SecExp/rebellionGenerator.tw
index 2ea126c09af5fa316d5d86871bc4a8d0d5108e3e..a8b7d30003150fa013f80419b69d157f20eb573e 100644
--- a/src/SecExp/rebellionGenerator.tw
+++ b/src/SecExp/rebellionGenerator.tw
@@ -131,7 +131,7 @@
 <<if _slave < 0>>
 	<<set _slave = 0>>
 <<elseif _slave >= 95>>
-	<<set _slave = 95>> 																	/* there's always a min 5% chance nothing happens */
+	<<set _slave = 95>>																	/* there's always a min 5% chance nothing happens */
 <</if>>
 <<if _citizen < 0>>
 	<<set _citizen = 0>>
diff --git a/src/SecExp/rebellionHandler.tw b/src/SecExp/rebellionHandler.tw
index 57ced876ffcaab068dceaa35f4f295e1585f1af8..da997bc75dec166a173143354bc99a878f89b66b 100644
--- a/src/SecExp/rebellionHandler.tw
+++ b/src/SecExp/rebellionHandler.tw
@@ -15,7 +15,7 @@
 <<set _enemyHp = 0>>
 <<set _enemyBaseHp = 0>>
 <<set _woundChance = 5>>								/* leader has a base chance of 5% to get wounded */
-<<set _tacChance = 0.5>> 								/* by default tactics have a 50% chance of succeeding */
+<<set _tacChance = 0.5>>								/* by default tactics have a 50% chance of succeeding */
 <<set _expBonus = 0>>
 <<set _loyaltyBonus = 0>>
 <<set _irregularMod = 0>>
diff --git a/src/SecExp/securityReport.tw b/src/SecExp/securityReport.tw
index fa1ea2cb75d41e53694e63fd5b91c38ab5e39897..fa8f160352cdc1947a9315b08861cb499b8cedb1 100644
--- a/src/SecExp/securityReport.tw
+++ b/src/SecExp/securityReport.tw
@@ -14,6 +14,7 @@
 <<set _crimeCap = 0>>
 <<set _newCrime = 0>>
 <<set _recruits = 0>>
+<<set _recruitsMultiplier = 1>>
 <<set _newMercs = 0>>
 
 <<if $useTabs == 0>>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>__Security__<</if>>
@@ -286,127 +287,113 @@
 	<strong> Military</strong>: /* militia */
 	<<if $SF.Toggle && $SF.Active >= 1 && $SF.Size > 10>>
 		Having a powerful special force attracts a lot of citizens, hopeful that they may be able to fight along side it.
-	<<set _recruits += random(0,(Math.round($SF.Size/10)))>>
+	<<set _recruitsMultiplier *= 1 + (random(0, (Math.round($SF.Size / 10))) / 20)>> /* not sure how high $SF.Size goes, so I hope this makes sense */
 	<</if>>
 	<<if $propCampaign >= 1 && $propFocus == "recruitment">>
 		<<if $RecuriterOffice == 0 || $Recruiter == 0>>
 			<<if $propCampaignBoost == 1>>
-				<<set _recruits += 2>>
+				<<set _recruitsMultiplier *= 1.1>>
 			<<else>>
-				<<set _recruits += 1>>
+				<<set _recruitsMultiplier *= 1.05>>
 			<</if>>
 		<<else>>
 			<<setLocalPronouns $Recruiter>>
 			''__@@.pink;<<= SlaveFullName($Recruiter)>>@@__'' is able to further boost your militia recruitment campaign from $his PR hub office.
 			<<if $propCampaignBoost == 1>>
-				<<set _recruits += 4+Math.floor(($Recruiter.intelligence+$Recruiter.intelligenceImplant)/32)>>
+				<<set _recruitsMultiplier *= 1.2+Math.floor(($Recruiter.intelligence+$Recruiter.intelligenceImplant)/650)>>
 			<<else>>
-				<<set _recruits += 3+Math.floor(($Recruiter.intelligence+$Recruiter.intelligenceImplant)/32)>>
+				<<set _recruitsMultiplier *= 1.15+Math.floor(($Recruiter.intelligence+$Recruiter.intelligenceImplant)/650)>>
 			<</if>>
 		<</if>>
 	<</if>>
 	<<if $recruitVolunteers == 1>>
 		Your militia accepts only volunteering citizens, ready to defend their arcology.
-		<<set _recruits = random(1,2)>>
+		<<set _recruitLimit = 0.02>>
 		<<if $rep >= 10000>>
 			Many citizens volunteer just to fight for someone of your renown.
-			<<set _recruits += 1>>
+			<<set _recruitLimit += 0.0025>>
 		<</if>>
 		<<if $authority >= 10000>>
 			Many citizens feel it is their duty to fight for you, boosting volunteer enrollment.
-			<<set _recruits += 1>>
+			<<set _recruitLimit += 0.0025>>
 		<</if>>
 		<<if $lowerRquirements == 1>>
 			Your lax physical requirements to enter the militia allows for a greater number of citizens to join.
-			<<set _recruits += 1>>
-		<</if>>
-		<<if $militiaTotalManpower - $militiaTotalCasualties + _recruits <= 0.02 * $ACitizens>>
-			<<set $militiaTotalManpower += _recruits>>
-			<<set $militiaFreeManpower += _recruits>>
-			This week <<print _recruits>> citizens joined the militia.
-		<<else>>
-			There are not many more citizens willing to join the arcology armed forces. You'll need to enact higher recruitment edicts if you need more manpower.
+			<<set _recruitLimit += 0.0025>>
 		<</if>>
 	<<elseif $conscription == 1>>
 		Adult citizens are required to join the militia for a period of time.
-		<<set _recruits = random(3,5)>>
+		<<set _recruitLimit = 0.05>>
 		<<if $militaryExemption == 1>>
 			Some citizens prefer to contribute to the arcology's defense through financial support rather than military service, making you @@.yellowgreen;a small sum@@.
-			<<set _recruits -= random(1,2)>>
+			<<set _recruitLimit -= 0.005>>
 			<<run cashX(250, "securityExpansion")>>
 		<</if>>
 		<<if $lowerRquirements == 1>>
 			Your lax physical requirements to enter the militia allows for a greater number of citizens to join.
-			<<set _recruits += 1>>
+			<<set _recruitLimit += 0.005>>
 		<</if>>
 		<<if $noSubhumansInArmy == 1>>
 			Guaranteeing the purity of your armed forces comes with a small loss of potential recruits.
-			<<set _recruits -= random(0,1)>>
+			<<set _recruitLimit -= 0.005>>
 		<</if>>
 		<<if $pregExemption == 1>>
 			Many pregnant citizens prefer to avoid military service not to endanger themselves and their children.
-			<<set _recruits -= 1>>
-		<</if>>
-		<<if $militiaTotalManpower - $militiaTotalCasualties + _recruits <= 0.05 * $ACitizens>>
-			<<set $militiaTotalManpower += _recruits>>
-			<<set $militiaFreeManpower += _recruits>>
-			This week <<print _recruits>> citizens joined the militia.
-		<<else>>
-			There are not many more citizens able to join the arcology armed forces. You'll need to enact higher recruitment edicts if you need more manpower.
+			<<set _recruitLimit -= 0.005>>
 		<</if>>
 	<<elseif $militaryService == 1>>
 		Adult citizens are required to register and serve in the militia whenever necessary.
-		<<set _recruits = random(5,7)>>
+		<<set _recruitLimit = 0.1>>
 		<<if $militaryExemption == 1>>
 			Some citizens prefer to contribute to the arcology's defense through financial support rather than military service, making you @@.yellowgreen;a small sum@@.
-			<<set _recruits -= random(1,2)>>
+			<<set _recruitLimit -= 0.01>>
 			<<run cashX(250, "securityExpansion")>>
 		<</if>>
 		<<if $lowerRquirements == 1>>
 			Your lax physical requirements to enter the militia allows for a greater number of citizens to join.
-			<<set _recruits += 1>>
+			<<set _recruitLimit += 0.01>>
 		<</if>>
 		<<if $noSubhumansInArmy == 1>>
 			Guaranteeing the purity of your armed forces comes with a small loss of potential recruits.
-			<<set _recruits -= random(0,1)>>
+			<<set _recruitLimit -= 0.01>>
 		<</if>>
 		<<if $pregExemption == 1>>
 			Many pregnant citizens prefer to avoid military service not to endanger themselves and their children.
-			<<set _recruits -= 1>>
-		<</if>>
-		<<if $militiaTotalManpower - $militiaTotalCasualties + _recruits <= 0.10 * $ACitizens>>
-			<<set $militiaTotalManpower += _recruits>>
-			<<set $militiaFreeManpower += _recruits>>
-			This week <<print _recruits>> citizens joined the militia.
-		<<else>>
-			There are not many more citizens able to join the arcology armed forces. You'll need to enact higher recruitment edicts if you need more manpower.
+			<<set _recruitLimit -= 0.01>>
 		<</if>>
 	<<elseif $militarizedSociety == 1>>
 		Every citizen is required to train and participate in the military activities of the arcology.
-		<<set _recruits = random(7,9)>>
+		<<set _recruitLimit = 0.2>>
 		<<if $militaryExemption == 1>>
 			Some citizens prefer to contribute to the arcology's defense through financial support rather than military service, making you @@.yellowgreen;a small sum@@.
-			<<set _recruits -= random(1,2)>>
+			<<set _recruitLimit -= 0.02>>
 			<<run cashX(250, "securityExpansion")>>
 		<</if>>
 		<<if $lowerRquirements == 1>>
 			Your lax physical requirements to enter the militia allows for a greater number of citizens to join.
-			<<set _recruits += 1>>
+			<<set _recruitLimit += 0.02>>
 		<</if>>
 		<<if $noSubhumansInArmy == 1>>
 			Guaranteeing the purity of your armed forces comes with a small loss of potential recruits.
-			<<set _recruits -= random(0,1)>>
+			<<set _recruitLimit -= 0.02>>
 		<</if>>
 		<<if $pregExemption == 1>>
 			Many pregnant citizens prefer to avoid military service not to endanger themselves and their children.
-			<<set _recruits -= 1>>
+			<<set _recruitLimit -= 0.02>>
 		<</if>>
-		<<if $militiaTotalManpower - $militiaTotalCasualties + _recruits <= 0.20 * $ACitizens>>
+	<</if>>
+	<<if $militiaFounded == 1>>
+		<<set _recruits = Math.trunc((_recruitLimit * $ACitizens - ($militiaTotalManpower - $militiaTotalCasualties)) / 20 * _recruitsMultiplier)>>
+		<<if _recruits > 0>>
 			<<set $militiaTotalManpower += _recruits>>
 			<<set $militiaFreeManpower += _recruits>>
 			This week <<print _recruits>> citizens joined the militia.
+		<<elseif $militarizedSociety == 1>>
+			No citizens joined your militia this week because your society is as militarized as it can get.
+		<<elseif $recruitVolunteers == 1>>
+			There are no more citizens willing to join the arcology armed forces. You'll need to enact higher recruitment edicts if you need more manpower.
 		<<else>>
-			There are not many more citizens able to join the arcology armed forces. You'll need to enact higher recruitment edicts if you need more manpower.
+			No more citizens could be drafted into your militia. You'll need to enact higher recruitment edicts if you need more manpower.
 		<</if>>
 		<br>
 	<</if>>
diff --git a/src/SpecialForce/CheatEdit.tw b/src/SpecialForce/CheatEdit.tw
index bace689fa7b69c1bbddd11f6a49de8aad48b44ba..bde6d74be40d382fe513127e423fa4c873bbff70 100644
--- a/src/SpecialForce/CheatEdit.tw
+++ b/src/SpecialForce/CheatEdit.tw
@@ -1,4 +1,5 @@
 :: CheatEdit [nobr]
+
 <<set $nextButton = "Back to $SF.Lower's Firebase", $nextLink = "Firebase", $returnTo = "Firebase">>
 <<= Count()>>__Upgrades__: $SF.Size/_max(<<print ($SF.Size/_max).toFixed(2)>>%)
 <br><br>''Firebase:'' <<textbox "$SF.Squad.Firebase" $SF.Squad.Firebase "CheatEdit">>/_FU
diff --git a/src/SpecialForce/ColonelSexDec.tw b/src/SpecialForce/ColonelSexDec.tw
index 0525b8a74dbad8a42d959ce6d7b865fc6a8791c4..ac5e516c09ff837efae96bc5cec36ced79cb6d15 100644
--- a/src/SpecialForce/ColonelSexDec.tw
+++ b/src/SpecialForce/ColonelSexDec.tw
@@ -1,4 +1,5 @@
 :: SFColonelSexDec
+
 <<switch $SF.Colonel.Core>>
 <<case "shell shocked">>
 	<span id="result7">
diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw
index d6e3997f2e52a62da44cbc12c80630283a5c5b81..ad781b43415c157f3919de27a39de7b445a4816a 100644
--- a/src/SpecialForce/Firebase.tw
+++ b/src/SpecialForce/Firebase.tw
@@ -1,4 +1,5 @@
 :: Firebase [nobr]
+
 <<if ndef $Tour>> <<set $Tour = 0>> <</if>> <<= Count()>>
 <<if $Tour === 0>>
 	<<switch _Env>> <<case 4>>
@@ -71,12 +72,12 @@
 	<br>[[Tour the firebase|Firebase][$Tour = 1]]
 <<else>>
 	<<= FlavourText('Intro')>>
- <<if _T1 && _LB> 0>> <br><br>''Launch Bay:''
-			<<if $SF.Squad.Satellite.lv > 0>> <br>&nbsp;''Satellite:'' <<= Sat()>>
-				<<if $SF.Squad.Satellite.InOrbit < 1>> <br>&nbsp;&nbsp;[[Launch it into geostationary orbit.|Firebase][$SF.Squad.Satellite.InOrbit=1]] &nbsp;//You <span class='red'>cannot</span> upgrade the satellite once it has been launched.// <</if>>
-			<</if>>
-			<<if $SF.Squad.GiantRobot > 0>> <br>&nbsp;''Giant Robot:'' <<= GR()>> <</if>>
-			<<if $SF.Squad.MissileSilo > 0>> <br>&nbsp;''Cruise Missile:'' <<= ms()>> <</if>>
+	<<if _T1 && _LB> 0>> <br><br>''Launch Bay:''
+		<<if $SF.Squad.Satellite.lv > 0>> <br>&nbsp;''Satellite:'' <<= Sat()>>
+			<<if $SF.Squad.Satellite.InOrbit < 1>> <br>&nbsp;&nbsp;[[Launch it into geostationary orbit.|Firebase][$SF.Squad.Satellite.InOrbit=1]] &nbsp;//You <span class='red'>cannot</span> upgrade the satellite once it has been launched.// <</if>>
+		<</if>>
+		<<if $SF.Squad.GiantRobot > 0>> <br>&nbsp;''Giant Robot:'' <<= GR()>> <</if>>
+		<<if $SF.Squad.MissileSilo > 0>> <br>&nbsp;''Cruise Missile:'' <<= ms()>> <</if>>
 	<</if>>
 	<<= FlavourText('Outro')>>
 <</if>>
\ No newline at end of file
diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw
index 979ff678f950124a94f35f11d81fbc20f67a1e2d..cdf521355e5da9de948593709daec51c3823641c 100644
--- a/src/SpecialForce/Proposal.tw
+++ b/src/SpecialForce/Proposal.tw
@@ -1,4 +1,5 @@
 :: Security Force Proposal [nobr]
+
 <<set $nextButton = " ">> <span id="result">
 The Free Cities were founded on the principles of unrestrained anarcho-capitalism. To those with such beliefs, the very idea of possessing an armed force, a key tool of government control, or weapons at all, was anathema.
 <br><br>In the period since, however, your citizens have seen the value in weaponry. They watched on their news-feed as some Free Cities were sacked by the armies and mobs of the Old World, driven by their hatred of the citizens' luxurious lifestyles. They've seen other Cities toppled from within, by slave conspiracies or infighting among citizen groupings with differing beliefs. They've witnessed the distressingly rapid rise of fanatical anti-slavery organizations, who would like nothing more than to see them slowly bled by their own chattel. They are learned people, and they know what happens to slaveowners who lose their power.
diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js
index 9c48ecb64983d85fcabd96cfaffbca5ce77f6b3f..5bbe9269e02d4e066ba64a65823c8e8762e3bf95 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/SpecialForce/SpecialForce.js
@@ -1,42 +1,4 @@
 //V=SugarCube.State.variables, T=SugarCube.State.temporary;
-window.Count = function() {
-	const V=State.variables, T=State.temporary, C=Math.clamp, S=V.SF.Squad, E=V.economy;
-	T.FU=10; S.Firebase=C(S.Firebase, 0, T.FU);
-	T.AU=10; S.Armoury=C(S.Armoury, 0, T.AU);
-	T.DrugsU=10; S.Drugs=C(S.Drugs, 0, T.DrugsU);
-	T.DU=10; S.Drones=C(S.Drones, 0, T.DU);
-	T.AVU=10; S.AV=C(S.AV, 0, T.AVU);
-	T.TVU=10; S.TV=C(S.TV, 0, T.TVU);
-	T.AAU=10; S.AA=C(S.AA, 0, T.AAU);
-	T.TAU=10; S.TA=C(S.TA, 0, T.TAU);
-	if (V.PC.warfare >= 75) {T.PGTU=10; T.SPU=10; T.GunSU=10; T.SatU=10; T.GRU=10; T.MSU=10; T.ACU=10; T.SubU=10; T.HATU=10;}
-	else if (V.PC.warfare >= 50) {T.PGTU=9; T.SPU=9; T.GunSU=9; T.SatU=9; T.GRU=9; T.MSU=9; T.ACU=9; T.SubU=9; T.HATU=9;}
-	else {T.PGTU=8; T.SPU=8; T.GunSU=8; T.SatU=8; T.GRU=8; T.MSU=8; T.ACU=8; T.SubU=8; T.HATU=8;}
-	S.PGT=C(S.PGT, 0, T.PGTU);
-	S.SpacePlane=C(S.SpacePlane, 0, T.SPU); S.GunS=C(S.GunS, 0, T.GunSU);
-	S.Satellite.lv=C(S.Satellite.lv, 0, T.SatU); S.GiantRobot=C(S.GiantRobot, 0, T.GRU); S.MissileSilo=C(S.MissileSilo, 0, T.MSU);
-	S.AircraftCarrier=C(S.AircraftCarrier, 0, T.ACU); S.Sub=C(S.Sub, 0, T.SubU); S.HAT=C(S.HAT, 0, T.HATU);
-	T.GU=T.AVU+T.TVU+T.PGTU; T.G=S.AV+S.TV+S.PGT;
-	T.H=S.AA+S.TA+S.SpacePlane+S.GunS; T.HU=T.AAU+T.TAU+T.SPU+T.GunSU;
-	T.LBU=T.SatU+T.MSU; T.LB=S.Satellite.lv+S.MissileSilo;
-	T.Base=S.Firebase+S.Armoury+S.Drugs+S.Drones+T.H;
-	T.max=T.FU+T.AU+T.DrugsU+T.DU+T.HU;
-	//if (V.SF.Facility.Toggle > 0) T.Base += 1; T.max += 1;
-
-	if (V.terrain !== "oceanic" || V.terrain === "marine") { T.LBU += T.GRU; T.LB += S.GiantRobot; T.Base += T.G; T.max += T.GU;
-	T.max += T.LBU; T.Base += T.LB;
-	} else {
-		T.NY=S.AircraftCarrier + S.Sub + S.HAT; T.Base += T.NY;
-		T.NYU=T.ACU + T.SubU + T.HATU; T.max += T.NYU;
-	} V.SF.Size=T.Base; V.SF.Size=C(V.SF.Size, 1, T.max); T.T1=0;
-	if (E > 100) {T.Env=4;} else if (E > 67) {T.Env=3;} else {T.Env=2;}
-	if (V.SF.Size >= 30) T.T1=1; T.SFSubsidy=5000*(1+((V.SF.Squad.Troops/100)+(V.SF.Size/100)));
-	SFNameCapsCheck();
-	if (V.SF.IntroProgress > -1) delete V.SF.IntroProgress;
-	if (V.SF.MercCon === undefined) MercCon();
-	if (V.SF.Size === T.max) delete V.SF.Upgrade;
-};
-
 window.Main = function() {
  const V=State.variables;
  V.SF={Toggle:V.SF.Toggle,Active:-1,Depravity:0, Size:0, Upgrade:0, Gift:0, UC:{Assign:0, Lock:0}, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1, BadOutcome:""};
@@ -64,65 +26,34 @@ window.SFInit = function() {
 };
 
 window.SFBC = function() {
+	function jsDel(input) {
+		while(input.length > 0) {
+			delete input[0]; input.splice(input[0],1);
+		}
+	}
+
 	const V=State.variables;
 	function InitClean() {
-		delete V.SFMODToggle;
-		delete V.securityForceActive;
-		delete V.securityForceCreate;
-		delete V.securityForceEventSeen;
+		jsDel([V.SFMODToggle,V.securityForceActive,V.securityForceCreate,V.securityForceEventSeen]);
 	}
 	function MainClean() {
-		delete V.securityForceActive;
-		delete V.securityForceRecruit;
-		delete V.securityForceTrade;
-		delete V.securityForceBooty;
-		delete V.securityForceIncome;
-		delete V.securityForceMissionEfficiency;
-		delete V.securityForceProfitable;
-		delete V.TierTwoUnlock;
-		delete V.securityForceDepravity;
-		delete V.SFAO;
-		delete V.securityForceUpgradeTokenReset;
-		delete V.securityForceUpgradeToken;
-		delete V.securityForceGiftToken;
-		delete V.securityForceRulesOfEngagement;
-		delete V.securityForceFocus;
-		delete V.securityForceAccountability;
-		delete V.securityForceName;
-		delete V.SubsidyActive;
+		jsDel([V.securityForceActive,V.securityForceRecruit,V.securityForceTrade,V.securityForceBooty,V.securityForceIncome]);
+		jsDel([V.securityForceMissionEfficiency,V.securityForceProfitable,V.TierTwoUnlock,V.securityForceDepravity,V.SFAO]);
+		jsDel([V.securityForceUpgradeTokenReset,V.securityForceUpgradeToken,V.securityForceGiftToken,V.securityForceRulesOfEngagement]);
+		jsDel([V.securityForceFocus,V.securityForceAccountability,V.securityForceName,V.SubsidyActive]);
 	}
 	function ColonelClean() {
-		delete V.SubsidyActive;
-		delete V.ColonelCore;
-		delete V.securityForceColonelToken;
-		delete V.securityForceColonelSexed;
-		delete V.ColonelRelationship;
+		jsDel([V.SubsidyActive,V.ColonelCore,V.securityForceColonelToken,V.securityForceColonelSexed,V.ColonelRelationship]);
 	}
 	function TradeShowClean() {
-		delete V.OverallTradeShowAttendance;
-		delete V.CurrentTradeShowAttendance;
-		delete V.TradeShowIncome;
-		delete V.TotalTradeShowIncome;
-		delete V.TradeShowHelots;
-		delete V.TotalTradeShowHelots;
+		jsDel([V.OverallTradeShowAttendance,V.CurrentTradeShowAttendance,V.TradeShowIncome,V.TotalTradeShowIncome]);
+		jsDel([V.TradeShowHelots,V.TotalTradeShowHelots]);
 	}
 	function UnitsClean() {
-		delete V.securityForcePersonnel;
-		delete V.securityForceInfantryPower;
-		delete V.securityForceArcologyUpgrades;
-		delete V.securityForceVehiclePower;
-		delete V.securityForceDronePower;
-		delete V.securityForceStimulantPower;
-		delete V.securityForceHeavyBattleTank;
-		delete V.securityForceAircraftPower;
-		delete V.securityForceSpacePlanePower;
-		delete V.securityForceAC130;
-		delete V.securityForceSatellitePower;
-		delete V.securityForceGiantRobot;
-		delete V.securityForceMissileSilo;
-		delete V.securityForceAircraftCarrier;
-		delete V.securityForceSubmarine;
-		delete V.securityForceHeavyAmphibiousTransport;
+		jsDel([V.securityForceInfantryPower,V.securityForceArcologyUpgrades,V.securityForceVehiclePower,V.securityForceDronePower]);
+		jsDel([V.securityForceStimulantPower,V.securityForceHeavyBattleTank,V.securityForceAircraftPower,V.securityForceSpacePlanePower]);
+		jsDel([V.securityForceAC130,V.securityForceSatellitePower,V.securityForceGiantRobot,V.securityForceMissileSilo,V.securityForceAircraftCarrier]);
+		jsDel([V.securityForceSubmarine,V.securityForceHeavyAmphibiousTransport,V.securityForcePersonnel]);
 	}
 
 	if (V.SF === undefined) {
@@ -205,8 +136,8 @@ window.SFBC = function() {
 		if (V.SpecOpsLock != undefined) V.SF.SpecOpsLock=V.SpecOpsLock; delete V.SpecOpsLock;
 		if (V.SF.UC === undefined) {
 			if (V.SF.SpecOps != undefined && V.SF.SpecOpsLock != undefined) {
-				V.SF.UC={Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}; delete V.SF.SpecOps;
-				delete V.SF.SpecOpsLock;
+				V.SF.UC={Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock};
+				jsDel([V.SF.SpecOps,V.SF.SpecOpsLock]);
 			} else if (V.SF.UC === {}) {
 				V.SF.UC={Assign:0, Lock:0};
 			}
@@ -228,17 +159,17 @@ window.SFBC = function() {
 		if (V.SF.Depravity < 0) V.SF.Depravity=0;
 		if (V.SF.Size === undefined) V.SF.Size=V.SF.Units; delete V.SF.Units;
 		if (V.SFUnit !== undefined) {
-			if (V.SFUnit.AT !== undefined) delete V.SFUnit.AT; V.SFUnitTA=0;
-			V.SF.Squad=V.SFUnit; delete V.SFUnit;
-			V.SF.Squad.Sat={lv:V.SF.Squad.Satellite, InOrbit:V.SatLaunched};
-			delete V.SatLaunched;
+			if (V.SFUnit.AT !== undefined) V.SFUnitTA=0;
+			V.SF.Squad.Satellite=V.SF.Squad.Sat;
+			jsDel([V.SF.Squad.Sat,V.SatLaunched,V.SFUnit.AT]);
 			V.SF.Squad.Satellite=V.SF.Squad.Sat; delete V.SF.Squad.Sat;
 			if (V.SFTradeShow !== undefined) V.SF.MercCon=V.SFTradeShow; delete V.SFTradeShow;
 			if (V.SFColonel !== undefined) V.SF.Colonel=V.SFColonel; delete V.SFColonel;
 			if (V.SF.BadOutcome === undefined) V.SF.BadOutcome="";
 			if (V.SF.Squad.Satellite !== undefined && V.SatLaunched === undefined) {
-				delete V.SFUnit; V.SF.Squad.Sat={lv:0, InOrbit:0};
-				delete V.SatLaunched; V.SF.Squad.Satellite=V.SF.Squad.Sat; delete V.SF.Squad.Sat;
+				V.SF.Squad.Sat={lv:0, InOrbit:0};
+				V.SF.Squad.Satellite=V.SF.Squad.Sat;
+				jsDel([V.SF.Squad.Sat,V.SatLaunched,V.SFUnit]);
 			}
 		}
 		if (V.SF.Squad !== undefined && V.SF.Squad.Satellite.lv === undefined) {
@@ -251,8 +182,7 @@ window.SFBC = function() {
 };
 
 window.SFReport = function() {
-	"use strict";
- const V=State.variables,T=State.temporary,S=V.SF.Squad;
+	"use strict"; const V=State.variables,T=State.temporary,S=V.SF.Squad;
 	let target=50000,baseLine=5000,profit=0,upkeep=0,income=0;
 	let Multiplier={action:1,troop:1,unit:1,depravity:1},SFD=V.SF.Depravity;
 	let FNG=10,unitCap=2500,Trade=0.025,deaths=0,r=``; Count();
@@ -363,9 +293,9 @@ window.SFReport = function() {
 		V.arcologies[0].prosperity=Math.ceil(V.arcologies[0].prosperity+(Trade/10)*0.25);}
 	if (V.secExp > 0) V.authority += V.SF.Size*10; V.authority=Math.clamp(V.authority, 0, 20000);
 
-	income += Math.ceil( ( (baseLine* (0.09+Multiplier.troop/NO).toFixed(2) * (0.09+Multiplier.unit/NO).toFixed(2) * (0.09+Multiplier.action/NO).toFixed(2) * (0.09+Multiplier.depravity/NO).toFixed(2) ) - (upkeep*N1).toFixed(2) )/V.SF.Size/5+S.Troops/1000 ); S.Troops += Math.round(FNG/2);
+	income += Math.ceil( ( (baseLine* (0.09+Multiplier.troop/NO).toFixed(2) * (0.09+Multiplier.unit/NO).toFixed(2) * (0.09+Multiplier.action/NO).toFixed(2) * (0.09+Multiplier.depravity/NO).toFixed(2) ) - (upkeep*N1).toFixed(2) )/((V.SF.Size/2+S.Troops/2)*5) ); S.Troops += Math.round(FNG/2);
 	if (V.debugMode > 0) r += `<br>income:${commaNum(income)}, troop:${commaNum((0.09+Multiplier.troop/NO).toFixed(2))}, unit:${commaNum((0.09+Multiplier.unit/NO).toFixed(2))}, action:${commaNum((0.09+Multiplier.action/NO).toFixed(2))}, depravity:${commaNum((0.09+Multiplier.depravity/NO).toFixed(2))}, upkeep:${commaNum((upkeep*N1).toFixed(2))}`;
-	if (V.economy < 100) if (V.SF.Target === "raiding") { income=Math.ceil(income*14); } else if (V.SF.Target === "secure") { income=Math.ceil(income*20); } else { income=Math.ceil(income*50); } //Remove line if hard mode ever gets fixed.
+	if (V.economy < 100) income *= 83; //Remove line if hard mode ever gets fixed.
 	if (income >= target) profit=1; delete V.SF.Subsidy; cashX(income, "specialForces");
 	if (S.Troops > unitCap) S.Troops=unitCap;
 	if (V.arcologies[0].prosperity > V.ProsperityCap) V.arcologies[0].prosperity=V.ProsperityCap;
@@ -434,20 +364,58 @@ window.SFReport = function() {
 	return r;
 };
 
+window.Count = function() {
+	const V=State.variables, T=State.temporary, C=Math.clamp, S=V.SF.Squad, E=V.economy;
+	T.FU=10; S.Firebase=C(S.Firebase, 0, T.FU);
+	T.AU=10; S.Armoury=C(S.Armoury, 0, T.AU);
+	T.DrugsU=10; S.Drugs=C(S.Drugs, 0, T.DrugsU);
+	T.DU=10; S.Drones=C(S.Drones, 0, T.DU);
+	T.AVU=10; S.AV=C(S.AV, 0, T.AVU);
+	T.TVU=10; S.TV=C(S.TV, 0, T.TVU);
+	T.AAU=10; S.AA=C(S.AA, 0, T.AAU);
+	T.TAU=10; S.TA=C(S.TA, 0, T.TAU);
+	if (V.PC.warfare >= 75) {T.PGTU=10; T.SPU=10; T.GunSU=10; T.SatU=10; T.GRU=10; T.MSU=10; T.ACU=10; T.SubU=10; T.HATU=10;}
+	else if (V.PC.warfare >= 50) {T.PGTU=9; T.SPU=9; T.GunSU=9; T.SatU=9; T.GRU=9; T.MSU=9; T.ACU=9; T.SubU=9; T.HATU=9;}
+	else {T.PGTU=8; T.SPU=8; T.GunSU=8; T.SatU=8; T.GRU=8; T.MSU=8; T.ACU=8; T.SubU=8; T.HATU=8;}
+	S.PGT=C(S.PGT, 0, T.PGTU);
+	S.SpacePlane=C(S.SpacePlane, 0, T.SPU); S.GunS=C(S.GunS, 0, T.GunSU);
+	S.Satellite.lv=C(S.Satellite.lv, 0, T.SatU); S.GiantRobot=C(S.GiantRobot, 0, T.GRU); S.MissileSilo=C(S.MissileSilo, 0, T.MSU);
+	S.AircraftCarrier=C(S.AircraftCarrier, 0, T.ACU); S.Sub=C(S.Sub, 0, T.SubU); S.HAT=C(S.HAT, 0, T.HATU);
+	T.GU=T.AVU+T.TVU+T.PGTU; T.G=S.AV+S.TV+S.PGT;
+	T.H=S.AA+S.TA+S.SpacePlane+S.GunS; T.HU=T.AAU+T.TAU+T.SPU+T.GunSU;
+	T.LBU=T.SatU+T.MSU; T.LB=S.Satellite.lv+S.MissileSilo;
+	T.Base=S.Firebase+S.Armoury+S.Drugs+S.Drones+T.H;
+	T.max=T.FU+T.AU+T.DrugsU+T.DU+T.HU;
+	//if (V.SF.Facility.Toggle > 0) T.Base += 1; T.max += 1;
+
+	if (V.terrain !== "oceanic" || V.terrain === "marine") { T.LBU += T.GRU; T.LB += S.GiantRobot; T.Base += T.G; T.max += T.GU;
+	T.max += T.LBU; T.Base += T.LB;
+	} else {
+		T.NY=S.AircraftCarrier + S.Sub + S.HAT; T.Base += T.NY;
+		T.NYU=T.ACU + T.SubU + T.HATU; T.max += T.NYU;
+	} V.SF.Size=T.Base; V.SF.Size=C(V.SF.Size, 1, T.max); T.T1=0;
+	if (E > 100) {T.Env=4;} else if (E > 67) {T.Env=3;} else {T.Env=2;}
+	if (V.SF.Size >= 30) T.T1=1; T.SFSubsidy=5000*(1+((V.SF.Squad.Troops/100)+(V.SF.Size/100)));
+	SFNameCapsCheck();
+	if (V.SF.IntroProgress > -1) delete V.SF.IntroProgress;
+	if (V.SF.MercCon === undefined) MercCon();
+	if (V.SF.Size === T.max) delete V.SF.Upgrade;
+};
+
 window.SFNameCapsCheck = function() {
  const V=State.variables;
  if (V.SF.Lower != "the special force") V.SF.Caps=V.SF.Lower.replace("the ", "The ");
 };
 
 window.SFUpgradeCost = function(cost,unit) {
-	const V=State.variables,T=State.temporary,S=V.SF.Squad; var value=0;
+	"use strict"; const V=State.variables,T=State.temporary,S=V.SF.Squad; let value=0;
 	value=cost*T.Env*(1.15+(V.SF.Size/10))*(1.15+(unit/100));
 	if ([S.Sub,S.AircraftCarrier,S.MissileSilo,S.GiantRobot,S.Satellite.lv,S.GunS,S.SpacePlane,S.Drones].includes(unit)) value *= V.HackingSkillMultiplier;
 	return Math.ceil(value);
 };
 
 window.progress = function(x,max) {
-	var out = `⏐`, z, i;
+	"use strict"; let out = `⏐`, z, i;
 	if (max === undefined) {
 		Math.clamp(x,0,10);
 		if (State.variables.SF.Size < 30) {
@@ -485,7 +453,7 @@ window.SFCR = function() {
 
 window.Interactions = function() {
 	"use strict"; let choice=``, time=``;
-	const V=State.variables, C=V.SF.Colonel, T=State.temporary;
+	const V=State.variables, C=V.SF.Colonel;
 	if (V.SF.Gift > 0) {
 		if (V.choice == 1) {
 			choice +=`${V.SF.Caps} is turning over spare capital in tribute this week. `;
@@ -511,7 +479,7 @@ window.Interactions = function() {
 };
 
 window.BadOutcome = function() {
-	const V=State.variables,t=`The Colonel's`; var r =``;V.SF.Active=-2;
+	"use strict"; const V=State.variables; let r =``;V.SF.Active=-2;
 	switch(V.SF.Colonel.Core) {
 		case "Shell-Shocked":
 			V.SF.BadOutcome="lockdown"; V.trinkets.push("${t} explosives detonator");
@@ -768,7 +736,7 @@ window.FlavourText = function(View) {
 		if (S.HAT >= 8) ramps=`The loading ramps have been improved, allowing for faster unloading.`;
 		if (S.HAT >= 9) HATframe=`The frame has been widened and reinforced, allowing for more space on the deck.`;
 		if (S.HAT >= 10) loadout=`An experimental loadout sacrifices all carrying capacity to instead act as a floating gun platform by mounting several rotary autocannons the deck, should the need arise.`;
-		return `An air cushion transport vehicle, or hovercraft${recom} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor} ${ramps} ${HATframe} ${loadout}`;
+		return `An air cushion transport vehicle, or hovercraft ${recom} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor} ${ramps} ${HATframe} ${loadout}`;
 	}
 
 	let r = `<br>`;
@@ -897,7 +865,7 @@ window.Sat = function() {
 	if (S.Satellite.lv >= 9) lens=`A higher quality and adjustable lens has been installed on the laser, allowing scalpel precision on armor or wide-area blasts on unarmored targets.`;
 	if (S.Satellite.lv >= 10) kin=`A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts.`;
 	return `${loc} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser}${heat} ${lens} ${kin}`;
-}
+};
 
 window.GR = function() {
 	"use strict"; const V=State.variables, S=V.SF.Squad;
@@ -912,7 +880,7 @@ window.GR = function() {
 	if (S.GiantRobot >= 9) ammo=`; with spare ammunition drums kept along the robot's waist.`;
 	if (S.GiantRobot >= 10) missile=`Missile pods have been mounted on the shoulders.`;
 	return `A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor} ${actuator} ${heatsink} The main armament is ${knife} ${cannon}${ammo} ${missile}`;
-}
+};
 
 window.ms = function() {
 	"use strict"; const V=State.variables, S=V.SF.Squad;
@@ -927,7 +895,7 @@ window.ms = function() {
 	if (S.MissileSilo >= 9) h=`The missile now uses its remaining fuel to create a thermobaric explosion, massively increasing explosive power.`;
 	if (S.MissileSilo >= 10) c=` that can be tipped with either a conventional or nuclear warhead`;
 	return `${a} the arcology. The current missile armament is ${b}${c}. ${d} ${e} ${f} ${g} ${h}`;
-}
+};
 
 /*window.FSIntegrationMenu = function() {
 	const V=State.variables;
@@ -937,7 +905,7 @@ window.ms = function() {
 	if (V.SF.FS === undefined) {
 		text += `<br><br>`;
 		//text += ``;
-		V.SF.FS={Acceptance:{'FS':[],'Percent':[]}, Upgrade:0, Annoyance:0, Options:{ 'Slaves':[], 'FoodsAndMedia':[], 'CommonArea':[] ,'Barracks':[], 'SlaveProcessingCages':[], 'CommandCenter':[] ,'Armory':[] ,'DrugLab':[], 'Garage':[], 'Hangar':[] ,'DroneBay':[] ,'PersonalItems':[] ,'VehicleUpgrades':[] ,'CommonAreaVendors':[], 'RoleplayingManadated':[] ,'ColonelCompilance':[] ,'ColonelGift':[] }};
+		V.SF.FS={Acceptance:{'FS':[],'Percent':[]}, Upgrade:0, Annoyance:0, Options:{ 'Slaves':[], 'FoodsAndMedia':[], 'CommonArea':[], 'Barracks':[], 'SlaveProcessingCages':[], 'CommandCenter':[], 'Armory':[], 'DrugLab':[], 'Garage':[], 'Hangar':[], 'DroneBay':[], 'PersonalItems':[], 'VehicleUpgrades':[], 'CommonAreaVendors':[], 'RoleplayingManadated':[], 'ColonelCompilance':[], 'ColonelGift':[] }};
 		V.SF.Colonel.Talk=1;
 	} else {
 		text += `You walk past The Colonel and move towards the common area to meet with an exclusive group of her very influential officers that are currently relaxing at their favorite table. These men and women are known for their competence, popularity, and authority within in their respective divisions of the ${V.SF.Lower}, they are hard to replace, and they are always looking to earn more coin; they are the perfect weak link for trickling your Future Society influences down into the Firebase. As the officers make room at their table for you to sit and join them for discussion, you spot The Colonel staring at you from afar, and she does not look happy with you. As you are her employer, she cannot stop you from speaking with her soldiers or moving around as you please, but she can tell that you are up to no good: <br><br>`;
diff --git a/src/SpecialForce/TrickShotNight.tw b/src/SpecialForce/TrickShotNight.tw
index 1bcfada098a24753297800026b5ad61cee67650c..ecbfe1369c2bd24b0fc05b57dcbce7399cc42815 100644
--- a/src/SpecialForce/TrickShotNight.tw
+++ b/src/SpecialForce/TrickShotNight.tw
@@ -47,20 +47,22 @@ Despite your direct elevator, interaction with the majority of your security for
 			<<set $activeSlaveOneTimeMinAge = 25>>
 			<<set $activeSlaveOneTimeMaxAge = 35>>
 			<<set $one_time_age_overrides_pedo_mode = 1>>
+			<<set $oneTimeDisableDisability = 1>>
 			<<if $arcologies[0].FSSupremacistLawME == 1>>
 				<<set $fixedRace = $arcologies[0].FSSupremacistRace>>
 			<<elseif $arcologies[0].FSSubjugationistLawME == 1>>
 				<<set _races = setup.filterRacesLowercase.filter(race => race !== $arcologies[0].FSSubjugationistRace)>>
 				<<set $fixedRace = _races.random()>>
 			<</if>>
-			<<include "Generate XX Slave">>
+			<<if $seeDicks != 100>>
+				<<include "Generate XX Slave">>
+			<<else>>
+				<<include "Generate XY Slave">>
+			<</if>>
 			<<set $activeSlave.origin = "She put herself up as collateral at a trick shot game, and lost.">>
 			<<set $activeSlave.career = "a soldier">>
 			<<set $activeSlave.indentureRestrictions = 2>>
 			<<set $activeSlave.indenture = 52>>
-			<<if $activeSlave.eyes == -2>>
-				<<set $activeSlave.eyes = -1>>
-			<</if>>
 			<<set $activeSlave.devotion = random(45,60)>>
 			<<set $activeSlave.trust = random(55,65)>>
 			<<set $activeSlave.health = random(60,80)>>
@@ -95,25 +97,25 @@ Despite your direct elevator, interaction with the majority of your security for
 
 				<<link "A year of servitude">>
 					<<set $activeSlave.clothes = "no clothing">>
-					<<replace "#artFrame">>
-						<span id="artFrame">
-						/* 000-250-006 */
-						<<if $seeImages == 1>>
-							<<if $imageChoice == 1>>
-								<div class="imageRef medImg"><<SlaveArt $activeSlave 2 0>></div>
-							<<else>>
-								<div class="imageRef medImg"><<SlaveArt $activeSlave 2 0>></div>
-							<</if>>
-						<</if>>
-						/* 000-250-006 */
-						</span>
-					<</replace>>
 					<<replace "#aliveresult">>
 						<<if random(1,100) > 50>>
 							For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck was not on your side. As the victor sweeps up $his spoils, the other security force clap you on the back and offer their condolences for your defeat. Though you may have lost your ¤, it seems you've @@.green;made some friends.@@
 							<<run repX(5000, "event")>>
 							<<run cashX(-500000, "event")>>
 						<<else>>
+							<<replace "#artFrame">>
+								<span id="artFrame">
+								/* 000-250-006 */
+								<<if $seeImages == 1>>
+									<<if $imageChoice == 1>>
+										<div class="imageRef medImg"><<SlaveArt $activeSlave 2 0>></div>
+									<<else>>
+										<div class="imageRef medImg"><<SlaveArt $activeSlave 2 0>></div>
+									<</if>>
+								<</if>>
+								/* 000-250-006 */
+								</span>
+							<</replace>>
 							For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck has rendered you the victor. A silence falls over the room as the result is declared, but after some time your opponent breaks the hush by joking that life as your slave is probably easier than fighting for $arcologies[0].name. After some awkward laughter the night continues, and at the end your former mercenary joins you on your trip back to the penthouse to submit to processing and to begin $his new life as your sexual servant. $He's not young, but $he's tough and not distrusting of you due to $his service in $SF.Lower.
 							<br>
 							<<include "New Slave Intro">>
diff --git a/src/SpecialForce/Upgrades.tw b/src/SpecialForce/Upgrades.tw
index b687b53da20f5270e3a0a6b563c6f9a7c5aa9338..21365acb4661b81b4a643679065a149e86af3a6e 100644
--- a/src/SpecialForce/Upgrades.tw
+++ b/src/SpecialForce/Upgrades.tw
@@ -1,4 +1,5 @@
 :: Upgrades [nobr]
+
 	<br><br> <<if $SF.Size !== _max>> Total upgrade progress: <<print progress($SF.Size,_max)>> $SF.Size/_max(<<print ($SF.Size/_max).toFixed(2)>>%) <<if $SF.Size < 30>><br>//<<print (30-$SF.Size )>> more upgrades is needed until the next tier unlocks.//<</if>>
 	<<else>>There are no more upgrades available.<</if>>
 	<<if $SF.Upgrade > 0 && ($SF.Size !== _max)>>
diff --git a/src/SpecialForce/WeeklyChoices.tw b/src/SpecialForce/WeeklyChoices.tw
index 03c38a19a4617e29c505ebeb39f9f977b7407fb7..cd9bcf4ddc1bf8910dcb4b7e1fb26bdd83cd51b4 100644
--- a/src/SpecialForce/WeeklyChoices.tw
+++ b/src/SpecialForce/WeeklyChoices.tw
@@ -212,7 +212,7 @@
 						<br> <<link "All three holes">> <<replace "#result6">>
 							<<include "SFColonelSexDec">>
 						<</replace>> <<set $SF.Colonel.Fun += 3>> <</link>>
-			</span> <</replace>> </span> <</link>>
+			</span> <</replace>> <</link>>
 		</span> <</replace>> <</link>> <</if>> /*Closes fun*/
 	</span> <</replace>> <</link>> /*Closes talk*/
-</span> <</if>> /*Closes spend time with The Colonel*/
\ No newline at end of file
+</span> <</if>> /*Closes spend time with The Colonel*/
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index deefae63fbc9010d497f66fccf40da22155fbba0..c9562fb451d6bcfbbac87909a8ecf86295cffc04 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -58,9 +58,11 @@ window.saServant = /** @param {App.Entity.SlaveState} slave */ function saServan
 		t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class='yellowgreen'>reduces the upkeep</span> of your slaves.`;
 	}
 
-	let _oral = jsRandom(5,10);
-	slave.oralCount += _oral;
-	V.oralTotal += _oral;
+	if (slave.releaseRules !== "chastity") {
+		let _oral = jsRandom(5,10);
+		slave.oralCount += _oral;
+		V.oralTotal += _oral;
+	}
 
 	if (slave.relationship == -2) {
 		t += ` ${He} does ${his} best to perfect your domesticity due to ${his} emotional bond to you.`;
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index afcb75c701b1d1a4e1e2482a37af243c95366380..30370e76df8429dd4310f4539ed6fe1c242a505f 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -22,39 +22,35 @@ You may review your settings before clicking "Continue" to begin.
 <</if>>
 
 __''World Settings''__
-<br>Economic climate:
+<br>
 <<set $localEcon = $economy>>
-<<if $economy > 125>>
-	''not truly dire. Not yet.'' //Very Easy//
-	<br>[[Harder|Intro Summary][$economy = 125]]
-<<elseif $economy > 100>>
-	''getting a touch dire.'' //Easy//
-	<br>[[Harder|Intro Summary][$economy = 100]] | [[Easier|Intro Summary][$economy = 200]]
-<<elseif $economy > 80>>
-	''serious risks.'' //Default Difficulty//
-	<br>[[Harder|Intro Summary][$economy = 80]] | [[Easier|Intro Summary][$economy = 125]]
-<<elseif $economy > 67>>
-	''ugly.'' //Hard//
-	<br>[[Harder|Intro Summary][$economy = 67]] | [[Easier|Intro Summary][$economy = 100]]
-<<else>>
-	''this is the last dance.'' //Very Hard//
-	<br>[[Easier|Intro Summary][$economy = 80]]
-<</if>>
+<<options $economy>>
+	Economic climate:
+	<<option 200 "Very Easy">>
+		''not truly dire. Not yet.'' //Very Easy//
+	<<option 125 "Easy">>
+		''getting a touch dire.'' //Easy//
+	<<option 100 "Default Difficulty">>
+		''serious risks.'' //Default Difficulty//
+	<<option 80 "Hard">>
+		''ugly.'' //Hard//
+	<<option 67 "Hard">>
+		''this is the last dance.'' //Very Hard//
+<</options>>
 <<if $difficultySwitch == 1>><<set $econAdvantage = -2>><</if>>
-<br>Economic forecast:
-<<if $difficultySwitch == 0>>
+<<if $difficultySwitch == 0>><<set $econRate = 0>><</if>>
+<br>
+<<options $econRate>>
+Economic forecast:
+	<<option 0 "Vanilla" "$difficultySwitch = 0">>
 	''no change.'' //Vanilla -- Some economic content requires this to be set to harder than vanilla//
-	<br>[[Harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]]
-<<elseif $econRate == 1>>
+	<<option 1 "Easy" "$difficultySwitch = 1">>
 	''slow decline''. //Easy//
-	<br>[[Harder|Intro Summary][$econRate = 2]] | [[Easier|Intro Summary][$difficultySwitch = 0]]
-<<elseif $econRate == 2>>
+	<<option 2 "Default" "$difficultySwitch = 1">>
 	''noticeable deterioration'' //Default Difficulty//
-	<br>[[Harder|Intro Summary][$econRate = 4]] | [[Easier|Intro Summary][$econRate = 1]]
-<<else>>
+	<<option 4 "Hard" "$difficultySwitch = 1">>
 	''going to hell in a handbasket''. //Hard//
-	<br>[[Easier|Intro Summary][$econRate = 2]]
-<</if>>
+<</options>>
 
 /* Not functional yet
 <br> All the things you need to run your arcology are getting more expensive
@@ -84,29 +80,31 @@ __''World Settings''__
 <br>
 
 <<if ndef $customVariety>>
-You are using standardized slave trading channels. [[Customize the slave trade|Customize Slave Trade][$customVariety = 1, $customWA = 0]]
+<<options>>
+	You are using standardized slave trading channels.
+	<<option>>
+		[[Customize the slave trade...|Customize Slave Trade][$customVariety = 1,
+$customWA = 0]]
+<</options>>
 <br>
-	<<if $internationalTrade == 0>>
+	<<options $internationalTrade>>
+		<<option 0 "Restrict the trade to continental">>
 		The slave trade is ''continental,'' so a narrower variety of slaves will be available.
-		[[Allow intercontinental trade|Intro Summary][$internationalTrade = 1]]
-		<br>
-	<<else>>
+		<<option 1 "Allow intercontinental trade">>
 		The slave trade is ''international,'' so a wider variety of slaves will be available.
-		[[Restrict the trade to continental|Intro Summary][$internationalTrade = 0]]
-		<br>
-	<</if>>
+	<</options>>
+	<br>
 
 	<<if $internationalTrade == 1>>
-	<<if $internationalVariety == 0>>
-		International slave variety is ''semi-realistic,'' so more populous nations will be more common.
-		[[Normalized national variety|Intro Summary][$internationalVariety = 1]]
-		<br>
-	<<else>>
-		International slave variety is ''normalized,'' so small nations will appear nearly as much as large ones.
-		[[Semi-realistic national variety|Intro Summary][$internationalVariety = 0]]
-		<br>
-	<</if>>
+		<<options $internationalVariety>>
+			International slave variety is
+		<<option 0 "Semi-realistic national variety">>
+			''semi-realistic,'' so more populous nations will be more common.
+		<<option 1 "Normalized national variety">>
+			''normalized,'' so small nations will appear nearly as much as large  ones.
+		<</options>>
 	<</if>>
+	<br>
 <<else>>
 	Current nationality distributions are [[Adjust the slave trade|Customize Slave Trade][$customWA = 0, $customVariety = 1]] | [[Stop customizing|Intro Summary][delete $customVariety]]
 	<<if ndef $nationalitiescheck>> /* NGP: regenerate $nationalitiescheck from previous game's $nationalities array */
@@ -124,166 +122,162 @@ You are using standardized slave trading channels. [[Customize the slave trade|C
 <</if>> /* closes $customVariety is defined */
 
 /* Accordion 000-250-006 */
-	Accordion effects on weekly reports are
-<<if $useAccordion == 0>>
-	@@.red;DISABLED.@@ [[Enable|Intro Summary][$useAccordion = 1]]
-<<else>>
-	@@.cyan;ENABLED.@@ [[Disable|Intro Summary][$useAccordion = 0]]
-<</if>>
+<<options $useAccordion>>
+	<<option 0 "Disable">>
+		Accordion effects on weekly reports are @@.red;DISABLED.@@
+	<<option 1 "Enable">>
+		Accordion effects on weekly reports are @@.cyan;ENABLED.@@
+<</options>>
 /* Accordion 000-250-006 */
 
 <br>
-Economic Tabs on weekly reports are
-<<if $useTabs == 0>>
-@@.red;DISABLED.@@ [[Enable|Intro Summary][$useTabs = 1]]
-<<else>>
-@@.cyan;ENABLED.@@ [[Disable|Intro Summary][$useTabs = 0]]
-<</if>>
-
+<<options $useTabs>>
+	<<option 0 "Disable">>
+		Economic Tabs on weekly reports are @@.red;DISABLED.@@
+	<<option 1 "Enable">>
+		Economic Tabs on weekly reports are @@.cyan;ENABLED.@@
+<</options>>
 <br>
-<<if $plot == 1>>
-	Game mode: ''two-handed''. Includes non-erotic events concerning the changing world.
-	[[Disable non-erotic events|Intro Summary][$plot = 0]]
-<<else>>
-	Game mode: ''one-handed''. No non-erotic events concerning the changing world.
-	[[Enable non-erotic events|Intro Summary][$plot = 1]]
-<</if>>
+
+<<options $plot>>
+	<<option 0 "Disable non-erotic events">>
+		Game mode: ''one-handed''. No non-erotic events concerning the changing world.
+	<<option 1 "Enable non-erotic events">>
+		Game mode: ''two-handed''. Includes non-erotic events concerning the changing world.
+<</options>>
 
 <br><br>
 __''General slave settings''__
 <br>
-<<if $verboseDescriptions == 1>>
-	Your master suite ''will'' detail slave changes.
-	[[Disable|Intro Summary][$verboseDescriptions = 0]]
-<<else>>
-	Your master suite ''will not'' detail slave changes.
-	[[Enable|Intro Summary][$verboseDescriptions = 1]]
-<</if>>
+<<options $verboseDescriptions>>
+	<<option 0 "Disable">>
+		Your master suite ''will not'' detail slave changes.
+	<<option 1 "Enable">>
+		Your master suite ''will'' detail slave changes.
+<</options>>
 
 <br>
-<<if $newDescriptions == 1>>
-	Slaves ''will'' have alternate titles.
-	[[Disable|Intro Summary][$newDescriptions = 0]]
-<<else>>
-	Slaves ''will not'' have alternate titles.
-	[[Enable|Intro Summary][$newDescriptions = 1]]
-<</if>>
+<<options $newDescriptions>>
+	<<option 0 "Disable">>
+		Slaves ''will not'' have alternate titles.
+	<<option 1 "Enable">>
+		Slaves ''will'' have alternate titles.
+<</options>>
 
 <br>
-<<if $seeRace == 1>>
-	Ethnicity will ''occasionally'' be mentioned.
-	[[Disable most mentions of race|Intro Summary][$seeRace = 0]]
-<<else>>
-	Ethnicity will ''almost never'' be mentioned.
-	[[Enable mentions of race|Intro Summary][$seeRace = 1]]
-<</if>>
+<<options $seeRace>>
+	<<option 0 "Disable most mentions of race">>
+		Ethnicity will ''almost never'' be mentioned.
+	<<option 1 "Enable mentions of race">>
+		Ethnicity will ''occasionally'' be mentioned.
+<</options>>
 
 <br>
-<<if $seeNationality == 1>>
-	Nationality will ''occasionally'' be mentioned.
-	[[Disable most mentions of nationality|Intro Summary][$seeNationality = 0]]
-<<else>>
-	Nationality will ''almost never'' be mentioned.
-	[[Enable mentions of nationality|Intro Summary][$seeNationality = 1]]
-<</if>>
+<<options $seeNationality>>
+	<<option 0 "Disable most mentions of nationality">>
+		Nationality will ''almost never'' be mentioned.
+	<<option 1 "Enable mentions of nationality">>
+		Nationality will ''occasionally'' be mentioned.
+<</options>>
 
 <br>
-<<if $allowMaleSlaveNames>>
-	Slaves ''can generate with male names.''
-	[[Only use female names|Intro Summary][$allowMaleSlaveNames = false]]
-<<else>>
-	Slaves will ''always generate with female names.''
-	[[Allow male names|Intro Summary][$allowMaleSlaveNames = true]]
-<</if>>
-//This only affects slave generation and not your ability to name your slaves.//
+<<options $allowMaleSlaveNames>>
+	<<option false "Only use female names">>
+		Slaves will ''always generate with female names'',
+	<<option true "Allow male names">>
+		Slaves ''can generate with male names''.
+		<<comment>>
+			This only affects slave generation and not your ability to name your slaves.
+<</options>>
 
 <br>
-<<if $surnameOrder == 0>>
-	Order names ''based on country of origin''. [[Force name surname|Intro Summary][$surnameOrder = 1]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
-<<elseif $surnameOrder == 1>>
-	Names will always be ''Name Surname''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
-<<elseif $surnameOrder == 2>>
-	Names will always be ''Surname Name''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force name surname|Intro Summary][$surnameOrder = 1]]
-<</if>>
+<<options $surnameOrder>>
+	<<option 0 "Allow nationality name order">>
+	Order names ''based on country of origin''.
+	<<option 1 "Force name surname">>
+	Names will always be ''Name Surname''.
+	<<option 2 "Force surname name">>
+	Names will always be ''Surname Name''.
+<</options>>
 
 <br>
-<<if $familyTesting == 1>>
-	Slaves ''can'' have extended families instead of just a single relative. //May cause lag.//
-	[[Disable extended families|Intro Summary][$familyTesting = 0]]
-<<else>>
+<<options $familyTesting>>
+	<<option 0 "Disable extended families">>
 	Slaves ''cannot'' have extended families, just a single relative. //Vanilla Mode.//
-	[[Enable extended families|Intro Summary][$familyTesting = 1]]
-<</if>> //Extended family mode must be on for the incubation facility to be enabled.//
+	<<option 1 "Enable extended families">>
+	Slaves ''can'' have extended families instead of just a single relative.
+	//May cause lag.//
+	<<comment>>
+		Extended family mode must be on for the incubation facility to be enabled.
+<</options>>
 
 <<if $familyTesting == 1>>
 	<br>
-	<<if $inbreeding == 1>>
-		Successive breeding ''will'' result in sub-average slaves.
-		[[Disable inbreeding damage|Intro Summary][$inbreeding = 0]]
-	<<else>>
+	<<options $inbreeding>>
+		<<option 0 "Disable inbreeding damage">>
 		Successive breeding ''will not'' result in sub-average slaves.
-		[[Enable inbreeding damage|Intro Summary][$inbreeding = 1]]
-	<</if>>
+		<<option 1 "Enable inbreeding damage">>
+		Successive breeding ''will'' result in sub-average slaves.
+	<</options>>
 
 	<br>
-	<<if $allowFamilyTitles == 1>>
-		Your relatives ''will'' use family titles.
-		[[Disable family titles|Intro Summary][$allowFamilyTitles = 0]]
-	<<else>>
+	<<options $allowFamilyTitles>>
+		<<option 0 "Disable family titles">>
 		Your relatives ''will not'' use family titles.
-		[[Enable family titles|Intro Summary][$allowFamilyTitles = 1]]
-	<</if>>
+		<<option 1 "Enable family titles">>
+		Your relatives ''will'' use family titles.
+	<</options>>
 <</if>>
 
 <br>
-Interactions between slaves' weight and asset size are
-<<if ($weightAffectsAssets != 0)>>
-	''enabled''. [[Disable|Intro Summary][$weightAffectsAssets = 0]]
-<<else>>
-	''disabled''. [[Enable|Intro Summary][$weightAffectsAssets = 1]]
-<</if>>
+
+<<options $weightAffectsAssets>>
+	<<option 0 "Disable">>
+		Interactions between slaves' weight and asset size are ''disabled''.
+	<<option 1 "Enable">>
+		Interactions between slaves' weight and asset size are ''enabled''.
+<</options>>
 
 &nbsp;&nbsp;&nbsp;&nbsp;
 
 <br>
-<<if ($curativeSideEffects != 0)>>
-Curative side effects are ''enabled''. [[Disable|Intro Summary][$curativeSideEffects = 0]]
-<<else>>
-Curative side effects are ''disabled''. [[Enable|Intro Summary][$curativeSideEffects = 1]]
-<</if>>
+<<options $curativeSideEffects>>
+	<<option 0 "Disable">>
+	Curative side effects are ''disabled''.
+	<<option 1 "Enable">>
+	Curative side effects are ''enabled''.
+<</options>>
 
 <br>
 /% Begin mod section: toggle whether slaves lisp. %/
 
-<<if $disableLisping>>
+<<options $disableLisping>>
+<<option 0 "Disable Lisping">>
 	Lisping: ''slaves will not lisp''.
-	[[Enable Lisping|Intro Summary][$disableLisping = 0]]
-<<else>>
+<<option 1 "Enable Lisping">>
 	Lisping: ''slaves with fat lips or heavy oral piercings will lisp''.
-	[[Disable Lisping|Intro Summary][$disableLisping = 1]]
-<</if>>
+<</options>>
 
 /% End mod section: toggle whether slaves lisp. %/
 
 <br><br>
 __''Slave age settings''__
 <br>
-<<if $seeAge == 1>>
+
+<br>
+<<options $seeAge>>
+	<<option 0 "Disable aging">>
+	Slaves will ''not age,'' and not experience birthdays.
+	<<option 1 "Enable aging">>
 	Slaves will ''age naturally.''
-	[[Disable aging|Intro Summary][$seeAge = 0]] |
-	[[Semi aging|Intro Summary][$seeAge = 2]]
-<<elseif $seeAge == 2>>
+	<<option 2 "Semi aging">>
 	Slaves ''will'' celebrate birthdays, but ''not age.''
-	[[Enable aging fully|Intro Summary][$seeAge = 1]] |
-	[[Disable aging|Intro Summary][$seeAge = 0]]
-<<else>>
-	Slaves will ''not age,'' and not experience birthdays.
-	[[Enable aging|Intro Summary][$seeAge = 1]] |
-	[[Semi aging|Intro Summary][$seeAge = 2]]
-<</if>>
-//This option cannot be changed during the game//
+	<<comment>>
+		This option cannot be changed during the game
+<</options>>
 
 <br>
+
 <<if $minimumSlaveAge < 3>>
 	<<set $minimumSlaveAge = 3>>
 <<elseif $minimumSlaveAge < 18>>
@@ -292,15 +286,19 @@ __''Slave age settings''__
 	/% Either out of range or not a number. %/
 	<<set $minimumSlaveAge = 18>>
 <</if>>
-Girls appearing in the game will be no younger than <<textbox "$minimumSlaveAge" $minimumSlaveAge "Intro Summary">>
+<<options>>
+	Girls appearing in the game will be no younger than:
+	<<option>>
+		<<textbox "$minimumSlaveAge" $minimumSlaveAge "Intro Summary">>
+<</options>>
 
 <br>
-<<if ($extremeUnderage == 0)>>
-Molestation of slaves younger than $minimumSlaveAge is ''forbidden''. [[Allow|Intro Summary][$extremeUnderage = 1]]
-<<else>>
-Molestation of slaves younger than $minimumSlaveAge is ''permitted''. [[Deny|Intro Summary][$extremeUnderage = 0]]
-<</if>>
-
+<<options $extremeUnderage>>
+	<<option 0 "Deny">>
+	Molestation of slaves younger than $minimumSlaveAge is ''forbidden''.
+	<<option 1 "Allow">>
+	Molestation of slaves younger than $minimumSlaveAge is ''permitted''.
+<</options>>
 <br>
 <<if $retirementAge <= $minimumSlaveAge>>
 	<<set $retirementAge = $minimumSlaveAge+1>>
@@ -310,16 +308,20 @@ Molestation of slaves younger than $minimumSlaveAge is ''permitted''. [[Deny|Int
 	/% Either out of range or not a number. %/
 	<<set $retirementAge = 45>>
 <</if>>
-Initial retirement age will be at <<textbox "$retirementAge" $retirementAge "Intro Summary">> //May cause issues with New Game and initial slaves if set below 45.//
-
+<<options>>
+	Initial retirement age will be at:
+	<<option>>
+		<<textbox "$retirementAge" $retirementAge "Intro Summary">>
+	<<comment>>
+		May cause issues with New Game and initial slaves if set below 45.
+<</options>>
 <br>
-<<if $pedo_mode == 0>>
+<<options $pedo_mode>>
+	<<option 0 "Normal mode">>
 	Randomly generated slaves will generate normally.
-	[[Loli mode|Intro Summary][$pedo_mode = 1, $minimumSlaveAge = 5]]
-<<else>>
-	Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.
-	[[Normal mode|Intro Summary][$pedo_mode = 0]]
-<</if>>
+	<<option 1 "Loli mode" "$minimumSlaveAge = 5">>
+		Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.
+<</options>>
 
 <br>
 <<if $fertilityAge < 3>>
@@ -330,7 +332,11 @@ Initial retirement age will be at <<textbox "$retirementAge" $retirementAge "Int
 	/% Either out of range or not a number. %/
 	<<set $fertilityAge = 18>>
 <</if>>
-Girls will not be able to become pregnant if their age is under <<textbox "$fertilityAge" $fertilityAge "Intro Summary">>
+<<options>>
+	Girls will not be able to become pregnant if their age is under:
+	<<option>>
+		<<textbox "$fertilityAge" $fertilityAge "Intro Summary">>
+<</options>>
 
 <br>
 <<if $potencyAge < 3>>
@@ -341,210 +347,207 @@ Girls will not be able to become pregnant if their age is under <<textbox "$fert
 	/% Either out of range or not a number. %/
 	<<set $potencyAge = 18>>
 <</if>>
-Girls will not be able to impregnate others if their age is under <<textbox "$potencyAge" $potencyAge "Intro Summary">>
+<<options>>
+	Girls will not be able to impregnate others if their age is under:
+	<<option>>
+		<<textbox "$potencyAge" $potencyAge "Intro Summary">>
+<</options>>
 
 <br>
-<<if $precociousPuberty == 0>>
+<<options $precociousPuberty>>
+	<<option 0 "Disable precocious puberty">>
 	Girls ''cannot'' experience precocious puberty. (Unable to become pregnant or inseminate others younger than normal puberty age - $fertilityAge).
-	[[Enable precocious puberty|Intro Summary][$precociousPuberty = 1]]
-<<else>>
-	Girls ''can'' experience precocious puberty. (Under certain conditions they can become pregnant or inseminate others younger then normal age - $fertilityAge, though they may also experience delayed puberty).
-	[[Disable precocious puberty|Intro Summary][$precociousPuberty = 0]]
-<</if>>
+	<<option 1 "Enable precocious puberty">>
+		Girls ''can'' experience precocious puberty. (Under certain conditions they can become pregnant or inseminate others younger then normal age - $fertilityAge, though they may also experience delayed puberty).
+<</options>>
 
 <br><br>
 __''Slave age effects''__
 <br>
-<<if $AgePenalty == 0>>
+<<options $AgePenalty>>
+	<<option 0 "Disable age penalties">>
 	Girls ''will not'' receive job and career penalties due to age.
-	[[Enable age penalties|Intro Summary][$AgePenalty = 1]]
-<<else>>
-	Girls ''will'' receive job and career penalties due to age.
-	[[Disable age penalties|Intro Summary][$AgePenalty = 0]]
-<</if>>
-
+	<<option 1 "Enable age penalties">>
+		Girls ''will'' receive job and career penalties due to age.
+<</options>>
 <br>
-<<if $loliGrow == 1>>
-	Children ''will not'' grow as they age.
-	[[Enable Growth|Intro Summary][$loliGrow = 0]]
-<<else>>
-	Children ''will'' grow as they age.
-	[[Disable Growth|Intro Summary][$loliGrow = 1]]
-<</if>>
+<<options $loliGrow>>
+	<<option 0 "Disable Growth">>
+		Children ''will not'' grow as they age.
+	<<option 1 "Enable Growth">>
+		Children ''will'' grow as they age.
+<</options>>
 
 <br><br>
 __''Content settings''__
 <br>
-<<switch $seeDicks>>
-<<case 100>>
-	''All''
-<<case 90>>
-	''Almost all''
-<<case 75>>
-	''Most''
-<<case 50>>
-	''Half''
-<<case 25>>
-	''Some''
-<<case 10>>
-	''A few''
-<<default>>
-	''None''
-<</switch>>
-of the slave girls will have dicks.
-<<if $seeDicks != 0>>[[None|Intro Summary][$seeDicks = 0]]<<else>>None<</if>> (0%)
-| <<if $seeDicks != 10>>[[A few|Intro Summary][$seeDicks = 10]]<<else>>A few<</if>> (10%)
-| <<if $seeDicks != 25>>[[Some|Intro Summary][$seeDicks = 25]]<<else>>Some<</if>> (25%)
-| <<if $seeDicks != 50>>[[Half|Intro Summary][$seeDicks = 50]]<<else>>Half<</if>> (50%)
-| <<if $seeDicks != 75>>[[Most|Intro Summary][$seeDicks = 75]]<<else>>Most<</if>> (75%)
-| <<if $seeDicks != 90>>[[Almost all|Intro Summary][$seeDicks = 90]]<<else>>Almost all<</if>> (90%)
-| <<if $seeDicks != 100>>[[All|Intro Summary][$seeDicks = 100]]<<else>>All<</if>> (100%)
-
+<<options $seeDicks>>
+	<<option 0 "None" "" "(0%)">>
+	''None'' of the slave girls will have dicks.
+	<<option 10 "A few" "" "(10%)">>
+	''A few'' of the slave girls will have dicks.
+	<<option 25 "Some" "" "(25%)">>
+	''Some'' of the slave girls will have dicks.
+	<<option 50 "Half" "" "(50%)">>
+	''Half'' of the slave girls will have dicks.
+	<<option 75 "Most" "" "(75%)">>
+	''Most'' of the slave girls will have dicks.
+	<<option 90 "Almost all" "" "(90%)">>
+	''Almost all'' of the slave girls will have dicks.
+	<<option 100 "All" "" "(100%)">>
+	''All'' of the slave girls will have dicks.
+<</options>>
 <br>
 <<if $seeDicks == 0>>
-Should you be able to surgically attach a penis to your female slaves and starting girls?
-<<if $makeDicks != 0>>[[No|Intro Summary][$makeDicks = 0]]<<else>>No<</if>>
-| <<if $makeDicks != 1>>[[Yes|Intro Summary][$makeDicks = 1]]<<else>>Yes<</if>>
+	<<options $makeDicks>>
+		&nbsp;&nbsp;&nbsp;&nbsp;Should you be able to surgically attach a penis to your female slaves and   starting girls?
+	<<option 0 "No">>
+	<<option 1 "Yes">>
+	<</options>>
 <</if>>
 
 <br>
-<<if $seePreg == 1>>
-	Pregnancy related content is ''enabled''.
-	[[Disable|Intro Summary][$seePreg = 0]]
-<<else>>
-	Most pregnancy related content is ''disabled''.
-	[[Enable|Intro Summary][$seePreg = 1]]
-<</if>>
+<<options $seePreg>>
+	<<option 0 "Disable">>
+		Most pregnancy related content is ''disabled''.
+	<<option 1 "Enable">>
+		Pregnancy related content is ''enabled''.
+<</options>>
 
 <br>
-Should children born in game strictly adhere to dick content settings?
-<<if $seeDicksAffectsPregnancy != 0>>[[No|Intro Summary][$seeDicksAffectsPregnancy = 0]]<<else>>No<</if>>
-| <<if $seeDicksAffectsPregnancy != 1>>[[Yes|Intro Summary][$seeDicksAffectsPregnancy = 1]]<<else>>Yes<</if>>
+<<options $seeDicksAffectsPregnancy>>
+	<<option 0 "No">>
+	Children born in game do not adhere to dick content settings.
+	<<option 1 "Yes">>
+	Children born in game strictly adhere to dick content settings.
+<</options>>
 
 <<if $seeDicksAffectsPregnancy == 0>>
 	<br>
-	<<if $adamPrinciple == 1>>
-		XX slaves only fathering daughters is ''enabled''.
-		[[Disable|Intro Summary][$adamPrinciple = 0]]
-	<<else>>
-		XX slaves only fathering daughters is ''disabled''.
-		[[Enable|Intro Summary][$adamPrinciple = 1]]
-	<</if>>
+	<<options $adamPrinciple>>
+		<<option 0 "Disable">>
+			XX slaves only fathering daughters is ''disabled''.
+		<<option 1 "Enable">>
+			XX slaves only fathering daughters is ''enabled''.
+	<</options>>
 <</if>>
 
 <br>
-<<if $seeHyperPreg == 1>>
-	Extreme pregnancy content like broodmothers is ''enabled''.
-	[[Disable|Intro Summary][$seeHyperPreg = 0]]
-<<else>>
+<<options $seeHyperPreg>>
+	<<option 0 "Disable">>
 	Extreme pregnancy content like broodmothers is ''disabled''.
-	[[Enable|Intro Summary][$seeHyperPreg = 1]]
-<</if>>
+	<<option 1 "Enable">>
+	Extreme pregnancy content like broodmothers is ''enabled''.
+<</options>>
 
 <br>
-<<if ($dangerousPregnancy == 0)>>
+<<options $dangerousPregnancy>>
+	<<option 0 "Disable">>
 	Advanced pregnancy complications such as miscarriage and premature birth are currently ''disabled''.
-	[[Enable|Intro Summary][$dangerousPregnancy = 1]]
-<<else>>
+	<<option 1 "Enable">>
 	Advanced pregnancy complications such as miscarriage and premature birth are currently ''enabled''.
-	[[Disable|Intro Summary][$dangerousPregnancy = 0]]
-<</if>>
+<</options>>
 
 <br>
-<<if $seeExtreme == 1>>
-	Extreme content like amputation is ''enabled''.
-	[[Disable|Intro Summary][$seeExtreme = 0]]
-<<else>>
+<<options $seeExtreme>>
+	<<option 0 "Disable">>
 	Extreme content like amputation is ''disabled''.
-	[[Enable|Intro Summary][$seeExtreme = 1]]
-<</if>>
+	<<option 1 "Enable">>
+	Extreme content like amputation is ''enabled''.
+<</options>>
 
 <br>
-<<if $seeBestiality == 1>>
-	Bestiality content is ''enabled''.
-	[[Disable|Intro Summary][$seeBestiality = 0]]
-<<else>>
+<<options $seeBestiality>>
+	<<option 0 "Disable">>
 	Bestiality content is ''disabled''.
-	[[Enable|Intro Summary][$seeBestiality = 1]]
-<</if>>
+	<<option 1 "Enable">>
+	Bestiality content is ''enabled''.
+<</options>>
 
 <br>
-<<if $seePee == 1>>
-	Watersports content is ''enabled''.
-	[[Disable|Intro Summary][$seePee = 0]]
-<<else>>
+<<options $seePee>>
+	<<option 0 "Disable">>
 	Watersports content is ''disabled''.
-	[[Enable|Intro Summary][$seePee = 1]]
-<</if>>
+	<<option 1 "Enable">>
+	Watersports content is ''enabled''.
+<</options>>
 
 <<if $seeDicks != 0>>
 	<br>
-	<<if $seeCircumcision == 1>>
-		Circumcision is ''enabled''.
-		[[Disable|Intro Summary][$seeCircumcision = 0]]
-	<<else>>
+	<<options $seeCircumcision>>
+		<<option 0 "Disable">>
 		Circumcision is ''disabled''.
-		[[Enable|Intro Summary][$seeCircumcision = 1]]
-	<</if>>
+		<<option 1 "Enable">>
+		Circumcision is ''enabled''.
+	<</options>>
 <</if>>
 
 <br><br>
 __''The Free City''__
 <br>
-The Free City features ''$neighboringArcologies'' arcologies in addition to your own.
-<<textbox "$neighboringArcologies" $neighboringArcologies "Intro Summary">>
-<br>&nbsp;&nbsp;&nbsp;&nbsp;
-//Setting this to 0 will disable most content involving the rest of the Free City.//
+<<options>>
+	The Free City features ''$neighboringArcologies'' arcologies in addition to your own.
+	<<option>>
+		<<textbox "$neighboringArcologies" $neighboringArcologies "Intro Summary">>
+	<<comment>>
+		Setting this to 0 will disable most content involving the rest of the Free
+		City.
+<</options>>
 
 <<if $targetArcology.type == "New">>
 	<br>
-	The Free City is located on ''$terrain'' terrain.
-	[[Urban|Intro Summary][$terrain = "urban"]] |
-	[[Rural|Intro Summary][$terrain = "rural"]] |
-	[[Ravine|Intro Summary][$terrain = "ravine"]] |
-	[[Marine|Intro Summary][$terrain = "marine"]] |
-	[[Oceanic|Intro Summary][$terrain = "oceanic"]]
+	<<options $terrain>>
+		The Free City is located on ''$terrain'' terrain.
+		<<option "urban" "Urban">>
+		<<option "rural" "Rural">>
+		<<option "ravine" "Ravine">>
+		<<option "marine" "Marine">>
+		<<option "oceanic" "Oceanic">>
+	<</options>>
 	<<if $terrain != "oceanic">>
 		<br>
-		The Free City is located in ''$continent''.
-		[[North America|Intro Summary][$continent = "North America", $language = "English"]] | [[South America|Intro Summary][$continent = "South America", $language = "Spanish"]] | [[Brazil|Intro Summary][$continent = "Brazil", $language = "Portuguese"]] | [[Europe|Intro Summary][$continent = "Europe", $language = "English"]] | [[the Middle East|Intro Summary][$continent = "the Middle East", $language = "Arabic"]] | [[Africa|Intro Summary][$continent = "Africa", $language = "Arabic"]] | [[Asia|Intro Summary][$continent = "Asia", $language = "Chinese"]] | [[Australia|Intro Summary][$continent = "Australia", $language = "English"]] |
 		<<if $freshPC == 1 || $saveImported == 0>>
-			[[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eyeColor = "brown"]]
+			<<options $continent>>
+				The Free City is located in ''$continent''.
+				<<option "North America"   "North America"   "$language = 'English'">>
+				<<option "South America"   "South America"   "$language = 'Spanish'">>
+				<<option "Brazil"          "Brazil"          "$language = 'Portuguese'">>
+				<<option "Europe"          "Europe"          "$language = 'English'">>
+				<<option "the Middle East" "The Middle East" "$language = 'Arabic'">>
+				<<option "Africa"          "Africa"          "$language = 'Arabic'">>
+				<<option "Asia"            "Asia"            "$language = 'Chinese'">>
+				<<option "Australia"       "Australia"       "$language = 'English'">>
+				<<option "Japan"           "Japan"           "$language = 'Japanese', $PC.race = 'asian', $PC.nationality = 'Japanese', $PC.hColor = 'black', $PC.eyeColor = 'brown'">>
+			<</options>>
 		<<else>>
-			[[Japan|Intro Summary][$continent = "Japan", $language = "Japanese"]]
+			<<options $continent>>
+				The Free City is located in ''$continent''.
+				<<option "North America"   "North America"   "$language = 'English'">>
+				<<option "South America"   "South America"   "$language = 'Spanish'">>
+				<<option "Brazil"          "Brazil"          "$language = 'Portuguese'">>
+				<<option "Europe"          "Europe"          "$language = 'English'">>
+				<<option "the Middle East" "The Middle East" "$language = 'Arabic'">>
+				<<option "Africa"          "Africa"          "$language = 'Arabic'">>
+				<<option "Asia"            "Asia"            "$language = 'Chinese'">>
+				<<option "Australia"       "Australia"       "$language = 'English'">>
+				<<option "Japan"           "Japan"           "$language = 'Japanese'">>
+			<</options>>
 		<</if>>
 	<</if>>
 <</if>>
-
+<br>
 <<if !["ArabianRevivalist", "AztecRevivalist", "ChineseRevivalist", "EdoRevivalist", "EgyptianRevivalist", "RomanRevivalist"].includes($targetArcology.type)>>
+	<<options $language>>
+		The lingua franca of your arcology is:
+		<<option "English" "English">>
+		<<option "Spanish" "Spanish">>
+		<<option "Arabic" "Arabic">>
+		<<option>>
+			<<textbox "$language" $language "Intro Summary">>
+	<</options>>
 	<br>
-	The lingua franca of your arcology is <<textbox "$language" $language "Intro Summary">>.
-	<<if $language != "English">>
-		[[English|Intro Summary][$language = "English"]] |
-	<<else>>
-		English |
-	<</if>>
-	<<if $language != "Spanish">>
-		[[Spanish|Intro Summary][$language = "Spanish"]] |
-	<<else>>
-		Spanish |
-	<</if>>
-	<<if $language != "Arabic">>
-		[[Arabic|Intro Summary][$language = "Arabic"]] |
-	<<else>>
-		Arabic |
-	<</if>>
-	<<if $language != "Chinese">>
-		[[Chinese|Intro Summary][$language = "Chinese"]]
-	<<else>>
-		Chinese
-	<</if>>
 <</if>>
 
-<br>
-The Free City could develop as many as ''$FSCreditCount'' future societies.
-<<textbox "$FSCreditCount" $FSCreditCount "Intro Summary">>
-<br>&nbsp;&nbsp;&nbsp;&nbsp;
 <<if $FSCreditCount >= 7>>
 	<<set $FSCreditCountString = "seven">>
 <<elseif $FSCreditCount == 6>>
@@ -554,9 +557,17 @@ The Free City could develop as many as ''$FSCreditCount'' future societies.
 <<elseif $FSCreditCount <= 4>>
 	<<set $FSCreditCountString = "four">>
 <</if>>
-//5 is default, 4 behaves the same as pre-patch 0.9.9.0, max is 7.//
-//Make sure to hit enter to confirm.//
-//This option cannot be changed during the game//
+
+<<options $FSCreditCount>>
+	The Free City could develop as many as ''$FSCreditCount'' future societies.
+	<<option>>
+		<<textbox "$FSCreditCount" $FSCreditCount "Intro Summary">>
+	<<comment>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+		5 is default, 4 behaves the same as pre-patch 0.9.9.0, max is 7.
+		Make sure to hit enter to confirm.
+		This option cannot be changed during the game
+<</options>>
 
 <br><br>
 __''Player Character''__
@@ -570,144 +581,214 @@ __''Player Character''__
 		<</if>>
 	<</if>>
 
-	<br>You are a $PCCreationSex.
-	<br>Change to
-		<<if $PCCreationSex != "masculine ''Master''">>
-			[[masculine Master|Intro Summary][$PC.title = 1, $PC.genes = "XY", $PCCreationSex = "masculine ''Master''"]]
-		<<elseif $PCCreationSex != "feminine ''Mistress''">>
-			[[feminine Mistress|Intro Summary][$PC.title = 0, $PC.genes = "XX", $PCCreationSex = "feminine ''Mistress''"]]
-		<</if>>
+	<br>
+	<<options $PC.title>>
+		You are a $PCCreationSex.  Change to:
+		<<option 1 "masculine Master" "$PC.genes = 'XY', $PCCreationSex = \"masculine ''Master''\"">>
+		<<option 0 "feminine Mistress" "$PC.genes = 'XX', $PCCreationSex = \"feminine ''Mistress''\"">>
+	<</options>>
 
-	<br>Everyone calls you ''<<= PlayerName()>>.''
 	<br>
-	With ''<<textbox "$PC.name" $PC.name>>'' as your given name and
+	Everyone calls you ''<<= PlayerName()>>.''
+	<br>
+	<<options>>
+		&nbsp;&nbsp;With your given name as:
+		<<option>>
+			<<textbox "$PC.name" $PC.name>>
+	<</options>>
+	<br>
 	<<if $PC.surname == 0>>
-		no surname.
-		<<link "Add a surname">>
-			<<set $PC.surname = "Anon">>
-			<<goto "Intro Summary">>
-		<</link>> //Surnames cannot be changed during the game outside of special circumstances.//
+		<<options $PC.surname>>
+			&nbsp;&nbsp;And no surname.
+			<<option "Anon" "Add a surname">>
+			<<comment>>
+				Surnames cannot be changed during the game outside of special circumstances.
+		<</options>>
 	<<else>>
-		''<<textbox "$PC.surname" $PC.surname>>'' as your surname.
-		<<link "Go by a single name">>
-			<<set $PC.surname = 0, $PC.surname = "">>
-			<<goto "Intro Summary">>
-		<</link>>
+		<<options $PC.surname>>
+			&nbsp;&nbsp;And your surname is:
+			<<option>>
+				<<textbox "$PC.surname" $PC.surname>>
+			<<option 0 "Go by a single name">>
+		<</options>>
 	<</if>>
-
 	<br>
-	You are <<textbox "$PC.actualAge" $PC.actualAge "Intro Summary">> years old which is
-	<<if $PC.actualAge >= 65>>
-		''old''.
-	<<elseif $PC.actualAge >= 50>>
-		''well into middle age''.
-	<<elseif $PC.actualAge >= 35>>
-		''entering middle age''.
-	<<else>>
-		''surprisingly young''.
-	<</if>>
 	<<set $PC.physicalAge = $PC.actualAge, $PC.visualAge = $PC.actualAge>>
-
-	Your birthday was <<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">> weeks ago.
-
-	<<if $playerAging == 2>>
-		and you ''age naturally''.
-		[[Disable aging|Intro Summary][$playerAging = 0]] |
-		[[Semi aging|Intro Summary][$playerAging = 1]]
-	<<elseif $playerAging == 1>>
-		and you ''will'' celebrate birthdays, but ''not age''.
-		[[Enable aging fully|Intro Summary][$playerAging = 2]] |
-		[[Disable aging|Intro Summary][$playerAging = 0]]
+	<<options>>
+		You are ''$PC.actualAge'' years old which is
+		<<if $PC.actualAge >= 65>>
+			''old''.
+		<<elseif $PC.actualAge >= 50>>
+			''well into middle age''.
+		<<elseif $PC.actualAge >= 35>>
+			''entering middle age''.
+		<<else>>
+			''surprisingly young''.
+		<</if>>
+		<<option>>
+			<<textbox "$PC.actualAge" $PC.actualAge "Intro Summary">>
+	<</options>>
+	<br>
+	<<options>>
+		Your birthday was ''$PC.birthWeek'' weeks ago.
+		<<option>>
+			<<textbox "$PC.birthWeek" $PC.birthWeek "Intro Summary">>
+	<</options>>
+	<br>
+	<<options $playerAging>>
+		<<option 2 "Enable aging">>
+			and you ''age naturally''.
+		<<option 1 "Semi aging">>
+			and you ''will'' celebrate birthdays, but ''not age''.
+		<<option 0 "Disable aging">>
+			and you will ''not age,'' nor experience birthdays.
+		<<comment>>
+		This option cannot be changed during the game
+	<</options>>
+	<br>
+	<<if def $PC.customTitle>>
+		<<options>>
+			Your custom title is:
+			<<option>>
+				<<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">>
+		<</options>>
+		<br>
+		<<options>>
+			and when lisped it is:
+			<<option>>
+				<<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summary">>
+			<<comment>>
+				If using a custom title, select Master or Mistress to set the gender of your title.
+				Make sure to replace your "s"s with "th"s to have working lisps in your lisped title.
+		<</options>>
 	<<else>>
-		and you will ''not age,'' nor experience birthdays.
-		[[Enable aging|Intro Summary][$playerAging = 2]] |
-		[[Semi aging|Intro Summary][$playerAging = 1]]
+		<<options $PC.customTitle>>
+			You have no custom title:
+			<<option "Master" "Set custom title" "$PC.customTitleLisp = 'Mather'">>
+			<<comment>>
+				If using a custom title, select Master or Mistress to set the gender of your title.
+				Make sure to replace your "s"s with "th"s to have working lisps in your lisped title.
+		<</options>>
 	<</if>>
-	//This option cannot be changed during the game//
-
 	<br>
-	Your custom title is ''<<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">>''
-	and when lisped it is ''<<textbox "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summary">>''.
-
-	//If using a custom title, select Master or Mistress to set the gender of your title.//
-	//Make sure to replace your "s"s with "th"s to have working lisps in your lisped title.//
-
+	<<options>>
+		Your nationality is:
+		<<option>>
+			<<textbox "$PC.nationality" $PC.nationality "Intro Summary">>
+		<<comment>>
+			Capitalize it
+	<</options>>
 	<br>
-	Your nationality (//Capitalize it//) is <<textbox "$PC.nationality" $PC.nationality "Intro Summary">>,
-	race is <<textbox "$PC.race" $PC.race "Intro Summary">>
-	and skin tone is <<textbox "$PC.skin" $PC.skin "Intro Summary">>.
-
-<br>__Race:__
-		[[White|Intro Summary][$PC.race = "white"]] |
-		[[Asian|Intro Summary][$PC.race = "asian"]] |
-		[[Latina|Intro Summary][$PC.race = "latina"]] |
-		[[Middle Eastern|Intro Summary][$PC.race = "middle eastern"]] |
-		[[Black|Intro Summary][$PC.race = "black"]] |
-		[[Semitic|Intro Summary][$PC.race = "semitic"]] |
-		[[Southern European|Intro Summary][$PC.race = "southern european"]] |
-		[[Indo-Aryan|Intro Summary][$PC.race = "indo-aryan"]] |
-		[[Amerindian|Intro Summary][$PC.race = "amerindian"]] |
-		[[Pacific Islander|Intro Summary][$PC.race = "pacific islander"]] |
-		[[Malay|Intro Summary][$PC.race = "malay"]] |
-		[[Mixed Race|Intro Summary][$PC.race = "mixed race"]]
-
-<br>__Skin tone:__
-		[[Pure White|Intro Summary][$PC.skin = "pure white"]] |
-		[[Extremely Pale|Intro Summary][$PC.skin = "extremely pale"]] |
-		[[Pale|Intro Summary][$PC.skin = "pale"]] |
-		[[Extremely Fair|Intro Summary][$PC.skin = "extremely fair"]] |
-		[[Very Fair|Intro Summary][$PC.skin = "very fair"]] |
-		[[Fair|Intro Summary][$PC.skin = "fair"]] |
-		[[White|Intro Summary][$PC.skin = "white"]] |
-		[[Light|Intro Summary][$PC.skin = "light"]] |
-		[[Lightened|Intro Summary][$PC.skin = "lightened"]] |
-		[[Light Olive|Intro Summary][$PC.skin = "light olive"]] |
-		[[Olive|Intro Summary][$PC.skin = "olive"]] |
-		[[Natural|Intro Summary][$PC.skin = "natural"]] |
-		[[Tanned|Intro Summary][$PC.skin = "tanned"]] |
-		[[Bronzed|Intro Summary][$PC.skin = "bronzed"]] |
-		[[Dark Olive|Intro Summary][$PC.skin = "dark olive"]] |
-		[[Dark|Intro Summary][$PC.skin = "dark"]] |
-		[[Light Brown|Intro Summary][$PC.skin = "light brown"]] |
-		[[Brown|Intro Summary][$PC.skin = "brown"]] |
-		[[Dark Brown|Intro Summary][$PC.skin = "dark brown"]] |
-		[[Black|Intro Summary][$PC.skin = "black"]] |
-		[[Ebony|Intro Summary][$PC.skin = "ebony"]] |
-		[[Pure Black|Intro Summary][$PC.skin = "pure black"]]
-
-	<<switch $PC.markings>>
-		<<case "freckles">>
-			<<set _PCCreationFreckles = "has light freckling">>
-		<<case "heavily freckled">>
-			<<set _PCCreationFreckles = "has heavy freckling">>
-		<<default>>
-			<<set _PCCreationFreckles = "is clear of blemishes">>
-	<</switch>>
-	<br>Your body ''_PCCreationFreckles''.
-		[[None|Intro Summary][$PC.markings = "none"]] |
-		[[Light|Intro Summary][$PC.markings = "freckles"]] |
-		[[Heavy|Intro Summary][$PC.markings = "heavily freckled"]]
-
-	<br>Your eyes are <<textbox "$PC.eyeColor" $PC.eyeColor "Intro Summary">>
-
-	and hair is <<textbox "$PC.hColor" $PC.hColor "Intro Summary">>.
-
-	<br>Your face is ''$PC.faceShape''.
-		[[Normal|Intro Summary][$PC.faceShape = "normal"]] |
-		[[Androgynous|Intro Summary][$PC.faceShape = "androgynous"]] |
-		[[Masculine|Intro Summary][$PC.faceShape = "masculine"]] |
-		[[Cute|Intro Summary][$PC.faceShape = "cute"]] |
-		[[Sensual|Intro Summary][$PC.faceShape = "sensual"]] |
-		[[Exotic|Intro Summary][$PC.faceShape = "exotic"]]
-
+	<<options $PC.race>>
+		Your race is:
+		<<option "white"             "White">>
+		<<option "asian"             "Asian">>
+		<<option "latina"            "Latina">>
+		<<option "middle eastern"    "Middle Eastern">>
+		<<option "black"             "Black">>
+		<<option "semitic"           "Semitic">>
+		<<option "southern european" "Southern European">>
+		<<option "indo-aryan"        "Indo-Aryan">>
+		<<option "amerindian"        "Amerindian">>
+		<<option "pacific islander"  "Pacific Islander">>
+		<<option "malay"             "Malay">>
+		<<option "mixed race"        "Mixed Race">>
+		<<option>>
+			<<textbox "$PC.race" $PC.race "Intro Summary">>
+	<</options>>
 	<br>
-	Your preferred refreshment is <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]]
-
-	and you consume it by ''<<if $PC.refreshmentType == 0>>Smoking<<elseif $PC.refreshmentType == 1>>Drink<<elseif $PC.refreshmentType == 2>>Eating<<elseif $PC.refreshmentType == 3>>Snorting<<elseif $PC.refreshmentType == 4>>Injection<<elseif $PC.refreshmentType == 5>>Popping<<else>>Orally Dissolving<</if>>''.
-	[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] | [[Popped|Intro Summary][$PC.refreshmentType = 5]] | [[Orally Dissolved|Intro Summary][$PC.refreshmentType = 6]]
+	<<options $PC.skin>>
+		Your skin tone is:
+		<<option "pure white"     "Pure White" >>
+		<<option "extremely pale" "Extremely Pale" >>
+		<<option "pale"           "Pale" >>
+		<<option "extremely fair" "Extremely Fair" >>
+		<<option "very fair"      "Very Fair" >>
+		<<option "fair"           "Fair" >>
+		<<option "white"          "White" >>
+		<<option "light"          "Light" >>
+		<<option "lightened"      "Lightened" >>
+		<<option "light olive"    "Light Olive" >>
+		<<option "olive"          "Olive" >>
+		<<option "natural"        "Natural" >>
+		<<option "tanned"         "Tanned" >>
+		<<option "bronzed"        "Bronzed" >>
+		<<option "dark olive"     "Dark Olive" >>
+		<<option "dark"           "Dark" >>
+		<<option "light brown"    "Light Brown" >>
+		<<option "brown"          "Brown" >>
+		<<option "dark brown"     "Dark Brown" >>
+		<<option "black"          "Black" >>
+		<<option "ebony"          "Ebony" >>
+		<<option "pure black"     "Pure Black" >>
+		<<option>>
+			<<textbox "$PC.skin" $PC.skin "Intro Summary">>
+	<</options>>
+	<br>
+	<<options $PC.markings>>
+		<<option "none" "None">>
+		Your body ''is clear of blemishes''.
+		<<option "freckles" "Light">>
+		Your body ''has light freckling''.
+		<<option "heavily freckled" "Heavy">>
+		Your body ''has heavy freckling''.
+	<</options>>
 
+	<br>
+	<<options>>
+		Your eyes are:
+		<<option>>
+			<<textbox "$PC.eyeColor" $PC.eyeColor "Intro Summary">>
+	<</options>>
+	<br>
+	<<options>>
+	Your hair is:
+		<<option>>
+			<<textbox "$PC.hColor" $PC.hColor "Intro Summary">>
+	<</options>>
+	<br>
+	<<options $PC.faceShape>>
+		<<option "normal" "Normal">>
+			Your face is ''normal''.
+		<<option "androgynous" "Androgynous">>
+			Your face is ''androgynous''.
+		<<option "masculine" "Masculine">>
+			Your face is ''masculine''.
+		<<option "cute" "Cute">>
+			Your face is ''cute''.
+		<<option "sensual" "Sensual">>
+			Your face is ''sensual''.
+		<<option "exotic" "Exotic">>
+			Your face is ''exotic''.
+	<</options>>
+	<br>
+	<<options $PC.refreshment>>
+		Your preferred refreshment is:
+		<<option "cigar" "Cigars" "$PC.refreshmentType = 0">>
+		<<option "whiskey" "Whiskey" "$PC.refreshmentType = 1">>
+		<<option>>
+			<<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">>
+	<</options>>
+	<br>
+	<<options $PC.refreshmentType>>
+		Which you
+		<<option 0 "Smoke">>
+			smoke.
+		<<option 1 "Drink">>
+			drink.
+		<<option 2 "Eat">>
+			eat.
+		<<option 3 "Snort">>
+			snort.
+		<<option 4 "Inject">>
+			inject.
+		<<option 5 "Pop">>
+			pop.
+		<<option 6 "Orally Disolve">>
+			orally disolve.
+	<</options>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<if $PC.refreshmentType == 0>>//"Smoked" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly
+	<<if ($PC.refreshmentType == 0) && ($PC.refreshmentType != 0) >>//"Smoked" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly
 	<<elseif $PC.refreshmentType == 5>>//"Popped" must fit into the following sentence: "I shook the bottle of $PC.refreshment" to fit events properly
 	<<elseif $PC.refreshmentType == 6>>//"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly
 	<</if>>
@@ -737,81 +818,108 @@ __''Player Character''__
 			<<set _PCCreationCareer = "a member of the idle wealthy">>
 	<</switch>>
 	<br>
-	Before you came to the Free Cities, you were ''_PCCreationCareer'' and it is rumored that you acquired your arcology through ''$PC.rumor''.
-
-	<br>__Past career:__
-	<<if $PC.career != "arcology owner">>
-		[[member of the idle wealthy|Intro Summary][$PC.career = "wealth"]] |
-		[[business leader|Intro Summary][$PC.career = "capitalist"]] |
-		[[mercenary|Intro Summary][$PC.career = "mercenary"]] |
-		[[slaver|Intro Summary][$PC.career = "slaver"]] |
-		[[engineer|Intro Summary][$PC.career = "engineer"]] |
-		[[doctor|Intro Summary][$PC.career = "medicine"]] |
-		[[hacker|Intro Summary][$PC.career = "BlackHat"]] |
-		[[minor celebrity|Intro Summary][$PC.career = "celebrity"]] |
-		[[escort|Intro Summary][$PC.career = "escort"]] |
-		[[servant|Intro Summary][$PC.career = "servant"]] |
-		[[gang leader|Intro Summary][$PC.career = "gang"]]
+	<<if $PC.career == "arcology owner">>
+		Before you came to the Free Cities, you were ''_PCCreationCareer''
+	<<else>>
+		<<options $PC.career>>
+			Before you came to the Free Cities, you were ''_PCCreationCareer'':
+			<<option "wealth"     "Member of the idle wealthy">>
+			<<option "capitalist" "Business leader">>
+			<<option "mercenary"  "Mercenary">>
+			<<option "slaver"     "Slaver">>
+			<<option "engineer"   "Engineer">>
+			<<option "medicine"   "Doctor">>
+			<<option "BlackHat"   "Hacker">>
+			<<option "celebrity"  "Minor celebrity">>
+			<<option "escort"     "Escort">>
+			<<option "servant"    "Servant">>
+			<<option "gang"       "Gang leader">>
+		<</options>>
 	<</if>>
-
-	<br>__rumor:__
-	[[wealth|Intro Summary][$PC.rumor = "wealth"]] |
-	[[hard work|Intro Summary][$PC.rumor = "diligence"]] |
-	[[force|Intro Summary][$PC.rumor = "force"]] |
-	[[social engineering|Intro Summary][$PC.rumor = "social engineering"]] |
-	[[blind luck|Intro Summary][$PC.rumor = "luck"]]
-
 	<br>
-	You have a
+	<<options $PC.rumor>>
+		It is rumored that you acquired your arcology through ''$PC.rumor'':
+		<<option "wealth"             "Wealth">>
+		<<option "diligence"          "Hard work">>
+		<<option "force"              "Force">>
+		<<option "social engineering" "Social engineering">>
+		<<option "luck"               "Blind luck">>
+	<</options>>
+	<br>
+
 	<<if $PC.vagina == 1 && $PC.dick == 1>>
-		''penis and vagina''. Sex scene variations; more difficult reputation maintenance; some unique opportunities, especially with breasts.
-		[[No penis|Intro Summary][$PC.dick = 0]] | [[No vagina|Intro Summary][$PC.vagina = 0, $PC.preg = 0, $PC.pregType = 0]]
-	<<elseif $PC.dick == 1>>
-		''penis''. Standard sex scenes; easiest reputation maintenance.
-		[[Switch to vagina|Intro Summary][$PC.dick = 0, $PC.vagina = 1]] | [[Add a vagina|Intro Summary][$PC.vagina = 1]]
+		<<set _vagina_penis = 2>>
 	<<elseif $PC.vagina == 1>>
-		''vagina''. Sex scene variations; most difficult reputation maintenance.
-		[[Switch to penis|Intro Summary][$PC.dick = 1, $PC.vagina = 0, $PC.preg = 0, $PC.pregType = 0]] | [[Add a penis|Intro Summary][$PC.dick = 1]]
+		<<set _vagina_penis = 1>>
+	<<else>>
+		<<set _vagina_penis = 0>>
 	<</if>>
 
+	<<options _vagina_penis>>
+		You have a
+		<<option 0 "Penis" "$PC.preg=0, $PC.pregType=0, $PC.dick=1, $PC.vagina=0">>
+			''penis''. Standard sex scenes; easiest reputation maintenance.
+		<<option 1 "Vagina" "$PC.dick=0, $PC.vagina=1">>
+			''vagina''. Sex scene variations; most difficult reputation maintenance.
+		<<option 2 "Penis and Vagina" "$PC.dick=1, $PC.vagina=1">>
+			''penis and vagina''. Sex scene variations; more difficult reputation maintenance; some unique opportunities, especially with breasts.
+	<</options>>
+	<br>
+
 	<<if $PC.vagina == 1>>
-		<br>
-		You are
+
+
 		<<if $PC.preg == -1>>
-			taking contraceptives. You ''can't'' get pregnant, however there will be a slight increase to living expenses.
-			[[Do not take contraceptives|Intro Summary][$PC.preg = 0]]
+			<<options $PC.preg>>
+				You are taking contraceptives. You ''can't'' get pregnant, however there
+				will be a slight increase to living expenses.
+				<<option -1 "Taking contraceptives">>
+				<<option 0 "Do not take contraceptives">>
+			<</options>>
 		<<elseif $PC.preg == 0>>
-			''not'' on contraceptives. You ''can'' get pregnant.
-			[[Take contraceptives|Intro Summary][$PC.preg = -1]]
-			| [[Too late for that|Intro Summary][$PC.preg = 16, $PC.pregType = 1]]
+			<<options $PC.preg>>
+				You are ''not'' on contraceptives. You ''can'' get pregnant.
+				<<option -1 "Take contraceptives">>
+				<<option 0  "Not taking contraceptives">>
+				<<option 16 "Too late for that!" "$PC.pregType = 1">>
+			<</options>>
 		<<elseif $PC.preg > 42>>
-			''<<print $PC.preg>> weeks pregnant with octuplets'' and your water just broke.
-			[[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0, $PC.labor = 0]]
+			<<options $PC.preg>>
+				You are ''<<print $PC.preg>> weeks pregnant with octuplets'' and your
+				water just broke.
+				<<options 0 "Not pregnant" "$PC.pregType = 0, $PC.labor = 0">>
+			<</options>>
 		<<elseif $PC.preg > 37>>
-			''<<print $PC.preg>> weeks pregnant'' and going to go into labor soon.
-			[[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0]]
+			<<options $PC.preg>>
+				You are ''<<print $PC.preg>> weeks pregnant'' and going to go into labor soon.
+				<<options 0 "Not pregnant" "$PC.pregType = 0, $PC.labor = 0">>
+				<<option 43 "Stuffed to capacity" "$PC.pregType = 8, $PC.labor = 1">>
+			<</options>>
 		<<elseif $PC.preg > 0>>
-			''<<print $PC.preg>> weeks pregnant'' so there is no need to worry about contraceptives.
-			[[Not pregnant|Intro Summary][$PC.preg = 0, $PC.pregType = 0]]
-			| [[Ready to drop|Intro Summary][$PC.preg = 40]]
-			| [[Stuffed to capacity|Intro Summary][$PC.preg = 43, $PC.pregType = 8, $PC.labor = 1]]
+			<<options $PC.preg>>
+				You are ''<<print $PC.preg>> weeks pregnant'' so there is no need to
+				worry about contraceptives.
+				<<option 0 "Not pregnant" "$PC.pregType = 0">>
+				<<option 40 "Ready to drop">>
+				<<option 43 "Stuffed to capacity" "$PC.pregType = 8, $PC.labor = 1">>
+			<</options>>
 		<</if>>
 
 		<<if $PC.births > 0>>
 			<br>You have given birth to ''$PC.births'' babies.
 		<</if>>
 
-		<br>Your hormones
-		<<if $PC.pregMood == 1>>
-			influence you to be ''caring and motherly''. Sex scene alterations; slaves will trust you more, but may try to take advantage of your mercy.
-			[[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]]
-		<<elseif $PC.pregMood == 0>>
-			do not affect you. Vanilla setting.
-			[[Change to motherly|Intro Summary][$PC.pregMood = 1]] | [[Change to aggressive|Intro Summary][$PC.pregMood = 2]]
-		<<else>>
-			influence you to be ''aggressive and domineering''. Sex scene alterations; slaves will fear you more, but will become more submissive to you.
-			[[Change to no change|Intro Summary][$PC.pregMood = 0]] | [[Change to motherly|Intro Summary][$PC.pregMood = 1]]
-		<</if>>
+		<br>
+		<<options $PC.pregMood>>
+			Your hormones
+			<<option 0 "Not affected">>
+				do not affect you. Vanilla setting.
+			<<option 1 "Caring and motherly">>
+				influence you to be ''caring and motherly''. Sex scene alterations;
+				slaves will trust you more, but may try to take advantage of your mercy.
+			<<option 2 "Aggressive and domineering">>
+				influence you to be ''aggressive and domineering''. Sex scene alterations; slaves will fear you more, but will become more submissive to you.
+		<</options>>
 	<</if>>
 
 	<br>
@@ -839,21 +947,26 @@ __''Player Character''__
 	<</if>>
 
 	<<if $PC.boobs > 0>>
-		Your breasts are ''_PCCreationBoobSize''
-		and ''_PCCreationBreast''.
-		<<if $PC.boobsBonus == 0>>
-			[[Go bigger|Intro Summary][$PC.boobsBonus = 2, $PC.boobsImplant = 0]] | [[Get implants|Intro Summary][$PC.boobsBonus = 2, $PC.boobsImplant = 1]] | [[Go smaller|Intro Summary][$PC.boobsBonus = -2, $PC.boobsImplant = 0]]
-		<<elseif $PC.boobsBonus == 2>>
-			[[Go smaller |Intro Summary][$PC.boobsBonus = 0, $PC.boobsImplant = 0]]
-		<<elseif $PC.boobsBonus == -2>>
-			[[Go bigger |Intro Summary][$PC.boobsBonus = 0]]
-		<</if>>
-		| [[Remove them|Intro Summary][$PC.boobs = 0, $PC.boobsBonus = 0, $PC.boobsImplant = 0]]
+		<<options $PC.boobsBonus>>
+			Your breasts are ''_PCCreationBoobSize'' and ''_PCCreationBreast''.
+			<<option -2 "C-cup" "$PC.boobsImplant = 0">>
+			<<option 0  "DD-cup" "$PC.boobsImplant = 0">>
+			<<option 1  "F-cup" "$PC.boobsImplant = 0">>
+			<<option 2  "G-cup" "$PC.boobsImplant = 0">>
+			<<option 2  "G-cup implants" "$PC.boobsImplant = 1">>
+			<<option 0  "Remove them" "$PC.boobs = 0, $PC.boobsImplant = 0">>
+		<</options>>
 	<<else>>
 		<<if $PC.title == 1>>
-			Your chest is ''manly.'' [[Add breasts|Intro Summary][$PC.boobs = 1, $PC.boobsBonus = -2]]
+			<<options $PC.boobs>>
+				Your chest is ''manly.''
+				<<option 1 "Add breasts" "$PC.boobsBonus = -2">>
+			<</options>>
 		<<else>>
-			You are ''flat chested.'' [[Grow breasts|Intro Summary][$PC.boobs = 1, $PC.boobsBonus = -2]]
+			<<options $PC.boobs>>
+				You are ''flat chested.''
+				<<option 1 "Grow breasts" "$PC.boobsBonus = -2">>
+			<</options>>
 		<</if>>
 	<</if>>
 
@@ -879,21 +992,19 @@ __''Player Character''__
 		''surprisingly young''.
 	<</if>>
 
-	Your birthday will be in $PC.birthWeek weeks
-	<<if $playerAging == 2>>
-		and you ''age naturally''.
-		[[Disable aging|Intro Summary][$playerAging = 0]] |
-		[[Semi aging|Intro Summary][$playerAging = 1]]
-	<<elseif $playerAging == 1>>
-		and you ''will'' celebrate birthdays, but ''not age''.
-		[[Enable aging fully|Intro Summary][$playerAging = 2]] |
-		[[Disable aging|Intro Summary][$playerAging = 0]]
-	<<else>>
-		and you will ''not age,'' nor experience birthdays.
-		[[Enable aging|Intro Summary][$playerAging = 2]] |
-		[[Semi aging|Intro Summary][$playerAging = 1]]
-	<</if>>
-	//This option cannot be changed during the game//
+	<br>
+
+	<<options $playerAging>>
+		Your birthday will be in $PC.birthWeek weeks
+		<<option 2 "Enable aging">>
+			and you ''age naturally''.
+		<<option 1 "Semi aging">>
+			and you ''will'' celebrate birthdays, but ''not age''.
+		<<option 0 "Disable aging">>
+			and you will ''not age,'' nor experience birthdays.
+		<<comment>>
+		This option cannot be changed during the game
+	<</options>>
 
 	<br>
 	Your custom title is ''<<textbox "$PC.customTitle" $PC.customTitle "Intro Summary">>''
diff --git a/src/facilities/farmyard/food/foodMarket.tw b/src/facilities/farmyard/food/foodMarket.tw
index 79a99d2e1b47eb458f0166ee840eb531be02fa92..09fd3aed69631540da6305721b7990eb2d25a52f 100644
--- a/src/facilities/farmyard/food/foodMarket.tw
+++ b/src/facilities/farmyard/food/foodMarket.tw
@@ -8,56 +8,56 @@ The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage,
 
 /* TODO: allow for the buying and selling of food */
 <br>
-<<link "Buy <<= massFormat(1)>>" "Manage Economy">><<set cashX(forceNeg($foodCost*1), "farmyard"), $foodStored += 1>><</link>>
-| <<link "<<= massFormat(10)>>" "Manage Economy">><<set cashX(forceNeg($foodCost*10), "farmyard"), $foodStored += 10>><</link>>
-| <<link "<<= massFormat(100)>>" "Manage Economy">><<set cashX(forceNeg($foodCost*100), "farmyard"), $foodStored += 100>><</link>>
-| <<link "<<= massFormat(1000)>>" "Manage Economy">><<set cashX(forceNeg($foodCost*1000), "farmyard"), $foodStored += 1000>><</link>>
-| <<link "<<= massFormat(10000)>>" "Manage Economy">><<set cashX(forceNeg($foodCost*10000), "farmyard"), $foodStored += 10000>><</link>>
+<<link "Buy <<= massFormat(1)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*1), "farmyard"), $foodStored += 1>><</link>>
+| <<link "<<= massFormat(10)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*10), "farmyard"), $foodStored += 10>><</link>>
+| <<link "<<= massFormat(100)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*100), "farmyard"), $foodStored += 100>><</link>>
+| <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*1000), "farmyard"), $foodStored += 1000>><</link>>
+| <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*10000), "farmyard"), $foodStored += 10000>><</link>>
 <<if $foodStored > 0>>
 	<br>
-	<<link "Sell <<= massFormat(1)>>" "Manage Economy">><<set cashX(($foodCost*1), "farmyard"), $foodStored -= 1>><</link>>
+	<<link "Sell <<= massFormat(1)>>" "Manage Arcology">><<set cashX(($foodCost*1), "farmyard"), $foodStored -= 1>><</link>>
 <</if>>
 <<if $foodStored >= 10>>
-	| <<link "<<= massFormat(10)>>" "Manage Economy">><<set cashX(($foodCost*10), "farmyard"), $foodStored -= 10>><</link>>
+	| <<link "<<= massFormat(10)>>" "Manage Arcology">><<set cashX(($foodCost*10), "farmyard"), $foodStored -= 10>><</link>>
 <</if>>
 <<if $foodStored >= 100>>
-	| <<link "<<= massFormat(100)>>" "Manage Economy">><<set cashX(($foodCost*100), "farmyard"), $foodStored -= 100>><</link>>
+	| <<link "<<= massFormat(100)>>" "Manage Arcology">><<set cashX(($foodCost*100), "farmyard"), $foodStored -= 100>><</link>>
 <</if>>
 <<if $foodStored >= 1000>>
-	| <<link "<<= massFormat(1000)>>" "Manage Economy">><<set cashX(($foodCost*1000), "farmyard"), $foodStored -= 1000>><</link>>
+	| <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set cashX(($foodCost*1000), "farmyard"), $foodStored -= 1000>><</link>>
 <</if>>
 <<if $foodStored >= 10000>>
-	| <<link "<<= massFormat(10000)>>" "Manage Economy">><<set cashX(($foodCost*10000), "farmyard"), $foodStored -= 10000>><</link>>
+	| <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set cashX(($foodCost*10000), "farmyard"), $foodStored -= 10000>><</link>>
 <</if>>
 <<if $food > 0>>
 	<br>
-	<<link "Store <<= massFormat(1)>>" "Manage Economy">><<set $foodStored += 1, $food -= 1>><</link>>
+	<<link "Store <<= massFormat(1)>>" "Manage Arcology">><<set $foodStored += 1, $food -= 1>><</link>>
 <</if>>
 <<if $food >= 10>>
-	| <<link "<<= massFormat(10)>>" "Manage Economy">><<set $foodStored += 10, $food -= 10>><</link>>
+	| <<link "<<= massFormat(10)>>" "Manage Arcology">><<set $foodStored += 10, $food -= 10>><</link>>
 <</if>>
 <<if $food >= 100>>
-	| <<link "<<= massFormat(100)>>" "Manage Economy">><<set $foodStored += 100, $food -= 100>><</link>>
+	| <<link "<<= massFormat(100)>>" "Manage Arcology">><<set $foodStored += 100, $food -= 100>><</link>>
 <</if>>
 <<if $food >= 1000>>
-	| <<link "<<= massFormat(1000)>>" "Manage Economy">><<set $foodStored += 1000, $food -= 1000>><</link>>
+	| <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set $foodStored += 1000, $food -= 1000>><</link>>
 <</if>>
 <<if $food >= 10000>>
-	| <<link "<<= massFormat(10000)>>" "Manage Economy">><<set $foodStored += 10000, $food -= 10000>><</link>>
+	| <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set $foodStored += 10000, $food -= 10000>><</link>>
 <</if>>
 <<if $foodStored > 0>>
 	<br>
-	<<link "Retrieve <<= massFormat(1)>>" "Manage Economy">><<set $food += 1, $foodStored -= 1>><</link>>
+	<<link "Retrieve <<= massFormat(1)>>" "Manage Arcology">><<set $food += 1, $foodStored -= 1>><</link>>
 <</if>>
 <<if $foodStored >= 10>>
-	| <<link "<<= massFormat(10)>>" "Manage Economy">><<set $food += 10, $foodStored -= 10>><</link>>
+	| <<link "<<= massFormat(10)>>" "Manage Arcology">><<set $food += 10, $foodStored -= 10>><</link>>
 <</if>>
 <<if $foodStored >= 100>>
-	| <<link "<<= massFormat(100)>>" "Manage Economy">><<set $food += 100, $foodStored -= 100>><</link>>
+	| <<link "<<= massFormat(100)>>" "Manage Arcology">><<set $food += 100, $foodStored -= 100>><</link>>
 <</if>>
 <<if $foodStored >= 1000>>
-	| <<link "<<= massFormat(1000)>>" "Manage Economy">><<set $food += 1000, $foodStored -= 1000>><</link>>
+	| <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set $food += 1000, $foodStored -= 1000>><</link>>
 <</if>>
 <<if $foodStored >= 10000>>
-	| <<link "<<= massFormat(10000)>>" "Manage Economy">><<set $food += 10000, $foodStored -= 10000>><</link>>
+	| <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set $food += 10000, $foodStored -= 10000>><</link>>
 <</if>>
diff --git a/src/facilities/farmyard/futureAnimals.tw b/src/facilities/farmyard/futureAnimals.tw
index aa19e9d14c7a7552bc445e36ba69a88273361601..5bb700d7c1d300955ac2d78516bda520c528ee6b 100644
--- a/src/facilities/farmyard/futureAnimals.tw
+++ b/src/facilities/farmyard/futureAnimals.tw
@@ -1,6 +1,6 @@
 /* Putting them here because commenting them out was breaking for some reason */
 
-        <<if $animalsBought.germanShepherds == 0>>
+		<<if $animalsBought.germanShepherds == 0>>
 		<<link "Purchase German Shepherds" "FarmyardAnimals">><<set cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "farmyard"), $animalsBought.germanShepherds = 1, $animalsBought.canines += 1, $canines.push("German Shepherds")>><</link>>
 		<br>
 	<<elseif $animalsBought.germanShepherds == 1>>
@@ -279,7 +279,6 @@
 		<</if>>
 		<br>
 	<</if>>
-<</if>>
 
 
 <<if $farmyardStable > 1>>
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 791d4f2e130d134a0037491ae78b24e6635b49d6..530b9e947243a6c59b153232626b7ba7785730cf 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -21,7 +21,7 @@ PLAYING FREE CITIES
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start the game and select any of the world options; choose normal difficulty, since it's pretty forgiving and this opener will make good @@.yellowgreen;[[money|Encyclopedia][$encyclopedia = "Money"]].@@ Build a completely male PC for your first game; it makes @@.green;[[reputation|Encyclopedia][$encyclopedia = "Arcologies and Reputation"]]@@ maintenance much easier. Choose wealth for both your career and your rumored method of obtaining the arcology; the other options are fun but a full wealth build will set you up quickly to get started.
 
 	<br><br>Now, customize your starting slaves.
-	<br>For your first, make her as @@.cyan;intelligent, educated,@@ and old as possible. Make her @@.hotpink;[[devoted|Encyclopedia][$encyclopedia = "From Rebellious to Devoted"]]@@ , but save @@.yellowgreen;[[money|Encyclopedia][$encyclopedia = "Money"]]@@ by giving her flaws, an unknown fetish, and @@.gold;making her afraid of you.@@ (These are easy to fix.) You can customize the rest of her as you wish, but try to keep her under ;@@.yellowgreen;<<print cashFormat(5000)>>.@@ Don't worry about skills, since with two of them you'll be able to rotate Head Girl duty so the other can learn skills. Commit her, base another slave off her, and commit that one too. Those are your [[Head Girls|Encyclopedia][$encyclopedia = "Head Girl"]].
+	<br>For your first, make her as @@.cyan;intelligent, educated,@@ and old as possible. Make her @@.hotpink;[[devoted|Encyclopedia][$encyclopedia = "From Rebellious to Devoted"]],@@ but save @@.yellowgreen;[[money|Encyclopedia][$encyclopedia = "Money"]]@@ by giving her flaws, an unknown fetish, and @@.gold;making her afraid of you.@@ (These are easy to fix.) You can customize the rest of her as you wish, but try to keep her under ;@@.yellowgreen;<<print cashFormat(5000)>>.@@ Don't worry about skills, since with two of them you'll be able to rotate Head Girl duty so the other can learn skills. Commit her, base another slave off her, and commit that one too. Those are your [[Head Girls|Encyclopedia][$encyclopedia = "Head Girl"]].
 
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Spend the rest of your @@.yellowgreen;[[money|Encyclopedia][$encyclopedia = "Money"]]@@ on prospects: slaves that are @@.yellowgreen;[[cheap|Encyclopedia][$encyclopedia = "Money"]]@@ now, but can be improved quickly. As long as you keep @@.hotpink;devotion@@ pretty high, low @@.mediumaquamarine;[[trust|Encyclopedia][$encyclopedia = "Trust"]]@@ can be fixed reliably. Unknown fetishes, emaciated or fat, flaws, deep voice, and poor skills are all good ways to drive prices down, and can all be fixed quickly. Virginities are a bad idea because they drive costs up and are easy to break. @@.cyan;Education@@ can take awhile and will take slaves away from other jobs, so make them all educated for now, and keep their @@.cyan;intelligence@@ reasonably high.
 
@@ -293,7 +293,7 @@ BEING IN CHARGE
 
 
 <<case "The Corporation">>
-	Once you are fairly reputable and have a large sum of cash in the bank, you will receive a brief end of turn event that unlocks the ability to found a corporation dedicated to slaving. Once this happens, you can incorporate from the 'Manage Corporation' tab found under 'Manage Economy", and once you've done that, you can manage your corporation every week from the same place.
+	Once you are fairly reputable and have a large sum of cash in the bank, you will receive a brief end of turn event that unlocks the ability to found a corporation dedicated to slaving. Once this happens, you can incorporate from the 'Manage Corporation' link on the sidebar, and once you've done that, you can manage your corporation every week from the same place.
 
 	<br><br>__Shares__
 	Buying shares from the corporation or issuing new shares will create new shares in the corporation. If you buy them yourself, cash will be transferred from you to the corporation in return for the shares; if you direct the corporation to issue new public shares, @@.yellowgreen;[[money|Encyclopedia][$encyclopedia = "Money"]]@@ will come into the corporation from the market. If you direct the corporation to buy back shares from the public, cash will be transferred from the corporation to reduce the number of public shares, which will increase your ownership percentage. You are not permitted to give up majority ownership of the corporation. Selling your shares or buying publicly held shares are both transactions between you and your shares and shareholders and their shares. All transactions impact the stock price.
diff --git a/src/gui/css/optionsMacro.tw b/src/gui/css/optionsMacro.tw
new file mode 100644
index 0000000000000000000000000000000000000000..4dcd9ca43b78035b62ab0e9c930a480cd33a4d94
--- /dev/null
+++ b/src/gui/css/optionsMacro.tw
@@ -0,0 +1,103 @@
+:: Options Macro [stylesheet]
+
+.optionMacro {
+	margin-top: 8px;
+	display: inline-block;
+}
+
+.optionDescription {
+	display: inline-block;
+	width: 500px;
+	margin-right: 10px;
+	line-height: 1.2;
+	text-align: right;
+}
+
+@media only screen and (max-width: 1200px) {
+	.optionDescription {
+		display: block;
+		width: unset;
+	}
+
+	.optionMacro {
+		margin-top: 30px;
+	}
+
+}
+
+.optionMacroOption {
+	border: #555 solid 0.5px;
+	border-top-width: 0;
+	vertical-align: top;
+	background: linear-gradient(transparent,#222);
+	-moz-user-select: none;
+	min-width: 79px; /* 80px - 1px for border */
+	display: inline-block;
+	text-align: center;
+}
+
+.optionComment {
+	vertical-align: top;
+	color: gray;
+}
+
+/* But don't add the | after the last one */
+.optionMacroOption:last-child {
+	border-top-right-radius: 6px;
+	border-bottom-right-radius: 6px;
+	border-right-width: 0;
+}
+
+.optionMacroOption:first-child {
+	border-top-left-radius: 6px;
+	border-bottom-left-radius: 6px;
+}
+
+.optionMacroOption a {
+	padding: 0 10px;
+	box-sizing: border-box;
+	width: 100%;
+	display: block;
+}
+
+.optionMacroOption:hover {
+	background: linear-gradient(#2F2F2F,#111);
+}
+
+.optionMacroSelected {
+	background: linear-gradient(#2F2F2F,#111);
+	padding: 0 10px;
+	min-width: 80px;
+	cursor: pointer;
+	box-sizing: border-box;
+}
+
+.optionValue input {
+	padding: 3px;
+	background: linear-gradient(transparent,#222);
+	border: #555 solid 0.5px;
+	border-top-width: 0;
+	min-width: reset;
+	width: 140px;
+}
+
+.optionValue input:last-child {
+	border-top-right-radius: 6px;
+	border-bottom-right-radius: 6px;
+	border-right-width: 0;
+}
+
+.optionValue input:first-child {
+	border-top-left-radius: 6px;
+	border-bottom-left-radius: 6px;
+}
+
+.optionMacroSelected.optionMacroEnable {
+	color: rgb(230,255,230);
+	background-image: linear-gradient(rgba(0, 255,0, 0.12), transparent);
+}
+
+.optionMacroSelected.optionMacroDisable {
+	color: rgb(255,240,240);
+	background-image: linear-gradient(rgba(255, 100, 0, 0.2), transparent);
+}
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index 8230cb84b61aa3278e5d20d22ae2a00bab4f347d..72e6ae3096066531763c60df7302b134bf03b682 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -22,7 +22,7 @@ $activeSlave.noun, $activeSlave.pronoun, $activeSlave.possessive, $activeSlave.p
 $drugs, $harshCollars, $shoes, $bellyAccessories, $vaginalAccessories, $dickAccessories, $buttplugs
 $PC.origRace, $PC.origSkin
 $servantsQuartersSpots
-$sayEnunciate, $sEnunciate, $SEnunciate, $ssEnunciate, $cEnunciate, $CEnunciate, $ccEnunciate, $zEnunciate, $ZEnunciate, $chEnunciate, $ChEnunciate, $shEnunciate, $ShEnunciate, $scEnunciate, $ScEnunciate, $schEnunciate, $SchEnunciate, $xEnunciate, $XEnunciate
+$sayEnunciate, $sEnunciate, $SEnunciate, $ssEnunciate, $cEnunciate, $CEnunciate, $ccEnunciate, $zEnunciate, $ZEnunciate, $chEnunciate, $ChEnunciate, $psEnunciate, $PsEnunciate, $shEnunciate, $ShEnunciate, $scEnunciate, $ScEnunciate, $schEnunciate, $SchEnunciate, $xEnunciate, $XEnunciate
 $ZEnunciate = $ZEnunciate
 $Girl
 $corpPeopleEnslaved, $slaveAssets, $slaveAssetPrice, $corpProfit, $corpValue, $sharePrice, $oldSharePrice, $generalAssetPrice, $generalAssets, $entrapmentAssets, $entrapmentAssetPrice, $captureAssets, $captureAssetPrice, $trainingAssets, $trainingAssetPrice, $surgicalAssets, $surgicalAssetPrice, $drugAssets, $drugAssetPrice
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 1241b29310c51c3e7184a200c587e78a60d41f0e..de1b06004458e671148e4897aadc79abdcd29fcf 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -618,7 +618,7 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $nurseryNannies = 0>>			/* counts the number of nannies the nursery can support */
 <<set $nurseryBabies = 0>>			/* counts the number of children currently in the nursery */
 <<set $nurserySlaves = 0>>			/* counts the number of nannies currently assigned to the nursery */
-<<set $MatronInfluence = 0>> 		/* check for whether the children are influenced by the Matron */
+<<set $MatronInfluence = 0>>		/* check for whether the children are influenced by the Matron */
 <<set $nannyInfluence = 0>>			/* check for whether the children are influenced by the nannies */
 <<set $nurseryDecoration = "standard">>
 <<set $nurseryWeight = 0>>
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 16ba5229c57bd28f8b345411eb1a2a2b4af50bfe..1f32ab0bbc453f11e23ab943b227f589a416d72d 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -755,7 +755,7 @@ window.DefaultRules = (function() {
 						case "none":
 							r += `<br>${slave.slaveName} has been instructed not to use an attachment for ${his} dildo.`;
 							break;
-						
+
 						case "vibrator":
 							r += `<br>${slave.slaveName}'s dildo has been replaced with a vibrating model.`;
 							break;
@@ -766,7 +766,7 @@ window.DefaultRules = (function() {
 					}
 				} else {
 					switch (slave.vaginalAttachment) {
-						
+
 						case "none":
 							r += `<br>${slave.slaveName} has been instructed not to use any vaginal accessories.`;
 							break;
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 4bcb55d3cf9b4ae203c1a4ef6dd5013ac3166d59..6e7533c7acf237879bcf9ea025ff04b28a347db9 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1506,7 +1506,7 @@ App.Entity.SlaveState = class SlaveState {
 		 */
 		this.clothes = "no clothing";
 		/**
-		 * may accept strings, use at own risk 	"none"
+		 * may accept strings, use at own risk	"none"
 		 * * "ancient Egyptian"
 		 * * "cruel retirement counter"
 		 * * "uncomfortable leather"
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index e7d88d4edad344f084d7f115ea39d8383c76b347..e4e9e6a646b794769754b21dc6cf12ec516d445a 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -1,4 +1,4 @@
-window.isSlim = /** @param {App.Entity.SlaveState} slave */ function (slave) {
+window.isSlim = /** @param {App.Entity.SlaveState} slave */ function(slave) {
 	let slim = false;
 	const ArcologyZero = State.variables.arcologies[0];
 
@@ -27,51 +27,15 @@ window.isSlim = /** @param {App.Entity.SlaveState} slave */ function (slave) {
 	return slim;
 };
 
-window.isStacked = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return (slave.butt > 4) && (slave.boobs > 800);
-};
-
-window.isModded = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	const tatScore = SlaveStatsChecker.tatScore(slave);
-	const piercingScore = SlaveStatsChecker.piercingScore(slave);
-	const modScore = piercingScore+tatScore;
-
-	return ((modScore > 15) || (piercingScore > 8 && tatScore > 5));
-};
-
-window.isUnmodded = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return (!isModded(slave) && (slave.corsetPiercing === 0) && (SlaveStatsChecker.piercingScore(slave) < 3) && (SlaveStatsChecker.tatScore(slave) < 2));
-};
-
-window.isXY = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return (slave.dick > 0);
-};
-
-window.isYoung = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return (slave.visualAge < 30);
-};
-
-window.isPreg = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return ((slave.bellyPreg >= 5000) || (slave.bellyImplant >= 5000));
-};
-
-window.isNotPreg = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return (!isPreg(slave) && (slave.belly < 100) && (slave.weight < 30) && !setup.fakeBellies.includes(slave.bellyAccessory));
-};
-
-window.isPure = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	return ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.waist >= -95) && (slave.lipsImplant === 0) && (slave.faceImplant < 30) && (slave.bellyImplant === -1) && (Math.abs(slave.shouldersImplant) < 2) && (Math.abs(slave.hipsImplant) < 2));
-};
-
-window.slimPass = /** @param {App.Entity.SlaveState} slave */ function (slave) {
+window.slimPass = /** @param {App.Entity.SlaveState} slave */ function(slave) {
 	let slimPass = 0;
-	let ArcologyZero = State.variables.arcologies[0];
+	const ArcologyZero = State.variables.arcologies[0];
 
 	if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) {
 		if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) {
-			if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { /*muscle check*/
+			if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { /* muscle check*/
 				slimPass = 0;
-			} else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /*weight check*/
+			} else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /* weight check*/
 				if (slave.weight > 30) {
 					slimPass = 0;
 				}
@@ -112,7 +76,7 @@ window.inferiorRaceP = /** @param {App.Entity.SlaveState} slave */ function infe
 
 window.hasVisibleHeterochromia = /** @param {App.Entity.SlaveState} slave */ function hasVisibleHeterochromia(slave) {
 	return slave.geneticQuirks.heterochromia !== 0 && slave.geneticQuirks.heterochromia !== 1 && slave.geneticQuirks.albinism !== 2 && slave.geneticQuirks.heterochromia !== slave.eyeColor && slave.eyeColor === slave.origEye;
-}
+};
 
 window.isLeaderP = /** @param {App.Entity.SlaveState} slave */ function isLeaderP(slave) {
 	const V = State.variables;
@@ -250,7 +214,7 @@ window.newSlave = /** @param {App.Entity.SlaveState} slave */ function newSlave(
 		V.genePool.push(slave);
 		/* Store non-albino stats in genePool */
 		if (slave.geneticQuirks.albinism === 2) {
-			var albInd = V.genePool.findIndex(function(s) { return s.ID === slave.ID; });
+			const albInd = V.genePool.findIndex(function(s) { return s.ID === slave.ID; });
 			V.genePool.genePool[albInd].origSkin = slave.albinismOverride.skin;
 			V.genePool.genePool[albInd].origEye = slave.albinismOverride.eyeColor;
 			V.genePool.genePool[albInd].origHColor = slave.albinismOverride.hColor;
@@ -392,7 +356,7 @@ window.getPronouns = /** @param {App.Entity.SlaveState} slave */ function getPro
 		possessive: slave.possessive,
 		object: slave.object,
 		objectReflexive: slave.objectReflexive,
-		noun: slave.noun };
+		noun: slave.noun};
 };
 
 window.SlavePronouns = /** @param {App.Entity.SlaveState} slave */ function SlavePronouns(slave) {
@@ -557,7 +521,7 @@ window.Enunciate = /** @param {App.Entity.SlaveState} slave */ function Enunciat
 
 window.fetishChangeChance = /** @param {App.Entity.SlaveState} slave */ function fetishChangeChance(slave) {
 	const V = State.variables;
-	var chance = 0, sex = 0;
+	let chance = 0, sex = 0;
 
 	if (slave.clitSetting !== slave.fetish) {
 		if (slave.balls) {
@@ -566,7 +530,7 @@ window.fetishChangeChance = /** @param {App.Entity.SlaveState} slave */ function
 		else if (slave.ovaries || slave.mpreg) {
 			sex = V.fertilityAge - slave.actualAge;
 		}
-		chance = Math.trunc(Math.clamp((slave.devotion/4)-(slave.fetishStrength/4)-(Math.max(sex,0)*10), 0, 100));
+		chance = Math.trunc(Math.clamp((slave.devotion/4)-(slave.fetishStrength/4)-(Math.max(sex, 0)*10), 0, 100));
 	}
 
 	return chance;
@@ -590,7 +554,7 @@ window.SlaveFullBirthName = /** @param {App.Entity.SlaveState} slave */ function
 
 window.PlayerName = function PlayerName() {
 	const V = State.variables;
-	let names = V.PC.surname ? [V.PC.name, V.PC.surname] : [V.PC.name];
+	const names = V.PC.surname ? [V.PC.name, V.PC.surname] : [V.PC.name];
 	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(V.PC.nationality)) || (V.surnameOrder === 2))
 		names.reverse();
 	return names.join(" ");
@@ -598,7 +562,7 @@ window.PlayerName = function PlayerName() {
 
 window.PCTitle = function PCTitle() {
 	const V = State.variables;
-	let titles = [];
+	const titles = [];
 
 	V.PCTitle = PlayerName();
 
@@ -680,8 +644,8 @@ window.PCTitle = function PCTitle() {
 				titles.push("The Betrayed");
 				break;
 			case "Exodus":
-			titles.push("The Abandoned");
-			break;
+				titles.push("The Abandoned");
+				break;
 		}
 	}
 
@@ -994,7 +958,7 @@ window.PCTitle = function PCTitle() {
 		titles.push("Caretaker of the Youth");
 	}
 
-	let schoolsPresent = [], schoolsPerfected = [], schoolTitle = "";
+	const schoolsPresent = []; const schoolsPerfected = []; let schoolTitle = "";
 	if (V.TSS.schoolProsperity >= 10) {
 		schoolsPerfected.push("The Slave School");
 	} else if (V.TSS.schoolPresent === 1) {
@@ -1131,9 +1095,12 @@ window.PCTitle = function PCTitle() {
 };
 
 window.PoliteRudeTitle = /** @param {App.Entity.SlaveState} slave */ function PoliteRudeTitle(slave) {
-	const V = State.variables, PC = V.PC, s = V.sEnunciate, ss = V.ssEnunciate;
+	const V = State.variables;
+	const PC = V.PC;
+	const s = V.sEnunciate;
+	const ss = V.ssEnunciate;
 
-	var r = "";
+	let r = "";
 	if (slave.nationality === "Japanese") {
 		if (slave.trust > 0) {
 			r += `${PC.name}${PC.title > 0 ? "kun" : "chan"}`;
@@ -1159,7 +1126,7 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 	let r = "";
 	if (V.newDescriptions === 1) {
 		if (slave.dick > 0 && slave.balls > 0 && slave.boobs > 300 && slave.vagina > -1 && slave.ovaries === 1) {
-			if (jsRandom(1,100) > 50) {
+			if (jsRandom(1, 100) > 50) {
 				r = "futanari";
 			} else {
 				r = "herm";
@@ -1306,26 +1273,26 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 		r = "slave"; /* I don't tihnk there is an 'else'? */
 		if ((slave.dick === 0) && (slave.vagina === -1)) { /* NULLS */
 			r = "null";
-				if ((slave.lactation > 0) && (slave.boobs > 2000)) {
-					r = r + " cow";
-				} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-					r = r + " bimbo ";
-				} else if (slave.boobs > 6000) {
-					r = r + " boob";
-				} else if (slave.butt > 6) {
-					r = r + " ass";
-				} else if ((slave.muscles > 30) && (slave.height < 185)) {
-						r = r + " muscle";
-				}
-					if (slave.visualAge > 55) {
-						r = r + "GILF";
-					} else if (slave.visualAge > 35) {
-						r = r + "MILF";
-					} else if (slave.visualAge >= 25) {
-						r = r + "slave";
-					} else {
-						r = r + "girl";
-					}
+			if ((slave.lactation > 0) && (slave.boobs > 2000)) {
+				r = r + " cow";
+			} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+				r = r + " bimbo ";
+			} else if (slave.boobs > 6000) {
+				r = r + " boob";
+			} else if (slave.butt > 6) {
+				r = r + " ass";
+			} else if ((slave.muscles > 30) && (slave.height < 185)) {
+				r = r + " muscle";
+			}
+			if (slave.visualAge > 55) {
+				r = r + "GILF";
+			} else if (slave.visualAge > 35) {
+				r = r + "MILF";
+			} else if (slave.visualAge >= 25) {
+				r = r + "slave";
+			} else {
+				r = r + "girl";
+			}
 		}
 
 		if ((slave.dick === 0) && (slave.vagina !== -1)) { /* FEMALES */
@@ -1338,48 +1305,48 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 			} else {
 				r = "slavegirl";
 			}
-				if ((slave.muscles > 30) && (slave.height < 185)) {
-					r = "muscle " + r;
-				} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
-					r = r + " cow";
-				} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-					r = r + " bimbo";
-				} else if (slave.boobs > 6000) {
-					r = "boob" + r;
-				} else if (slave.butt > 6) {
-					r = "ass" + r;
-				}
+			if ((slave.muscles > 30) && (slave.height < 185)) {
+				r = "muscle " + r;
+			} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
+				r = r + " cow";
+			} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+				r = r + " bimbo";
+			} else if (slave.boobs > 6000) {
+				r = "boob" + r;
+			} else if (slave.butt > 6) {
+				r = "ass" + r;
+			}
 		}
 
 		if ((slave.dick !== 0) && (slave.vagina !== -1)) {
-				if (slave.balls > 0) { /* FUTANARI: cock & balls & vagina */
-					r = "futanari ";
-				} else { /* FUTANARI: cock & vagina */
-					r = "futa ";
-				}
-					if ((slave.lactation > 0) && (slave.boobs > 2000)) {
-						r = r + "cow";
-					} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-						r = r + "bimbo ";
-					} else if (slave.boobs > 6000) {
-						r = r + "boob";
-					} else if (slave.butt > 6) {
-						r = r + "ass";
-					} else if ((slave.muscles > 30) && (slave.height < 185)) {
-						r = r + "muscle";
-					}
-						if (slave.visualAge > 55) {
-							r = r + "GILF";
-						} else if (slave.visualAge > 35) {
-							r = r + "MILF";
-						} else if (slave.visualAge >= 25) {
-							r = r + "slave";
-						} else {
-							r = r + "girl";
-						}
-							if (slave.dick > 5 && slave.balls > 5 && slave.boobs > 5000) {
-								r = "hyper " + r;
-							}
+			if (slave.balls > 0) { /* FUTANARI: cock & balls & vagina */
+				r = "futanari ";
+			} else { /* FUTANARI: cock & vagina */
+				r = "futa ";
+			}
+			if ((slave.lactation > 0) && (slave.boobs > 2000)) {
+				r = r + "cow";
+			} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+				r = r + "bimbo ";
+			} else if (slave.boobs > 6000) {
+				r = r + "boob";
+			} else if (slave.butt > 6) {
+				r = r + "ass";
+			} else if ((slave.muscles > 30) && (slave.height < 185)) {
+				r = r + "muscle";
+			}
+			if (slave.visualAge > 55) {
+				r = r + "GILF";
+			} else if (slave.visualAge > 35) {
+				r = r + "MILF";
+			} else if (slave.visualAge >= 25) {
+				r = r + "slave";
+			} else {
+				r = r + "girl";
+			}
+			if (slave.dick > 5 && slave.balls > 5 && slave.boobs > 5000) {
+				r = "hyper " + r;
+			}
 		}
 
 		if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0) && (slave.boobs > 300) && (slave.butt > 2)) { /* SHEMALES: cock & balls, T&A above minimum */
@@ -1392,17 +1359,17 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 			} else {
 				r = "tgirl";
 			}
-				if ((slave.muscles > 30) && (slave.height < 185)) {
-					r = "muscle" + r;
-				} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
-					r = r + " cow";
-				} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-					r = r + " bimbo";
-				} else if (slave.boobs > 6000) {
-					r = "topheavy " + r;
-				} else if (slave.butt > 6) {
-					r = "bottomheavy " + r;
-				}
+			if ((slave.muscles > 30) && (slave.height < 185)) {
+				r = "muscle" + r;
+			} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
+				r = r + " cow";
+			} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+				r = r + " bimbo";
+			} else if (slave.boobs > 6000) {
+				r = "topheavy " + r;
+			} else if (slave.butt > 6) {
+				r = "bottomheavy " + r;
+			}
 		}
 
 		if ((slave.boobs < 300) || (slave.butt < 2)) {
@@ -1427,11 +1394,11 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 							r = "trapgirl";
 						}
 					}
-						if (slave.lactation > 0) {
-							r = r + " cow";
-						} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-							r = r + " bimbo";
-						}
+					if (slave.lactation > 0) {
+						r = r + " cow";
+					} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+						r = r + " bimbo";
+					}
 				}
 			}
 		}
@@ -1440,46 +1407,46 @@ window.SlaveTitle = /** @param {App.Entity.SlaveState} slave */ function SlaveTi
 			if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls > 0)) {
 				if ((slave.shoulders > 1) || (slave.muscles >= 30)) { /* BITCHES: masculine shoulders or muscles */
 					r = "bitch";
-						if ((slave.muscles > 30) && (slave.height < 185)) {
-							r = "muscle" + r;
-						} else if (slave.lactation > 0) {
-							r = r + "cow";
-						} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-							r = "bimbo " + r;
-						}
-						if (slave.visualAge > 55) {
-							r = "aged " + r;
-						} else if (slave.visualAge > 35) {
-							r = "mature " + r;
-						} else if (slave.visualAge < 25) {
-							r = "young " + r;
-						}
+					if ((slave.muscles > 30) && (slave.height < 185)) {
+						r = "muscle" + r;
+					} else if (slave.lactation > 0) {
+						r = r + "cow";
+					} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+						r = "bimbo " + r;
+					}
+					if (slave.visualAge > 55) {
+						r = "aged " + r;
+					} else if (slave.visualAge > 35) {
+						r = "mature " + r;
+					} else if (slave.visualAge < 25) {
+						r = "young " + r;
+					}
 				}
 			}
 		}
 
 		if ((slave.dick !== 0) && (slave.vagina === -1) && (slave.balls === 0)) {
 			r = "dick";
-				if (slave.visualAge > 55) {
-					r = r + "GILF";
-				} else if (slave.visualAge > 35) {
-					r = r + "MILF";
-				} else if (slave.visualAge >= 25) {
-					r = r + "slave";
-				} else {
-					r = r + "girl";
-				}
-					if ((slave.muscles > 30) && (slave.height < 185)) {
-						r = "muscle" + r;
-					} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
-						r = r + " cow";
-					} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
-						r = r + " bimbo";
-					} else if (slave.boobs > 6000) {
-						r = "boob " + r;
-					} else if (slave.butt > 6) {
-						r = "ass " + r;
-					}
+			if (slave.visualAge > 55) {
+				r = r + "GILF";
+			} else if (slave.visualAge > 35) {
+				r = r + "MILF";
+			} else if (slave.visualAge >= 25) {
+				r = r + "slave";
+			} else {
+				r = r + "girl";
+			}
+			if ((slave.muscles > 30) && (slave.height < 185)) {
+				r = "muscle" + r;
+			} else if ((slave.lactation > 0) && (slave.boobs > 2000)) {
+				r = r + " cow";
+			} else if ((slave.boobsImplant > 0) && (slave.buttImplant > 0)) {
+				r = r + " bimbo";
+			} else if (slave.boobs > 6000) {
+				r = "boob " + r;
+			} else if (slave.butt > 6) {
+				r = "ass " + r;
+			}
 		}
 
 		if ((slave.muscles > 30) && (slave.height > 185)) {
@@ -1538,8 +1505,8 @@ window.DegradingName = /** @param {App.Entity.SlaveState} slave */ function Degr
 		"be your Head Girl",
 		"guard you",
 		"recruit girls"];
-	let names = [];
-	let suffixes = [];
+	const names = [];
+	const suffixes = [];
 
 	if (slave.fuckdoll > 0) {
 		slave.slaveName = "Fuckdoll No. " + slave.ID;
@@ -1909,7 +1876,7 @@ window.DegradingName = /** @param {App.Entity.SlaveState} slave */ function Degr
 				break;
 		}
 	}
-	let surname = jsEither(suffixes);
+	const surname = jsEither(suffixes);
 	if (typeof surname === "string" && surname.toLowerCase() === slave.slaveName.toLowerCase()) {
 		DegradingName(slave);
 	}
@@ -1921,48 +1888,48 @@ window.SlaveSort = /** @param {App.Entity.SlaveState[]} slaves */ function Slave
 	const V = State.variables;
 	if (main) {
 		switch (V.sortSlavesBy) {
-		case "name":
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1);
-			else
-				slaves = slaves.sort((a, b) => a.slaveName > b.slaveName ? -1 : 1);
-			break;
-		case "assignment":
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => a.assignment < b.assignment ? -1 : 1);
-			else
-				slaves = slaves.sort((a, b) => a.assignment > b.assignment ? -1 : 1);
-			break;
-		case "seniority":
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => b.weekAcquired - a.weekAcquired);
-			else
-				slaves = slaves.sort((a, b) => a.weekAcquired - b.weekAcquired);
-			break;
-		case "actualAge":
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => a.actualAge - b.actualAge);
-			else
-				slaves = slaves.sort((a, b) => b.actualAge - a.actualAge);
-			break;
-		case "visualAge":
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => a.visualAge - b.visualAge);
-			else
-				slaves = slaves.sort((a, b) => b.visualAge - a.visualAge);
-			break;
-		case "physicalAge":
-			if (V.sortSlavesOrder === "physicalAge")
-				slaves = slaves.sort((a, b) => a.physicalAge - b.physicalAge);
-			else
-				slaves = slaves.sort((a, b) => b.physicalAge - a.physicalAge);
-			break;
-		default:
-			if (V.sortSlavesOrder === "ascending")
-				slaves = slaves.sort((a, b) => a.devotion - b.devotion);
-			else
-				slaves = slaves.sort((a, b) => b.devotion - a.devotion);
-			break;
+			case "name":
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1);
+				else
+					slaves = slaves.sort((a, b) => a.slaveName > b.slaveName ? -1 : 1);
+				break;
+			case "assignment":
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => a.assignment < b.assignment ? -1 : 1);
+				else
+					slaves = slaves.sort((a, b) => a.assignment > b.assignment ? -1 : 1);
+				break;
+			case "seniority":
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => b.weekAcquired - a.weekAcquired);
+				else
+					slaves = slaves.sort((a, b) => a.weekAcquired - b.weekAcquired);
+				break;
+			case "actualAge":
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => a.actualAge - b.actualAge);
+				else
+					slaves = slaves.sort((a, b) => b.actualAge - a.actualAge);
+				break;
+			case "visualAge":
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => a.visualAge - b.visualAge);
+				else
+					slaves = slaves.sort((a, b) => b.visualAge - a.visualAge);
+				break;
+			case "physicalAge":
+				if (V.sortSlavesOrder === "physicalAge")
+					slaves = slaves.sort((a, b) => a.physicalAge - b.physicalAge);
+				else
+					slaves = slaves.sort((a, b) => b.physicalAge - a.physicalAge);
+				break;
+			default:
+				if (V.sortSlavesOrder === "ascending")
+					slaves = slaves.sort((a, b) => a.devotion - b.devotion);
+				else
+					slaves = slaves.sort((a, b) => b.devotion - a.devotion);
+				break;
 		}
 		V.slaveIndices = slaves2indices();
 	} else {
@@ -1976,7 +1943,7 @@ window.slaveSortMinor = /** @param {App.Entity.SlaveState[]} slaves */ function
 	slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1);
 };
 
-window.MenialPopCap = function MenialPopCap () {
+window.MenialPopCap = function MenialPopCap() {
 	const V = State.variables;
 	let popCap = 500;
 	let r = "";
@@ -1988,7 +1955,7 @@ window.MenialPopCap = function MenialPopCap () {
 	}
 	let overMenialCap = V.menials + V.fuckdolls + V.menialBioreactors - popCap;
 	if (overMenialCap > 0) {
-		let price = menialSlaveCost(-overMenialCap);
+		const price = menialSlaveCost(-overMenialCap);
 		if (V.menials > 0) {
 			if (V.menials > overMenialCap) {
 				cashX((overMenialCap * price), "menialTrades");
@@ -2047,7 +2014,7 @@ window.faceIncrease = /** @param {App.Entity.SlaveState} slave */ function faceI
 		r += `<span class="green">${His} face is now quite beautiful,</span> rather than merely pretty.`;
 	else if (slave.face <= 95 && slave.face + amount > 95)
 		r += `<span class="green">${His} face is now perfect.</span> It's difficult to imagine how it could be any more beautiful.`;
-	slave.face = Math.clamp(slave.face + amount,-100,100);
+	slave.face = Math.clamp(slave.face + amount, -100, 100);
 	if (slave.face > 95) slave.face = 100;
 	return r;
 };
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 79920a1b4deb3c7175d74d95d77e924364a84a0c..705ea207c1e561d7b972a417c15f625ee63ac2cf 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -1406,21 +1406,6 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() {
 	V.TFS.schoolProsperity = Math.clamp(+V.TFS.schoolProsperity, -10, 10) || 0;
 };
 
-function FacilityDecorationCleanup() {
-	ValidateFacilityDecoration("brothelDecoration");
-	ValidateFacilityDecoration("dairyDecoration");
-	ValidateFacilityDecoration("clubDecoration");
-	ValidateFacilityDecoration("servantsQuartersDecoration");
-	ValidateFacilityDecoration("schoolroomDecoration");
-	ValidateFacilityDecoration("spaDecoration");
-	ValidateFacilityDecoration("clinicDecoration");
-	ValidateFacilityDecoration("arcadeDecoration");
-	ValidateFacilityDecoration("cellblockDecoration");
-	ValidateFacilityDecoration("masterSuiteDecoration");
-	ValidateFacilityDecoration("nurseryDecoration");
-	ValidateFacilityDecoration("farmyardDecoration");
-};
-
 window.FacilityDatatypeCleanup = (function() {
 	"use strict";
 	let V;
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 7b441043d74772a5d0fd6ffb5c66387956818da4..b8efa6520e9d7fb20d546cff37509d6b79f72bca 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -6,13 +6,13 @@ window.Job = Object.freeze({
 	JAIL: 'be confined in the cellblock', WARDEN: 'be the Wardeness', CLINIC: 'get treatment in the clinic', NURSE: 'be the Nurse',
 	HGTOY: 'live with your Head Girl', SCHOOL: 'learn in the schoolroom', TEACHER: 'be the Schoolteacher', SPA: 'rest in the spa', ATTEND: 'be the Attendant',
 	NANNY: 'work as a nanny', MATRON: 'be the Matron', FARMYARD: 'work as a farmhand', FARMER: 'be the Farmer', REST: 'rest'
-	});
+});
 window.PersonalAttention = Object.freeze({TRADE: 'trading', WAR: 'warfare', SLAVING: 'slaving', ENGINEERING: 'engineering', MEDICINE: 'medicine', MAID: 'upkeep', HACKING: 'hacking'});
 
 window.predictCost = function(array) {
 	var array2 = array;
 	var totalCosts = (
-	getBrothelCosts() +
+		getBrothelCosts() +
 	getBrothelAdsCosts() +
 	getArcadeCosts() +
 	getClubCosts() +
@@ -46,10 +46,10 @@ window.predictCost = function(array) {
 
 	//in the old order these were applied after multiplication.  Not sure if deliberate, but I'm leaving it for now.
 	totalCosts += (
-	getSFCosts() +
+		getSFCosts() +
 	getWeatherCosts()
 	);
-/*
+	/*
 	// clean up
 	if(totalCosts > 0) {
 		totalCosts = 0;
@@ -292,7 +292,7 @@ window.getSecurityExpansionCost = function() {
 	return secExpCost;
 };
 
-	//general arcology costs
+//general arcology costs
 
 window.getLifestyleCosts = function() {
 	var costs = 0;
@@ -457,19 +457,19 @@ window.getCyberModCosts = function() {
 window.getPCTrainingCosts = function() {
 	var costs = 0;
 	if(State.variables.PC.actualAge >= State.variables.IsInPrimePC && State.variables.PC.actualAge < State.variables.IsPastPrimePC) {
-	if(State.variables.personalAttention === PersonalAttention.TRADE) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	} else if(State.variables.personalAttention === PersonalAttention.WAR) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	} else if(State.variables.personalAttention === PersonalAttention.SLAVING) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	} else if(State.variables.personalAttention === PersonalAttention.ENGINEERING) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	} else if(State.variables.personalAttention === PersonalAttention.MEDICINE) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	} else if(State.variables.personalAttention === PersonalAttention.HACKING) {
-		costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
-	}
+		if(State.variables.personalAttention === PersonalAttention.TRADE) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		} else if(State.variables.personalAttention === PersonalAttention.WAR) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		} else if(State.variables.personalAttention === PersonalAttention.SLAVING) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		} else if(State.variables.personalAttention === PersonalAttention.ENGINEERING) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		} else if(State.variables.personalAttention === PersonalAttention.MEDICINE) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		} else if(State.variables.personalAttention === PersonalAttention.HACKING) {
+			costs += 10000*State.variables.AgeEffectOnTrainerPricingPC;
+		}
 	}
 	return costs;
 };
@@ -541,43 +541,43 @@ window.getSlaveMinorCosts = function(slave) {
 	var costs = 0;
 	var rulesCost = State.variables.rulesCost;
 	if(slave.assignment === Job.SERVANT || slave.assignment === Job.SERVER) {
-	if(slave.trust < -20) {
-		costs -= rulesCost * 4;
-	} else if(slave.devotion < -20) {
-		if (slave.trust >= 20) {
-			costs -= rulesCost / 2;
+		if(slave.trust < -20) {
+			costs -= rulesCost * 4;
+		} else if(slave.devotion < -20) {
+			if (slave.trust >= 20) {
+				costs -= rulesCost / 2;
+			} else {
+				costs -= rulesCost * 2;
+			}
+		} else if(slave.devotion <= 20) {
+			costs -= rulesCost * 3;
+		} else if(slave.devotion <= 50) {
+			costs -= rulesCost * 4;
 		} else {
-			costs -= rulesCost * 2;
+			costs -= rulesCost * 5;
+		}
+		if(slave.fetish === 'submissive') {
+			costs -= rulesCost;
+		} else if(slave.fetish === 'dom') {
+			costs += rulesCost;
+		}
+		if(slave.relationship < -1) {
+			costs -= rulesCost;
+		}
+		if(slave.energy < 20) {
+			costs -= rulesCost;
+		} else if(slave.energy < 40) {
+			costs -= rulesCost / 2;
+		}
+		if(slave.lactation > 0) {
+			costs -= 25;
+		}
+		if(slave.assignment === Job.SERVANT) {
+			costs -= rulesCost;
+		}
+		if(setup.servantCareers.includes(slave.career) || slave.skillS >= State.variables.masteredXP) {
+			costs -= rulesCost;
 		}
-	} else if(slave.devotion <= 20) {
-		costs -= rulesCost * 3;
-	} else if(slave.devotion <= 50) {
-		costs -= rulesCost * 4;
-	} else {
-		costs -= rulesCost * 5;
-	}
-	if(slave.fetish === 'submissive') {
-		costs -= rulesCost;
-	} else if(slave.fetish === 'dom') {
-		costs += rulesCost;
-	}
-	if(slave.relationship < -1) {
-		costs -= rulesCost;
-	}
-	if(slave.energy < 20) {
-		costs -= rulesCost;
-	} else if(slave.energy < 40) {
-		costs -= rulesCost / 2;
-	}
-	if(slave.lactation > 0) {
-		costs -= 25;
-	}
-	if(slave.assignment === Job.SERVANT) {
-		costs -= rulesCost;
-	}
-	if(setup.servantCareers.includes(slave.career) || slave.skillS >= State.variables.masteredXP) {
-		costs -= rulesCost;
-	}
 	}
 	return costs;
 };
@@ -592,80 +592,80 @@ window.getSlaveCost = function(s) {
 
 	// Living expenses
 	switch(s.assignment) {
-	case Job.ARCADE:
-		cost += rulesCost * 0.75;
-		break;
-	case Job.DAIRY:
-		if(State.variables.dairyRestraintsSetting >= 2) {
+		case Job.ARCADE:
 			cost += rulesCost * 0.75;
-		} else if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.5;
-		} else if(State.variables.dairyDecoration === 'Degradationist') {
-			cost += rulesCost * 0.90;
-		} else {
-			cost += rulesCost;
-		}
-		break;
-	case Job.BROTHEL:
-		if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.5;
-		} else {
-			cost += rulesCost;
-		}
-		break;
-	case Job.SCHOOL: case Job.CLUB:
-		cost += rulesCost * 1.5;
-		break;
-	case Job.CLINIC:
-		if(s.livingRules === LivingRule.LUXURIOUS) {
-			cost += rulesCost * 2;
-		} else if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.5;
-		} else {
-			cost += rulesCost;
-		}
-		break;
-	case Job.SPA: case Job.NANNY:
-		if(s.livingRules === LivingRule.LUXURIOUS) {
-			cost += rulesCost * 1.75;
-		} else if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.5;
-		} else {
-			cost += rulesCost;
-		}
-		break;
-	case Job.SERVANT:
-		if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.5;
-		} else {
-			if(State.variables.servantsQuartersDecoration === 'Degradationist') {
+			break;
+		case Job.DAIRY:
+			if(State.variables.dairyRestraintsSetting >= 2) {
+				cost += rulesCost * 0.75;
+			} else if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.5;
+			} else if(State.variables.dairyDecoration === 'Degradationist') {
 				cost += rulesCost * 0.90;
 			} else {
 				cost += rulesCost;
 			}
-		}
-		break;
-	case Job.JAIL:
-		if(s.livingRules === LivingRule.NORMAL) {
-			cost += rulesCost * 1.25;
-		} else {
-			cost += rulesCost * 0.90;
-		}
-		break;
-	case Job.MADAM: case Job.DJ: case Job.NURSE: case Job.WARDEN:
-	case Job.ATTEND: case Job.STEWARD: case Job.MILKMAID: case Job.TEACHER:
-	case Job.MATRON:
-		cost += rulesCost * 2;
-		break;
-	default:
-		if(s.livingRules === LivingRule.LUXURIOUS) {
-			cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
-		} else if(s.livingRules === LivingRule.NORMAL) {
+			break;
+		case Job.BROTHEL:
+			if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.5;
+			} else {
+				cost += rulesCost;
+			}
+			break;
+		case Job.SCHOOL: case Job.CLUB:
+			cost += rulesCost * 1.5;
+			break;
+		case Job.CLINIC:
+			if(s.livingRules === LivingRule.LUXURIOUS) {
+				cost += rulesCost * 2;
+			} else if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.5;
+			} else {
+				cost += rulesCost;
+			}
+			break;
+		case Job.SPA: case Job.NANNY:
+			if(s.livingRules === LivingRule.LUXURIOUS) {
+				cost += rulesCost * 1.75;
+			} else if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.5;
+			} else {
+				cost += rulesCost;
+			}
+			break;
+		case Job.SERVANT:
+			if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.5;
+			} else {
+				if(State.variables.servantsQuartersDecoration === 'Degradationist') {
+					cost += rulesCost * 0.90;
+				} else {
+					cost += rulesCost;
+				}
+			}
+			break;
+		case Job.JAIL:
+			if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 1.25;
+			} else {
+				cost += rulesCost * 0.90;
+			}
+			break;
+		case Job.MADAM: case Job.DJ: case Job.NURSE: case Job.WARDEN:
+		case Job.ATTEND: case Job.STEWARD: case Job.MILKMAID: case Job.TEACHER:
+		case Job.MATRON:
 			cost += rulesCost * 2;
-		} else {
-			cost += rulesCost;
-		}
-		break;
+			break;
+		default:
+			if(s.livingRules === LivingRule.LUXURIOUS) {
+				cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
+			} else if(s.livingRules === LivingRule.NORMAL) {
+				cost += rulesCost * 2;
+			} else {
+				cost += rulesCost;
+			}
+			break;
 	}
 
 	// Food
@@ -792,62 +792,62 @@ window.getSlaveCost = function(s) {
 	// Enemas
 	if(s.inflation === 3) {
 		switch(s.inflationType) {
-		case 'water':
-			cost += 100;
-			break;
-		case 'food':
-			cost += (foodCost * 4);
-			break;
-		case 'curative': case 'aphrodisiac': case 'tightener':
-			cost += (100 + (drugsCost * 2));
-			break;
+			case 'water':
+				cost += 100;
+				break;
+			case 'food':
+				cost += (foodCost * 4);
+				break;
+			case 'curative': case 'aphrodisiac': case 'tightener':
+				cost += (100 + (drugsCost * 2));
+				break;
 		}
 	} else if(s.inflation === 2) {
 		switch(s.inflationType) {
-		case 'water':
-			cost += 50;
-			break;
-		case 'food':
-			cost += (foodCost * 2);
-			break;
-		case 'curative': case 'aphrodisiac': case 'tightener':
-			cost += (50 + (drugsCost * 2));
-			break;
+			case 'water':
+				cost += 50;
+				break;
+			case 'food':
+				cost += (foodCost * 2);
+				break;
+			case 'curative': case 'aphrodisiac': case 'tightener':
+				cost += (50 + (drugsCost * 2));
+				break;
 		}
 	} else if(s.inflation === 1) {
 		switch(s.inflationType) {
-		case 'water':
-			cost += 25;
-			break;
-		case 'food':
-			cost += (foodCost);
-			break;
-		case 'curative': case 'aphrodisiac': case 'tightener':
-			cost += (25 + (drugsCost * 2));
-			break;
+			case 'water':
+				cost += 25;
+				break;
+			case 'food':
+				cost += (foodCost);
+				break;
+			case 'curative': case 'aphrodisiac': case 'tightener':
+				cost += (25 + (drugsCost * 2));
+				break;
 		}
 	}
 
 	// Drugs
 	switch(s.drugs) {
-	case 'anti-aging cream':
-		cost += drugsCost * 10;
-		break;
-	case 'female hormone injections': case 'male hormone injections': case 'intensive breast injections':
-	case 'intensive butt injections': case 'intensive penis enhancement': case 'intensive testicle enhancement':
-	case 'intensive lip injections': case 'hyper breast injections': case 'hyper butt injections':
-	case 'hyper penis enhancement': case 'hyper testicle enhancement': case 'hyper lip injections':
-	case 'growth stimulants':
-		cost += drugsCost * 5;
-		break;
-	case 'sag-B-gone':
-		cost += Math.trunc(drugsCost * 0.1);
-		break;
-	case 'no drugs': case 'none':
-		break;
-	default:
-		cost += drugsCost * 2;
-		break;
+		case 'anti-aging cream':
+			cost += drugsCost * 10;
+			break;
+		case 'female hormone injections': case 'male hormone injections': case 'intensive breast injections':
+		case 'intensive butt injections': case 'intensive penis enhancement': case 'intensive testicle enhancement':
+		case 'intensive lip injections': case 'hyper breast injections': case 'hyper butt injections':
+		case 'hyper penis enhancement': case 'hyper testicle enhancement': case 'hyper lip injections':
+		case 'growth stimulants':
+			cost += drugsCost * 5;
+			break;
+		case 'sag-B-gone':
+			cost += Math.trunc(drugsCost * 0.1);
+			break;
+		case 'no drugs': case 'none':
+			break;
+		default:
+			cost += drugsCost * 2;
+			break;
 	}
 	if(s.curatives > 0 && s.assignmentVisible === 1) {
 		cost += drugsCost * s.curatives;
@@ -1126,8 +1126,8 @@ window.cashX = function(cost, what, who) {
 
 		//record the slave, if available
 		if (typeof who !== 'undefined') {
-				who.lastWeeksCashIncome += cost;
-				who.lifetimeCashIncome += cost;
+			who.lastWeeksCashIncome += cost;
+			who.lifetimeCashIncome += cost;
 		}
 	}
 
diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js
index 57b68a487060e7c04c5a8ba112554d9591871ec8..2453c30d7f1e181150ead99c9458aba9fb97ad24 100644
--- a/src/js/futureSocietyJS.js
+++ b/src/js/futureSocietyJS.js
@@ -3,7 +3,7 @@ window.FutureSocieties = (function() {
 		remove: removeFS,
 		resetCredits: resetFSCredits
 	};
-	
+
 	// call as FutureSocieties.remove(FS)
 	// FS must be a string (e.g. "FSPaternalist" or "FSDegradationist").
 	function removeFS(FS) {
@@ -110,3 +110,401 @@ window.FutureSocieties = (function() {
 		V.FSCredits = Math.max(Math.trunc(V.FSGotRepCredits - activeFS), 0);
 	}
 })();
+
+window.FacilityDecorationCleanup = function FacilityDecorationCleanup() {
+	ValidateFacilityDecoration("brothelDecoration");
+	ValidateFacilityDecoration("dairyDecoration");
+	ValidateFacilityDecoration("clubDecoration");
+	ValidateFacilityDecoration("servantsQuartersDecoration");
+	ValidateFacilityDecoration("schoolroomDecoration");
+	ValidateFacilityDecoration("spaDecoration");
+	ValidateFacilityDecoration("clinicDecoration");
+	ValidateFacilityDecoration("arcadeDecoration");
+	ValidateFacilityDecoration("cellblockDecoration");
+	ValidateFacilityDecoration("masterSuiteDecoration");
+	ValidateFacilityDecoration("nurseryDecoration");
+	ValidateFacilityDecoration("farmyardDecoration");
+};
+
+/* decoration should be passed as "facilityDecoration" in quotes. For example, ValidateFacilityDecoration("brothelDecoration"). The quotes are important, do not pass it as a story variable. */
+window.ValidateFacilityDecoration = function ValidateFacilityDecoration(decoration) {
+	const V = State.variables;
+	switch (V[decoration]) {
+		case 'standard':
+			/* nothing to do */
+			break;
+		case 'Supremacist':
+			if (!Number.isFinite(V.arcologies[0].FSSupremacist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Subjugationist':
+			if (!Number.isFinite(V.arcologies[0].FSSubjugationist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Gender Radicalist':
+			if (!Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Gender Fundamentalist':
+			if (!Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Paternalist':
+			if (!Number.isFinite(V.arcologies[0].FSPaternalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Body Purist':
+			if (!Number.isFinite(V.arcologies[0].FSBodyPurist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Transformation Fetishist':
+			if (!Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Youth Preferentialist':
+			if (!Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Maturity Preferentialist':
+			if (!Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Slimness Enthusiast':
+			if (!Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Asset Expansionist':
+			if (!Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Pastoralist':
+			if (!Number.isFinite(V.arcologies[0].FSPastoralist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Physical Idealist':
+			if (!Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Chattel Religionist':
+			if (!Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Degradationist':
+			if (!Number.isFinite(V.arcologies[0].FSDegradationist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Roman Revivalist':
+			if (!Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Egyptian Revivalist':
+			if (!Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Edo Revivalist':
+			if (!Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Arabian Revivalist':
+			if (!Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Chinese Revivalist':
+			if (!Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Repopulation Focus':
+			if (!Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Eugenics':
+			if (!Number.isFinite(V.arcologies[0].FSRestart)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		case 'Hedonistic':
+			if (!Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
+				V[decoration] = 'standard';
+			}
+			break;
+		default:
+			V[decoration] = 'standard';
+	}
+};
+
+window.FSChange = function FSChange(FS, magnitude, bonusMultiplier) {
+	'use strict';
+	const V = State.variables;
+	let errorMessage = '';
+
+	switch (FS) {
+		case 'Supremacist':
+			if (Number.isFinite(V.arcologies[0].FSSupremacist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel) / 3, 'futureSocieties'); // Reducing the reputation impact of slaves that are not adhering to societal ideals properly
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSSupremacist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Subjugationist':
+			if (Number.isFinite(V.arcologies[0].FSSubjugationist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSSubjugationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'GenderRadicalist':
+			if (Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSGenderRadicalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'GenderFundamentalist':
+			if (Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSGenderFundamentalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Paternalist':
+			if (Number.isFinite(V.arcologies[0].FSPaternalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSPaternalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Degradationist':
+			if (Number.isFinite(V.arcologies[0].FSDegradationist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSDegradationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'AssetExpansionist':
+			if (Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSAssetExpansionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'SlimnessEnthusiast':
+			if (Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSSlimnessEnthusiast += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'TransformationFetishist':
+			if (Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSTransformationFetishist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'BodyPurist':
+			if (Number.isFinite(V.arcologies[0].FSBodyPurist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSBodyPurist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'MaturityPreferentialist':
+			if (Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSMaturityPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'YouthPreferentialist':
+			if (Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSYouthPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Pastoralist':
+			if (Number.isFinite(V.arcologies[0].FSPastoralist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSPastoralist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'PhysicalIdealist':
+			if (Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSPhysicalIdealist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'ChattelReligionist':
+			if (Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSChattelReligionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'RomanRevivalist':
+			if (Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSRomanRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'AztecRevivalist':
+			if (Number.isFinite(V.activeArcology.FSAztecRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSAztecRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'EgyptianRevivalist':
+			if (Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSEgyptianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'EdoRevivalist':
+			if (Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSEdoRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'ArabianRevivalist':
+			if (Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSArabianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'ChineseRevivalist':
+			if (Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSChineseRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Repopulationist':
+			if (Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSRepopulationFocus += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Eugenics':
+			if (Number.isFinite(V.arcologies[0].FSRestart)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSRestart += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		case 'Hedonism':
+			if (Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
+				if (magnitude < 0) {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel) / 3, 'futureSocieties');
+				} else {
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel), 'futureSocieties');
+				}
+				V.arcologies[0].FSHedonisticDecadence += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
+			}
+			break;
+		default:
+			errorMessage += '<span class=\'red\'>ERROR: bad FS reference</span>';
+	}
+	return errorMessage;
+};
+
+window.FSChangePorn = function FSChangePorn(FS, magnitude) {
+	return FSChange(FS, magnitude, State.variables.pornFameBonus);
+};
diff --git a/src/js/optionsMacro.js b/src/js/optionsMacro.js
new file mode 100644
index 0000000000000000000000000000000000000000..81b7000e34f3fb8fe39819d8a86d3bf72dc9ed04
--- /dev/null
+++ b/src/js/optionsMacro.js
@@ -0,0 +1,95 @@
+/* Use like:
+	<<options $varname "New Passage (defaults to current passage)">>
+	  A title
+      <<option "value_to_set_varname_to" "English text to show user" "additional variables to set when clicked" "Extra english text to show, but not as a link">>
+		 Text to show if $varname matches this option
+	  <<option ....>>
+	  <<comment>>
+	    Some comment to add at the end
+	<</option>>
+  */
+Macro.add('options', {
+	skipArgs : false,
+	tags     : ['option', 'comment'],
+	handler  : function () {
+		try {
+			var currentOption = this.payload[0].args[0];
+			var variable = null;
+			var title = this.payload[0].contents || '';
+			var passageName = this.payload[0].args[1] || passage();
+			var found = false;
+			var comment = null;
+			var hasMultipleOptionsWithSameValue = false;
+			var description = "";
+
+			/* Check if we have a first argument - if we do, it should be a
+			   variable like $foo
+			  */
+			if (this.payload[0].args.full &&
+					this.payload[0].args.full != '""' && this.payload[0].args.full != "''") {
+				if (currentOption === undefined)
+					currentOption = false;
+				if (this.payload[0].args.full.startsWith("State.temporary.")) {
+					variable = "_" + this.payload[0].args.full.split(' ',1)[0].substring("State.temporary.".length);
+				} else if (this.payload[0].args.full.startsWith("State.variables.")) {
+					variable = "$" + this.payload[0].args.full.split(' ',1)[0].substring("State.variables.".length);
+				} else {
+					console.log(this.payload[0].args.full);
+					throw new Error("First parameter to 'options' must be a variable");
+				}
+
+				/* First print out the string for the current value */
+				for (var i = 1, len = this.payload.length; i < len; ++i) {
+					if (this.payload[i].name === 'option') {
+						if (this.payload[i].args[0] === currentOption) {
+							if (found) {
+								hasMultipleOptionsWithSameValue = true;
+							}
+							description = this.payload[i].contents;
+							found = true;
+						}
+					} else if (this.payload[i].name === 'comment') {
+						comment = this.payload[i].contents;
+					} else {
+						throw new Error("Only valid tag is 'option' inside 'options'")
+					}
+				}
+			}
+
+			var showSelectedOption = true; //this.payload.length != 3 || !description;
+
+			/* Now print out the list of options */
+			var output = "";
+			for (var i = 1, len = this.payload.length; i < len; ++i) {
+				if (this.payload[i].name === 'option') {
+					var args = this.payload[i].args;
+					if (args.length === 0) {
+						output += this.payload[i].contents.trim();
+					} else {
+						var extraComment = args[3] ? (' ' + args[3]) : '';
+						// We use a very crude heuristic for styling 'Enable'
+						// and 'Disable' buttons differently.
+						const isEnableOption = args[1].startsWith("Enable") || args[1] === "Yes";
+						const isDisableOption = args[1].startsWith("Disable") || args[1] === "No";
+						var className = "optionMacroOption " + (isEnableOption ? "optionMacroEnable" : isDisableOption ? "optionMacroDisable" : "");
+						if (args[0] !== currentOption || hasMultipleOptionsWithSameValue) {
+							var onClickChange = args[2] ? (', ' + args[2]) : '';
+							output += '<span class="' + className + '">[[' + args[1] + extraComment + '|' + passageName + "][" + variable + " = " + JSON.stringify(args[0]) + onClickChange + "]]" + "</span>";
+						} else if (showSelectedOption) {
+							output +='<span class="optionMacroSelected ' + className + '">' + args[1] + extraComment + '</span>';
+						}
+					}
+				}
+			}
+			jQuery(this.output).wiki(
+				'<span class="optionMacro">' +
+					'<span class="optionDescription">' + title + ' ' + description + "</span>" +
+					'<span class="optionValue">' + output + "</span>" +
+					(comment ? '<span class="optionComment">//' + comment + "//</span>" : '') +
+				'</span>');
+		}
+		catch (ex) {
+			return this.error('bad options expression: ' + ex.message);
+		}
+	}
+});
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 87ba3f18033a475d023a16a3a2c1a762dba89bf6..e1cdfe727f2462491e57f8f9c57b5c04eedbf6ef 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -108,3 +108,328 @@ window.SlaveStatsChecker = (function() {
 		return score;
 	}
 }());
+
+window.isStacked = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return (slave.butt > 4) && (slave.boobs > 800);
+};
+
+window.isModded = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	const tatScore = SlaveStatsChecker.tatScore(slave);
+	const piercingScore = SlaveStatsChecker.piercingScore(slave);
+	const modScore = piercingScore+tatScore;
+
+	return ((modScore > 15) || (piercingScore > 8 && tatScore > 5));
+};
+
+window.isUnmodded = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return (!isModded(slave) && (slave.corsetPiercing === 0) && (SlaveStatsChecker.piercingScore(slave) < 3) && (SlaveStatsChecker.tatScore(slave) < 2));
+};
+
+window.isXY = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return (slave.dick > 0);
+};
+
+window.isYoung = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return (slave.visualAge < 30);
+};
+
+window.isPreg = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return ((slave.bellyPreg >= 5000) || (slave.bellyImplant >= 5000));
+};
+
+window.isNotPreg = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return (!isPreg(slave) && (slave.belly < 100) && (slave.weight < 30) && !setup.fakeBellies.includes(slave.bellyAccessory));
+};
+
+window.isPure = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	return ((slave.boobsImplant === 0) && (slave.buttImplant === 0) && (slave.waist >= -95) && (slave.lipsImplant === 0) && (slave.faceImplant < 30) && (slave.bellyImplant === -1) && (Math.abs(slave.shouldersImplant) < 2) && (Math.abs(slave.hipsImplant) < 2));
+};
+
+window.isFullyPotent = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.dick > 0 && slave.balls > 0 && slave.ballType !== 'sterile' && slave.hormoneBalance < 100 && slave.drugs !== 'hormone blockers') {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canGetPregnant = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.preg === -1) { /* contraceptives check */
+		return false;
+	} else if (!isFertile(slave)) { /* check other fertility factors */
+		return false;
+	} else if ((slave.ovaries === 1) && (canDoVaginal(slave))) {
+		return true;
+	} else if ((slave.mpreg === 1) && (canDoAnal(slave))) { /* pregmod */
+		return true;
+	} else {
+		return false;
+	}
+};
+
+/** contraceptives (.preg == -1) do not negate this function
+ * @param {App.Entity.SlaveState} slave */
+window.isFertile = function(slave) {
+	if (!slave) {
+		return null;
+	}
+
+	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) { /* currently pregnant without superfetation */
+		return false;
+	} else if (slave.womb.length > 0) { /* temp failure condition to prevent current double preg bug */
+		return false;
+	} else if (slave.broodmother > 0) { /* currently broodmother */
+		return false;
+	} else if (slave.preg < -1) { /* sterile */
+		return false;
+	} else if (slave.pregWeek < 0) { /* postpartum */
+		return false;
+	} else if (slave.pubertyXX === 0) { /* pregmod start */
+		return false;
+	} else if (slave.ovaryAge >= 47) {
+		return false;
+	} else if (slave.inflation > 2) {
+		return false;
+	} else if (slave.bellyImplant !== -1) {
+		return false;
+	} else if (slave.mpreg === 1) {
+		return true; /* pregmod end */
+	} else if (slave.ovaries === 1) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canAchieveErection = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.dick < 7 && slave.dick > 0 && slave.drugs !== 'hormone blockers' && (slave.balls > 0 ? slave.hormoneBalance < 100 : slave.hormoneBalance <= -100) && slave.ballType !== 'sterile') {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canPenetrate = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (!canAchieveErection(slave)) {
+		return false;
+	} else if (slave.chastityPenis === 1) {
+		return false;
+	} else if (slave.dick > 7) {
+		return false;
+	}
+	return true;
+};
+
+window.canSee = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.eyes > -2) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canHear = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if ((slave.hears > -2) && (slave.earwear !== "deafening ear plugs")) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canSmell = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.smells > -1) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canTaste = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.tastes > -1) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canWalk = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.amp === 1) {
+		return false;
+	} else if (tooFatSlave(slave)) {
+		return false;
+	} else if (tooBigBreasts(slave)) {
+		return false;
+	} else if (tooBigDick(slave)) {
+		return false;
+	} else if (tooBigBalls(slave)) {
+		return false;
+	} else if (tooBigButt(slave)) {
+		return false;
+	} else if (tooBigBelly(slave)) {
+		return false;
+	} else if (slave.heels === 0) {
+		return true;
+	} else if (slave.shoes === "heels") {
+		return true;
+	} else if (slave.shoes === "extreme heels") {
+		return true;
+	} else if (slave.shoes === "boots") {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canTalk = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.accent > 2) {
+		return false;
+	} else if (slave.voice === 0) {
+		return false;
+	} else if (slave.lips > 95) {
+		return false;
+	} else if (slave.collar === "dildo gag") {
+		return false;
+	} else if (slave.collar === "massive dildo gag") {
+		return false;
+	} else if (slave.collar === "ball gag") {
+		return false;
+	} else if (slave.collar === "bit gag") {
+		return false;
+	} else {
+		return true;
+	}
+};
+
+window.canDoAnal = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.chastityAnus === 1) {
+		return false;
+	}
+	return true;
+};
+
+window.canDoVaginal = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.vagina < 0) {
+		return false;
+	} else if (slave.chastityVagina === 1) {
+		return false;
+	}
+	return true;
+};
+
+window.tooFatSlave = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.weight > 190+(slave.muscles/5) && slave.physicalAge >= 18) {
+		return true;
+	} else if (slave.weight > 130+(slave.muscles/20) && slave.physicalAge <= 3) {
+		return true;
+	} else if (slave.weight > 160+(slave.muscles/15) && slave.physicalAge <= 12) {
+		return true;
+	} else if (slave.weight > 185+(slave.muscles/10) && slave.physicalAge < 18) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.tooBigBreasts = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.boobs > 30000+(slave.muscles*100) && slave.physicalAge >= 18) {
+		return true;
+	} else if (slave.boobs > 5000+(slave.muscles*10) && slave.physicalAge <= 3) {
+		return true;
+	} else if (slave.boobs > 10000+(slave.muscles*20) && slave.physicalAge <= 12) {
+		return true;
+	} else if (slave.boobs > 20000+(slave.muscles*50) && slave.physicalAge < 18) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.tooBigBelly = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.belly >= 450000+(slave.muscles*2000) && slave.physicalAge >= 18) {
+		return true;
+	} else if (slave.belly >= 350000+(slave.muscles*1000) && slave.physicalAge >= 13) {
+		return true;
+	} else if (slave.belly >= 30000+(slave.muscles*500) && slave.physicalAge <= 3) {
+		return true;
+	} else if (slave.belly >= 150000+(slave.muscles*800) && slave.physicalAge <= 12) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.tooBigBalls = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.balls >= 30+(slave.muscles*.3) && slave.physicalAge <= 3) {
+		return true;
+	} else if (slave.balls >= 60+(slave.muscles*.5) && slave.physicalAge <= 12) {
+		return true;
+	} else if (slave.balls >= 90+(slave.muscles*.7)) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.tooBigDick = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.dick >= 20+(slave.muscles*.1) && slave.physicalAge <= 3 && slave.dick !== 0) {
+		return true;
+	} else if (slave.dick >= 45+(slave.muscles*.3) && slave.physicalAge <= 12) {
+		return true;
+	} else if (slave.dick >= 68+(slave.muscles*.4)) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.tooBigButt = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.butt > 10 && slave.physicalAge <= 3) {
+		return true;
+	} else if (slave.butt > 14 && slave.physicalAge <= 12) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.isVegetable = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	slave = slave || State.variables.activeSlave;
+	if(!slave) { return false; }
+	return (slave.fetish === 'mindbroken');
+};
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 67101c00926a46acb0769f864892593c465c45ff..70d61c5e630cdecb7fcb0a7a817c5784a35a1777 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -37,16 +37,6 @@ if (typeof interpolate === "undefined") {
 	window.interpolate = interpolate;
 }
 
-window.isFullyPotent = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.dick > 0 && slave.balls > 0 && slave.ballType !== 'sterile' && slave.hormoneBalance < 100 && slave.drugs !== 'hormone blockers') {
-		return true;
-	} else {
-		return false;
-	}
-};
-
 window.removeFromArray = function(arr, val) {
 	for (var i = 0; i < arr.length; i++) {
 		if (val === arr[i])
@@ -67,22 +57,6 @@ window.filterInPlace = function(arr, callback, thisArg) {
 	return arr;
 };
 
-window.canGetPregnant = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.preg === -1) { /* contraceptives check */
-		return false;
-	} else if (!isFertile(slave)) { /* check other fertility factors */
-		return false;
-	} else if ((slave.ovaries === 1) && (canDoVaginal(slave))) {
-		return true;
-	} else if ((slave.mpreg === 1) && (canDoAnal(slave))) { /* pregmod */
-		return true;
-	} else {
-		return false;
-	}
-};
-
 /** pregmod: are slave2's sperm compatible with slave1's eggs?
  * @param {App.Entity.SlaveState} slave1
  * @param {App.Entity.SlaveState} slave2
@@ -141,40 +115,6 @@ window.canImpreg = function(slave1, slave2) {
 	}
 };
 
-/** contraceptives (.preg == -1) do not negate this function
- * @param {App.Entity.SlaveState} slave */
-window.isFertile = function(slave) {
-	if (!slave) {
-		return null;
-	}
-
-	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) { /* currently pregnant without superfetation */
-		return false;
-	} else if (slave.womb.length > 0) { /* temp failure condition to prevent current double preg bug */
-		return false;
-	} else if (slave.broodmother > 0) { /* currently broodmother */
-		return false;
-	} else if (slave.preg < -1) { /* sterile */
-		return false;
-	} else if (slave.pregWeek < 0) { /* postpartum */
-		return false;
-	} else if (slave.pubertyXX === 0) { /* pregmod start */
-		return false;
-	} else if (slave.ovaryAge >= 47) {
-		return false;
-	} else if (slave.inflation > 2) {
-		return false;
-	} else if (slave.bellyImplant !== -1) {
-		return false;
-	} else if (slave.mpreg === 1) {
-		return true; /* pregmod end */
-	} else if (slave.ovaries === 1) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
 window.isPlayerFertile = function(PC) {
 	if (!PC) {
 		return null;
@@ -189,229 +129,6 @@ window.isPlayerFertile = function(PC) {
 	}
 };
 
-window.canAchieveErection = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.dick < 7 && slave.dick > 0 && slave.drugs !== 'hormone blockers' && (slave.balls > 0 ? slave.hormoneBalance < 100 : slave.hormoneBalance <= -100) && slave.ballType !== 'sterile') {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canPenetrate = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (!canAchieveErection(slave)) {
-		return false;
-	} else if (slave.chastityPenis === 1) {
-		return false;
-	} else if (slave.dick > 7) {
-		return false;
-	}
-	return true;
-};
-
-window.canSee = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.eyes > -2) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canHear = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if ((slave.hears > -2) && (slave.earwear !== "deafening ear plugs")) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canSmell = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.smells > -1) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canTaste = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.tastes > -1) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canWalk = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.amp === 1) {
-		return false;
-	} else if (tooFatSlave(slave)) {
-		return false;
-	} else if (tooBigBreasts(slave)) {
-		return false;
-	} else if (tooBigDick(slave)) {
-		return false;
-	} else if (tooBigBalls(slave)) {
-		return false;
-	} else if (tooBigButt(slave)) {
-		return false;
-	} else if (tooBigBelly(slave)) {
-		return false;
-	} else if (slave.heels === 0) {
-		return true;
-	} else if (slave.shoes === "heels") {
-		return true;
-	} else if (slave.shoes === "extreme heels") {
-		return true;
-	} else if (slave.shoes === "boots") {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.canTalk = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.accent > 2) {
-		return false;
-	} else if (slave.voice === 0) {
-		return false;
-	} else if (slave.lips > 95) {
-		return false;
-	} else if (slave.collar === "dildo gag") {
-		return false;
-	} else if (slave.collar === "massive dildo gag") {
-		return false;
-	} else if (slave.collar === "ball gag") {
-		return false;
-	} else if (slave.collar === "bit gag") {
-		return false;
-	} else {
-		return true;
-	}
-};
-
-window.canDoAnal = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.chastityAnus === 1) {
-		return false;
-	}
-	return true;
-};
-
-window.canDoVaginal = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.vagina < 0) {
-		return false;
-	} else if (slave.chastityVagina === 1) {
-		return false;
-	}
-	return true;
-};
-
-window.tooFatSlave = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.weight > 190+(slave.muscles/5) && slave.physicalAge >= 18) {
-		return true;
-	} else if (slave.weight > 130+(slave.muscles/20) && slave.physicalAge <= 3) {
-		return true;
-	} else if (slave.weight > 160+(slave.muscles/15) && slave.physicalAge <= 12) {
-		return true;
-	} else if (slave.weight > 185+(slave.muscles/10) && slave.physicalAge < 18) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.tooBigBreasts = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.boobs > 30000+(slave.muscles*100) && slave.physicalAge >= 18) {
-		return true;
-	} else if (slave.boobs > 5000+(slave.muscles*10) && slave.physicalAge <= 3) {
-		return true;
-	} else if (slave.boobs > 10000+(slave.muscles*20) && slave.physicalAge <= 12) {
-		return true;
-	} else if (slave.boobs > 20000+(slave.muscles*50) && slave.physicalAge < 18) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.tooBigBelly = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.belly >= 450000+(slave.muscles*2000) && slave.physicalAge >= 18) {
-		return true;
-	} else if (slave.belly >= 350000+(slave.muscles*1000) && slave.physicalAge >= 13) {
-		return true;
-	} else if (slave.belly >= 30000+(slave.muscles*500) && slave.physicalAge <= 3) {
-		return true;
-	} else if (slave.belly >= 150000+(slave.muscles*800) && slave.physicalAge <= 12) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.tooBigBalls = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.balls >= 30+(slave.muscles*.3) && slave.physicalAge <= 3) {
-		return true;
-	} else if (slave.balls >= 60+(slave.muscles*.5) && slave.physicalAge <= 12) {
-		return true;
-	} else if (slave.balls >= 90+(slave.muscles*.7)) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.tooBigDick = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.dick >= 20+(slave.muscles*.1) && slave.physicalAge <= 3 && slave.dick !== 0) {
-		return true;
-	} else if (slave.dick >= 45+(slave.muscles*.3) && slave.physicalAge <= 12) {
-		return true;
-	} else if (slave.dick >= 68+(slave.muscles*.4)) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
-window.tooBigButt = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if (!slave) {
-		return null;
-	} else if (slave.butt > 10 && slave.physicalAge <= 3) {
-		return true;
-	} else if (slave.butt > 14 && slave.physicalAge <= 12) {
-		return true;
-	} else {
-		return false;
-	}
-};
-
 window.relationTargetWord = /** @param {App.Entity.SlaveState} slave */ function (slave) {
 	if (!slave) {
 		return null;
@@ -602,12 +319,6 @@ window.lispReplace = function (text) {
 	return text;
 };
 
-window.isVegetable = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	slave = slave || State.variables.activeSlave;
-	if(!slave) { return false; }
-	return (slave.fetish === 'mindbroken');
-};
-
 window.repGainSacrifice = /** @param {App.Entity.SlaveState} slave */ function (slave, arcology) {
 	slave = slave || State.variables.activeSlave;
 	arcology = arcology || State.variables.arcologies[0];
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index 1c50d1b4386a575f5d4325de94808caa93b118f3..98279ec9e7cb5fe73c1084f01f1d589d1fd47241 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -1011,389 +1011,6 @@ window.lengthToEitherUnit = function(s) {
 	return `${s }cm`;
 };
 
-/* decoration should be passed as "facilityDecoration" in quotes. For example, ValidateFacilityDecoration("brothelDecoration"). The quotes are important, do not pass it as a story variable. */
-window.ValidateFacilityDecoration = function ValidateFacilityDecoration(decoration) {
-	const V = State.variables;
-	switch (V[decoration]) {
-		case 'standard':
-			/* nothing to do */
-			break;
-		case 'Supremacist':
-			if (!Number.isFinite(V.arcologies[0].FSSupremacist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Subjugationist':
-			if (!Number.isFinite(V.arcologies[0].FSSubjugationist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Gender Radicalist':
-			if (!Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Gender Fundamentalist':
-			if (!Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Paternalist':
-			if (!Number.isFinite(V.arcologies[0].FSPaternalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Body Purist':
-			if (!Number.isFinite(V.arcologies[0].FSBodyPurist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Transformation Fetishist':
-			if (!Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Youth Preferentialist':
-			if (!Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Maturity Preferentialist':
-			if (!Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Slimness Enthusiast':
-			if (!Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Asset Expansionist':
-			if (!Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Pastoralist':
-			if (!Number.isFinite(V.arcologies[0].FSPastoralist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Physical Idealist':
-			if (!Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Chattel Religionist':
-			if (!Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Degradationist':
-			if (!Number.isFinite(V.arcologies[0].FSDegradationist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Roman Revivalist':
-			if (!Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Egyptian Revivalist':
-			if (!Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Edo Revivalist':
-			if (!Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Arabian Revivalist':
-			if (!Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Chinese Revivalist':
-			if (!Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Repopulation Focus':
-			if (!Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Eugenics':
-			if (!Number.isFinite(V.arcologies[0].FSRestart)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		case 'Hedonistic':
-			if (!Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
-				V[decoration] = 'standard';
-			}
-			break;
-		default:
-			V[decoration] = 'standard';
-	}
-};
-
-window.FSChange = function FSChange(FS, magnitude, bonusMultiplier) {
-	'use strict';
-	const V = State.variables;
-	let errorMessage = '';
-
-	switch (FS) {
-		case 'Supremacist':
-			if (Number.isFinite(V.arcologies[0].FSSupremacist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel) / 3, 'futureSocieties'); // Reducing the reputation impact of slaves that are not adhering to societal ideals properly
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSSupremacist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Subjugationist':
-			if (Number.isFinite(V.arcologies[0].FSSubjugationist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSSubjugationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'GenderRadicalist':
-			if (Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSGenderRadicalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'GenderFundamentalist':
-			if (Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSGenderFundamentalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Paternalist':
-			if (Number.isFinite(V.arcologies[0].FSPaternalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSPaternalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Degradationist':
-			if (Number.isFinite(V.arcologies[0].FSDegradationist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSDegradationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'AssetExpansionist':
-			if (Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSAssetExpansionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'SlimnessEnthusiast':
-			if (Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSSlimnessEnthusiast += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'TransformationFetishist':
-			if (Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSTransformationFetishist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'BodyPurist':
-			if (Number.isFinite(V.arcologies[0].FSBodyPurist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSBodyPurist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'MaturityPreferentialist':
-			if (Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSMaturityPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'YouthPreferentialist':
-			if (Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSYouthPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Pastoralist':
-			if (Number.isFinite(V.arcologies[0].FSPastoralist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSPastoralist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'PhysicalIdealist':
-			if (Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSPhysicalIdealist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'ChattelReligionist':
-			if (Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSChattelReligionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'RomanRevivalist':
-			if (Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSRomanRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'AztecRevivalist':
-			if (Number.isFinite(V.activeArcology.FSAztecRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSAztecRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'EgyptianRevivalist':
-			if (Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSEgyptianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'EdoRevivalist':
-			if (Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSEdoRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'ArabianRevivalist':
-			if (Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSArabianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'ChineseRevivalist':
-			if (Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSChineseRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Repopulationist':
-			if (Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSRepopulationFocus += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Eugenics':
-			if (Number.isFinite(V.arcologies[0].FSRestart)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSRestart += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		case 'Hedonism':
-			if (Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
-				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel) / 3, 'futureSocieties');
-				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel), 'futureSocieties');
-				}
-				V.arcologies[0].FSHedonisticDecadence += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
-			}
-			break;
-		default:
-			errorMessage += '<span class=\'red\'>ERROR: bad FS reference</span>';
-	}
-	return errorMessage;
-};
-
-window.FSChangePorn = function FSChangePorn(FS, magnitude) {
-	return FSChange(FS, magnitude, State.variables.pornFameBonus);
-};
-
 window.ordinalSuffix = function ordinalSuffix(i) {
 	let j = i % 10;
 	let k = i % 100;
@@ -1774,4 +1391,12 @@ window.upgradeMultiplierArcology = function() {
 	} else if (V.PC.engineering >= 100 || V.PC.career === "arcology owner") {
 		return 0.80;
 	}
+};
+
+window.jsNdef = function(input) {
+	if (typeof input === "undefined") return true; else return false;
+};
+
+window.jsDef = function(input) {
+	if (typeof input !== "undefined") return true; else return false;
 };
\ No newline at end of file
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index aa0b3797a3887dcf4fcc04cc137f5de5ebcfc197..53ae2ddb2111ed62dcafc5ea1e4a66e07e178a17 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -1107,7 +1107,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a customer was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "cash",
 				effect: 0,
 			});
@@ -1123,7 +1123,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a customer was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "cash",
 				effect: 0,
 			});
@@ -1139,7 +1139,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: -1,
 			});
 			vignettes.push({
-				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a customer was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "cash",
 				effect: 0,
 			});
@@ -1155,7 +1155,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a customer was excited by the thought of having sex with a cybernetically enhanced slave,",
+				text: `a customer was excited by the thought of having sex with a cybernetically enhanced slave,`,
 				type: "rep",
 				effect: 1,
 			});
@@ -1510,6 +1510,87 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 					effect: 1,
 				});
 			}
+			if (V.arcologies[0].FSRomanRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Roman mythology attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSAztecRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Aztec mythology attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSEgyptianRevivalistRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Egyptian mythology attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSArabianRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Sunni Islam attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSEdoRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Shintoism attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSChineseRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Chinese folk religion attracted a large crowd near ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSSupremacist !== "unset") {
+				if (V.arcologies[0].FSSupremacistRace === "asian") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Buddhism attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "indo-aryan") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Hinduism attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "latina" || V.arcologies[0].FSSupremacistRace === "southern european") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Roman Catholicism attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "middle eastern") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Islam attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "semitic") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Judaism attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "white") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Norse mythology attracted a large crowd near ${him},`,
+						type: "cash",
+						effect: 1,
+					});
+				}
+			}
 		}
 		if (V.arcologies[0].FSRomanRevivalist !== "unset") {
 			if (slave.race === "white" && slave.height >= 185) {
@@ -1580,19 +1661,19 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 			effect: 1,
 		});
 		vignettes.push({
-			text: "a man dragged his crying wife along so she could watch him fuck a whore,",
+			text: `a man dragged his crying wife along so she could watch him fuck a whore,`,
 			type: "rep",
 			effect: 0,
 		});
 		if (V.seeDicks !== 100) {
 			vignettes.push({
-				text: "a woman dragged her angry husband along so he could watch her get eaten out by a whore,",
+				text: `a woman dragged her angry husband along so he could watch her get eaten out by a whore,`,
 				type: "rep",
 				effect: 0,
 			});
 		} else {
 			vignettes.push({
-				text: "a man dragged his angry lover along so he could watch him get sucked off by a whore,",
+				text: `a man dragged his angry lover along so he could watch him get sucked off by a whore,`,
 				type: "rep",
 				effect: 0,
 			});
@@ -2705,7 +2786,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a citizen was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "rep",
 				effect: 0,
 			});
@@ -2721,7 +2802,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a citizen was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "rep",
 				effect: 0,
 			});
@@ -2737,7 +2818,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: -1,
 			});
 			vignettes.push({
-				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				text: `a citizen was indifferent to the thought of having sex with a slave with artificial limbs,`,
 				type: "rep",
 				effect: 0,
 			});
@@ -2753,7 +2834,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 			vignettes.push({
-				text: "a citizen was excited by the thought of having sex with a cybernetically enhanced slave,",
+				text: `a citizen was excited by the thought of having sex with a cybernetically enhanced slave,`,
 				type: "rep",
 				effect: 1,
 			});
@@ -3108,6 +3189,87 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 					effect: 1,
 				});
 			}
+			if (V.arcologies[0].FSRomanRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Roman mythology attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSAztecRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Aztec mythology attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Egyptian mythology attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSArabianRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Sunni Islam attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSEdoRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Shintoism attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSChineseRevivalist !== "unset") {
+				vignettes.push({
+					text: `a street preacher arguing that your new religion was the natural theological evolution of Chinese folk religion attracted a large crowd near ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (V.arcologies[0].FSSupremacist !== "unset") {
+				if (V.arcologies[0].FSSupremacistRace === "asian") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Buddhism attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "indo-aryan") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Hinduism attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "latina" || V.arcologies[0].FSSupremacistRace === "southern european") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Roman Catholicism attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "middle eastern") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Islam attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "semitic") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Judaism attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (V.arcologies[0].FSSupremacistRace === "white") {
+					vignettes.push({
+						text: `a street preacher arguing that your new religion was the natural theological evolution of Norse mythology attracted a large crowd near ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+				}
+			}
 		}
 		if (V.arcologies[0].FSRomanRevivalist !== "unset") {
 			if (slave.race === "white" && slave.height >= 185) {
@@ -3388,9 +3550,9 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 			effect: 0,
 		});
 	} else if (slave.assignment === "work as a farmhand" || slave.assignment === window.Job.FARMYARD || slave.assignment === window.Job.FARMER) {
-				if (canWalk(slave)) {
+		if (canWalk(slave)) {
 			vignettes.push({
-				text: `${he} rather comically injured ${himself} by stepping on a rake`,
+				text: `${he} rather comically injured ${himself} by stepping on a rake,`,
 				type: "health",
 				effect: -1,
 			});
@@ -3445,6 +3607,11 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig
 				effect: 1,
 			});
 		}
+		vignettes.push({
+			text: `the pesticides ${he} accidentally inhaled made ${him} feel nauseous,`,
+			type: "health",
+			effect: -1,
+		});
 	} else if (slave.assignment === "rest" || slave.assignment === "rest in the spa") {
 		switch (slave.behavioralFlaw) {
 			case "anorexic":
diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js
index 745fd0c905ff883e8e5d29d742ac3c8646751e5a..82a8695ee00e02f72eddb8a6ac01579728fc52bf 100644
--- a/src/js/walkPastJS.js
+++ b/src/js/walkPastJS.js
@@ -196,7 +196,7 @@ window.loverSlave = function(activeSlave) {
 							if (_fuckSeed > 45 && (canPenetrate(activeSlave) && _partnerSlave.nipples === "fuckable")) {
 								t += `taking advantage of ${partnerName}'s fuckable tits. The motion running through ${partnerName}'s breasts as ${he} humps is hypnotic.`;
 							} else {
-								t += `how well ${partnerName}'s cock feels in ${his} fuckable tits . The motion running through ${name}'s breasts as ${his} ${activeSlaveRel} fucks ${him} is hypnotic.`;
+								t += `how well ${partnerName}'s cock feels in ${his} fuckable tits. The motion running through ${name}'s breasts as ${his} ${activeSlaveRel} fucks ${him} is hypnotic.`;
 							}
 						} else {
 							t += `snuggling rather sexually ${_fuckSpot}. ${name} loves having `;
@@ -2274,3 +2274,337 @@ window.boobWatch = function(slave) {
 	V.target = "FBoobs";
 	return t;
 };
+
+window.buttWatch = function(slave) {
+
+	/* will be moved up once this becomes a single, contained function. */
+	let t = "";
+	let V = State.variables;
+	
+	let pronouns = getPronouns(slave);
+	let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun;
+	let He = capFirstChar(he), His = capFirstChar(his);
+
+	V.target = "FButt";
+
+	t += `<<ButtDescription>> `;
+	switch (slave.clothes) {
+		case "a Fuckdoll suit":
+			t += `${His} suit is expressly designed to encourage use of ${his} rear hole.`;
+			break;
+		case "uncomfortable straps":
+			t += `A strap passes between ${his} `;
+			if (slave.amp !== 1 ) {
+				t += `legs, giving ${his} gait an awkward sway.`;
+			} else {
+				t += `leg stumps, pressing against ${his} genitals.`;
+			}
+			break;
+		case "shibari ropes":
+			if (slave.amp !== 1 ) {
+				t += `Ropes bind ${his} legs, giving ${his} gait an awkward sway.`;
+			} else {
+				t += `A rope passes between ${his} leg stumps, pressing against ${his} genitals.`;
+			}
+			break;
+		case "attractive lingerie for a pregnant woman":
+			t += `As ${he} moves, ${his} silken panties are very inviting.`;
+			break;
+		case "a maternity dress":
+			t += `${His} dress covers ${his} rear, but it will lift easily enough.`;
+			break;
+		case "stretch pants and a crop-top":
+			t += `${His} stretch pants tightly cling to ${his} rear as ${he} `;
+			if (slave.butt > 10) {
+				t += `moves. While the writing adorning it may catch your eye, the huge expanse of wobbling ass cleavage is far more distracting.`;
+			} else {
+				t += `moves; the writing on ${his} bottom gives you plenty of excuses to ogle it.`;
+			}
+			break;
+		case "restrictive latex":
+			t += `As some of the only islands in the sea of black latex, ${his} holes are eye-catching.`;
+			break;
+		case "a fallen nuns habit":
+			t += `${His} slutty nun outfit invites sin.`;
+			break;
+		case "a chattel habit":
+			t += `${His} chattel habit is designed for sex without being removed.`;
+			break;
+		case "a penitent nuns habit":
+			t += `${His} habit chafes ${him} so cruelly that it would probably be a relief to ${him} to have it pulled off, even if ${he}'s roughly fucked afterward.`;
+			break;
+		case "kitty lingerie":
+			t += `As ${he} moves, the strings of ${his} pretty kitty panties sway enticingly.`;
+			break;
+		case "attractive lingerie":
+			t += `As ${he} moves, ${his} lingerie delightfully hugs ${his} rear.`;
+			break;
+		case "a succubus outfit":
+			t += `${His} succubus outfit's tail holds ${his} skirt up high in back, inviting a damning fuck.`;
+			break;
+		case "a slutty maid outfit":
+			t += `${His} maid's skirt is cut extremely short, so that the slightest movement reveals a glimpse of ${his} ass.`;
+			break;
+		case "a nice maid outfit":
+			t += `${His} maid's skirt is cut conservatively, but it will lift easily enough.`;
+			break;
+		case "a monokini":
+			t += `${His} monokini contours to the size and shape of ${his} bottom.`;
+			break;
+		case "an apron":
+			t += `${His} apron leaves ${his} buttocks totally exposed.`;
+			break;
+		case "a cybersuit":
+			t += `${His} bodysuit prominently displays the curves of ${his} butt.`;
+			break;
+		case "a string bikini":
+			t += `As ${he} moves, ${his} string lingerie leaves the entire line of ${his} hips naked and enticing.`;
+			break;
+		case "a scalemail bikini":
+			t += `As ${he} moves, ${his} scaly lingerie leaves almost the entire line of ${his} hips naked and enticing.`;
+			break;
+		case "striped panties":
+		case "a button-up shirt and panties":
+		case "a sweater and panties":
+		case "a tank-top and panties":
+		case "panties":
+		case "a t-shirt and panties":
+		case "panties and pasties":
+		case "striped underwear":
+			t += `${His} cute panties prominently display the curves of ${his} butt.`;
+			break;
+		case "boyshorts":
+		case "an oversized t-shirt and boyshorts":
+			t += `${His} boyshorts tightly cling to ${his} rear as ${he} `;
+			if (slave.butt > 5) {
+				t += `moves. It's filled out by so much ass you can't help but oggle.`;
+			} else {
+				t += `moves.`;
+			}
+			break;
+		case "clubslut netting":
+			t += `As ${he} moves, ${his} clubslut netting moves with ${him}, leaving nothing to the imagination.`;
+			break;
+		case "a cheerleader outfit":
+			t += `As ${he} moves, ${his} pleated cheerleader bounces up and down flirtatiously.`;
+			break;
+		case "cutoffs and a t-shirt":
+			t += `As ${he} moves, ${his} cutoffs hug ${his} butt.`;
+			break;
+		case "spats and a tank top":
+			t += `${His} spats show off every curve of ${his} ass.`;
+			break;
+		case "a slutty outfit":
+			t += `For today's slutty outfit ${he}'s chosen `;
+			if (jsRandom(1,100) > 50 && slave.amp !== 1) {
+				t += `yoga pants so sheer that everything ${he}'s got is clearly visible.`;
+			} else {
+				t += `a miniskirt so brief that ${his} ass is hanging out the back, and a glimpse of ${his} goods is occasionally visible from the front.`;
+			}
+			break;
+		case "a slave gown":
+			if (slave.amp === 1) {
+				t += `${His} gorgeous dress is specially designed for ${his} limbless form, but without legs to support it, it can hardly conceal the outline of everything ${he} has.`;
+			} else {
+				t += `${His} gorgeous dress has a thoughtful cut that runs all the way from ${his} ankle to over ${his} hip, baring a leg all the way up.`;
+			}
+			break;
+
+		case "a halter top dress":
+			t += `${His} beautiful halter top dress seems to be sculpted around ${his} bottom.`;
+			break;
+		case "a ball gown":
+			t += `${His} fabulous silken ball gown is tailored to fit ${him} and accentuates the shape of ${his} butt.`;
+			break;
+		case "a slutty nurse outfit":
+			t += `${His} tight skirt flatters ${his} ass.`;
+			break;
+		case "a schoolgirl outfit":
+			if (slave.anus == 0) {
+				t += `This schoolgirl clearly needs to lose ${his} anal virginity.`;
+			} else if (slave.vagina == 0) {
+				t += `This schoolgirl clearly takes it up the ass; that way, ${he} can remain a virgin, and be, like, totally pure and innocent.`;
+			} else {
+				t += `This schoolgirl clearly takes it up the ass.`;
+			}
+			break;
+		case "a kimono":
+			t += `${His} kimono demurely covers ${his} `;
+			if (slave.butt > 5) {
+				t += `behind, though it cannot conceal its massive shape.`;
+			} else {
+				t += `behind.`;
+			}
+			break;
+
+		case "a hijab and abaya":
+		case "a niqab and abaya":
+			t += `${His} abaya totally conceals ${his} `;
+			if (slave.butt > 5) {
+				t += `behind, though it cannot conceal its large size.`;
+			} else {
+				t += `behind.`;
+			}
+			break;
+		case "a klan robe":
+			t += `${His} robe totally conceals ${his} `;
+			if (slave.butt > 5) {
+				t += `behind, though it cannot conceal its large size.`;
+			} else {
+				t += `behind.`;
+			}
+			break;
+		case "a burqa":
+			t += `${His} burqa totally conceals ${his} `;
+			if (slave.butt > 7) {
+				t += `behind, though it cannot conceal its absurd size.`;
+			} else {
+				t += `behind.`;
+			}
+			break;
+		case "a burkini":
+			if (slave.butt > 6) {
+				t += `${His} burkini finds itself accentuating the absurd size of ${his} behind.`;
+			} else {
+				t += `${His} burkini modestly covers ${his} behind.`;
+			}
+			break;
+		case "a hijab and blouse":
+			t += `${His} skirt modestly covers ${his} `;
+			if (slave.butt > 5) {
+				t += `behind, though it cannot conceal its large size.`;
+			} else {
+				t += `behind.`;
+			}
+			break;
+		case "cutoffs":
+		case "sport shorts and a t-shirt":
+		case "sport shorts":
+		case "a sweater and cutoffs":
+		case "sport shorts and a sports bra":
+			t += `${His} shorts hug the curves of ${his} hips and ass nicely.`;
+			break;
+
+		case "a police uniform":
+		case "a t-shirt and jeans":
+		case "leather pants":
+		case "jeans":
+		case "leather pants and a tube top":
+		case "leather pants and pasties":
+			if (slave.butt > 1) {
+				t += `${His} pants are filled out with the curve of ${his} butt.`;
+			} else {
+				t += `${His} pants modestly cover ${his} butt.`;
+			}
+			break;
+		case "a nice pony outfit":
+		case "a slutty pony outfit":
+			t += `${His} leather outfit tightly hugs the curves of ${his} hips and ass.`;
+			break;
+		case "a skimpy loincloth":
+			t += `${His} loincloth only partially covers ${his} butt, giving frequent glimpses of the bare flesh beneath it.`;
+			break;
+		case "a gothic lolita dress":
+			t += `${His} dress can be lifted easily enough to get as ${his} rear.`;
+			break;
+		case "a hanbok":
+			t += `${His} hanbok can be lifted easily enough to get as ${his} `
+			if (slave.butt > 7) {
+				t += `rear and its motion beneath the fabric certainly invites it.`;
+			} else {
+				t += `rear.`;
+			}
+			break;
+		case "a one-piece swimsuit":
+			t += `${His} swimsuit displays the delicious curves of ${his} butt and just begs you to run a hand across it.`;
+			break;
+		case "battledress":
+			t += `${His} fatigue trousers do not particularly flatter ${his} butt.`;
+			break;
+		case "nice business attire":
+			t += `${His} attractive skirt is nevertheless tight enough to show off ${his} derrière.`;
+			break;
+		case "slutty business attire":
+			t += `${His} skirt is so short it'll barely be necessary to lift it.`;
+			break;
+		case "a comfortable bodysuit":
+			t += `${His} bodysuit displays the curves of ${his} butt.`;
+			break;
+		case "a latex catsuit":
+			t += `${His} latex catsuit displays the curves of ${his} butt.`;
+			break;
+		case "a military uniform":
+		case "a red army uniform":
+			t += `${His} uniform skirt is nevertheless tight enough to show off ${his} derrière.`;
+			break;
+		case "a schutzstaffel uniform":
+			t += `${His} uniform trousers are nevertheless tight enough to show off ${his} derrière.`;
+			break;
+		case "a slutty schutzstaffel uniform":
+			t += `${His} uniform miniskirt is nevertheless tight enough to show off the enticing curves of ${his} butt.`;
+			break;
+		case "a long qipao":
+			t += `${His} elegant dress shows off all ${his} curves.`;
+			break;
+		case "battlearmor":
+			t += `${His} snug battlearmor is nevertheless tight enough to show off ${his} derrière.`;
+			break;
+		case "a mounty outfit":
+			t += `${His} uniform slacks are tight enough to show off ${his} derrière.`;
+			break;
+		case "a dirndl":
+			t += `${His} skirt shows off the soft curves ${his} derrière.`;
+			break;
+		case "lederhosen":
+			t += `${His} shorts tightly hug the crack of ${his} derrière.`;
+			break;
+		case "a biyelgee costume":
+			t += `${His} costume skirt's thin material shows off ${his} derrière.`;
+			break;
+		case "a nice nurse outfit":
+			t += `${His} nurse's trousers demurely cover ${his} behind.`;
+			break;
+		case "a mini dress":
+			t += `${His} mini dress displays the curves of ${his} butt.`;
+			break;
+		case "a leotard":
+			t += `${His} leotard leaves ${his} buttocks gloriously bare.`;
+			break;
+		case "a bunny outfit":
+			t += `${His} teddy covers ${his} rear, but in tight satin that flatters its curves.`;
+			break;
+		case "harem gauze":
+			t += `${His} hips are clearly visible through the thin gauze that covers it.`;
+			break;
+		case "a toga":
+			t += `${His} stellar behind is accented by the light material of ${his} toga.`;
+			break;
+		case "a huipil":
+			t += `${His} huipil is so short that ${his} butt is on display.`;
+			break;
+		case "slutty jewelry":
+			t += `${His} belt of light chain accentuates ${his} hips.`;
+			break;
+		case "a thong":
+		case "a tube top and thong":
+		case "a t-shirt and thong":
+		case "a slutty klan robe":
+			t += `${He}'s made an effort to keep ${his} thong out of ${his} crack, but it quickly slips back in with ${his} movements.`; 
+			break;
+		case "an oversized t-shirt":
+			t += `${His} oversized t-shirt is covering ${his} rear, but it can be lifted easily enough.`;
+			break;
+		default:
+			//"a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "a sports bra" "a t-shirt" 
+			if (slave.chastityAnus && slave.chastityVagina) {
+				t += `${His} chastity protects ${his} holes from penetration.`;
+				V.target = "FondleButt";
+			} else if (slave.chastityAnus) {
+				t += `${His} chastity belt protects ${his} rear from penetration.`;
+				V.target = "FondleButt";
+			} else {
+				t += `You run your eye over ${his} naked hips.`;
+			}
+	}
+	return t;
+};
diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw
index 8fe4f6c2b90cd01aaf1ee67d2b798caadd2aaf38..7e79a4668ad092d66b39f6d719209a06cdc81e83 100644
--- a/src/npc/fFeelings.tw
+++ b/src/npc/fFeelings.tw
@@ -148,7 +148,7 @@ My favorite part of my body i<<s>>
 		my blood. It'<<s>> <<s>>o pretty and red, and there'<<s>> <<s>>o much of it when you and the other <<s>>lave<<s>> //really// lay into me. I'm <<s>>o fucking hot right now, thinking about the thing<<s>> you can do to my <<s>>lutty body.
 	<<elseif ($activeSlave.sexualFlaw == "cum addict") && ($activeSlave.fetishStrength > 95)>>
 		<<if $activeSlave.lips > 40>>
-			my <<if $activeSlave.lips > 70>>huge <</if>>lip<<s>>, I like how everyone expect<<s>> to fa<<c>>efuck me, and how my lip<<s>> wrap around their dick<<s>> to keep all that yummy cum in my belly. Oh! I like my belly, too, and that warm, <<s>>lo<<sh>>y feeling a<<s>> it'<<s>> packed full of baby jui<<c>>e. It'<<s>> <<s>>o — I'm <<s>>orry, <<Master>>. I think my mouth i<<s>> watering. Plea<<s>>e give me a moment to collect my<<s>>elf.
+			my <<if $activeSlave.lips > 70>>huge <</if>>lip<<s>>, I like how everyone e<<x>>pect<<s>> to fa<<c>>efuck me, and how my lip<<s>> wrap around their dick<<s>> to keep all that yummy cum in my belly. Oh! I like my belly, too, and that warm, <<s>>lo<<sh>>y feeling a<<s>> it'<<s>> packed full of baby jui<<c>>e. It'<<s>> <<s>>o — I'm <<s>>orry, <<Master>>. I think my mouth i<<s>> watering. Plea<<s>>e give me a moment to collect my<<s>>elf.
 		<<elseif $PC.dick == 1>>
 			my tummy — and my womb! The <<s>>lo<<sh>>y feeling when I'm all packed full of cum in both end<<s>> get<<s>> me <<s>>o incredibly horny. <<S>>ometime<<s>> I wonder what it would be like if I were ju<<s>>t a puffed up, cum-balloon of a $woman, helple<<ss>> and filled with cum, over, and over, and — I'm <<s>>orry, <<Master>>. I'm being weird again, aren't I?
 		<<else>>
diff --git a/src/npc/newSlaveIncestSex.tw b/src/npc/newSlaveIncestSex.tw
index 122276c759b7b549971a4822f2837970adfbdfbb..d8e7d90ee98c17682cb6af8f5271878d04ea0209 100644
--- a/src/npc/newSlaveIncestSex.tw
+++ b/src/npc/newSlaveIncestSex.tw
@@ -2,6 +2,26 @@
 
 <br><br>
 
+
+<<set _clothesTemp = $relative.clothes, $relative.clothes = "no clothing">>
+<<set _clothesTemp2 = $relative2.clothes, $relative2.clothes = "no clothing">>
+<span id="artFrame">
+/* 000-250-006 */
+<<if $seeImages == 1>>
+	<div class="imageColumn">
+		<div class="imageRef medImg">
+			<<SlaveArt $relative 2 0>>
+		</div>
+		<div class="imageRef medImg">
+			<<SlaveArt $relative2 2 0>>
+		</div>
+	</div>
+<</if>>
+/* 000-250-006 */
+</span>
+<<set $relative.clothes = _clothesTemp>>
+<<set $relative2.clothes = _clothesTemp2>>
+
 /* setup pronouns (switch on vagina for sisters and herms regardless of genes) */
 <<set _oneshe = "she" >>
 <<set _oneher = "her" >>
diff --git a/src/pregmod/basenationalitiesControls.tw b/src/pregmod/basenationalitiesControls.tw
index e090c5ba894608cd26a53442bf767fc1d8d13ec4..4ca9e7efdf5a4239543800e3c606546d0a08694b 100644
--- a/src/pregmod/basenationalitiesControls.tw
+++ b/src/pregmod/basenationalitiesControls.tw
@@ -31,7 +31,7 @@
 
 /* Fine control tweaking of populations */
 Adjust slave populations:
-<br style="clear:both" /><hr style="margin:0">
+<br style="clear:both"><hr style="margin:0">
 
 /* Filter controls */
 Filter by Race:
@@ -69,7 +69,7 @@ Filter by Region:
 		|
 	<</if>>
 <</for>>
-<br style="clear:both" /><hr style="margin:0">
+<br style="clear:both"><hr style="margin:0">
 
 <div style="white-space: nowrap">
 /* Unfiltered pop controls */
diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw
index d813c029384e5e4862f5546e1294afab8f9fdabb..a3b0e247fbf3a1df53d7b5d7de8cb8b87bc5ccec 100644
--- a/src/pregmod/csec.tw
+++ b/src/pregmod/csec.tw
@@ -481,8 +481,8 @@ Since $his <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>> was spared fro
 	<<if $activeSlave.broodmother == 0 && $bellyImplants == 1>>
 		<br><br>
 		<span id="bir">Since $he is already in surgery and $his body already stretched, it would be possible to preserve $his pregnant appearance via fillable implant.
-		<<link "Do it.">>
 		</span>
+		<<link "Do it.">>
 			<<replace "#bir">>
 				<<if $PC.medicine >= 100>><<set $activeSlave.health -= 5>><<else>><<set $activeSlave.health -= 10>><</if>>
 				Installation of belly implant is relatively simple procedure. Using the fact that $his body and internal organs have already adapted to pregnancy, it's possible to greatly expand the initial size of implant. $He will still look pregnant post surgery and recovery.
diff --git a/src/pregmod/customizeSlaveTrade.tw b/src/pregmod/customizeSlaveTrade.tw
index 9bed5816c428666b447cbccbe7483faa8761b2dc..ee3ba43a421b90297edbddbd721abc83c09621fc 100644
--- a/src/pregmod/customizeSlaveTrade.tw
+++ b/src/pregmod/customizeSlaveTrade.tw
@@ -17,7 +17,7 @@ When civilization turned upon itself, some countries readily took to enslaving t
 <span id="PopControl"><<include "Basenationalities Controls">></span>
 <br>
 [[Reset filters|passage()][$baseControlsFilter = "all"]] | [[Clear all nationalities|passage()][$nationalities = {}]]
-<br style="clear:both" /><hr style="margin:0">
+<br style="clear:both"><hr style="margin:0">
 Vanilla presets:
 <span id="vanilla-presets"></span>
 <<script>>
diff --git a/src/pregmod/eliteTakeOverFight.tw b/src/pregmod/eliteTakeOverFight.tw
index 9cbe19a5fc857004d4931a906b11e4afe362980e..3eb88608075b9ace69981900325b8d46465f61ac 100644
--- a/src/pregmod/eliteTakeOverFight.tw
+++ b/src/pregmod/eliteTakeOverFight.tw
@@ -204,11 +204,11 @@
 
 /* if the player has managed to make enough damage to the elite and the rep is high enough the citizens will come to save the PC */
 /* this is to give reason to exist for the "enrage" and "last stand" option */
-/* result 							*/
+/* result							*/
 /* $eliteFate:						*/
-/* 		killed = 0 					*/
-/*		enslaved = 1 				*/
-/* 		had fun (and enslaved) = 2 	*/
+/*		killed = 0					*/
+/*		enslaved = 1				*/
+/*		had fun (and enslaved) = 2	*/
 <<if $BodyguardHasSucessfullyRecivedSignal == 1>>
 	<<setLocalPronouns $Bodyguard>>
 	<<run Enunciate($Bodyguard)>>
diff --git a/src/pregmod/fFeet.tw b/src/pregmod/fFeet.tw
index 988a4fc63b3e265e58b408310300dc92e0f10ec2..0c80bc675a7cc29232df385faf2fbabe6c4bda62 100644
--- a/src/pregmod/fFeet.tw
+++ b/src/pregmod/fFeet.tw
@@ -354,7 +354,7 @@ You call $activeSlave.slaveName to your office, telling $him to use $his feet to
 					erect _dick cock,
 				<</if>>
 			<<else>>
-				soft and dripping _dick <<if ($activeSlave.chastityPenis == 1)>>caged <</if>>dick ,
+				soft and dripping _dick <<if ($activeSlave.chastityPenis == 1)>>caged <</if>>dick,
 			<</if>>
 			<<if $activeSlave.balls > 0 && $activeSlave.scrotum > 0>>
 				<<if $activeSlave.vagina >= 0>>
diff --git a/src/pregmod/manageCorporation.tw b/src/pregmod/manageCorporation.tw
index c85814df18974ba4c7e6ea9e102749c95ab8335f..61f3bddaf5816fa96ec1411a78b11faf8b41d983 100644
--- a/src/pregmod/manageCorporation.tw
+++ b/src/pregmod/manageCorporation.tw
@@ -1,6 +1,6 @@
 :: Manage Corporation [nobr]
 
-<<set $nextButton = "Back", $nextLink = "Manage Economy", $showEncyclopedia = 1, $encyclopedia = "The Corporation">>
+<<set $nextButton = "Back to Main", $nextLink = "Main", $showEncyclopedia = 1, $encyclopedia = "The Corporation">>
 
 <<if $corpIncorporated == 0>>
 __Incorporation__
@@ -249,7 +249,7 @@ __Division Management__
 			$corpDivExtra = 0,
 			$corpDivExtraDev = 0>>
 			<<unset $corpDivExtraSlaves>>
- 			<<goto "Manage Corporation">>
+			<<goto "Manage Corporation">>
 		<</link>>
 	<</if>>
 	<br>
@@ -858,7 +858,7 @@ __Division Management__
 		<<if $corpDivTrainDev > 20>>
 			<<if $corpDivTrainSlaves >= $corpDivTrainDev - 10>>
 				<<set _corpDivTrainSlavesSell = $corpDivTrainSlaves - ($corpDivTrainDev - 10)>>
-				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000 + 15 * _corpDivTrainSlavesSell * menialSlaveCost(), $corpDivTrainSlaves -= 	_corpDivTrainSlavesSell, $corpAssetsDev -= 200000]]
+				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000 + 15 * _corpDivTrainSlavesSell * menialSlaveCost(), $corpDivTrainSlaves -= _corpDivTrainSlavesSell, $corpAssetsDev -= 200000]]
 			<<else>>
 				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000, $corpAssetsDev -= 200000]]
 			<</if>>
@@ -877,7 +877,7 @@ __Division Management__
 		<<if $corpDivTrainDev > 20>>
 			<<if $corpDivTrainSlaves >= $corpDivTrainDev - 10>>
 				<<set _corpDivTrainSlavesSell = $corpDivTrainSlaves - ($corpDivTrainDev - 10)>>
-				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000 + 23 * _corpDivTrainSlavesSell * menialSlaveCost(), $corpDivTrainSlaves -= 	_corpDivTrainSlavesSell, $corpAssetsDev -= 200000]]
+				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000 + 23 * _corpDivTrainSlavesSell * menialSlaveCost(), $corpDivTrainSlaves -= _corpDivTrainSlavesSell, $corpAssetsDev -= 200000]]
 			<<else>>
 				| [[Downsize x10|Manage Corporation][$corpDivTrainDev -= 10, $corpCash += 200000, $corpAssetsDev -= 200000]]
 			<</if>>
@@ -1708,7 +1708,7 @@ __Slave specialization__
 			<<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 -= , $corpSpecTimer = 1]]
+						[[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>>
diff --git a/src/pregmod/manageEconomy.tw b/src/pregmod/manageEconomy.tw
deleted file mode 100644
index 3e0c4b1bd09d5f68c3c1f53a9de7ccd04517126e..0000000000000000000000000000000000000000
--- a/src/pregmod/manageEconomy.tw
+++ /dev/null
@@ -1,230 +0,0 @@
-:: Manage Economy [nobr]
-<<set $nextButton = "Back", $nextLink = "Main">>
-
-<<if $difficultySwitch == 1>>
-__Economy__<br>
-	<span id="economy">
-		@@.yellowgreen;Global Economy@@
-	| <<print $economy>>
-	</span>
-	<<if ($cheatMode) && ($cheatModeM)>>
-		<<set _Teconomy = $economy>>
-		<<textbox "_Teconomy" _Teconomy>>
-		<<link "Apply">>
-		<<set $economy = Math.trunc(Number(_Teconomy)) || $economy, $cheater = 1>>
-		<<replace "#economy">>
-		@@.yellowgreen;Global Economy@@
-		| <<print $economy>>
-		<</replace>>
-		<</link>>
-	<</if>>
-	<br>
-
-	<span id="localEcon">
-		@@.yellowgreen;Local Economy@@
-	| <<print $localEcon>>
-	</span>
-	<<if ($cheatMode) && ($cheatModeM)>>
-		<<set _TlocalEcon = $localEcon>>
-		<<textbox "_TlocalEcon" _TlocalEcon>>
-		<<link "Apply">>
-		<<set $localEcon = Math.trunc(Number(_TlocalEcon)) || $localEcon, $cheater = 1>>
-		<<replace "#localEcon">>
-		@@.yellowgreen;Local Economy@@
-		| <<print $localEcon>>
-		<</replace>>
-		<</link>>
-	<</if>>
-
-	<br><br> //The Local Economy score effects some prices in your ecology. The lower the score, the higher the prices. The base score is ''100''.//
-	<br> The current score is
-	<<if $localEcon > 100>>
-		<<set _econPercent = Math.trunc(1000-100000/$localEcon)/10>>
-		reducing prices by @@.green;''<<print _econPercent>>%.''@@
-	<<elseif $localEcon == 100>>
-		equal to the base score. There are no price modifications.
-	<<else>>
-		<<set _econPercent = Math.trunc(100000/$localEcon-1000)/10>>
-		increasing prices by @@.red;''<<print _econPercent>>%.''@@
-	<</if>>
-	<<if $econWeatherDamage > 0>>
-		<br><br>The recent terrible weather has damaged the local infrastructure. It is @@.red;reducing the local economy score by <<print $econWeatherDamage>>.@@
-		<<if $disasterResponse == 0>>
-			<br>Locals will do their best to repair the damage on their own, but setting up a disaster response unit <br>will improve the recovery of infrastructure critical for keeping goods, people and information flowing smoothly in and out of your arcology.
-			<br>Creating the unit will cost <<print cashFormat(50000)>> and incur upkeep. [[Create Disaster Response Unit|Manage Economy][cashX(-50000, "capEx"), $disasterResponse = 1]]
-		<<elseif $disasterResponse == 1>>
-			<br>You are sending your disaster response unit to repair critical infrastructure. They are doing what they can.
-			<br>The unit can be made more effective with an additional investment of <<print cashFormat(100000)>>. This will also increase upkeep. [[Improve Disaster Response Unit|Manage Economy][cashX(-100000, "capEx"), $disasterResponse = 2]]
-		<<else>>
-			<br>Your highly capable disaster response unit is rapidly repairing the weather damage.
-		<</if>>
-	<<elseif $disasterResponse > 0>>
-		<br><br>Your disaster response unit is idle. It will not cost you any upkeep this week.
-	<</if>>
-<br><br>
-<</if>>
-
-<<if $corpAnnounced == 1>>
-	__Corporation__
-	<<link "Manage Corporation">><<goto "Manage Corporation">><</link>>
-	<br><br>
-<</if>>
-
-__Population and Rent__<br>
-<<print $arcologies[0].name>> is home to the following;
-<<set _percACitizens = Math.trunc(($ACitizens / ($ACitizens + $ASlaves)) * 1000) / 10,
-_percASlaves = Math.trunc(($ASlaves / ($ACitizens + $ASlaves)) * 1000) / 10,
-_percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 10,
-_percMiddleClass = Math.trunc(($middleClass / ($ACitizens + $ASlaves)) * 1000) / 10,
-_percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 10,
-_percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
-<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@
-<<if $LCRent > 30>>
-	//Very High// | [[Decrease|Manage Economy][$LCRent = 30, $rentEffectL = 0.94]]
-<<elseif $LCRent > 20>>
-	//High// | [[Increase|Manage Economy][$LCRent = 40, $rentEffectL = 0.85]] | [[Decrease|Manage Economy][$LCRent = 20, $rentEffectL = 1]]
-<<elseif $LCRent > 10>>
-	//Average// | [[Increase|Manage Economy][$LCRent = 30, $rentEffectL = 0.94]] | [[Decrease|Manage Economy][$LCRent = 10, $rentEffectL = 1.04]]
-<<elseif $LCRent > 0>>
-	//Low// | [[Increase|Manage Economy][$LCRent = 20, $rentEffectL = 1]] | [[Free Rent|Manage Economy][$LCRent = 0, $rentEffectL = 1.1]]
-<<else>>
-	//Free// | [[Increase|Manage Economy][$LCRent = 10, $rentEffectL = 1.04]]
-<</if>>
-<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@
-<<if $MCRent > 75>>
-	//Very High// | [[Decrease|Manage Economy][$MCRent = 75, $rentEffectM = 0.94]]
-<<elseif $MCRent > 50>>
-	//High// | [[Increase|Manage Economy][$MCRent = 100, $rentEffectM = 0.85]] | [[Decrease|Manage Economy][$MCRent = 50, $rentEffectM = 1]]
-<<elseif $MCRent > 25>>
-	//Average// | [[Increase|Manage Economy][$MCRent = 75, $rentEffectM = 0.94]] | [[Decrease|Manage Economy][$MCRent = 25, $rentEffectM = 1.04]]
-<<elseif $MCRent > 0>>
-	//Low// | [[Increase|Manage Economy][$MCRent = 50, $rentEffectM = 1]] | [[Free Rent|Manage Economy][$MCRent = 0, $rentEffectM = 1.1]]
-<<else>>
-	//Free// | [[Increase|Manage Economy][$MCRent = 25, $rentEffectM = 1.04]]
-<</if>>
-<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@
-<<if $UCRent > 270>>
-	//Very High// | [[Decrease|Manage Economy][$UCRent = 270, $rentEffectU = 0.94]]
-<<elseif $UCRent > 180>>
-	//High// | [[Increase|Manage Economy][$UCRent = 360, $rentEffectU = 0.85]] | [[Decrease|Manage Economy][$UCRent = 180, $rentEffectU = 1]]
-<<elseif $UCRent > 90>>
-	//Average// | [[Increase|Manage Economy][$UCRent = 270, $rentEffectU = 0.94]] | [[Decrease|Manage Economy][$UCRent = 90, $rentEffectU = 1.04]]
-<<elseif $UCRent > 0>>
-	//Low// | [[Increase|Manage Economy][$UCRent = 180, $rentEffectU = 1]] | [[Free Rent|Manage Economy][$UCRent = 0, $rentEffectU = 1.1]]
-<<else>>
-	//Free// | [[Increase|Manage Economy][$UCRent = 90, $rentEffectU = 1.04]]
-<</if>>
-<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@
-<<if $TCRent > 975>>
-	//Very High// | [[Decrease|Manage Economy][$TCRent = 975, $rentEffectT = 0.94]]
-<<elseif $TCRent > 650>>
-	//High// | [[Increase|Manage Economy][$TCRent = 1300, $rentEffectT = 0.85]] | [[Decrease|Manage Economy][$TCRent = 650, $rentEffectT = 1]]
-<<elseif $TCRent > 325>>
-	//Average// | [[Increase|Manage Economy][$TCRent = 975, $rentEffectT = 0.94]] | [[Decrease|Manage Economy][$TCRent = 325, $rentEffectT = 1.04]]
-<<elseif $TCRent > 0>>
-	//Low// | [[Increase|Manage Economy][$TCRent = 650, $rentEffectT = 1]] | [[Free Rent|Manage Economy][$TCRent = 0, $rentEffectT = 1.1]]
-<<else>>
-	//Free// | [[Increase|Manage Economy][$TCRent = 325, $rentEffectT = 1.04]]
-<</if>>
-<br>Slaves				| $ASlaves | <<print _percASlaves>>%
-
-<<if $secExp == 0>>
-	<<if $weatherAwareness > 0>>
-		<<if $antiWeatherFreeze == 0>>
-			<br><br>The extreme weather hurts your arcology's ability to function. Reinforcing your passenger terminals increase the weather range at which they can operate.<br>
-			Reinforcing passenger terminals costs <<print cashFormat(50000)>> and increase upkeep. [[Reinforce|Manage Economy][$antiWeatherFreeze = 1, cashX(-50000, "capEx")]]
-		<<elseif $antiWeatherFreeze == 1>>
-			<br><br>You have reinforced your passenger terminals to function even during bad weather. You can invest into all-weather transportation to remain functional no matter what.<br>
-			Investing in all-weather transportation costs <<print cashFormat(100000)>> and increase upkeep. [[Invest|Manage Economy][$antiWeatherFreeze = 2, cashX(-100000, "capEx")]]
-		<<elseif $antiWeatherFreeze == 2>>
-			<br><br>Your arcology's passenger terminals remain fully operational even during the most extreme weather.
-		<</if>>
-	<</if>>
-<</if>>
-<br><br>
-
-__Slaves__<br>
-Slave demand is
-<<if $menialDemandFactor <= -35000>>
-	@@.red;''extremely low''@@
-<<elseif $menialDemandFactor <= -20000>>
-	@@.red;''very low''@@
-<<elseif $menialDemandFactor <= 0>>
-	@@.yellow;''weak''@@
-<<elseif $menialDemandFactor >= 35000>>
-	@@.green;''extremely high''@@
-<<elseif $menialDemandFactor >= 20000>>
-	@@.green;''very high''@@
-<<else>>
-	@@.yellow;''strong''@@
-<</if>>
-<<if $deltaDemand > 0>>
-	and @@.green;''improving''@@
-<<elseif $deltaDemand < 0>>
-	and @@.red;''decreasing''@@
-<</if>>
-<<if $deltaDemand != 0>>
-	<<if $demandTimer - $elapsedDemandTimer < 3>>
-		but it might change soon
-	<</if>>
-<</if>>
-<<if ($cheatMode) && ($cheatModeM)>>
-	<span id="menialDemandFactor">
-	@@.yellowgreen;Slave Demand@@
-	| <<print $menialDemandFactor>>
-	</span>
-	<<set _TmenialDemandFactor = $menialDemandFactor>>
-	<<textbox "_TmenialDemandFactor" _TmenialDemandFactor>>
-	<<link "Apply">>
-	<<set $menialDemandFactor = Math.clamp(Math.trunc(Number(_TmenialDemandFactor)),-50000,50000) || $menialDemandFactor, $cheater = 1>>
-	<<replace "#menialDemandFactor">>
-	@@.yellowgreen; Slave Demand@@
-	| <<print $menialDemandFactor>>
-	<</replace>>
-	<</link>>
-<</if>>
-<br>
-Slave supply is
-<<if $menialSupplyFactor <= -35000>>
-	@@.green;''extremely low''@@
-<<elseif $menialSupplyFactor <= -20000>>
-	@@.green;''very low''@@
-<<elseif $menialSupplyFactor <= 0>>
-	@@.yellow;''weak''@@
-<<elseif $menialSupplyFactor >= 35000>>
-	@@.red;''extremely high''@@
-<<elseif $menialSupplyFactor >= 20000>>
-	@@.red;''very high''@@
-<<else>>
-	@@.yellow;''strong''@@
-<</if>>
-<<if $deltaSupply > 0>>
-	and @@.red;''improving''@@
-<<elseif $deltaSupply < 0>>
-	and @@.green;''decreasing''@@
-<</if>>
-<<if $deltaSupply != 0>>
-	<<if $supplyTimer - $elapsedDemandTimer < 3>>
-		but it might change soon
-	<</if>>
-<</if>>
-<<if ($cheatMode) && ($cheatModeM)>>
-	<span id="menialSupplyFactor">
-	@@.yellowgreen;Slave Supply@@
-	| <<print $menialSupplyFactor>>
-	</span>
-	<<set _TmenialSupplyFactor = $menialSupplyFactor>>
-	<<textbox "_TmenialSupplyFactor" _TmenialSupplyFactor>>
-	<<link "Apply">>
-	<<set $menialSupplyFactor = Math.clamp(Math.trunc(Number(_TmenialSupplyFactor)),-50000,50000) || $menialSupplyFactor, $cheater = 1>>
-	<<replace "#menialSupplyFactor">>
-	@@.yellowgreen; Slave Supply@@
-	| <<print $menialSupplyFactor>>
-	<</replace>>
-	<</link>>
-<</if>>
-<br><br>
-
-<<if $foodMarket > 0>>
-<<include "Food Market">>
-<</if>>
\ No newline at end of file
diff --git a/src/pregmod/saClothes.tw b/src/pregmod/saClothes.tw
index e2caab61e098eed72e7cc9d6dd14d4aaab0b462b..0a1dff8fdd22a8a40607fb0f299d45280496ebcc 100644
--- a/src/pregmod/saClothes.tw
+++ b/src/pregmod/saClothes.tw
@@ -825,7 +825,6 @@
 <<if ($slaves[$i].vaginalAttachment != "none")>>
 	/* TODO: write effects here */
 	<<elseif ($slaves[$i].vaginalAttachment == "vibrator")>>
-	<</if>>
 <</if>>
 
 <<if ($slaves[$i].buttplug != "none")>>
@@ -1011,4 +1010,4 @@
 			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 3c1bb3c7b0b12cd6c651f044965a61cc65f5f43a..0c0406f501ed539cb892acf4ba76c0b19af881a7 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -3567,4 +3567,4 @@ Done!
 <<set $upgradeMultiplierArcology = upgradeMultiplierArcology()>>
 
 /* reset NaNArray after BC is run */
-<<set $NaNArray = findNaN()>>
\ No newline at end of file
+<<set $NaNArray = findNaN()>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 8951772081150f691ba578079fa098aebeea6093..ed1b50ee0a414ee078e0c7dffbecaa61a43d922d 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -3186,7 +3186,7 @@ $He doesn't phrase it quite like that, of course.
 <<if !canTalk($activeSlave)>>
 	$He uses careful gestures to explain $himself in detail. $He expresses acceptance of $his status as a sex slave, and states that $he's become used to impotence. $He's suffering from moodiness, however, and has <<if canHear($activeSlave)>>heard rumors<<else>>learned<</if>> from other slaves that this might be because of the hormonal suppression necessary to allow $his hormone treatments to work despite $his natural hormones. $He asks for an orchiectomy, if it will help stabilize $his emotional state.
 <<else>>
-	"<<Master>>, may I please have an orchiectomy?" $he <<say>>s, and then gestures at $his limp dick. "I'm, um, impotent, and <<s>>in<<c>>e I'm on hormone<<s>>, I've, um, kind of gotten u<<s>>ed to being that way. I get really <<s>>ad randomly, though. And <<s>>ome of the other girl<<s>> <<s>>ay that it'<<s>> the hormone<<s>> and, um, my hormone<<s>> cla<<sh>>ing." $He squares $his shoulders. "I under<<s>>tand that I'm a <<s>>e<<x>> <<s>>lave. I a<<cc>>ept it. May I plea<<s>>e have that <<s>>urgery, <<Master>>, if it'll make me le<<ss>> moody?"
+	"<<Master>>, may I plea<<s>>e have an orchiectomy?" $he <<say>>s, and then gestures at $his limp dick. "I'm, um, impotent, and <<s>>in<<c>>e I'm on hormone<<s>>, I've, um, kind of gotten u<<s>>ed to being that way. I get really <<s>>ad randomly, though. And <<s>>ome of the other girl<<s>> <<s>>ay that it'<<s>> the hormone<<s>> and, um, my hormone<<s>> cla<<sh>>ing." $He squares $his shoulders. "I under<<s>>tand that I'm a <<s>>e<<x>> <<s>>lave. I a<<cc>>ept it. May I plea<<s>>e have that <<s>>urgery, <<Master>>, if it'll make me le<<ss>> moody?"
 <</if>>
 
 <<case "mean girls">>
@@ -3530,7 +3530,7 @@ $He's a good $desc, and remains obediently before your desk, filling your office
 
 During $his routine weekly inspection, <<EventNameLink>> cradles $his huge breasts with $his arms whenever the maneuvers of being inspected allow $him to do so. It's not an unusual gesture for a $desc on breast growth drugs, since slaves whose tits are expanding are, by definition, not used to their weight yet. But $activeSlave.slaveName is more than just uncomfortable. $He seems to regard $his weighty mammaries with distaste. <<if $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>$He's not stupid, and quickly realizes<<else>>$He's an idiot, but $he's not dumb enough to completely miss<</if>> that you've noticed $his feelings about $his boobs. $He bites $his lower lip, not sure if $he should say anything, so you follow your usual policy during slave inspections and ask $him about it. <<if $PC.slaving >= 100>>If you learned one thing from your long career of slave training, it's that it's<<else>>It's<</if>> typically best to suss these things out.
 <br><br>
-"<<Master>>," $he mumbles, "can I plea<<s>>e be taken off the brea<<s>>t expan<<s>>ion drug<<s>>?" $He swallows, nervous that $he's crossed a line, but $he presses on, hefting $his tits a little higher to show $he's talking about them. "They're <<s>>o heavy and awkward. I'm <<s>>ore every night, and my back hurt<<s>>. I feel like a cow with boob<<s>> thi<<s>> big, and I can't imagine what it'll be like if they get any bigger."
+"<<Master>>," $he mumbles, "can I plea<<s>>e be taken off the brea<<s>>t e<<x>>pan<<s>>ion drug<<s>>?" $He swallows, nervous that $he's crossed a line, but $he presses on, hefting $his tits a little higher to show $he's talking about them. "They're <<s>>o heavy and awkward. I'm <<s>>ore every night, and my back hurt<<s>>. I feel like a cow with boob<<s>> thi<<s>> big, and I can't imagine what it'll be like if they get any bigger."
 In one sense, it's amusing that $he feels that way, because<<if ($arcologies[0].FSAssetExpansionist != "unset") || ($arcologies[0].FSTransformationFetishist != "unset" && $arcologies[0].FSSlimnessEnthusiast == "unset") || ($arcologies[0].FSPastoralist != "unset")>> as many slaves in this very arcology know quite well,<</if>> it's possible for the miracles of modern medicine to grow a $desc's tits until they're so heavy they immobilize $him completely.
 <<if $activeSlave.muscles > 5>>$He has the muscles to carry $his boobs around, so some of this may be simple whining.<<else>>It's not surprising that $his breasts would be uncomfortable, since $he lacks anything in the way of muscle tone to help support them.<</if>>
 <<if $activeSlave.lactation > 0>>$He complained of feeling like a cow without detectable irony, despite the fact that $his left nipple has a <<if $activeSlave.nipples != "fuckable">>droplet of cream clinging to<<else>>rivulet of cream running from<</if>> it right now<<elseif $activeSlave.preg > $activeSlave.pregData.normalBirth/2.66>>$He complained of feeling like a cow without detectable irony, despite the fact that $he is pregnant and likely to begin lactating soon<</if>>.
@@ -6651,7 +6651,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<br><br>
 	You then conduct a more thorough inspection, from the top of $his $activeSlave.hColor-haired head on down. $He complies submissively, obviously expecting to be abused at any moment. $He obediently <<if ($activeSlave.boobs > 1000)>>lifts each of $his massive breasts one by one to display each of them from all angles.<<elseif $activeSlave.belly >= 5000>> allows you to do as you will to $his gravid stomach.<<else>>opens $his mouth and sticks out $his tongue on command.<</if>> $He even obeys an instruction to <<if ($activeSlave.dick > 1)>>take $himself by the dickhead and pull $his member flat up against $his abdomen.<<elseif ($activeSlave.dick > 0)>>take $his little dickhead between a thumb and forefinger and hold $himself out straight to reveal how tiny $he really is.<<elseif ($activeSlave.clit > 1)>>push back $his hood to reveal all of $his enormous clit.<<elseif ($activeSlave.labia > 1)>>spread $his meaty labia to reveal $his cunt.<<elseif $activeSlave.vagina == -1>>really show off $his smooth groin, displaying every bit of it, down to the tiny hole that's its only feature.<<else>>spread $his pussylips to show off $his cunt.<</if>>
 	<br><br>
-	Finally the inspection reaches $his backdoor, so you tell $him to turn around, bend over, and pull $his buttocks apart as wide as $he can. $He tenses in fear, obviously expecting anal rape, but after a moment of hesitation, $he obeys. $He turns, <<if $activeSlave.belly >= 10000>>carefully bends<<else>>bends<</if>>, and <<if ($activeSlave.butt > 5)>>grabs a handful of buttcheek in both hands, trembling as $he spreads $his ass to reveal<<elseif ($activeSlave.butt > 2)>>harshly pulls $his own buttcheeks apart, clearly hoping that if $he treats $himself this way, you won't. $He reveals<<else>>even though $his trim ass has already revealed everything, uses $his hands to spread $himself even wider to show off<</if>> $his <<if ($activeSlave.anus > 2)>>poor, overused asshole, which despite $his terror is still gaping a little.<<elseif ($activeSlave.anus > 1)>>$his asshole, which is clenched tight in terror.<<else>>invitingly tight asshole, which is clenched hard in terror.<</if>> Maintaining your neutral tone, you ask $him how $he feels about anal sex.
+	Finally the inspection reaches $his backdoor, so you tell $him to turn around, bend over, and pull $his buttocks apart as wide as $he can. $He tenses in fear, obviously expecting anal rape, but after a moment of hesitation, $he obeys. $He turns, <<if $activeSlave.belly >= 10000>>carefully bends<<else>>bends<</if>>, and <<if ($activeSlave.butt > 5)>>grabs a handful of buttcheek in both hands, trembling as $he spreads $his ass to reveal<<elseif ($activeSlave.butt > 2)>>harshly pulls $his own buttcheeks apart, clearly hoping that if $he treats $himself this way, you won't. $He reveals<<else>>even though $his trim ass has already revealed everything, uses $his hands to spread $himself even wider to show off<</if>> $his <<if ($activeSlave.anus > 2)>>poor, overused asshole, which despite $his terror is still gaping a little.<<elseif ($activeSlave.anus > 1)>>asshole, which is clenched tight in terror.<<else>>invitingly tight asshole, which is clenched hard in terror.<</if>> Maintaining your neutral tone, you ask $him how $he feels about anal sex.
 	<<if ($activeSlave.anus == 0)>>
 		"It'<<s>> <<s>>-<<s>>cary, <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>><<else>><<Master>><</if>>. I'm afraid it'll h-hurt," $he gasps out.
 	<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "buttslut")>>
@@ -6710,7 +6710,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<set $activeSlave.trust -= 5>>
 	<<= AnalVCheck()>>
 	<</replace>>
-<</link>><<if ($activeSlave.anus == 0)>> //This option will take virginity//<</if>>
+<</link>><<if ($activeSlave.anus == 0)>> //This option will take anal virginity//<</if>>
 
 <<case "spa boobs">>
 
@@ -6739,7 +6739,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<= AnalVCheck(2)>>
 	<<set $activeSlave.devotion += 4>>
 	<</replace>>
-<</link>><<if ($activeSlave.anus == 0)>> //This option will take virginity//<</if>>
+<</link>><<if ($activeSlave.anus == 0)>> //This option will take anal virginity//<</if>>
 <br><<link "Fuck $him under the water">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
@@ -12751,17 +12751,17 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<if $PC.dick == 1>>cock<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>cunt<</if>>
 		but you pull $him up again and tell $him to do that last.
 		<<if $PC.belly >= 60000>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up your linea nigra. When $he reaches your <<if $PC.preg >= 22>>popped<<else>>flattened<</if>> navel, you hold $his head there for a while, savoring the erotic sensation before pushing $him along to the rest of your expansive midriff.
+			$He quickly finds something almost as good by licking and sucking $his way up your linea nigra. When $he reaches your <<if $PC.preg >= 22>>popped<<else>>flattened<</if>> navel, you hold $his head there for a while, savoring the erotic sensation before pushing $him along to the rest of your expansive midriff.
 		<<elseif $PC.belly >= 5000>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up your linea nigra. When $he reaches your <<if $PC.preg >= 22>>popped<<else>>flattened<</if>> navel, you hold $his head there for a while, savoring the erotic sensation.
+			$He quickly finds something almost as good by licking and sucking $his way up your linea nigra. When $he reaches your <<if $PC.preg >= 22>>popped<<else>>flattened<</if>> navel, you hold $his head there for a while, savoring the erotic sensation.
 		<<elseif $PC.boobsBonus > 2>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up the sweaty crevice between your enormous breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
+			$He quickly finds something almost as good by licking and sucking $his way up the sweaty crevice between your enormous breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
 		<<elseif $PC.boobsBonus == 2>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up the sweaty crevice between your huge breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
+			$He quickly finds something almost as good by licking and sucking $his way up the sweaty crevice between your huge breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
 		<<elseif $PC.boobsBonus == 1>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up the sweaty crevice between your big breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
+			$He quickly finds something almost as good by licking and sucking $his way up the sweaty crevice between your big breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
 		<<elseif $PC.boobs == 1>>
-			$He quickly finds something almost as good by licking ,and sucking $his way up the sweaty crevice between your breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
+			$He quickly finds something almost as good by licking and sucking $his way up the sweaty crevice between your breasts. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
 		<<else>>
 			<<if $PC.title == 0>>
 				$He settles for kissing and licking $his way up your abs, pecs, and non-existent tits. When $he reaches your nipples, you hold $his head there for a while, enjoying $his tongue.
@@ -13144,16 +13144,16 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 			<br><br>
 			Over the week, you require $him to repeat this sexually confusing performance daily. It's difficult, having one of your slaves detailed to stimulate your nipples every day, but you make the necessary sacrifice.
 		<</if>>
-	<</if>>
-	<<if random(1,2) == 1>>
-		After a few days, $he's @@.green;obviously reconsidering $his previous hesitations about tits and ass.@@
-		<<set $activeSlave.attrXX += 5>>
-	<<else>>
-		$He serves your feminine body like a good slave. $His dislike for sex with girls doesn't change, but $he gets better at @@.hotpink;suppressing $his own inclinations@@ and serving as your plaything.
-		<<set $activeSlave.devotion += 4>>
+		<<if random(1,2) == 1>>
+			After a few days, $he's @@.green;obviously reconsidering $his previous hesitations about tits and ass.@@
+			<<set $activeSlave.attrXX += 5>>
+		<<else>>
+			$He serves your feminine body like a good slave. $His dislike for sex with girls doesn't change, but $he gets better at @@.hotpink;suppressing $his own inclinations@@ and serving as your plaything.
+			<<set $activeSlave.devotion += 4>>
+		<</if>>
 	<</if>>
 	<</replace>>
-<</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0) && $activeSlave.attrXY <= 35>>//This option will take virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0) && $activeSlave.attrXY <= 35>> //This option will take anal virginity//<</if>>
+<</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0) && $activeSlave.attrXY <= 35>>//This option will take virginity//<<elseif !canDoVaginal($activeSlave) && canDoAnal($activeSlave) && ($activeSlave.anus == 0) && $activeSlave.attrXY <= 35>> //This option will take anal virginity//<</if>>
 
 <<case "penitent">>
 
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index a85dd814cf3bbb67ee3bc23f1320363db493888f..52ea3bf6092fb1f62e5334dfe11a5d7306bd4dbf 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -1578,8 +1578,8 @@ $he adds impishly. <<if canHear($subSlave)>>Hearing this<<else>>Realizing your p
 
 	<<replace "#result">>
 	You approach and observe to $activeSlave.slaveName that it sounds like $he's speaking from experience. $He glances at you nervously, but agrees. You tell $him to go on, so $he turns to the mystified $subSlave.slaveName and mumbles, "It wa<<s>>n't ea<<s>>y for me the fir<<s>>t time either."
-	$He gasps as you slide around behind $him, your hands snaking around $his <<if $activeSlave.boobs > 2000>>massive tits<<elseif $activeSlave.boobs > 1000>>big boobs<<elseif $activeSlave.boobs > 400>>prominent breasts<<else>>chest<</if>> to pinch $his $activeSlave.nipples nipples. You whisper into $his ear, ordering $him to tell $his little story again, slowly. "_HeP'<<s>> going to hold you down and <<sh>>ove _hisP <<if $PC.dick == 1>>huge cockhead<<else>>bigge<<s>>t <<s>>trap-on<</if>> right up again<<s>>t thi<<s>> tight little hole," $he tells $subSlave.slaveName. The poor _girl2 doesn't know what to do, so _he2 just stands <<if canHear($activeSlave)>>and listens<<else>>still<</if>>, <<if canSee($subSlave)>>watching<<else>>staring<</if>> dumbly as $activeSlave.slaveName talks. $He's a lot less intimidating this time around, gasping out the words as you maneuver your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> against $his <<if $activeSlave.anus > 2>>loose butthole<<elseif $activeSlave.anus > 1>>experienced ass<<else>>tight butthole<</if>> for some standing anal. "You're going to do your be<<s>>t to relax like a good little _girl2," $he moans. <<if ($activeSlave.dick > 0) && !canAchieveErection($activeSlave)>>$His limp dick hangs lamely as you press against $his backdoor, but it's dripping precum.<<elseif $activeSlave.dick > 0>>$He has a throbbing erection.<<elseif $activeSlave.clit > 0>>As you shove $him into place, your hand brushes against $his enormously erect clit.<<else>>As you shove $him into place, your hand brushes against moisture coating $his inner thighs.<</if>> The bitch is getting off on this.
-	"But it'<<s>> going to be <<s>>o big — it'<<s>> going to bu-hu-hur-hurn... oh..." You're up $his ass and pounding away, <<if $subSlave.belly >= 5000>>with one hand on $his hips and the other around $his gravid belly<<else>>holding $his hips with both hands and<</if>> bouncing $his butt against your crotch as your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> slides in and out of $him. You administer a hard slap to $his ass and tell $him to keep going. $He shakes $his head and manages to get back on track, grunting out, "You're going to panic — and — and — oh — <<s>>-<<s>>truggle, and <<heP>>'<<s>> going t-to h-ho-oh-old you d-down, oh ow, and r-ra-rape your b-butt while, oh p-plea<<s>>e <<Master>>, you <<s>>cream, ooh, and c-cry... o-oh... ah." $He feels your <<if $PC.dick == 1>>hot seed jet into $his asshole<<else>>own orgasm<</if>> and your hands release their grip, and slides wetly off you, <<if ($activeSlave.dick > 0) && !canAchieveErection($activeSlave)>>$his own messy little orgasm running down $his legs to join the cum dripping out of $his ass<<elseif $activeSlave.dick > 0>>stepping around the mess $he shot onto the floor and trying to keep your load inside $his ass<<else>>$his feminine juices running down $his legs to join the cum dripping out of $his ass<</if>>. $He walks gingerly to the bathroom for a cleanup, looking a lot more @@.hotpink;submissive@@ than when you walked in. $subSlave.slaveName is still staring <<if canSee($subSlave)>>at<<else>>towards<</if>> you. There's a little @@.gold;fear@@ there, but some @@.hotpink;awe,@@ too.
+	$He gasps as you slide around behind $him, your hands snaking around $his <<if $activeSlave.boobs > 2000>>massive tits<<elseif $activeSlave.boobs > 1000>>big boobs<<elseif $activeSlave.boobs > 400>>prominent breasts<<else>>chest<</if>> to pinch $his $activeSlave.nipples nipples. You whisper into $his ear, ordering $him to tell $his little story again, slowly. "<<HeP>>'<<s>> going to hold you down and <<sh>>ove <<hisP>> <<if $PC.dick == 1>>huge cockhead<<else>>bigge<<s>>t <<s>>trap-on<</if>> right up again<<s>>t thi<<s>> tight little hole," $he tells $subSlave.slaveName. The poor _girl2 doesn't know what to do, so _he2 just stands <<if canHear($activeSlave)>>and listens<<else>>still<</if>>, <<if canSee($subSlave)>>watching<<else>>staring<</if>> dumbly as $activeSlave.slaveName talks. $He's a lot less intimidating this time around, gasping out the words as you maneuver your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> against $his <<if $activeSlave.anus > 2>>loose butthole<<elseif $activeSlave.anus > 1>>experienced ass<<else>>tight butthole<</if>> for some standing anal. "You're going to do your be<<s>>t to relax like a good little _girl2," $he moans. <<if ($activeSlave.dick > 0) && !canAchieveErection($activeSlave)>>$His limp dick hangs lamely as you press against $his backdoor, but it's dripping precum.<<elseif $activeSlave.dick > 0>>$He has a throbbing erection.<<elseif $activeSlave.clit > 0>>As you shove $him into place, your hand brushes against $his enormously erect clit.<<else>>As you shove $him into place, your hand brushes against moisture coating $his inner thighs.<</if>> The bitch is getting off on this.
+	"But it'<<s>> going to be <<s>>o big — it'<<s>> going to bu-hu-hur-hurn... oh..." You're up $his ass and pounding away, <<if $subSlave.belly >= 5000>>with one hand on $his hips and the other around $his gravid belly<<else>>holding $his hips with both hands and<</if>> bouncing $his butt against your crotch as your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> slides in and out of $him. You administer a hard slap to $his ass and tell $him to keep going. $He shakes $his head and manages to get back on track, grunting out, "You're going to panic — and — and — oh — <<s>>-<<s>>truggle, and <<heP>>'<<s>> going t-to h-ho-oh-old you d-down, oh, ow, and r-ra-rape your b-butt while, oh p-plea<<s>>e <<Master>>, you <<s>>cream, ooh, and c-cry... o-oh... ah." $He feels your <<if $PC.dick == 1>>hot seed jet into $his asshole<<else>>own orgasm<</if>> and your hands release their grip, and slides wetly off you, <<if ($activeSlave.dick > 0) && !canAchieveErection($activeSlave)>>$his own messy little orgasm running down $his legs to join the cum dripping out of $his ass<<elseif $activeSlave.dick > 0>>stepping around the mess $he shot onto the floor and trying to keep your load inside $his ass<<else>>$his feminine juices running down $his legs to join the cum dripping out of $his ass<</if>>. $He walks gingerly to the bathroom for a cleanup, looking a lot more @@.hotpink;submissive@@ than when you walked in. $subSlave.slaveName is still staring <<if canSee($subSlave)>>at<<else>>towards<</if>> you. There's a little @@.gold;fear@@ there, but some @@.hotpink;awe,@@ too.
 	<<set $activeSlave.devotion += 5, $activeSlave.analCount++>>
 	<<set $analTotal++>>
 	<<if canImpreg($activeSlave, $PC)>>
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index 807bd8fe6217a903557543553a87063360f2c19e..da831561c4af5a8a87153eeef9478a93da6ce54b 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -1580,5 +1580,7 @@ Your ''business assistant'' manages the menial slave market.
 <br>
 
 <span id="food">
-	<<include "Food Report">>
+	<<if $foodMarket > 0>>
+		<<include "Food Report">>
+	<</if>>
 </span>
diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw
index 07e87aab34915d2f436d42067ec2ac876b990f31..ae350e5ff6c7679e5660809e67b92dbea2a7753b 100644
--- a/src/uncategorized/bodyModification.tw
+++ b/src/uncategorized/bodyModification.tw
@@ -413,31 +413,31 @@ Choose piercing style:
 		<<goto "Body Modification">>
 	<</link>>
 
-	<<if $activeSlave.earPiercing != 1>> 		| [[Ear|Body Modification][$activeSlave.earPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.nosePiercing != 1>> 		| [[Nose|Body Modification][$activeSlave.nosePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.eyebrowPiercing != 1>> 	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.lipsPiercing != 1>> 		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.tonguePiercing != 1>> 	| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.earPiercing != 1>>		| [[Ear|Body Modification][$activeSlave.earPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.nosePiercing != 1>>		| [[Nose|Body Modification][$activeSlave.nosePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.eyebrowPiercing != 1>>	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.lipsPiercing != 1>>		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.tonguePiercing != 1>>	| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<<if $activeSlave.nipples != "fuckable">>
-	<<if $activeSlave.nipplesPiercing != 1>> 	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.nipplesPiercing != 1>>	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<</if>>
-	<<if $activeSlave.areolaePiercing != 1>> 	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.corsetPiercing != 1>> 	| [[Corset|Body Modification][$activeSlave.corsetPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.navelPiercing != 1>> 		| [[Navel|Body Modification][$activeSlave.navelPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.areolaePiercing != 1>>	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.corsetPiercing != 1>>	| [[Corset|Body Modification][$activeSlave.corsetPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.navelPiercing != 1>>		| [[Navel|Body Modification][$activeSlave.navelPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<<if ($activeSlave.vagina != -1) || ($activeSlave.dick != 0)>>
 		<<if $activeSlave.vagina != -1>>
-			<<if $activeSlave.clitPiercing != 1>> 	| [[Clit|Body Modification][$activeSlave.clitPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+			<<if $activeSlave.clitPiercing != 1>>	| [[Clit|Body Modification][$activeSlave.clitPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 		<<else>>
-			<<if $activeSlave.clitPiercing != 1>> 	| [[Dickhead|Body Modification][$activeSlave.clitPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+			<<if $activeSlave.clitPiercing != 1>>	| [[Dickhead|Body Modification][$activeSlave.clitPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 		<</if>>
 	<</if>>
 	<<if ($activeSlave.vagina != -1)>>
 		<<if $activeSlave.vaginaPiercing != 1>> | [[Vagina|Body Modification][$activeSlave.vaginaPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<</if>>
 	<<if ($activeSlave.dick > 0)>>
-		<<if $activeSlave.dickPiercing != 1>> 	| [[Dick|Body Modification][$activeSlave.dickPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+		<<if $activeSlave.dickPiercing != 1>>	| [[Dick|Body Modification][$activeSlave.dickPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<</if>>
-	<<if $activeSlave.anusPiercing != 1>> 		| [[Anus|Body Modification][$activeSlave.anusPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.anusPiercing != 1>>		| [[Anus|Body Modification][$activeSlave.anusPiercing = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 <</if>>
 
 <<if $piercingLevel == 2>>
@@ -469,17 +469,17 @@ Choose piercing style:
 		<<goto "Body Modification">>
 	<</link>>
 
-	<<if $activeSlave.earPiercing != 2>> 		| [[Ear|Body Modification][$activeSlave.earPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.nosePiercing != 2>> 		| [[Nose|Body Modification][$activeSlave.nosePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.eyebrowPiercing != 2>> 	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.lipsPiercing != 2>> 		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.tonguePiercing != 2>> 	| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.earPiercing != 2>>		| [[Ear|Body Modification][$activeSlave.earPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.nosePiercing != 2>>		| [[Nose|Body Modification][$activeSlave.nosePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.eyebrowPiercing != 2>>	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.lipsPiercing != 2>>		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.tonguePiercing != 2>>	| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 	<<if $activeSlave.nipples != "fuckable">>
-	<<if $activeSlave.nipplesPiercing != 2>> 	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.nipplesPiercing != 2>>	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 	<</if>>
-	<<if $activeSlave.areolaePiercing != 2>> 	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.corsetPiercing != 2>> 	| [[Corset|Body Modification][$activeSlave.corsetPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
-	<<if $activeSlave.navelPiercing != 2>> 		| [[Navel|Body Modification][$activeSlave.navelPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.areolaePiercing != 2>>	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.corsetPiercing != 2>>	| [[Corset|Body Modification][$activeSlave.corsetPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.navelPiercing != 2>>		| [[Navel|Body Modification][$activeSlave.navelPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 	<<if ($activeSlave.vagina != -1) || ($activeSlave.dick != 0)>>
 		<<if $activeSlave.vagina != -1>>
 			<<if $activeSlave.clitPiercing != 2>> | [[Clit|Body Modification][$activeSlave.clitPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
@@ -491,9 +491,9 @@ Choose piercing style:
 		<<if $activeSlave.vaginaPiercing != 2>> | [[Vagina|Body Modification][$activeSlave.vaginaPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 	<</if>>
 	<<if ($activeSlave.dick > 0)>>
-		<<if $activeSlave.dickPiercing != 2>> 	| [[Dick|Body Modification][$activeSlave.dickPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+		<<if $activeSlave.dickPiercing != 2>>	| [[Dick|Body Modification][$activeSlave.dickPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 	<</if>>
-	<<if $activeSlave.anusPiercing != 2>> 		| [[Anus|Body Modification][$activeSlave.anusPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
+	<<if $activeSlave.anusPiercing != 2>>		| [[Anus|Body Modification][$activeSlave.anusPiercing = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$degradation += 1]]<</if>>
 <</if>>
 
 <<if $piercingLevel == 3>>
@@ -531,23 +531,23 @@ Choose piercing style:
 
 	<</link>>
 
-	<<if $activeSlave.earPiercing > 0>> 		| [[Ear|Body Modification][$activeSlave.earPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.nosePiercing > 0>> 		| [[Nose|Body Modification][$activeSlave.nosePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.eyebrowPiercing > 0>> 	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.lipsPiercing > 0>> 		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.tonguePiercing > 0>> 		| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.nipplesPiercing > 0>> 	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.areolaePiercing > 0>> 	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.corsetPiercing > 0>> 		| [[Corset|Body Modification][$activeSlave.corsetPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.navelPiercing > 0>> 		| [[Navel|Body Modification][$activeSlave.navelPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.earPiercing > 0>>		| [[Ear|Body Modification][$activeSlave.earPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.nosePiercing > 0>>		| [[Nose|Body Modification][$activeSlave.nosePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.eyebrowPiercing > 0>>	| [[Eyebrow|Body Modification][$activeSlave.eyebrowPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.lipsPiercing > 0>>		| [[Lips|Body Modification][$activeSlave.lipsPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.tonguePiercing > 0>>		| [[Tongue|Body Modification][$activeSlave.tonguePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.nipplesPiercing > 0>>	| [[Nipples|Body Modification][$activeSlave.nipplesPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.areolaePiercing > 0>>	| [[Areolae|Body Modification][$activeSlave.areolaePiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.corsetPiercing > 0>>		| [[Corset|Body Modification][$activeSlave.corsetPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.navelPiercing > 0>>		| [[Navel|Body Modification][$activeSlave.navelPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<<if $activeSlave.vagina != -1>>
-		<<if $activeSlave.clitPiercing > 0>> 	| [[Clit|Body Modification][$activeSlave.clitPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+		<<if $activeSlave.clitPiercing > 0>>	| [[Clit|Body Modification][$activeSlave.clitPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<<else>>
-		<<if $activeSlave.clitPiercing > 0>> 	| [[Dickhead|Body Modification][$activeSlave.clitPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+		<<if $activeSlave.clitPiercing > 0>>	| [[Dickhead|Body Modification][$activeSlave.clitPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 	<</if>>
-	<<if $activeSlave.vaginaPiercing > 0>> 		| [[Vagina|Body Modification][$activeSlave.vaginaPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.dickPiercing > 0>> 		| [[Dick|Body Modification][$activeSlave.dickPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
-	<<if $activeSlave.anusPiercing > 0>> 		| [[Anus|Body Modification][$activeSlave.anusPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.vaginaPiercing > 0>>		| [[Vagina|Body Modification][$activeSlave.vaginaPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.dickPiercing > 0>>		| [[Dick|Body Modification][$activeSlave.dickPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
+	<<if $activeSlave.anusPiercing > 0>>		| [[Anus|Body Modification][$activeSlave.anusPiercing = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]]<</if>>
 <</if>>
 
 <br><br>
diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw
index 04ddba28941a644e3383964207fe74baeaaca2cd..93dd74920920bdf9dc7d126eb0f46b35d6a6f170 100644
--- a/src/uncategorized/brothel.tw
+++ b/src/uncategorized/brothel.tw
@@ -196,9 +196,9 @@ $brothelNameCaps
 Last week this
 <<set $lastWeeksCashProfits.brothelAds = $lastWeeksCashIncome.brothelAds + $lastWeeksCashExpenses.brothelAds>>
 <<if $lastWeeksCashProfits.brothelAds > 0>>
-	made you an extra @@.green;<<print cashFormat($lastWeeksCashProfits.brothelAds)>>@@,<<if $brothelSlaves > 1>> as well as increasing business for your whores.<</if>>
+	made you an extra @@.green;<<print cashFormat($lastWeeksCashProfits.brothelAds)>>,@@<<if $brothelSlaves > 1>> as well as increasing business for your whores.<</if>>
 <<elseif $lastWeeksCashProfits.brothelAds < 0>>
-	cost you @@.red;<<print cashFormat($lastWeeksCashProfits.brothelAds)>>@@,<<if $brothelSlaves > 1>> but still increased business for your whores.<</if>>
+	cost you @@.red;<<print cashFormat($lastWeeksCashProfits.brothelAds)>>,@@<<if $brothelSlaves > 1>> but still increased business for your whores.<</if>>
 <</if>>
 <<link "Manage brothel advertisements" "Brothel Advertisement">><<set $nextLink = passage(), $nextButton = "Back">><</link>>
 
diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw
index 00b3f666ea986e97ebd11b738f035005e5417579..59eda6ce117b3952c779979d970228bd8de22000 100644
--- a/src/uncategorized/buySlaves.tw
+++ b/src/uncategorized/buySlaves.tw
@@ -10,6 +10,11 @@
 __Sex Slave Purchase Options__
 <br>
 //There are many different organizations to purchase slaves from, but many of them are selective about their customers and will only sell to you if you are reputable.//
+
+
+<br><br>
+
+__Market status__<br>
 <<if ($slaveCostFactor > 1.1)>>
 	@@.yellow;There is a bull market for slaves; the price of slaves is very high.@@
 <<elseif ($slaveCostFactor > 1)>>
@@ -21,6 +26,86 @@ __Sex Slave Purchase Options__
 <<else>>
 	The slave market is stable; the price of slaves is average.
 <</if>>
+<br>
+Slave demand is
+<<if $menialDemandFactor <= -35000>>
+	@@.red;''extremely low''@@
+<<elseif $menialDemandFactor <= -20000>>
+	@@.red;''very low''@@
+<<elseif $menialDemandFactor <= 0>>
+	@@.yellow;''weak''@@
+<<elseif $menialDemandFactor >= 35000>>
+	@@.green;''extremely high''@@
+<<elseif $menialDemandFactor >= 20000>>
+	@@.green;''very high''@@
+<<else>>
+	@@.yellow;''strong''@@
+<</if>>
+<<if $deltaDemand > 0>>
+	and @@.green;''improving''@@
+<<elseif $deltaDemand < 0>>
+	and @@.red;''decreasing''@@
+<</if>>
+<<if $deltaDemand != 0>>
+	<<if $demandTimer - $elapsedDemandTimer < 3>>
+		but it might change soon
+	<</if>>
+<</if>>
+<<if ($cheatMode) && ($cheatModeM)>>
+	<span id="menialDemandFactor">
+	@@.yellowgreen;Slave Demand@@
+	| <<print $menialDemandFactor>>
+	</span>
+	<<set _TmenialDemandFactor = $menialDemandFactor>>
+	<<textbox "_TmenialDemandFactor" _TmenialDemandFactor>>
+	<<link "Apply">>
+	<<set $menialDemandFactor = Math.clamp(Math.trunc(Number(_TmenialDemandFactor)),-50000,50000) || $menialDemandFactor, $cheater = 1>>
+	<<replace "#menialDemandFactor">>
+	@@.yellowgreen; Slave Demand@@
+	| <<print $menialDemandFactor>>
+	<</replace>>
+	<</link>>
+<</if>>
+<br>
+Slave supply is
+<<if $menialSupplyFactor <= -35000>>
+	@@.green;''extremely low''@@
+<<elseif $menialSupplyFactor <= -20000>>
+	@@.green;''very low''@@
+<<elseif $menialSupplyFactor <= 0>>
+	@@.yellow;''weak''@@
+<<elseif $menialSupplyFactor >= 35000>>
+	@@.red;''extremely high''@@
+<<elseif $menialSupplyFactor >= 20000>>
+	@@.red;''very high''@@
+<<else>>
+	@@.yellow;''strong''@@
+<</if>>
+<<if $deltaSupply > 0>>
+	and @@.red;''improving''@@
+<<elseif $deltaSupply < 0>>
+	and @@.green;''decreasing''@@
+<</if>>
+<<if $deltaSupply != 0>>
+	<<if $supplyTimer - $elapsedDemandTimer < 3>>
+		but it might change soon
+	<</if>>
+<</if>>
+<<if ($cheatMode) && ($cheatModeM)>>
+	<span id="menialSupplyFactor">
+	@@.yellowgreen;Slave Supply@@
+	| <<print $menialSupplyFactor>>
+	</span>
+	<<set _TmenialSupplyFactor = $menialSupplyFactor>>
+	<<textbox "_TmenialSupplyFactor" _TmenialSupplyFactor>>
+	<<link "Apply">>
+	<<set $menialSupplyFactor = Math.clamp(Math.trunc(Number(_TmenialSupplyFactor)),-50000,50000) || $menialSupplyFactor, $cheater = 1>>
+	<<replace "#menialSupplyFactor">>
+	@@.yellowgreen; Slave Supply@@
+	| <<print $menialSupplyFactor>>
+	<</replace>>
+	<</link>>
+<</if>>
 
 <br>
 
diff --git a/src/uncategorized/clinicReport.tw b/src/uncategorized/clinicReport.tw
index 61d23fbbe0b80b9b4f892a9e0dd4a3f0534a2046..89c54131d0ca2e37bc9eb31ad94933077030432c 100644
--- a/src/uncategorized/clinicReport.tw
+++ b/src/uncategorized/clinicReport.tw
@@ -258,7 +258,7 @@
 			<<set $slaves[$i].pregControl = "speed up">>
 		<</if>>
 		<<if ($slaves[$i].chem > 10) && ($clinicUpgradeFilters == 1)>>
-			<<set $slaves[$i].chem -= 5 + (50 * $clinicUpgradePurge)>>
+			<<set $slaves[$i].chem -= (5 + (50 * $clinicUpgradePurge))>>
 			<<if $clinicUpgradePurge == 1 && $slaves[$i].health > -50>>
 				<<set $slaves[$i].health = -50>>
 			<</if>>
diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw
index 91585b2133dcb644703afde1c4fd4bac89b3fd93..d57b6251c56da985ef52433ba81cdf5a5df32755 100644
--- a/src/uncategorized/costsBudget.tw
+++ b/src/uncategorized/costsBudget.tw
@@ -9,12 +9,60 @@
 <</if>>
 
 
-<br>
-//Here you can view many of the financial details of your arcology, <<= properTitle()>>. The detailed list of slaves and their costs (food, hormones) that you may remember can now be found in the "Slave maintenance" link. Other links will allow you to directly control areas of your arcology to adjust spending to suit your tastes.
+//Here you can view many of the financial details of your arcology, <<= properTitle()>>. The detailed list of slaves and their costs (food, hormones) that you may remember can now be found in the "Slave maintenance" link. Other links will allow you to directly control areas of your arcology to adjust spending to suit your tastes.//
 
 <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>>
-<br>
-Your weekly costs are as follows://
+
+<<if $difficultySwitch == 1>>
+	//The Local Economy score effects some prices in your ecology. The lower the score, the higher the prices. The base score is ''100''.//
+	<br>
+	<span id="economy">
+		@@.yellowgreen;Global Economy@@
+	| <<print $economy>>
+	</span>
+	<<if ($cheatMode) && ($cheatModeM)>>
+		<<set _Teconomy = $economy>>
+		<<textbox "_Teconomy" _Teconomy>>
+		<<link "Apply">>
+		<<set $economy = Math.trunc(Number(_Teconomy)) || $economy, $cheater = 1>>
+		<<replace "#economy">>
+		@@.yellowgreen;Global Economy@@
+		| <<print $economy>>
+		<</replace>>
+		<</link>>
+	<</if>>
+	<br>
+
+	<span id="localEcon">
+		@@.yellowgreen;Local Economy@@
+	| <<print $localEcon>>
+	</span>
+	<<if ($cheatMode) && ($cheatModeM)>>
+		<<set _TlocalEcon = $localEcon>>
+		<<textbox "_TlocalEcon" _TlocalEcon>>
+		<<link "Apply">>
+		<<set $localEcon = Math.trunc(Number(_TlocalEcon)) || $localEcon, $cheater = 1>>
+		<<replace "#localEcon">>
+		@@.yellowgreen;Local Economy@@
+		| <<print $localEcon>>
+		<</replace>>
+		<</link>>
+	<</if>>
+
+	<br> The current score is
+	<<if $localEcon > 100>>
+		<<set _econPercent = Math.trunc(1000-100000/$localEcon)/10>>
+		reducing prices by @@.green;''<<print _econPercent>>%.''@@
+	<<elseif $localEcon == 100>>
+		equal to the base score. There are no price modifications.
+	<<else>>
+		<<set _econPercent = Math.trunc(100000/$localEcon-1000)/10>>
+		increasing prices by @@.red;''<<print _econPercent>>%.''@@
+	<</if>>
+	<br style="clear:both" /><<if $lineSeparations == 0>><br><br><<else>><hr style="margin:0"><</if>>
+<</if>>
+
+//Your weekly costs are as follows://
 
 /* Table of Totals */
 <<if ndef $lastWeeksCashIncome>>
diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw
index a36258e4325634e3327dc3365155b4aa62d8a03a..6204acfedb72a151b294f7cea52d6bb1a8c1cb44 100644
--- a/src/uncategorized/fsDevelopments.tw
+++ b/src/uncategorized/fsDevelopments.tw
@@ -697,7 +697,6 @@
 	<<if $arcologies[0].FSSupremacist < 0>>
 		<<run FutureSocieties.remove("FSSupremacist")>>
 		<<if $assistantFSAppearance == "supremacist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSSupremacist > $arcologies[0].FSSupremacistDecoration>>
 		<<set $arcologies[0].FSSupremacist = $arcologies[0].FSSupremacistDecoration>>
@@ -727,7 +726,6 @@
 	<<if $arcologies[0].FSSubjugationist < 0>>
 		<<run FutureSocieties.remove("FSSubjugationist")>>
 		<<if $assistantFSAppearance == "subjugationist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSSubjugationist > $arcologies[0].FSSubjugationistDecoration>>
 		<<set $arcologies[0].FSSubjugationist = $arcologies[0].FSSubjugationistDecoration>>
@@ -757,7 +755,6 @@
 	<<if $arcologies[0].FSRepopulationFocus < 0>>
 		<<run FutureSocieties.remove("FSRepopulationFocus")>>
 		<<if $assistantFSAppearance == "repopulation focus">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSRepopulationFocus > $arcologies[0].FSRepopulationFocusDecoration>>
 		<<set $arcologies[0].FSRepopulationFocus = $arcologies[0].FSRepopulationFocusDecoration>>
@@ -787,7 +784,6 @@
 	<<if $arcologies[0].FSRestart < 0 && $arcologies[0].FSRestartDecoration != 100>>
 		<<run FutureSocieties.remove("FSRestart")>>
 		<<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSRestart > $arcologies[0].FSRestartDecoration>>
 		<<set $arcologies[0].FSRestart = $arcologies[0].FSRestartDecoration>>
@@ -817,7 +813,6 @@
 	<<if $arcologies[0].FSGenderRadicalist < 0>>
 		<<run FutureSocieties.remove("FSGenderRadicalist")>>
 		<<if $assistantFSAppearance == "gender radicalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSGenderRadicalist > $arcologies[0].FSGenderRadicalistDecoration>>
 		<<set $arcologies[0].FSGenderRadicalist = $arcologies[0].FSGenderRadicalistDecoration>>
@@ -847,7 +842,6 @@
 	<<if $arcologies[0].FSGenderFundamentalist < 0>>
 		<<run FutureSocieties.remove("FSGenderFundamentalist")>>
 		<<if $assistantFSAppearance == "gender fundamentalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSGenderFundamentalist > $arcologies[0].FSGenderFundamentalistDecoration>>
 		<<set $arcologies[0].FSGenderFundamentalist = $arcologies[0].FSGenderFundamentalistDecoration>>
@@ -877,7 +871,6 @@
 	<<if $arcologies[0].FSPaternalist < 0>>
 		<<run FutureSocieties.remove("FSPaternalist")>>
 		<<if $assistantFSAppearance == "paternalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSPaternalist > $arcologies[0].FSPaternalistDecoration>>
 		<<set $arcologies[0].FSPaternalist = $arcologies[0].FSPaternalistDecoration>>
@@ -907,7 +900,6 @@
 	<<if $arcologies[0].FSDegradationist < 0>>
 		<<run FutureSocieties.remove("FSDegradationist")>>
 		<<if $assistantFSAppearance == "degradationist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSDegradationist > $arcologies[0].FSDegradationistDecoration>>
 		<<set $arcologies[0].FSDegradationist = $arcologies[0].FSDegradationistDecoration>>
@@ -937,7 +929,6 @@
 	<<if $arcologies[0].FSBodyPurist < 0>>
 		<<run FutureSocieties.remove("FSBodyPurist")>>
 		<<if $assistantFSAppearance == "body purist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSBodyPurist > $arcologies[0].FSBodyPuristDecoration>>
 		<<set $arcologies[0].FSBodyPurist = $arcologies[0].FSBodyPuristDecoration>>
@@ -965,7 +956,6 @@
 	<<if $arcologies[0].FSTransformationFetishist < 0>>
 		<<run FutureSocieties.remove("FSTransformationFetishist")>>
 		<<if $assistantFSAppearance == "transformation fetishist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSTransformationFetishist > $arcologies[0].FSTransformationFetishistDecoration>>
 		<<set $arcologies[0].FSTransformationFetishist = $arcologies[0].FSTransformationFetishistDecoration>>
@@ -993,7 +983,6 @@
 	<<if $arcologies[0].FSMaturityPreferentialist < 0>>
 		<<run FutureSocieties.remove("FSMaturityPreferentialist")>>
 		<<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSMaturityPreferentialist > $arcologies[0].FSMaturityPreferentialistDecoration>>
 		<<set $arcologies[0].FSMaturityPreferentialist = $arcologies[0].FSMaturityPreferentialistDecoration>>
@@ -1021,7 +1010,6 @@
 	<<if $arcologies[0].FSYouthPreferentialist < 0>>
 		<<run FutureSocieties.remove("FSYouthPreferentialist")>>
 		<<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSYouthPreferentialist > $arcologies[0].FSYouthPreferentialistDecoration>>
 		<<set $arcologies[0].FSYouthPreferentialist = $arcologies[0].FSYouthPreferentialistDecoration>>
@@ -1049,7 +1037,6 @@
 	<<if $arcologies[0].FSSlimnessEnthusiast < 0>>
 		<<run FutureSocieties.remove("FSSlimnessEnthusiast")>>
 		<<if $assistantFSAppearance == "slimness enthusiast">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSSlimnessEnthusiast > $arcologies[0].FSSlimnessEnthusiastDecoration>>
 		<<set $arcologies[0].FSSlimnessEnthusiast = $arcologies[0].FSSlimnessEnthusiastDecoration>>
@@ -1079,7 +1066,6 @@
 	<<if $arcologies[0].FSAssetExpansionist < 0>>
 		<<run FutureSocieties.remove("FSAssetExpansionist")>>
 		<<if $assistantFSAppearance == "asset expansionist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSAssetExpansionist > $arcologies[0].FSAssetExpansionistDecoration>>
 		<<set $arcologies[0].FSAssetExpansionist = $arcologies[0].FSAssetExpansionistDecoration>>
@@ -1109,7 +1095,6 @@
 	<<if $arcologies[0].FSPastoralist < 0>>
 		<<run FutureSocieties.remove("FSPastoralist")>>
 		<<if $assistantFSAppearance == "pastoralist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSPastoralist > $arcologies[0].FSPastoralistDecoration>>
 		<<set $arcologies[0].FSPastoralist = $arcologies[0].FSPastoralistDecoration>>
@@ -1139,7 +1124,6 @@
 	<<if $arcologies[0].FSPhysicalIdealist < 0>>
 		<<run FutureSocieties.remove("FSPhysicalIdealist")>>
 		<<if $assistantFSAppearance == "physical idealist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSPhysicalIdealist > $arcologies[0].FSPhysicalIdealistDecoration>>
 		<<set $arcologies[0].FSPhysicalIdealist = $arcologies[0].FSPhysicalIdealistDecoration>>
@@ -1169,7 +1153,6 @@
 	<<if $arcologies[0].FSHedonisticDecadence < 0>>
 		<<run FutureSocieties.remove("FSHedonisticDecadence")>>
 		<<if $assistantFSAppearance == "hedonistic decadence">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSHedonisticDecadence > $arcologies[0].FSHedonisticDecadenceDecoration>>
 		<<set $arcologies[0].FSHedonisticDecadence = $arcologies[0].FSHedonisticDecadenceDecoration>>
@@ -1199,7 +1182,6 @@
 	<<if $arcologies[0].FSChattelReligionist < 0>>
 		<<run FutureSocieties.remove("FSChattelReligionist")>>
 		<<if $assistantFSAppearance == "chattel religionist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSChattelReligionist > $arcologies[0].FSChattelReligionistDecoration>>
 		<<set $arcologies[0].FSChattelReligionist = $arcologies[0].FSChattelReligionistDecoration>>
@@ -1229,7 +1211,6 @@
 	<<if $arcologies[0].FSRomanRevivalist < 0>>
 		<<run FutureSocieties.remove("FSRomanRevivalist")>>
 		<<if $assistantFSAppearance == "roman revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSRomanRevivalist > $arcologies[0].FSRomanRevivalistDecoration>>
 		<<set $arcologies[0].FSRomanRevivalist = $arcologies[0].FSRomanRevivalistDecoration>>
@@ -1259,7 +1240,6 @@
 	<<if $arcologies[0].FSAztecRevivalist < 0>>
 		<<run FutureSocieties.remove("FSAztecRevivalist")>>
 		<<if $assistantFSAppearance == "aztec revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSAztecRevivalist > $arcologies[0].FSAztecRevivalistDecoration>>
 		<<set $arcologies[0].FSAztecRevivalist = $arcologies[0].FSAztecRevivalistDecoration>>
@@ -1289,7 +1269,6 @@
 	<<if $arcologies[0].FSEgyptianRevivalist < 0>>
 		<<run FutureSocieties.remove("FSEgyptianRevivalist")>>
 		<<if $assistantFSAppearance == "egyptian revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSEgyptianRevivalist > $arcologies[0].FSEgyptianRevivalistDecoration>>
 		<<set $arcologies[0].FSEgyptianRevivalist = $arcologies[0].FSEgyptianRevivalistDecoration>>
@@ -1319,7 +1298,6 @@
 	<<if $arcologies[0].FSEdoRevivalist < 0>>
 		<<run FutureSocieties.remove("FSEdoRevivalist")>>
 		<<if $assistantFSAppearance == "edo revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSEdoRevivalist > $arcologies[0].FSEdoRevivalistDecoration>>
 		<<set $arcologies[0].FSEdoRevivalist = $arcologies[0].FSEdoRevivalistDecoration>>
@@ -1349,7 +1327,6 @@
 	<<if $arcologies[0].FSArabianRevivalist < 0>>
 		<<run FutureSocieties.remove("FSArabianRevivalist")>>
 		<<if $assistantFSAppearance == "arabian revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSArabianRevivalist > $arcologies[0].FSArabianRevivalistDecoration>>
 		<<set $arcologies[0].FSArabianRevivalist = $arcologies[0].FSArabianRevivalistDecoration>>
@@ -1379,7 +1356,6 @@
 	<<if $arcologies[0].FSChineseRevivalist < 0>>
 		<<run FutureSocieties.remove("FSChineseRevivalist")>>
 		<<if $assistantFSAppearance == "chinese revivalist">><<set $assistantFSAppearance = "default">><</if>>
-		<<ClearFacilityDecorations>>
 		@@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@
 	<<elseif $arcologies[0].FSChineseRevivalist > $arcologies[0].FSChineseRevivalistDecoration>>
 		<<set $arcologies[0].FSChineseRevivalist = $arcologies[0].FSChineseRevivalistDecoration>>
diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw
index 5df1ca07eb6cb70511e37f45024cc4346dbbfc67..b84135885925d5456c90c96b7db6ea179787aeb7 100644
--- a/src/uncategorized/futureSociety.tw
+++ b/src/uncategorized/futureSociety.tw
@@ -593,7 +593,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 </span>
 
 <<if $arcologies[0].FSSupremacist != "unset">>
-	<br>''You are pursuing'' $arcologies[0].FSSupremacistRace superiority. //<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSupremacist")>><<if $assistantFSAppearance == "supremacist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+	<br>''You are pursuing'' $arcologies[0].FSSupremacistRace superiority. //<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSupremacist")>><<if $assistantFSAppearance == "supremacist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<FSChangeDecoration "FSSupremacist">>
 	<<if $PAPublic == 1>>
 		<<if ($assistantAppearance == "amazon") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "succubus")>>
@@ -622,7 +622,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <</if>>
 
 <<if $arcologies[0].FSSubjugationist != "unset">>
-	<br>''You are pursuing'' $arcologies[0].FSSubjugationistRace inferiority. //<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSubjugationist")>><<if $assistantFSAppearance == "subjugationist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+	<br>''You are pursuing'' $arcologies[0].FSSubjugationistRace inferiority. //<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSubjugationist")>><<if $assistantFSAppearance == "subjugationist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<FSChangeDecoration "FSSubjugationist">>
 	<<if $PAPublic == 1>>
 		<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "amazon") || ($assistantAppearance == "imp")>>
@@ -654,7 +654,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 	<<if $arcologies[0].FSRestart == "unset">>
 		<<if $arcologies[0].FSRepopulationFocus != "unset">>
 			<br>''You are pursuing'' the belief that mass breeding will save humanity.
-			//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRepopulationFocus")>><<if $assistantFSAppearance == "repopulation focus">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRepopulationFocus")>><<if $assistantFSAppearance == "repopulation focus">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			<<FSChangeDecoration "FSRepopulationFocus" "clothesBoughtMaternityLingerie" "clothesBoughtMaternityDress" "clothesBoughtBelly">>
 			<<if $PAPublic == 1>>
 				<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "pregnant fairy") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -674,14 +674,14 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 		<<if $arcologies[0].FSRestart != "unset">>
 			<<if $arcologies[0].FSRestartDecoration != 100>>
 				<br>''You are pursuing'' Eugenics.
-				//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRestart")>><<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+				//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRestart")>><<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<FSChangeDecoration "FSRestart">>
 			<<else>>
 				<br>''You have established'' Eugenics.
 				<<if $eugenicsFullControl != 1>>
 					The Societal Elite will not permit you to abandon Eugenics.
 				<<else>>
-					//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRestart")>><<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//
+					//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRestart")>><<if $assistantFSAppearance == "eugenics">><<set $assistantFSAppearance = "default">><</if>><</link>>//
 				<</if>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<FSChangeDecoration "FSRestart">>
@@ -706,7 +706,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 	<<if $arcologies[0].FSGenderFundamentalist == "unset">>
 		<<if $arcologies[0].FSGenderRadicalist != "unset">>
 			<br>''You are pursuing'' a radical redefinition of gender that identifies powerful people as male, and everyone else as female.
-			//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSGenderRadicalist")>><<if $assistantFSAppearance == "gender radicalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSGenderRadicalist")>><<if $assistantFSAppearance == "gender radicalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			<<FSChangeDecoration "FSGenderRadicalist">>
 			<<if $PAPublic == 1>>
 				<<if ($assistantAppearance == "shemale") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -726,7 +726,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSGenderRadicalist == "unset">>
 	<<if $arcologies[0].FSGenderFundamentalist != "unset">>
 		<br>''You are pursuing'' gender traditionalism, including a societal preference for feminine slaves and support for slave pregnancy.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSGenderFundamentalist")>><<if $assistantFSAppearance == "gender fundamentalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSGenderFundamentalist")>><<if $assistantFSAppearance == "gender fundamentalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSGenderFundamentalist" "clothesBoughtBunny">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "goddess") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "loli") || ($assistantAppearance == "fairy") || ($assistantAppearance == "pregnant fairy") || ($assistantAppearance == "angel") || ($assistantAppearance == "cherub") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -745,7 +745,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSDegradationist == "unset">>
 	<<if $arcologies[0].FSPaternalist != "unset">>
 		<br>''You are pursuing'' a vision of slave improvement, including slaves' health, mental well-being, and education.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPaternalist")>><<if $assistantFSAppearance == "paternalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPaternalist")>><<if $assistantFSAppearance == "paternalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSPaternalist" "clothesBoughtConservative">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "goddess") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "loli") || ($assistantAppearance == "fairy") || ($assistantAppearance == "pregnant fairy") || ($assistantAppearance == "angel") || ($assistantAppearance == "cherub")>>
@@ -764,7 +764,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSPaternalist == "unset">>
 	<<if $arcologies[0].FSDegradationist != "unset">>
 		<br>''You are pursuing'' slave degradation, a belief that slaves are not human and should not be treated decently.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSDegradationist")>><<if $assistantFSAppearance == "degradationist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSDegradationist")>><<if $assistantFSAppearance == "degradationist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSDegradationist" "clothesBoughtChains">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "monstergirl") || ($assistantAppearance == "businesswoman") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "succubus") || ($assistantAppearance == "incubus") || ($assistantAppearance == "imp")>>
@@ -783,7 +783,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSTransformationFetishist == "unset">>
 	<<if $arcologies[0].FSBodyPurist != "unset">>
 		<br>''You are pursuing'' societal disapproval of implant surgery.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSBodyPurist")>><<if $assistantFSAppearance == "body purist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSBodyPurist")>><<if $assistantFSAppearance == "body purist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSBodyPurist">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "amazon") || ($assistantAppearance == "goddess") || ($assistantAppearance == "loli") || ($assistantAppearance == "fairy") || ($assistantAppearance == "pregnant fairy") || ($assistantAppearance == "angel") || ($assistantAppearance == "succubus") || ($assistantAppearance == "incubus") || ($assistantAppearance == "witch")>>
@@ -802,7 +802,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSBodyPurist == "unset">>
 	<<if $arcologies[0].FSTransformationFetishist != "unset">>
 		<br>''You are pursuing'' societal fetishization of implant surgery.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSTransformationFetishist")>><<if $assistantFSAppearance == "transformation fetishist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSTransformationFetishist")>><<if $assistantFSAppearance == "transformation fetishist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSTransformationFetishist">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "shemale") || ($assistantAppearance == "succubus") || ($assistantAppearance == "incubus") || ($assistantAppearance == "witch") || ($assistantAppearance == "ERROR_1606_APPEARANCE_FILE_CORRUPT")>>
@@ -821,7 +821,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSMaturityPreferentialist == "unset">>
 	<<if $arcologies[0].FSYouthPreferentialist != "unset">>
 		<br>''You are pursuing'' an accentuated societal preference for younger slaves.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSYouthPreferentialist")>><<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSYouthPreferentialist")>><<if $assistantFSAppearance == "youth preferentialist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSYouthPreferentialist">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "shemale") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "loli") || ($assistantAppearance == "succubus") || ($assistantAppearance == "angel") || ($assistantAppearance == "cherub") || ($assistantAppearance == "imp") || ($assistantAppearance == "witch")>>
@@ -840,7 +840,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSYouthPreferentialist == "unset">>
 	<<if $arcologies[0].FSMaturityPreferentialist != "unset">>
 		<br>''You are pursuing'' a societal preference for older women.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSMaturityPreferentialist")>><<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSMaturityPreferentialist")>><<if $assistantFSAppearance == "maturity preferentialist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSMaturityPreferentialist">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "goddess") || ($assistantAppearance == "succubus") || ($assistantAppearance == "incubus") || ($assistantAppearance == "witch") || ($assistantAppearance == "angel")>>
@@ -859,7 +859,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSAssetExpansionist == "unset">>
 	<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
 		<br>''You are supporting'' enthusiasm for slaves with girlish figures.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSlimnessEnthusiast")>><<if $assistantFSAppearance == "slimness enthusiast">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSSlimnessEnthusiast")>><<if $assistantFSAppearance == "slimness enthusiast">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSSlimnessEnthusiast">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "shemale") || ($assistantAppearance == "loli") || ($assistantAppearance == "cherub") || ($assistantAppearance == "imp") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -878,7 +878,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSSlimnessEnthusiast == "unset">>
 	<<if $arcologies[0].FSAssetExpansionist != "unset">>
 		<br>''You are pursuing'' societal hunger for huge assets.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSAssetExpansionist")>><<if $assistantFSAppearance == "asset expansionist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSAssetExpansionist")>><<if $assistantFSAppearance == "asset expansionist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSAssetExpansionist">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "shemale") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "succubus") || ($assistantAppearance == "incubus") || ($assistantAppearance == "witch")>>
@@ -896,7 +896,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 
 <<if $arcologies[0].FSPastoralist != "unset">>
 	<br>''You are pursuing'' societal normalization of slave milking.
-	//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPastoralist")>><<if $assistantFSAppearance == "pastoralist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+	//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPastoralist")>><<if $assistantFSAppearance == "pastoralist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<FSChangeDecoration "FSPastoralist" "clothesBoughtWestern">>
 	<<if $PAPublic == 1>>
 		<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "shemale") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -914,7 +914,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSHedonisticDecadence == "unset">>
 	<<if $arcologies[0].FSPhysicalIdealist != "unset">>
 		<br>''You are pursuing'' societal reverence for the idealized human form, including height, health and muscle.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPhysicalIdealist")>><<if $assistantFSAppearance == "physical idealist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSPhysicalIdealist")>><<if $assistantFSAppearance == "physical idealist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSPhysicalIdealist" "clothesBoughtOil">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "amazon") || ($assistantAppearance == "shemale") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -933,7 +933,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSPhysicalIdealist == "unset">>
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
 		<br>''You are pursuing'' societal normalization of overindulgence and immediate gratification. Be it food, drink, sex, drugs or whatever one's desire may be.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSHedonisticDecadence")>><<if $assistantFSAppearance == "hedonistic decadence">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSHedonisticDecadence")>><<if $assistantFSAppearance == "hedonistic decadence">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSHedonisticDecadence">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "hypergoddess") || ($assistantAppearance == "preggololi") || ($assistantAppearance == "imp") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch")>>
@@ -952,7 +952,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSNull == "unset">>
 	<<if $arcologies[0].FSChattelReligionist != "unset">>
 		<br>''You are pursuing'' a new strain of religion that emphasizes the slaveholding portions of religious history.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSChattelReligionist")>><<if $assistantFSAppearance == "chattel religionist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSChattelReligionist")>><<if $assistantFSAppearance == "chattel religionist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSChattelReligionist" "clothesBoughtHabit">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus") || ($assistantAppearance == "witch") || ($assistantAppearance == "angel") || ($assistantAppearance == "cherub") || ($assistantAppearance == "imp")>>
@@ -971,7 +971,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSAztecRevivalist == "unset") && ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcologies[0].FSEdoRevivalist == "unset") && ($arcologies[0].FSArabianRevivalist == "unset") && ($arcologies[0].FSChineseRevivalist == "unset")>>
 	<<if $arcologies[0].FSRomanRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of a new Rome.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRomanRevivalist")>><<if $assistantFSAppearance == "roman revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSRomanRevivalist")>><<if $assistantFSAppearance == "roman revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSRomanRevivalist" "clothesBoughtToga">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "amazon") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
@@ -990,7 +990,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSRomanRevivalist == "unset") && ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcologies[0].FSEdoRevivalist == "unset") && ($arcologies[0].FSArabianRevivalist == "unset") && ($arcologies[0].FSChineseRevivalist == "unset")>>
 	<<if $arcologies[0].FSAztecRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of a new Aztec Empire.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSAztecRevivalist")>><<if $assistantFSAppearance == "aztec revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSAztecRevivalist")>><<if $assistantFSAppearance == "aztec revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSAztecRevivalist" "clothesBoughtHuipil">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "amazon") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
@@ -1009,7 +1009,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSRomanRevivalist == "unset") && ($arcologies[0].FSAztecRevivalist == "unset") && ($arcologies[0].FSEdoRevivalist == "unset") && ($arcologies[0].FSArabianRevivalist == "unset") && ($arcologies[0].FSChineseRevivalist == "unset")>>
 	<<if $arcologies[0].FSEgyptianRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of Pharaoh's Egypt.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSEgyptianRevivalist")>><<if $assistantFSAppearance == "egyptian revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSEgyptianRevivalist")>><<if $assistantFSAppearance == "egyptian revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSEgyptianRevivalist" "clothesBoughtEgypt">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "goddess") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
@@ -1028,7 +1028,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSRomanRevivalist == "unset") && ($arcologies[0].FSAztecRevivalist == "unset") && ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcologies[0].FSArabianRevivalist == "unset") && ($arcologies[0].FSChineseRevivalist == "unset")>>
 	<<if $arcologies[0].FSEdoRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of Edo Japan.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSEdoRevivalist")>><<if $assistantFSAppearance == "edo revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSEdoRevivalist")>><<if $assistantFSAppearance == "edo revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSEdoRevivalist" "clothesBoughtKimono">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "amazon") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "loli") || ($assistantAppearance == "kitsune") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
@@ -1047,7 +1047,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSRomanRevivalist == "unset") && ($arcologies[0].FSAztecRevivalist == "unset") && ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcologies[0].FSEdoRevivalist == "unset") && ($arcologies[0].FSChineseRevivalist == "unset")>>
 	<<if $arcologies[0].FSArabianRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of the Sultanate of old.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSArabianRevivalist")>><<if $assistantFSAppearance == "arabian revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSArabianRevivalist")>><<if $assistantFSAppearance == "arabian revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSArabianRevivalist" "clothesBoughtHarem">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "businesswoman") || ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
@@ -1066,7 +1066,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if ($arcologies[0].FSRomanRevivalist == "unset") && ($arcologies[0].FSAztecRevivalist == "unset") && ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcologies[0].FSEdoRevivalist == "unset") && ($arcologies[0].FSArabianRevivalist == "unset")>>
 	<<if $arcologies[0].FSChineseRevivalist != "unset">>
 		<br>''You are pursuing'' a vision of ancient China.
-		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSChineseRevivalist")>><<if $assistantFSAppearance == "chinese revivalist">><<set $assistantFSAppearance = "default">><</if>><<ClearFacilityDecorations>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		//<<link "Abandon" "Future Society">><<run FutureSocieties.remove("FSChineseRevivalist")>><<if $assistantFSAppearance == "chinese revivalist">><<set $assistantFSAppearance = "default">><</if>><</link>>//<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<FSChangeDecoration "FSChineseRevivalist" "clothesBoughtQipao">>
 		<<if $PAPublic == 1>>
 			<<if ($assistantAppearance == "schoolgirl") || ($assistantAppearance == "monstergirl") || ($assistantAppearance == "incubus") || ($assistantAppearance == "succubus")>>
diff --git a/src/uncategorized/jeSlaveDispute.tw b/src/uncategorized/jeSlaveDispute.tw
index a8d79a8c225a6a13eacc5ac4efe983a212e825b6..81319d3e740317e90aa1a70ed45f5bc62f4c5516 100644
--- a/src/uncategorized/jeSlaveDispute.tw
+++ b/src/uncategorized/jeSlaveDispute.tw
@@ -383,7 +383,7 @@
 			<<run repX(1500, "event")>>
 			<<include "New Slave Intro">>
 		<</replace>>
-	<</link>> //This will cost <<print cashFormat($contractCost)>> and give you the servant//
+	<</link>> //This will cost <<print cashFormat($contractCost)>> and give you the servant as such//
 	<br><<link "Buy out the contract and enslave $him">>
 		<<set $activeSlave.origin = "She was enslaved after you manipulated her deal for indentured servitude.">>
 		<<set $activeSlave.devotion = random(-10,-15)>>
@@ -397,7 +397,7 @@
 			<<run repX(-100, "event")>>
 			<<include "New Slave Intro">>
 		<</replace>>
-	<</link>> //This will cost <<print cashFormat($contractCost)>> and give you the slave//
+	<</link>> //This will cost <<print cashFormat($contractCost)>> and give you the servant as a slave//
 <<default>>
 	<<link "Privately inform both parties you'll settle this in favor of the most generous">>
 		<<replace "#result">>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 185fb225230df2fcd68868a629001b3605034bf3..c13db5806b3a0c662323c1aee10cfd877c269610 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -74,9 +74,22 @@ __Construction__
 	You have installed the FCTV receiver and have access to the full range of FCTV's programs. Low viewership rates amongst your citizens limits the impact of FCTV on your societal goals.
 <</if>>
 
+<<if $secExp == 0>>
+	<<if $weatherAwareness > 0>>
+		<<if $antiWeatherFreeze == 0>>
+			<br><br>The extreme weather hurts your arcology's ability to function. Reinforcing your passenger terminals increase the weather range at which they can operate.<br>
+			Reinforcing passenger terminals costs <<print cashFormat(50000)>> and increase upkeep. [[Reinforce|Manage Arcology][$antiWeatherFreeze = 1, cashX(-50000, "capEx")]]
+		<<elseif $antiWeatherFreeze == 1>>
+			<br><br>You have reinforced your passenger terminals to function even during bad weather. You can invest into all-weather transportation to remain functional no matter what.<br>
+			Investing in all-weather transportation costs <<print cashFormat(100000)>> and increase upkeep. [[Invest|Manage Arcology][$antiWeatherFreeze = 2, cashX(-100000, "capEx")]]
+		<<elseif $antiWeatherFreeze == 2>>
+			<br><br>Your arcology's passenger terminals remain fully operational even during the most extreme weather.
+		<</if>>
+	<</if>>
+<</if>>
+
 <<if $secExp == 1>>
-	<br>
-	<br>
+	<br><br>
 	__Security__
 	<<if $propHub == 0>>
 		<br>
@@ -123,6 +136,89 @@ __Construction__
 	<br>//Arcology upgrades are less expensive due to your @@.springgreen;<<if $PC.career == "arcology owner">>experience in the Free Cities<<else>>arcology engineering training<</if>>.@@//
 <</if>>
 
+<<if $difficultySwitch == 1>>
+	<br><br>
+	__Disaster Repsonse__<br>
+	<<if $econWeatherDamage > 0>>
+		The recent terrible weather has damaged the local infrastructure. It is @@.red;reducing the local economy score by <<print $econWeatherDamage>>.@@
+		<<if $disasterResponse == 0>>
+			<br>Locals will do their best to repair the damage on their own, but setting up a disaster response unit <br>will improve the recovery of infrastructure critical for keeping goods, people and information flowing smoothly in and out of your arcology.
+			<br>Creating the unit will cost <<print cashFormat(50000)>> and incur upkeep. [[Create Disaster Response Unit|Manage Arcology][cashX(-50000, "capEx"), $disasterResponse = 1]]
+		<<elseif $disasterResponse == 1>>
+			<br>You are sending your disaster response unit to repair critical infrastructure. They are doing what they can.
+			<br>The unit can be made more effective with an additional investment of <<print cashFormat(100000)>>. This will also increase upkeep. [[Improve Disaster Response Unit|Manage Arcology][cashX(-100000, "capEx"), $disasterResponse = 2]]
+		<<else>>
+			<br>Your highly capable disaster response unit is rapidly repairing the weather damage.
+		<</if>>
+	<<elseif $disasterResponse > 0>>
+		Your disaster response unit is idle. It will not cost you any upkeep this week.
+	<</if>>
+<</if>>
+
+<<if $foodMarket > 0>>
+<br><br><<include "Food Market">>
+<</if>>
+
+<br><br>
+
+__Population and Rent__<br>
+<<print $arcologies[0].name>> is home to the following;
+<<set _percACitizens = Math.trunc(($ACitizens / ($ACitizens + $ASlaves)) * 1000) / 10,
+_percASlaves = Math.trunc(($ASlaves / ($ACitizens + $ASlaves)) * 1000) / 10,
+_percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 10,
+_percMiddleClass = Math.trunc(($middleClass / ($ACitizens + $ASlaves)) * 1000) / 10,
+_percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 10,
+_percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
+<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@
+<<if $LCRent > 30>>
+	//Very High// | [[Decrease|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]]
+<<elseif $LCRent > 20>>
+	//High// | [[Increase|Manage Arcology][$LCRent = 40, $rentEffectL = 0.85]] | [[Decrease|Manage Arcology][$LCRent = 20, $rentEffectL = 1]]
+<<elseif $LCRent > 10>>
+	//Average// | [[Increase|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]] | [[Decrease|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]]
+<<elseif $LCRent > 0>>
+	//Low// | [[Increase|Manage Arcology][$LCRent = 20, $rentEffectL = 1]] | [[Free Rent|Manage Arcology][$LCRent = 0, $rentEffectL = 1.1]]
+<<else>>
+	//Free// | [[Increase|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]]
+<</if>>
+<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@
+<<if $MCRent > 75>>
+	//Very High// | [[Decrease|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]]
+<<elseif $MCRent > 50>>
+	//High// | [[Increase|Manage Arcology][$MCRent = 100, $rentEffectM = 0.85]] | [[Decrease|Manage Arcology][$MCRent = 50, $rentEffectM = 1]]
+<<elseif $MCRent > 25>>
+	//Average// | [[Increase|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]] | [[Decrease|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]]
+<<elseif $MCRent > 0>>
+	//Low// | [[Increase|Manage Arcology][$MCRent = 50, $rentEffectM = 1]] | [[Free Rent|Manage Arcology][$MCRent = 0, $rentEffectM = 1.1]]
+<<else>>
+	//Free// | [[Increase|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]]
+<</if>>
+<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@
+<<if $UCRent > 270>>
+	//Very High// | [[Decrease|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]]
+<<elseif $UCRent > 180>>
+	//High// | [[Increase|Manage Arcology][$UCRent = 360, $rentEffectU = 0.85]] | [[Decrease|Manage Arcology][$UCRent = 180, $rentEffectU = 1]]
+<<elseif $UCRent > 90>>
+	//Average// | [[Increase|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]] | [[Decrease|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]]
+<<elseif $UCRent > 0>>
+	//Low// | [[Increase|Manage Arcology][$UCRent = 180, $rentEffectU = 1]] | [[Free Rent|Manage Arcology][$UCRent = 0, $rentEffectU = 1.1]]
+<<else>>
+	//Free// | [[Increase|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]]
+<</if>>
+<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@
+<<if $TCRent > 975>>
+	//Very High// | [[Decrease|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]]
+<<elseif $TCRent > 650>>
+	//High// | [[Increase|Manage Arcology][$TCRent = 1300, $rentEffectT = 0.85]] | [[Decrease|Manage Arcology][$TCRent = 650, $rentEffectT = 1]]
+<<elseif $TCRent > 325>>
+	//Average// | [[Increase|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]] | [[Decrease|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]]
+<<elseif $TCRent > 0>>
+	//Low// | [[Increase|Manage Arcology][$TCRent = 650, $rentEffectT = 1]] | [[Free Rent|Manage Arcology][$TCRent = 0, $rentEffectT = 1.1]]
+<<else>>
+	//Free// | [[Increase|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]]
+<</if>>
+<br>Slaves				| $ASlaves | <<print _percASlaves>>%
+
 <br><br>
 
 __Language__
diff --git a/src/uncategorized/newGamePlus.tw b/src/uncategorized/newGamePlus.tw
index 224ad3c3b526a143a50cff337ac5f81c91a8df15..3eb8bf2e8ce3a54319bb5e9242391a2640334fd0 100644
--- a/src/uncategorized/newGamePlus.tw
+++ b/src/uncategorized/newGamePlus.tw
@@ -50,22 +50,48 @@ You <<if $cash >= _fee>>have<<else>>lack<</if>> the funds to bring more than $sl
 <<if $cheatMode == 1>> <<link "DEBUG: Add all slaves to import list" "New Game Plus">> <<for _ngi = 0; _ngi < $slaves.length; _ngi++>> <<= assignJob($slaves[_ngi], "be imported")>> <</for>> <</link>> <br> <</if>>
 
 Select up to $slavesToImportMax slaves to be imported into a new game and then click [[here.|init][$saveImported = 1,$oldCareer = "undefined",$slavesToImport = 0]]
-<<if $slavesToImport > 0>> <br><br>''
-	<<if $slavesToImport === 1>>
-		This slave
-	<<else>>
-		These slaves
-	<</if>>
-	will be imported into the new game'':
-	<<if $slavesToImport >= $slavesToImportMax>>
-		//Current slave import capacity exceded.//
-	<</if>>
-	<<set $Flag = 1>> <<include "Slave Summary">>
-<</if>>
-<<if $slavesToImport >= $slavesToImportMax>>
+
+<body>
+
+<div class="tab">
+	<button class="tablinks" onclick="opentab(event, 'assign')" id="tab assign">Import a slave</button>
+	<button class="tablinks" onclick="opentab(event, 'remove')" id="tab remove">Remove from import</button>
+</div>
+
+<div id="remove" class="tabcontent">
+	<div class="content">
+		<<if $slavesToImport > 0>>''
+			<<if $slavesToImport === 1>>
+				This slave
+			<<else>>
+				These slaves
+			<</if>>
+			will be imported into the new game'':
+			<<if $slavesToImport >= $slavesToImportMax>>
+				//Current slave import capacity exceded.//
+			<</if>>
+			<<set $Flag = 1>> <<include "Slave Summary">>
+		<</if>>
+	</div>
+</div>
+
+<div id="assign" class="tabcontent">
+	<div class="content">
+		<<if $slavesToImport >= $slavesToImportMax>>
+		<<else>>
+			<<if $slaves.length > $slavesToImport>>
+				''These slaves are available to be imported into the new game:''
+				<<set $Flag = 0>> <<include "Slave Summary">>
+			<</if>>
+		<</if>>
+	</div>
+</div>
+
+
+<<if ($tabChoice.NewGamePlus == "remove")>>
+	<script>document.getElementById("tab remove").click();</script>
 <<else>>
-	<<if $slaves.length > $slavesToImport>> <br><br>
-		''These slaves are available to be imported into the new game:''
-		<<set $Flag = 0>> <<include "Slave Summary">>
-	<</if>>
-<</if>>
\ No newline at end of file
+	<script>document.getElementById("tab assign").click();</script>
+<</if>>
+
+</body>
\ No newline at end of file
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index b4665d1217a5b791bf4c2ed5213a2094577da3c6..be9bea0c7086f2d7f4c1049e332e9717dfa897f5 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -584,17 +584,17 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	//and since $he wanted to leave the Old World...//
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Brand $him to introduce $him to life as a slave whore">>
-	<<replace "#introResult">>
-		You tell $him you'll be marking $him as one of your working girls. $He looks resigned as $he follows you to the body modification studio, and lets you strap $him down with $his $brandTarget bare. $He understands what's coming. You've got $him positioned just right<<if canDoAnal($activeSlave)>>, so your cock slides up $his experienced asshole easily<</if>>. You bring the brand in close so $he can feel the radiated heat, which breaks through even $his jaded exterior and makes $him tighten with fear. When you're close, you apply the brand<<if canDoAnal($activeSlave)>>, making the poor whore cinch $his sphincter down hard in agony, bringing you to climax<</if>>. $He knows you know how to @@.gold;apply pain,@@ now, and $he @@.mediumorchid;learns to dislike you@@ even as $his @@.red;wound@@ heals.
-	<</replace>>
-	<<set $activeSlave.brand = $brandDesign>>
-	<<set $activeSlave.brandLocation = $brandTarget>>
-	<<set $activeSlave.devotion -= 5>>
-	<<set $activeSlave.trust -= 10>>
-	<<set $activeSlave.health -= 10>>
-	<<if canDoAnal($activeSlave)>>
-		<<= AnalVCheck()>>
-	<</if>>
+		<<replace "#introResult">>
+			You tell $him you'll be marking $him as one of your working girls. $He looks resigned as $he follows you to the body modification studio, and lets you strap $him down with $his $brandTarget bare. $He understands what's coming. You've got $him positioned just right<<if canDoAnal($activeSlave)>>, so your cock slides up $his experienced asshole easily<</if>>. You bring the brand in close so $he can feel the radiated heat, which breaks through even $his jaded exterior and makes $him tighten with fear. When you're close, you apply the brand<<if canDoAnal($activeSlave)>>, making the poor whore cinch $his sphincter down hard in agony, bringing you to climax<</if>>. $He knows you know how to @@.gold;apply pain,@@ now, and $he @@.mediumorchid;learns to dislike you@@ even as $his @@.red;wound@@ heals.
+		<</replace>>
+		<<set $activeSlave.brand = $brandDesign>>
+		<<set $activeSlave.brandLocation = $brandTarget>>
+		<<set $activeSlave.devotion -= 5>>
+		<<set $activeSlave.trust -= 10>>
+		<<set $activeSlave.health -= 10>>
+		<<if canDoAnal($activeSlave)>>
+			<<= AnalVCheck()>>
+		<</if>>
 	<</link>>
  <br>
 
@@ -602,13 +602,13 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	//and since $he's worried about $his child...//
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Manipulate $his fear for $his pregnancy">>
-	<<replace "#introResult">>
-		You place a curative injector on your desk, and describe its remarkable medical powers in detail, before mentioning its extreme cost. $His face rises at the first part and falls at the second. You tell $him that if $he's a perfect sex slave, $he'll get as much as $he needs, and that $he can start by sucking you off. $He grunts a little as $he hurries to get $his pregnant body down to $his knees, but works your cock with almost desperate enthusiasm. You stroke $his hair comfortingly as $he does, and inject the healing dose into $his shoulder. $He murmurs $his @@.hotpink;gratitude@@ into your dick, but @@.gold;fears@@ for $his pregnancy.
-	<</replace>>
-	<<set $activeSlave.devotion += 4>>
-	<<set $activeSlave.trust -= 10>>
-	<<set $activeSlave.oralCount += 1>>
-	<<set $oralTotal += 1>>
+		<<replace "#introResult">>
+			You place a curative injector on your desk, and describe its remarkable medical powers in detail, before mentioning its extreme cost. $His face rises at the first part and falls at the second. You tell $him that if $he's a perfect sex slave, $he'll get as much as $he needs, and that $he can start by sucking you off. $He grunts a little as $he hurries to get $his pregnant body down to $his knees, but works your cock with almost desperate enthusiasm. You stroke $his hair comfortingly as $he does, and inject the healing dose into $his shoulder. $He murmurs $his @@.hotpink;gratitude@@ into your dick, but @@.gold;fears@@ for $his pregnancy.
+		<</replace>>
+		<<set $activeSlave.devotion += 4>>
+		<<set $activeSlave.trust -= 10>>
+		<<set $activeSlave.oralCount += 1>>
+		<<set $oralTotal += 1>>
 	<</link>>
  <br>
 
@@ -616,18 +616,18 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	//and since $he loathes $his pregnancy...//
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Abort $his child">>
-	<<replace "#introResult">>
-	You loudly place an innocuous-looking drug injector on your desk, and let $him think about it for a long moment. Then, you declare exactly what made that sound: abortifacients. After a moment of comprehension, $his mood instantly improves. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick == 1 && $PC.vagina == 1>>suck your cock, take it in $his pussy, take it up $his ass, eat you out<<elseif $PC.dick == 1>>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 you @@.mediumaquamarine;remove $his rape 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 let $him terminate it; $he needs all the nutrients for $himself right now. $He thanks you through $his tears.
-	<</replace>>
-	<<set $activeSlave.devotion += 4>>
-	<<set $activeSlave.trust += 3>>
-	<<set $activeSlave.preg = 0>>
-	<<set WombFlush($activeSlave)>>
-	<<set $activeSlave.pregType = 0>>
-	<<set $activeSlave.pregSource = 0>>
-	<<set $activeSlave.pregKnown = 0>>
-	<<set $activeSlave.pregWeek = -4>>
-	<<run SetBellySize($activeSlave)>>
+		<<replace "#introResult">>
+			You loudly place an innocuous-looking drug injector on your desk, and let $him think about it for a long moment. Then, you declare exactly what made that sound: abortifacients. After a moment of comprehension, $his mood instantly improves. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick == 1 && $PC.vagina == 1>>suck your cock, take it in $his pussy, take it up $his ass, eat you out<<elseif $PC.dick == 1>>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 you @@.mediumaquamarine;remove $his rape 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 let $him terminate it; $he needs all the nutrients for $himself right now. $He thanks you through $his tears.
+		<</replace>>
+		<<set $activeSlave.devotion += 4>>
+		<<set $activeSlave.trust += 3>>
+		<<set $activeSlave.preg = 0>>
+		<<set WombFlush($activeSlave)>>
+		<<set $activeSlave.pregType = 0>>
+		<<set $activeSlave.pregSource = 0>>
+		<<set $activeSlave.pregKnown = 0>>
+		<<set $activeSlave.pregWeek = -4>>
+		<<run SetBellySize($activeSlave)>>
 	<</link>>
  <br>
 
@@ -961,15 +961,15 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 <<if $activeSlave.health < -20>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Address $his medical issues">>
-	<<replace "#introResult">>
-		Since $he's in rough shape, you give $him a comprehensive medical exam with the help of the remote surgery. You apply care to @@.green;address@@ some of the most outstanding concerns. Whatever gratitude $he might have felt for prompt medical attention is balanced by fear of the remote surgery and the nagging (and accurate) feeling that $he's being treated like livestock, but $he does @@.mediumaquamarine;begin to hope@@ $he'll be well treated.
-		<<if $arcologies[0].FSPaternalist != "unset">>
-			Society @@.green;approves@@ of your promptly seeing to your stock's health; this advances the idea that all slaveowners should look after their slaves.
-			<<= FSChange("Paternalist", 2)>>
-		<</if>>
-	<</replace>>
-	<<set $activeSlave.health += 10>>
-	<<set $activeSlave.trust += 4>>
+		<<replace "#introResult">>
+			Since $he's in rough shape, you give $him a comprehensive medical exam with the help of the remote surgery. You apply care to @@.green;address@@ some of the most outstanding concerns. Whatever gratitude $he might have felt for prompt medical attention is balanced by fear of the remote surgery and the nagging (and accurate) feeling that $he's being treated like livestock, but $he does @@.mediumaquamarine;begin to hope@@ $he'll be well treated.
+			<<if $arcologies[0].FSPaternalist != "unset">>
+				Society @@.green;approves@@ of your promptly seeing to your stock's health; this advances the idea that all slaveowners should look after their slaves.
+				<<= FSChange("Paternalist", 2)>>
+			<</if>>
+		<</replace>>
+		<<set $activeSlave.health += 10>>
+		<<set $activeSlave.trust += 4>>
 	<</link>>
 <</if>>
 
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index dde2ff781bdf5821fd11a45ddc39a616e08159b7..70a02deb9bc1d0a8f3cb4261ee6e0cbe02ab0f09 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -541,8 +541,26 @@ Assignment performance vignettes on the end week report are
 <</if>>
 
 <br><br>
-''CHEATING/DEV OPTIONS''
+''CHEATING OPTIONS''
 <br>
+<<if ($cheatMode == 1)>>
+	Cheatmode is currently @@.cyan;ENABLED.@@ [[Disable|Options][$cheatMode = 0]]
+	<br>
+	<<if ($cheatModeM == 1)>>
+		Sidebar Cheats are currently @@.cyan;SHOWN.@@ [[Disable|Options][$cheatModeM = 0]]
+	<<else>>
+		Sidebar Cheats are currently @@.red;HIDDEN.@@ [[Enable|Options][$cheatModeM = 1]]
+	<</if>>
+<<else>>
+	Cheatmode is currently @@.red;DISABLED.@@ [[Enable|Options][$cheatMode = 1]] 
+	//This will allow manual selection of events and unlock some options that would usually be restricted by progress//
+<</if>>
+<br>
+<<if ($cheatMode == 1)>>
+	[[Add 100000 money|Options][$cheater = 1, cashX(100000, "cheating")]] | [[Add 10000 rep|Options][$cheater = 1, repX(10000, "cheating")]] //Cheating will be flagged in your save//
+	<br>
+<</if>>
+
 <<if ($cheatMode == 1)>>
 	<<if $seeAge == 1>>
 		Slaves will ''age''
@@ -557,25 +575,11 @@ Assignment performance vignettes on the end week report are
 		[[Enable aging|Options][$seeAge = 1]] |
 		[[Semi aging|Options][$seeAge = 2]]
 	<</if>>
-<</if>>
-<br>
-<<if ($cheatMode == 1)>>
 	<br>
-	Cheatmode is currently @@.cyan;ENABLED.@@ [[Disable|Options][$cheatMode = 0]]
-	<br>
-	<<if ($cheatModeM == 1)>>
-		Sidebar Cheats are currently @@.cyan;SHOWN.@@ [[Disable|Options][$cheatModeM = 0]]
-	<<else>>
-		Sidebar Cheats are currently @@.red;HIDDEN.@@ [[Enable|Options][$cheatModeM = 1]]
-	<</if>>
-<<else>>
-	Cheatmode is currently @@.red;DISABLED.@@ [[Enable|Options][$cheatMode = 1]]
-	//This will allow manual selection of events and unlock some options that would usually be restricted by progress//
 <</if>>
 <br>
-&nbsp;&nbsp;&nbsp;&nbsp;[[Add money|Options][$cheater = 1, cashX(100000, "cheating")]] | [[Add rep|Options][$cheater = 1, repX(10000, "cheating")]] //Cheating will be flagged in your save//
+''DEVELOPER OPTIONS''
 <br>
-
 <<if ($debugMode == 1)>>
 	Debug Mode is currently @@.cyan;ENABLED.@@ [[Disable|Options][$debugMode = 0]]
 <<else>>
@@ -585,12 +589,11 @@ Assignment performance vignettes on the end week report are
 
 <br>
 Genetics array test:
-<<link "Run Test">><<goto "test genetics">><</link>><<if $cheatMode>> | [[Edit Genetics]]<<else>> | @@.gray;Edit Genetics@@ (needs cheat mode)<</if>>
+<<link "Run Test">><<goto "test genetics">><</link>><<if $cheatMode == 1>> | [[Edit Genetics]]<<else>> | @@.gray;Edit Genetics@@ (Enable cheat mode)<</if>>
 <br><<link "Reset RA Rules">><<include "Init Rules">><<goto "Rules Assistant">><</link>>
 
 /*
 <br><br>
-
 [[Enable backwards compatibility|Backwards Compatibility]]
 <br>&nbsp;&nbsp;&nbsp;&nbsp;//Select this option to make saves older than 0.9 compatible. If you see a lot of red error messages after loading a save file, using this option may make it possible to continue. Untested for saves earlier than 0.6.//
 */
diff --git a/src/uncategorized/pCorpAnnouncement.tw b/src/uncategorized/pCorpAnnouncement.tw
index 8d3783f2818965e5a89b4a62c4c61c85a6cbbe50..a1bf424182450331166ecbfc633b103b41f592f8 100644
--- a/src/uncategorized/pCorpAnnouncement.tw
+++ b/src/uncategorized/pCorpAnnouncement.tw
@@ -10,5 +10,3 @@ You never understood the power of money until accumulating so much of it yoursel
 Good investment opportunities are hard to come by in the uncertain world of today. The days of government bonds providing steady yields are ending. Markets are volatile, and under attack by forces they cannot begin to control or anticipate. In places, the very consensus on modern capitalism that has held for nearly fifty years is under siege. There's one reliable growth market in the Free Cities: slaves. And there's too much capital chasing too few investment opportunities in that market.
 
 Reviewing the situation from your desk, the nerve center of your growing empire, you think to yourself: why not? You have the reputation and the capital to become a major player in the slave market, just for the asking. If you announced the incorporation of a publicly traded company dedicated to the industry of slavery, Free Cities investors would be lining up, cash in hand, ready to buy stock.
-
-<br><br>@@.orange;//Corporation controls are under the Manage Economy tab//@@
diff --git a/src/uncategorized/pFSAnnouncement.tw b/src/uncategorized/pFSAnnouncement.tw
index 0f76b92a09f4d2ec22f991d9c79f2716144175a8..59a3aab0a9955d290d931e11ceeb5825e1b70656 100644
--- a/src/uncategorized/pFSAnnouncement.tw
+++ b/src/uncategorized/pFSAnnouncement.tw
@@ -7,6 +7,10 @@
 <<set $FSGotRepCredits = 1>>
 <<setAssistantPronouns>>
 
+<span id="artFrame">
+	<<if $seeImages == 1>><<= assistantArt(3)>><</if>>
+</span>
+
 The simple pleasure of power has to be experienced to be understood. You often take a moment to stand on a balcony overlooking an interior atrium, watching the living, breathing, flowing current of your demesne. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> knows to allow you these moments of peace.
 <br><br>
 You immediately pay attention, therefore, when _heA interrupts. "<<= properTitle()>>," _heA says, "this is an appropriate moment to bring a serious matter to your attention. I monitor conversations, social media, and general opinion within the arcology where I can. You are respected, and the inhabitants of this arcology are starting to look to you to give direction to society."
diff --git a/src/uncategorized/pHackerSupport.tw b/src/uncategorized/pHackerSupport.tw
index 70384504129b77fff585c503235fc8fba0889d19..984a909258f3e16bc646b9bc3b29dd45f48b4b53 100644
--- a/src/uncategorized/pHackerSupport.tw
+++ b/src/uncategorized/pHackerSupport.tw
@@ -37,7 +37,7 @@ While you are reviewing your information security posture in light of the Daught
 	<<case "cherub">>
 		terrified little cherub avatar
 	<<case "incubus">>
-		idignant little incubus avatar
+		indignant little incubus avatar
 	<<case "succubus">>
 		frustrated little succubus avatar
 	<<case "imp">>
diff --git a/src/uncategorized/pRivalryCapture.tw b/src/uncategorized/pRivalryCapture.tw
index 3824c52f8e8e5c88a9e00dba09cfa009a5aa587f..7a8f6aa6d887d67298f101d6eaed14df04911298 100644
--- a/src/uncategorized/pRivalryCapture.tw
+++ b/src/uncategorized/pRivalryCapture.tw
@@ -77,7 +77,7 @@
 	<<set $activeSlave.dick = 6>>
 	<<set $activeSlave.foreskin = 0>>
 	<<set $activeSlave.balls = 300>>
-	<<set $activeSlave.scrotum = 1>>
+	<<set $activeSlave.scrotum = 280>>
 	<<set $activeSlave.anus = 3>>
 	<<set $activeSlave.vagina = -1>>
 	<<set $activeSlave.weight = -35>>
diff --git a/src/uncategorized/pSchoolSuggestion.tw b/src/uncategorized/pSchoolSuggestion.tw
index c2f1e61c89e27e9e68e18e026e2e5cd5b3549838..5d0025b83692d679e03b6b5ee870c004159c283b 100644
--- a/src/uncategorized/pSchoolSuggestion.tw
+++ b/src/uncategorized/pSchoolSuggestion.tw
@@ -20,7 +20,7 @@ An older woman standing across from him sniffs. "St. Claver's knows how to do bo
 <</if>>
 <<if $seeDicks != 0>>
 <br><br>
-"That's what I like about L'École," her neighbor puts in. "Bad French, I know: Le Eycole Dess Encoolees." Less articulate than the others, he makes a vague motion down near his waist, as though he were fucking something, and then stops himself. "Anyway. If you like butts, they're the best. You can train slaves for years and not get them as eager to take it up the ass as that place makes 'em. Their girls come as soon as you stick it in 'em."
+"That's what I like about L'École," her neighbor puts in.<<if $language != "French">> "Bad French, I know: Le Eycole Dess Encoolees."<</if>> Less articulate than the others, he makes a vague motion down near his waist, as though he were fucking something, and then stops himself. "Anyway. If you like butts, they're the best. You can train slaves for years and not get them as eager to take it up the ass as that place makes 'em. Their girls come as soon as you stick it in 'em."
 <br><br>
 "Eugh." His neighbor rolls his eyes. "If your taste is a bit more refined, the Gymnasium-Academy makes their, ha, //girls// more well-rounded than just that. Not that they aren't delightfully entertaining when it comes to that, either. But they're also fit, well-trained, and even skilled at martial arts. They're perfect if you like hot young things all ready to be your bodyguard."
 <br><br>
diff --git a/src/uncategorized/pens.tw b/src/uncategorized/pens.tw
index 0a52b8c577f9cdeb26d6a48bf649089bcade5aa7..57073472dfcb2301a5b71f9625bc079f45d61ce6 100644
--- a/src/uncategorized/pens.tw
+++ b/src/uncategorized/pens.tw
@@ -22,19 +22,19 @@ This is a space in the arcology's service areas, designed to house hundreds of s
 	<<if $menials+$menialBioreactors+$fuckdolls > 0>>partially<</if>>
 	housed in this sector.
 	<<if $menials > 0>>
-	<<if $Sweatshops>>
-		The simple labor slaves toil in $arcologies[0].name's sweatshops, and only return here to sleep.
-	<</if>>
+		<<if $Sweatshops>>
+			The simple labor slaves toil in $arcologies[0].name's sweatshops, and only return here to sleep.
+		<</if>>
 	<</if>>
 	<<if $fuckdolls > 0>>
-	<<if $arcadeUpgradeMenials>>
-		The menial Fuckdolls are endlessly cycled through $arcadeName. They're restrained there and used by the public until their holes are no longer appealing, and then cycled back down here to rest until they've tightened up again.
-	<</if>>
+		<<if $arcadeUpgradeMenials>>
+			The menial Fuckdolls are endlessly cycled through $arcadeName. They're restrained there and used by the public until their holes are no longer appealing, and then cycled back down here to rest until they've tightened up again.
+		<</if>>
 	<</if>>
 	<<if $menialBioreactors > 0>>
-	<<if $dairyUpgradeMenials>>
-		Whenever there's space in $dairyName, menial Bioreactors are taken out of storage here and restrained there, with $dairyName's powerful hookups draining them of their useful fluids and feeding them generously so they can produce more.
-	<</if>>
+		<<if $dairyUpgradeMenials>>
+			Whenever there's space in $dairyName, menial Bioreactors are taken out of storage here and restrained there, with $dairyName's powerful hookups draining them of their useful fluids and feeding them generously so they can produce more.
+		<</if>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw
index 80611fa2249dbf65650bda6dca9222aec07edf03..6f36e6ae36979e00306a882f572163a2ee03c941 100644
--- a/src/uncategorized/personalAssistantOptions.tw
+++ b/src/uncategorized/personalAssistantOptions.tw
@@ -29,15 +29,15 @@ __Computer Core Upgrades__
 <br>
 
 <<if $assistantPower == 0>>
-	The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers. 
+	The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers.
 	//Will cost <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>//
 	[[Install holographic memory core|Personal assistant options][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
 <<elseif $assistantPower == 1>>
-	The next upgrade needed is a liquid nitrogen cooling system to allow for extensive overclocking. 
+	The next upgrade needed is a liquid nitrogen cooling system to allow for extensive overclocking.
 	//Will cost <<print cashFormat(Math.trunc(35000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>> and will allow you to upgrade the smart piercings in $arcologies[0].name//
 	[[Install upgraded cooling system|Personal assistant options][cashX(forceNeg(Math.trunc(35000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
 <<elseif $assistantPower == 2>>
-	The final upgrade needed is a transition to optical RAM. 
+	The final upgrade needed is a transition to optical RAM.
 	//Will cost <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>//
 	[[Install optical RAM|Personal assistant options][cashX(forceNeg(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
 <<else>>
diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw
index efcb4bfcf694820df538408a4ee65e9d7aba5ffb..dcb788bcb2b1d74df1edec93540333c3cead4bac 100644
--- a/src/uncategorized/reMalefactor.tw
+++ b/src/uncategorized/reMalefactor.tw
@@ -573,7 +573,7 @@ $He is easily taken into custody and $his contraband confiscated once the jeerin
 	<<case "escapee">>
 		Naturally, the wretch will be thrown out of the arcology: but an example must first be made. Free people must understand that criminals who commit outrages against them will be severely punished. The begging malefactor is flogged on the promenade before being escorted bleeding and half-dead out of the arcology. The public @@.green;approves of this harshness.@@
 	<<case "orphanloli">>
-		Naturally, the wretch will be thrown out of the arcology: but an example must first be made. Free people must understand that criminals who commit outrages against them will be severely punished. The crying girl is flogged on the promenade before being dragged bleeding and broken out of the arcology. The public @@.green;approves of this harshness.@@
+		Naturally, the wretch will be thrown out of the arcology: but an example must first be made. Free people must understand that criminals who commit outrages against them will be severely punished. The crying $girl is flogged on the promenade before being dragged bleeding and broken out of the arcology. The public @@.green;approves of this harshness.@@
 	<<case "anchorBaby">>
 		Naturally, the wretch will be thrown out of the arcology: but an example must first be made. Free people must understand that criminals who commit outrages against them will be severely punished. The screaming breeder is flogged on the promenade before being dragged bleeding and broken out of the arcology sans $his children; they are destined for the slave orphanage. The public @@.green;approves of this harshness.@@
 	<<case "businesswoman">>
diff --git a/src/uncategorized/rePokerNight.tw b/src/uncategorized/rePokerNight.tw
index 025ca0d93ee7cd9ce22239c89ca4f874aa825b34..7dd8f76a50db05778aa8a60d98c37184aceb48cb 100644
--- a/src/uncategorized/rePokerNight.tw
+++ b/src/uncategorized/rePokerNight.tw
@@ -78,9 +78,6 @@ On a particularly lackadaisical evening, you find yourself alerted to a message
 					<<set $activeSlave.career = "a soldier">>
 					<<set $activeSlave.indentureRestrictions = 2>>
 					<<set $activeSlave.indenture = 52>>
-					<<if $activeSlave.eyes == -2>>
-						<<set $activeSlave.eyes = -1>>
-					<</if>>
 					<<set $activeSlave.devotion = random(25,40)>>
 					<<set $activeSlave.trust = random(35,45)>>
 					<<set $activeSlave.health = random(60,80)>>
diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw
index c3573e6ba1f2de73ff5291fb9adf390f2318289a..dbd2482277d5233418fde8429615f719afa4b09d 100644
--- a/src/uncategorized/reRecruit.tw
+++ b/src/uncategorized/reRecruit.tw
@@ -2047,7 +2047,7 @@ A young $woman comes to your penthouse for an interview. You accepted $his reque
 
 <<case "blind homeless">>
 
-A young <<if $activeSlave.physicalAge < 13>>$girl<<elseif $activeSlave.physicalAge < 18>>teen<<else>>$woman<</if>> struggles into your penthouse for an interview. You accepted $his request to see you because $he took the unusual step of promising to sell $himself to you if you would admit $him. The reason for this odd behavior becomes clear when $he enters. $He is gingerly feeling $his way towards your desk, before finding it and straightening up, giving you a good look at $his body. $He is clothed in rags and dangerously thin, save for a notable roundness in $his middle. $He shakily makes $his case. "<<if $PC.title != 0>><<S>>ir<<else>>Ma'am<</if>>, I'm de<<s>>perate. My home wa<<s>> repo<<ss>>e<<ss>>ed and I wa<<s>> for<<c>>ed onto the <<s>>treet. And the <<s>>treet is no pla<<c>>e for a blind $girl. T-they", $he place a hand on $his stomach, "took advantage of my helple<<ss>>ne<<ss>>. For month<<s>>, they fucked me whenever they wanted, and in return the gave me ne<<x>>t to no food and thi<<s>> child!" $He stamps $his foot angrily, before continuing, "but, I thought, you would be far better than that life, a <<s>>low death on the <<s>>treet<<s>>." $He tears up and awaits your response.
+A young <<if $activeSlave.physicalAge < 13>>$girl<<elseif $activeSlave.physicalAge < 18>>teen<<else>>$woman<</if>> struggles into your penthouse for an interview. You accepted $his request to see you because $he took the unusual step of promising to sell $himself to you if you would admit $him. The reason for this odd behavior becomes clear when $he enters. $He is gingerly feeling $his way towards your desk, before finding it and straightening up, giving you a good look at $his body. $He is clothed in rags and dangerously thin, save for a notable roundness in $his middle. $He shakily makes $his case. "<<if $PC.title != 0>><<S>>ir<<else>>Ma'am<</if>>, I'm de<<s>>perate. My home wa<<s>> repo<<ss>>e<<ss>>ed and I wa<<s>> for<<c>>ed onto the <<s>>treet. And the <<s>>treet is no pla<<c>>e for a blind $girl. T-they", $he place a hand on $his stomach, "took advantage of my helple<<ss>>ne<<ss>>. For month<<s>>, they fucked me whenever they wanted, and in return they gave me ne<<x>>t to no food and thi<<s>> child!" $He stamps $his foot angrily, before continuing, "but, I thought, you would be far better than that life, a <<s>>low death on the <<s>>treet<<s>>." $He tears up and awaits your response.
 
 <<case "paternalist swan song">>
 
diff --git a/src/uncategorized/reStaffedMorning.tw b/src/uncategorized/reStaffedMorning.tw
index a4f8d3119f89cd4c5cea280dadbd31d510c7214a..969ab4616310d795f5420e36e1f80b3ea8643c29 100644
--- a/src/uncategorized/reStaffedMorning.tw
+++ b/src/uncategorized/reStaffedMorning.tw
@@ -8,6 +8,8 @@
 <<set _bedSlaves = _bedSlaves.shuffle()>>
 <<setLocalPronouns _bedSlaves[0]>>
 <<setLocalPronouns _bedSlaves[1] 2>>
+<<setLocalPronouns _bedSlaves[2] 3>>
+<<setLocalPronouns _bedSlaves[3] 4>>
 <<setPlayerPronouns>>
 
 <<set _clothesTemp = _bedSlaves[1].clothes, _bedSlaves[1].clothes = "no clothing">>
@@ -51,17 +53,13 @@ The bathroom door is open and the shower is running. Though the steam is beginni
 		You reach down and run a possessive hand across each slave's scalp, neck, and back, eliciting shivers. Then, you gently hook them under the armpits and pull them up a bit, without breaking their lip locks with your nipples, or forcing them to stop playing with your cunt. Each slave ends curled up, mostly face-down, with their mouths still sucking on your <<if $PC.boobs == 1>>boobs<<else>>chest<</if>> and their free hands trapped between their legs. They get the message and begin to look after themselves, too; their resultant moaning against your nipples grows when you reach down and start teasing their butts. The three of you climax more or less together, and you bounce up with undiminished arousal to enjoy your shower.
 	<</if>>
 	<br><br>
-	<<setLocalPronouns _bedSlaves[2]>>
-	<<setLocalPronouns _bedSlaves[3] 2>>
 	By now, the shower is an impenetrable fog of steam. The wet, soapy bodies inside are easy to find, though. _bedSlaves[2].slaveName happens to be closest, so you
 	<<if $PC.dick == 1>>
-		kiss $his laughing mouth hard and fuck $him with $his back against the shower wall<<if _bedSlaves[2].boobs > 2000>>, $his huge soapy tits sliding around deliciously<</if>>. $He does $his best to soap your front while $he takes cock, and _bedSlaves[3].slaveName washes your back<<if $PC.vagina == 1>>, reaching under your butt to tease your pussy<</if>>. After a short while, you set $him down and seize _bedSlaves[3].slaveName, sliding your cock <<if _bedSlaves[3].butt > 4>>between _his2 huge buttocks and<</if>> up _his2 willing ass, taking _him2 from behind while _bedSlaves[2].slaveName does $his best to get $his wits back and take over washing duty. They towel you together, and you head back out of the bathroom.
+		kiss _his3 laughing mouth hard and fuck _him3 with _his3 back against the shower wall<<if _bedSlaves[2].boobs > 2000>>, _his3 huge soapy tits sliding around deliciously<</if>>. _He3 does _his3 best to soap your front while _he3 takes cock, and _bedSlaves[3].slaveName washes your back<<if $PC.vagina == 1>>, reaching under your butt to tease your pussy<</if>>. After a short while, you set _him3 down and seize _bedSlaves[3].slaveName, sliding your cock <<if _bedSlaves[3].butt > 4>>between _his4 huge buttocks and<</if>> up _his4 willing ass, taking _him4 from behind while _bedSlaves[2].slaveName does _his3 best to get _his3 wits back and take over washing duty. They towel you together, and you head back out of the bathroom.
 	<<else>>
-		kiss $his laughing mouth hard and trib $him with $his back against the shower wall<<if _bedSlaves[2].boobs > 2000>>, $his huge soapy tits sliding around deliciously<</if>>. $He does $his best to soap your front while you hump $his thigh<<if _bedSlaves[2].vagina > -1>> and pussy<</if>>, and _bedSlaves[3].slaveName washes your back. After a short while, you set $him down and seize _bedSlaves[3].slaveName, pushing _his2 face against the wall and sliding your fingers inside _him2 while you straddle one of _his2 legs. _bedSlaves[2].slaveName does $his best to get $his wits back and take over washing duty. They towel you together, and you head back out of the bathroom.
+		kiss _his3 laughing mouth hard and trib _him3 with _his3 back against the shower wall<<if _bedSlaves[2].boobs > 2000>>, _his3 huge soapy tits sliding around deliciously<</if>>. _He3 does _his3 best to soap your front while you hump _his3 thigh<<if _bedSlaves[2].vagina > -1>> and pussy<</if>>, and _bedSlaves[3].slaveName washes your back. After a short while, you set _him3 down and seize _bedSlaves[3].slaveName, pushing _his4 face against the wall and sliding your fingers inside _him4 while you straddle one of _his4 legs. _bedSlaves[2].slaveName does _his3 best to get _his3 wits back and take over washing duty. They towel you together, and you head back out of the bathroom.
 	<</if>>
 	<br><br>
-	<<setLocalPronouns _bedSlaves[0]>>
-	<<setLocalPronouns _bedSlaves[1] 2>>
 	Your clothes have been laid out, ready for _bedSlaves[0].slaveName and _bedSlaves[1].slaveName to dress you, but
 	<<if $PC.dick == 1>>
 		next to the neat stack of clothes, the two slaves are bent over the bed with their buttocks spread. You select _bedSlaves[1].slaveName and slide your dick up _his2 <<if _bedSlaves[1].anus > 2>>welcoming asspussy<<elseif _bedSlaves[1].anus > 1>>soft butthole<<else>>tight anus<</if>>, sodomizing _him2 while _bedSlaves[0].slaveName buttons your shirt. When it's done, you push $him down next to _bedSlaves[1].slaveName and switch assholes, letting _bedSlaves[1].slaveName up to do _his2 best to help you into your trousers in the meantime. _He2 gets them on and fastens everything, except the fly, of course.
@@ -82,21 +80,17 @@ The bathroom door is open and the shower is running. Though the steam is beginni
 	<</if>>
 	and bounce up to fuck bitches in the shower, knocking _bedSlaves[0].slaveName to the floor and sending _bedSlaves[1].slaveName sprawling. As you go, you tell them they've got ten minutes to get your clothes laid out and their buttholes ready. They nod furiously and scramble.
 	<br><br>
-	<<setLocalPronouns _bedSlaves[2]>>
-	<<setLocalPronouns _bedSlaves[3] 2>>
 	By now, the shower is an impenetrable fog of steam. The wet, soapy bodies inside are easy to find, though. _bedSlaves[2].slaveName happens to be closest, so you
 	<<if $PC.dick == 1>>
-		grab $him and shove $him into a corner of the shower<<if _bedSlaves[2].boobs > 2000>>, $his huge soapy tits slapping painfully against the glass<</if>>. $He does $his best to angle $his hips for you as you push your cock up $his ass and give $him a good hard reaming. _bedSlaves[3].slaveName does _his2 best to wash your back<<if $PC.vagina == 1>> and give your pussy some manual attention<</if>>, but finds _himself2 taking _bedSlaves[2].slaveName's place soon enough, smashed into the corner with your dick pistoning in and out of _his2 rectum.
+		grab _him3 and shove _him3 into a corner of the shower<<if _bedSlaves[2].boobs > 2000>>, _his3 huge soapy tits slapping painfully against the glass<</if>>. _He3 does _his3 best to angle _his3 hips for you as you push your cock up _his3 ass and give _him3 a good hard reaming. _bedSlaves[3].slaveName does _his4 best to wash your back<<if $PC.vagina == 1>> and give your pussy some manual attention<</if>>, but finds _himself4 taking _bedSlaves[2].slaveName's place soon enough, smashed into the corner with your dick pistoning in and out of _his4 rectum.
 	<<else>>
-		grab $him and shove $him into a corner of the shower<<if _bedSlaves[2].boobs > 2000>>, $his huge soapy tits slapping painfully against the glass<</if>>. $He does $his best to angle $his hips for you as you fingerfuck $his butthole, forcing complete submission out of the compliant $girl. _bedSlaves[3].slaveName does _his2 best to wash your back, but finds _himself2 taking _bedSlaves[2].slaveName's place soon enough, smashed into the corner with your fingers pistoning in and out of _his2 rectum.
+		grab _him3 and shove _him3 into a corner of the shower<<if _bedSlaves[2].boobs > 2000>>, _his3 huge soapy tits slapping painfully against the glass<</if>>. _He3 does _his3 best to angle _his3 hips for you as you fingerfuck _his3 butthole, forcing complete submission out of the compliant _girl3. _bedSlaves[3].slaveName does _his4 best to wash your back, but finds _himself4 taking _bedSlaves[2].slaveName's place soon enough, smashed into the corner with your fingers pistoning in and out of _his4 rectum.
 	<</if>>
 	You're in a hurry, but it'll be a sad day when you aren't able to assrape a slave into total submission in five minutes. You drop _bedSlaves[3].slaveName on the shower floor and let _bedSlaves[2].slaveName towel you off.
 	<<if $PC.dick == 0>>
-		_bedSlaves[3].slaveName gets to _his2 feet and helpfully holds up a strap-on questioningly; you shake your head and point to another, larger one. _He2 helps you into it, and you ram it up _his2 loosened ass experimentally, nodding in satisfaction when the big phallus forces a pained gasp out of _him2.
+		_bedSlaves[3].slaveName gets to _his4 feet and helpfully holds up a strap-on questioningly; you shake your head and point to another, larger one. _He4 helps you into it, and you ram it up _his4 loosened ass experimentally, nodding in satisfaction when the big phallus forces a pained gasp out of _him4.
 	<</if>>
 	<br><br>
-	<<setLocalPronouns _bedSlaves[0]>>
-	<<setLocalPronouns _bedSlaves[1] 2>>
 	Back in the bedroom, your clothes have been laid out, ready for _bedSlaves[0].slaveName and _bedSlaves[1].slaveName to dress you.
 	<<if $PC.dick == 1>>
 		Next to the neat stack of clothes, the two slaves are bent over the bed with their buttocks spread. They're perfectly still, awaiting your pleasure. You select _bedSlaves[1].slaveName and ram your dick up _his2 <<if _bedSlaves[1].anus > 2>>welcoming asspussy<<elseif _bedSlaves[1].anus > 1>>soft butthole<<else>>tight anus<</if>>, assraping _him2 without mercy while _bedSlaves[0].slaveName buttons your shirt. When it's done, you push $him down next to _bedSlaves[1].slaveName and switch assholes, letting _bedSlaves[1].slaveName up to do _his2 best to help you into your trousers in the meantime. _He2 gets them on and fastens everything, except the fly, of course. When _bedSlaves[0].slaveName has been buttfucked into helplessness, you throw $him away like the human sex toy $he is and pound _bedSlaves[1].slaveName and then the dried-off _bedSlaves[3].slaveName and _bedSlaves[2].slaveName senseless, careful to frequently pull far enough out that the slaves have to take the pain of initial penetration again.
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 4fdb66d998953489ff483d327c1a5addaf550239..ccea849c4b07599ca5e75600094a737fa2591f33 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -510,17 +510,33 @@ Work on $his chest:
 	<<elseif ($activeSlave.amp == 1)>><<print $activeSlave.boobs>>cc <<print either("breasts", "mammaries", "tits", "udders")>> fill out an enormous custom bra; $his tits dominate $his entire frame.
 	<<else>><<print $activeSlave.boobs>>cc <<print either("breasts", "mammaries", "tits", "udders")>> fill out an enormous custom bra; $his tits dominate $his entire frame.
 	<</if>>
+
+
+
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
+$He has
+<<if $activeSlave.boobsImplant > 0>>
 	<<if $activeSlave.boobsImplant > 600>>
-		$He has <<print $activeSlave.boobsImplant>>cc fillable breast implants.
+		<<print $activeSlave.boobsImplant>>cc
 	<<elseif $activeSlave.boobsImplant > 400>>
-		$He has large, <<print $activeSlave.boobsImplant>>cc breast implants.
+		large, <<print $activeSlave.boobsImplant>>cc
 	<<elseif $activeSlave.boobsImplant > 200>>
-		$He has moderate, <<print $activeSlave.boobsImplant>>cc breast implants.
+		moderate, <<print $activeSlave.boobsImplant>>cc
 	<<elseif $activeSlave.boobsImplant > 0>>
-		$He has small, <<print $activeSlave.boobsImplant>>cc breast implants.
+		small, <<print $activeSlave.boobsImplant>>cc 
 	<</if>>
-
-<br>&nbsp;&nbsp;&nbsp;&nbsp;
+	<<if $activeSlave.boobsImplantType == 1>>
+		string
+	<<else>>
+		fillable
+	<</if>>
+	breast implants.
+	<<if $activeSlave.boobsImplant > 8000 && $activeSlave.boobsImplantType == 1>>
+		@@.yellow;Large string based implants are a risk to a slave's health.@@
+	<</if>>
+<<else>>
+	no implants.
+<</if>>
 <<if $activeSlave.boobs > 50000>>
 	//$His breasts are as large as $he can physically support//
 <<elseif $activeSlave.boobsImplant > 10000 && $arcologies[0].FSTransformationFetishistResearch != 1 && $activeSlave.boobsImplantType != 1>>
@@ -556,6 +572,7 @@ Work on $his chest:
 <<elseif $activeSlave.boobsImplant > 0 && $activeSlave.boobsImplantType != 1>>
 	[[Standard implants|Surgery Degradation][$activeSlave.boobsImplant = 400,$activeSlave.boobs += 200,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10,$surgeryType = "boobs"]] | [[Large implants|Surgery Degradation][$activeSlave.boobsImplant = 600,$activeSlave.boobs += 400,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10,$surgeryType = "boobs"]]
 <</if>>
+
 <<if $activeSlave.boobsImplant != 0>>
 	<<if $activeSlave.boobsImplantType == 1 && $activeSlave.boobsImplant > 400>>
 		<<if $activeSlave.boobsImplant > 8000>>
@@ -888,16 +905,32 @@ $He's got a
 <<else>>ridiculous ass. It's so big it jiggles as $he walks.
 <</if>>
 
-<<if $activeSlave.buttImplant == 1>>
-	$He has moderate butt implants.
-<<elseif $activeSlave.buttImplant == 2>>
-	$He has enormous butt implants.
-<<elseif $activeSlave.buttImplant > 2>>
+<<if $activeSlave.buttImplant > 0>>
 	$He has
+	<<if $activeSlave.buttImplant == 1>>
+		moderate
+	<<elseif $activeSlave.buttImplant == 2>>
+		enormous
+	<<elseif $activeSlave.buttImplant > 2>>
+		<<if $activeSlave.buttImplantType == 1>>
+			massively engorged
+		<<else>>
+			<<if $activeSlave.buttImplant > 8>>
+				hyper
+			<<elseif $activeSlave.buttImplant > 4>>
+				advanced
+			<</if>>
+		<</if>>
+	<</if>>
+	butt
 	<<if $activeSlave.buttImplantType == 1>>
-		massively engorged butt implants
+		string
 	<<else>>
-		<<if $activeSlave.buttImplant > 8>>hyper <<elseif $activeSlave.buttImplant > 4>>advanced <</if>>fillable butt implants.
+		fillable
+	<</if>>
+	implants.
+	<<if $activeSlave.buttImplant > 3 && $activeSlave.buttImplantType == 1>>
+		@@.yellow;Large string based implants are a risk to a slave's health.@@
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/saBeYourHeadGirl.tw b/src/uncategorized/saBeYourHeadGirl.tw
index e4a358bc95aaac729bc53c0c52a403ff5c964bb3..28fc9164f38dcffef7dc11ee700aacedbd418a02 100644
--- a/src/uncategorized/saBeYourHeadGirl.tw
+++ b/src/uncategorized/saBeYourHeadGirl.tw
@@ -12,7 +12,7 @@
 	serves as your Consort. Though $he is still your slave, $his status is scarcely below that of a citizen. $He @@.green;contributes to your reputation@@ just like a Concubine, and $he is @@.hotpink;conscious@@ of the @@.mediumaquamarine;trust@@ you place in $him.
 	<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 	<<silently>>
-	<<include "SA please you">>
+		<<include "SA please you">>
 	<</silently>>
 	<<if $slaves[$i].relationship > 4>>
 		<<if $familyTesting == 1>>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index 33e6d0712d8018aa79451c05eb33e6f2bcad3c13..9561191d832ba22a7570cc06fcc34f3b464eae17 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -565,7 +565,7 @@
 			<<set _growth = Math.round(Math.clamp(_growth,0,2))>>
 		<</if>>
 		/*communicates the amount of growth*/
-		<<if _growth < 1>> 												/*in case _heightDiff manages to bring _growth down enough*/
+		<<if _growth < 1>>												/*in case _heightDiff manages to bring _growth down enough*/
 			Despite the treatment, $his height does not increase this week.
 		<<elseif _growth == 1>>
 			@@.lime;$His height slightly increased this week.@@
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index 5b6099227f7db5a5a8ae7be6dff4e4ac74e4cc1b..03995323f17e82667890480d9560749b637ef444 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -158,8 +158,8 @@ $His constant presence is
 <<if $deadliness > 6>>
 	extremely intimidating, @@.green;adding much to your reputation.@@
 	<<if $slaves[$i].career == "an arcology owner">>
-	You've made a one-time rival arcology owner into a deadly and loyal protector, a feat of slaveownership that's @@.green;internationally famous.@@
-	<<run repX($deadliness*50, "bodyguard", $slaves[$i])>>
+		You've made a one-time rival arcology owner into a deadly and loyal protector, a feat of slaveownership that's @@.green;internationally famous.@@
+		<<run repX($deadliness*50, "bodyguard", $slaves[$i])>>
 	<</if>>
 <<elseif $deadliness > 3>>
 	intimidating, @@.green;adding to your reputation.@@
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index c095fbac283d005d506088d45e33ed398a4f1030..fb756d6741d54803e6c6ea4912d0cfb96eac20d1 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -1845,7 +1845,7 @@
 		<<case "boobs">>
 			<<if ($slaves[$i].fetish != "boobs")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> 
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
 					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
 						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his tits are being touched.
 						<<set $slaves[$i].fetishStrength -= 30>>
diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw
index 3677455aff2aa1a906617ab34a7ebf07d31ab0c2..1700eb920eb1ac66eae234587cd818ce258e4f95 100644
--- a/src/uncategorized/saRecruitGirls.tw
+++ b/src/uncategorized/saRecruitGirls.tw
@@ -80,10 +80,10 @@
 			<</if>>
 		<<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
 			<<if $arcologies[_j].FSGenderFundamentalist != "unset">>
-				$He advances Gender Fundamentalism there by being a wholesome, romantic girl<<if $slaves[$i].genes == "XX" && $slaves[$i].vagina > -1 && !$slaves[$i].dick>>, which $he's perfect for, since $he's a proper woman with a body meant for missionary<<set $arcologies[_j].FSGenderFundamentalist++>><</if>>.
+				$He advances Gender Fundamentalism there by being a wholesome, romantic $girl<<if $slaves[$i].genes == "XX" && $slaves[$i].vagina > -1 && !$slaves[$i].dick>>, which $he's perfect for, since $he's a proper woman with a body meant for missionary<<set $arcologies[_j].FSGenderFundamentalist++>><</if>>.
 				<<set $arcologies[_j].FSGenderFundamentalist += _influence>>
 			<<elseif $arcologies[_j].FSGenderRadicalist != "unset">>
-				$He challenges Gender Radicalism there by being a wholesome, romantic girl<<if $slaves[$i].genes == "XX" && $slaves[$i].vagina > -1 && !$slaves[$i].dick>>, which $he's perfect for, since $he's a proper woman with a body meant for missionary<<set $arcologies[_j].FSGenderRadicalist-->><</if>>.
+				$He challenges Gender Radicalism there by being a wholesome, romantic $girl<<if $slaves[$i].genes == "XX" && $slaves[$i].vagina > -1 && !$slaves[$i].dick>>, which $he's perfect for, since $he's a proper woman with a body meant for missionary<<set $arcologies[_j].FSGenderRadicalist-->><</if>>.
 				<<set $arcologies[_j].FSGenderRadicalist -= _influence>>
 			<</if>>
 		<</if>>
@@ -867,7 +867,7 @@
 		<</if>>
 		<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
 			<<if $slaves[$i].boobs < 500 && $slaves[$i].butt < 3 && $slaves[$i].weight <= 10 && $slaves[$i].muscles <= 30>>
-				$His trim body gives $him a cute, girl-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.
+				$His trim body gives $him a cute, <<= $girl>>-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.
 			<<else>>
 				$He shares a lot of selfies of $his activities in your penthouse, but $his bulging figure tends to hide what's going on.
 			<</if>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index d905cf89f02197e1d6d496dd5920b02113509f2d..51a793ea3d157296c7762300f2e101c608014bbe 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -1,5 +1,9 @@
 :: SA rules [nobr]
 
+<<set _release = $slaves[$i].releaseRules>>
+
+/* TODO: may need updating to detail effects of chastity */
+
 <<if $slaves[$i].fuckdoll == 0>>
 	$He
 	<<if $slaves[$i].fetish == "mindbroken">>
@@ -22,7 +26,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being unable to sate $his urges doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -43,10 +47,10 @@
 		<<case "be the Madam">>
 			<<set $slaves[$i].need -= ($BrothiIDs.length*10)>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -54,14 +58,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -95,7 +99,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $BrothiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for leaving plentiful outlets for $his nymphomania under $his care.
@@ -208,7 +212,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -216,7 +220,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come up to the penthouse for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -235,7 +239,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if $slaves[$i].sexualFlaw == "attention whore">>
 						@@.hotpink;enjoys being allowed to masturbate,@@ especially since it's often to the pleasure of an aroused client.
 						<<set $slaves[$i].devotion += 1, $slaves[$i].need = 0>>
@@ -264,7 +268,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -272,7 +276,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves or giving free samples, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -292,7 +296,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex or giving free samples, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -300,7 +304,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves or giving free samples, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -386,7 +390,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $BrothiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -528,10 +532,10 @@
 			<</if>>
 		<<case "be the DJ">>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -539,14 +543,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -580,7 +584,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $ClubiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for leaving plentiful, tantalizing, outlets for $his nymphomania under $his care.
@@ -701,7 +705,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -709,7 +713,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come up to the penthouse for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -728,7 +732,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if $slaves[$i].sexualFlaw == "attention whore">>
 						@@.hotpink;enjoys being allowed to masturbate,@@ especially since its often on stage for $clubName's amusement.
 						<<set $slaves[$i].devotion += 1, $slaves[$i].need = 0>>
@@ -757,7 +761,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -765,7 +769,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves or offering $himself up, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -785,7 +789,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex or offering $himself to patrons, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -793,7 +797,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves or offering $himself up, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -851,7 +855,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $ClubiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -994,10 +998,10 @@
 		<<case "be the Nurse">>
 			<<set $slaves[$i].need -= ($CliniciIDs.length*3)>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -1005,14 +1009,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -1046,7 +1050,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $slaves.length > 5>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;happily avails@@ $himself to any slaves visiting the patients under $his care.
@@ -1151,10 +1155,10 @@
 				<<set _lover = 0>>
 			<</if>>
 			<<if $slaves[$i].devotion < -50>>
-				is so unhappy that $he has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is so unhappy that $he has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].relationship == -3>>
 				is well taken care of during $his stay in $clinicName; you make sure your wife's every sexual need is handled personally.
@@ -1183,7 +1187,7 @@
 					/* possible cumflation code here */
 				<</if>>
 				<<set $slaves[$i].need -= 60>>
-			<<elseif ($slaves[$i].releaseRules == "masturbation") || ($slaves[$i].releaseRules == "permissive")>>
+			<<elseif (_release == "masturbation") || (_release == "permissive")>>
 				<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 					takes solace in $his permission to masturbate rather than being forced to seek other means of release, @@.mediumaquamarine;reducing $his fear@@ of you.
 					<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -1287,7 +1291,7 @@
 					<<else>>
 						Under the rules, $he will find $himself constantly molested by other slaves once $he leaves $clinicName, but $he's already in such constant terror it that it doesn't cross $his mind.
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;eagerly takes the opportunity@@ whenever visiting slaves are present.
 						<<set $slaves[$i].devotion += 1>>
@@ -1406,20 +1410,20 @@
 		<<case "be the Wardeness">>
 			<<set $slaves[$i].need -= ($CellBiIDs.length*5)>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
 				gets off at work, so $he doesn't feel the need for release that often.
 				<<set $slaves[$i].need -= 20>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					opts to @@.mediumaquamarine;take advantage of the prisoners@@ to
 					<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 					<<saRulesRapeFetish>>
@@ -1659,10 +1663,10 @@
 		<<case "be the Attendant">>
 			<<set $slaves[$i].need -= ($SpaiIDs.length*3)>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off while relieving $his charges, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -1670,14 +1674,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands, creams and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -1711,7 +1715,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $SpaiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for all the warm, moist bodies lounging around $spaName.
@@ -1828,7 +1832,7 @@
 				<</if>>
 				<<set $slaves[$i].need -= 60>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come up to the penthouse for sexual release, or to beg to share a bath with you, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -1847,7 +1851,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -1873,7 +1877,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -1881,7 +1885,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -1901,7 +1905,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex or giving free samples, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -1909,7 +1913,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2018,7 +2022,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $SpaiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -2156,10 +2160,10 @@
 		<<case "be the Matron">>
 			<<set $slaves[$i].need -= ($NurseryiIDs.length*3)>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off while relieving $his charges, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -2167,14 +2171,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands, creams and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -2208,7 +2212,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $NurseryiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for all the nannies busily scurrying around $nurseryName.
@@ -2325,7 +2329,7 @@
 				<</if>>
 				<<set $slaves[$i].need -= 60>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come up to the penthouse for sexual release and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -2344,7 +2348,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -2370,7 +2374,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2378,7 +2382,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2398,7 +2402,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex or giving free samples, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2406,7 +2410,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2515,7 +2519,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $NurseryiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -2669,10 +2673,10 @@
 			<</if>>
 			<<set $slaves[$i].oralCount += _sexLessons, $oralTotal += _sexLessons>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off with $his students, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -2680,14 +2684,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					in front of $his class when ever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys outside of class, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -2721,7 +2725,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $SchlRiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for giving $him plentiful teacher's assistants for $his nymphomania.
@@ -2867,7 +2871,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off during class, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -2875,7 +2879,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come to you for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -2894,7 +2898,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -2920,7 +2924,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2928,7 +2932,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2948,7 +2952,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -2956,7 +2960,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -3015,7 +3019,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $SchlRiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -3158,10 +3162,10 @@
 		<<case "be the Stewardess">>
 			<<set $slaves[$i].need -= $ServQiIDs.length*10>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off while performing $his duties, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -3169,14 +3173,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever $he crosses paths with you.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -3210,7 +3214,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $ServQiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for leaving plentiful outlets for $his nymphomania under $his charge.
@@ -3324,7 +3328,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -3332,7 +3336,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to offer $himself to you for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -3351,7 +3355,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -3377,7 +3381,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -3385,7 +3389,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -3405,7 +3409,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -3413,7 +3417,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -3528,7 +3532,7 @@
 							Under the rules and $his job, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					Under the rules, $he's allowed to demand that other slaves to get $him off, but only when $he's finished $his shift. $He still @@.hotpink;adores@@ having the option.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -3649,10 +3653,10 @@
 		<<case "be the Milkmaid">>
 			<<set $slaves[$i].need -= $DairyiIDs.length*5>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off while performing $his duties, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -3660,14 +3664,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever you inspect $dairyName.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys when off duty, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -3701,7 +3705,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $DairyiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for leaving plentiful outlets for $his nymphomania under $his charge.
@@ -3812,10 +3816,10 @@
 				<</if>>
 			<<else>>
 				<<if $slaves[$i].devotion < -50>>
-					is so unhappy that $he has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+					is so unhappy that $he has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 					<<set $slaves[$i].need = 0>>
 				<<elseif $slaves[$i].energy <= 20>>
-					is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+					is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 					<<set $slaves[$i].need = 0>>
 				<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
 					<<if ($slaves[$i].devotion <= 20)>>
@@ -3826,7 +3830,7 @@
 							<<set $slaves[$i].trust -= 1>>
 						<</if>>
 						<<set $slaves[$i].need -= 20>>
-					<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+					<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 						gets off from being milked, so being forbidden to masturbate doesn't affect $him seriously.
 						<<set $slaves[$i].need -= 20>>
 					<<else>>
@@ -3834,7 +3838,7 @@
 						<<set $slaves[$i].need -= 20>>
 					<</if>>
 				<<else>>
-					<<if ($slaves[$i].releaseRules == "restrictive")>>
+					<<if (_release == "restrictive" || _release == "chastity")>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 							refuses to come to you for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 							<<set $slaves[$i].trust -= 2>>
@@ -3853,7 +3857,7 @@
 						<</if>> /* closes $slaves[$i].devotion > 50 */
 						<<saRulesPlayerDiscoversFetish>>
 						<<saRulesPlayerDrugEffects>>
-					<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+					<<elseif (_release == "masturbation")>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 							takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 							<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -3879,7 +3883,7 @@
 					<<else>> /* releaseRules not restrictive */
 						<<if ($universalRulesConsent == 0)>>
 							<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-								<<if ($slaves[$i].releaseRules == "permissive")>>
+								<<if (_release == "permissive")>>
 									masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 									<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 								<<else>>
@@ -3887,7 +3891,7 @@
 									<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 								<</if>>
 							<<elseif ($slaves[$i].devotion <= 20)>>
-								<<if ($slaves[$i].releaseRules == "permissive")>>
+								<<if (_release == "permissive")>>
 									prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 									<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 								<<else>>
@@ -3907,7 +3911,7 @@
 							<</if>>
 						<<else>> /* universalRulesConsent is not zero */
 							<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-								<<if ($slaves[$i].releaseRules == "permissive")>>
+								<<if (_release == "permissive")>>
 									prefers to masturbate rather than asking other slaves for sex, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 									<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 								<<else>>
@@ -3915,7 +3919,7 @@
 									<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 								<</if>>
 							<<elseif ($slaves[$i].devotion <= 20)>>
-								<<if ($slaves[$i].releaseRules == "permissive")>>
+								<<if (_release == "permissive")>>
 									prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 									<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 								<<else>>
@@ -4055,7 +4059,7 @@
 								Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 							<</if>>
 						<</if>>
-					<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+					<<elseif (_release != "restrictive" && _release != "chastity")>>
 						<<if ($slaves[$i].energy > 95)>>
 							<<if $DairyiIDs.length > 2>>
 								Under the rules, $he's allowed to demand that other slaves to get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -4194,10 +4198,10 @@
 		<<case "be the Farmer">>
 			<<set $slaves[$i].need -= $FarmyardiIDs.length*5>>
 			<<if $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
-				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<if (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off while performing $his duties, so being forbidden from masturbation doesn't really bother $him.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -4205,14 +4209,14 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					willingly begs you to
 					<<saRulesPlayerFetishPlay>>
 					whenever you inspect $farmyardName.
 					<<saRulesPlayerEnergy>>
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion < 80)>>
 						is a little disappointed that $he's limited to $his hands and toys when off duty, but @@.mediumaquamarine;trusts you know what's best for $him.@@
 						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
@@ -4246,7 +4250,7 @@
 			<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 
 			<<if ($universalRulesConsent == 0)>>
-				<<if ($slaves[$i].releaseRules != "restrictive")>>
+				<<if (_release != "restrictive" && _release != "chastity" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $FarmyardiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for leaving plentiful outlets for $his nymphomania under $his charge.
@@ -4345,10 +4349,10 @@
 			<</if>>
 		<<case "work as a farmhand">>
 			<<if $slaves[$i].devotion < -50>>
-				is so unhappy that $he has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is so unhappy that $he has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
 				<<if ($slaves[$i].devotion <= 20)>>
@@ -4359,7 +4363,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off from working as a farmhand, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -4367,7 +4371,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come to you for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -4386,7 +4390,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -4412,7 +4416,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -4420,7 +4424,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -4440,7 +4444,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -4448,7 +4452,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -4587,7 +4591,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $FarmyardiIDs.length > 2>>
 							Under the rules, $he's allowed to demand that other slaves to get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -4809,7 +4813,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off regularly, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -4961,7 +4965,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off with $HeadGirl.slaveName, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -5096,10 +5100,10 @@
 			<</if>>
 		<<default>>
 			<<if $slaves[$i].devotion < -50>>
-				is so unhappy that $he has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is so unhappy that $he has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].energy <= 20>>
-				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
+				is frigid and has little interest in getting off<<if (_release != "permissive")>>, making the rule restricting $his sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
 				<<if ($slaves[$i].devotion <= 20)>>
@@ -5110,7 +5114,7 @@
 						<<set $slaves[$i].trust -= 1>>
 					<</if>>
 					<<set $slaves[$i].need -= 20>>
-				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+				<<elseif (_release != "permissive") && (_release != "masturbation") && (_release != "chastity")>>
 					gets off at work, so being forbidden to masturbate doesn't affect $him seriously.
 					<<set $slaves[$i].need -= 20>>
 				<<else>>
@@ -5118,7 +5122,7 @@
 					<<set $slaves[$i].need -= 20>>
 				<</if>>
 			<<else>>
-				<<if ($slaves[$i].releaseRules == "restrictive")>>
+				<<if (_release == "restrictive" || _release == "chastity")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						refuses to come to you for sexual release, and is @@.gold;severely punished@@ for illicit masturbation.
 						<<set $slaves[$i].trust -= 2>>
@@ -5137,7 +5141,7 @@
 					<</if>> /* closes $slaves[$i].devotion > 50 */
 					<<saRulesPlayerDiscoversFetish>>
 					<<saRulesPlayerDrugEffects>>
-				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+				<<elseif (_release == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 						takes solace in $his permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing $his fear@@ of you.
 						<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
@@ -5163,7 +5167,7 @@
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								masturbates whenever $he can find a private moment to take care of the urges induced by the food, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -5171,7 +5175,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than demanding sex from other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -5191,7 +5195,7 @@
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than asking other slaves for sex, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -5199,7 +5203,7 @@
 								<<set $slaves[$i].trust -= 2, $slaves[$i].need -= 10>>
 							<</if>>
 						<<elseif ($slaves[$i].devotion <= 20)>>
-							<<if ($slaves[$i].releaseRules == "permissive")>>
+							<<if (_release == "permissive")>>
 								prefers to masturbate rather than trading sex with other slaves, @@.mediumaquamarine;slightly reducing $his fear@@ of you.
 								<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 							<<else>>
@@ -5336,7 +5340,7 @@
 							Under the rules, $he will someday find $himself constantly molested by other slaves, but $he's already in such constant terror it that it doesn't cross $his mind.
 						<</if>>
 					<</if>>
-				<<elseif ($slaves[$i].releaseRules != "restrictive")>>
+				<<elseif (_release != "restrictive" && _release != "chastity")>>
 					<<if ($slaves[$i].energy > 95)>>
 						<<if $slaves.length > 2 || $menials > 0>>
 							Under the rules, $he's allowed to demand that other slaves get $him off, and $he @@.hotpink;adores@@ you for providing plentiful outlets for $his nymphomania.
@@ -5476,7 +5480,7 @@
 					<<set $slaves[$i].trust -= _punishments>>
 				<</switch>>
 			<</if>>
-			<<if $subSlaves > 0 && ($slaves[$i].releaseRules == "permissive" || $slaves[$i].releaseRules == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
+			<<if $subSlaves > 0 && (_release == "permissive" || $slaves[$i].releaseRules == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
 				<<set $slaves[$i].need -= (20*$subSlave)>> /* make those serve your other slaves do some work for once */
 			<</if>>
 		<</switch>>
diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw
index 385177ae8ff85c1d643aab57bee5bb996b020bf3..6d9c95ec11bb3e296d5f22be7db86a9630caac5b 100644
--- a/src/uncategorized/scheduledEvent.tw
+++ b/src/uncategorized/scheduledEvent.tw
@@ -18,46 +18,46 @@
 	<<set $activeSlave = getSlave($retiree), $retiree = 0>>
 	<<include "Remove activeSlave">>
 	<<for $i = 0; $i < $slaves.length; $i++>>
-	<<if $slaves[$i].indenture < 0>>
-	<<if $slaves[$i].actualAge >= $retirementAge && $PhysicalRetirementAgePolicy != 1>>
-		<<set $retiree = $slaves[$i].ID>>
-		<<break>>
-	<</if>>
-	<<if $slaves[$i].physicalAge >= $retirementAge && $PhysicalRetirementAgePolicy == 1>>
-		<<set $retiree = $slaves[$i].ID>>
-		<<break>>
-	<</if>>
-	<<if $SexMilestoneRetirement == 1>>
-		<<if $slaves[$i].oralCount + $slaves[$i].analCount + $slaves[$i].vaginalCount + $slaves[$i].penetrativeCount + $slaves[$i].mammaryCount >= $retirementSex>>
-			<<set $retiree = $slaves[$i].ID>>
-			<<break>>
-		<</if>>
-	<</if>>
-	<<if $MilkMilestoneRetirement == 1>>
-		<<if $slaves[$i].milk >= $retirementMilk>>
-			<<set $retiree = $slaves[$i].ID>>
-			<<break>>
+		<<if $slaves[$i].indenture < 0>>
+			<<if $slaves[$i].actualAge >= $retirementAge && $PhysicalRetirementAgePolicy != 1>>
+				<<set $retiree = $slaves[$i].ID>>
+				<<break>>
+			<</if>>
+			<<if $slaves[$i].physicalAge >= $retirementAge && $PhysicalRetirementAgePolicy == 1>>
+				<<set $retiree = $slaves[$i].ID>>
+				<<break>>
+			<</if>>
+			<<if $SexMilestoneRetirement == 1>>
+				<<if $slaves[$i].oralCount + $slaves[$i].analCount + $slaves[$i].vaginalCount + $slaves[$i].penetrativeCount + $slaves[$i].mammaryCount >= $retirementSex>>
+					<<set $retiree = $slaves[$i].ID>>
+					<<break>>
+				<</if>>
+			<</if>>
+			<<if $MilkMilestoneRetirement == 1>>
+				<<if $slaves[$i].milk >= $retirementMilk>>
+					<<set $retiree = $slaves[$i].ID>>
+					<<break>>
+				<</if>>
+			<</if>>
+			<<if $CumMilestoneRetirement == 1>>
+				<<if $slaves[$i].cum >= $retirementCum>>
+					<<set $retiree = $slaves[$i].ID>>
+					<<break>>
+				<</if>>
+			<</if>>
+			<<if $BirthsMilestoneRetirement == 1>>
+				<<if $slaves[$i].births >= $retirementBirths>>
+					<<set $retiree = $slaves[$i].ID>>
+					<<break>>
+				<</if>>
+			<</if>>
+			<<if $KillsMilestoneRetirement == 1>>
+				<<if $slaves[$i].pitKills >= $retirementKills>>
+					<<set $retiree = $slaves[$i].ID>>
+					<<break>>
+				<</if>>
+			<</if>>
 		<</if>>
-	<</if>>
-	<<if $CumMilestoneRetirement == 1>>
-		<<if $slaves[$i].cum >= $retirementCum>>
-			<<set $retiree = $slaves[$i].ID>>
-			<<break>>
-		<</if>>
-	<</if>>
-	<<if $BirthsMilestoneRetirement == 1>>
-		<<if $slaves[$i].births >= $retirementBirths>>
-			<<set $retiree = $slaves[$i].ID>>
-			<<break>>
-		<</if>>
-	<</if>>
-	<<if $KillsMilestoneRetirement == 1>>
-		<<if $slaves[$i].pitKills >= $retirementKills>>
-			<<set $retiree = $slaves[$i].ID>>
-			<<break>>
-		<</if>>
-	<</if>>
-	<</if>>
 	<</for>>
 <</if>>
 <<set $retired = 0>>
@@ -74,6 +74,9 @@
 <</if>>
 <<set $burst = 0>>
 
+<<if $TFS.schoolUpgrade == 3 && $TFS.compromiseWeek == $week-1>>
+	<<set $fcnn.push("...Ladies: Do you want dick so much that you want to HAVE a dick? If yes, join the Futanari Sisters today! Learn more at...")>>
+<</if>>
 <<if $week == 30>>
 	<<set $fcnn.push("...is where I'll be when the bombs hit. Survival is my first...")>>
 	<<set $fcnn.push("...time to prepare for major shortages is now, since there's no likelihood...")>>
@@ -102,9 +105,6 @@
 <<elseif $week == 90>>
 	<<set $fcnn = ["FCNN service has been temporarily suspended. Please stand by."]>>
 <</if>>
-<<if $TFS.schoolUpgrade == 3 && $week < 90 && $TFS.compromiseWeek == $week-1>>
-	<<set $fcnn.push("...Ladies: Do you want dick so much that you want to HAVE a dick? If yes, join the Futanari Sisters today! Learn more at...")>>
-<</if>>
 
 <<if $secExp == 1>>
 	<<include "attackGenerator">>
diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw
index 0593e98f0b58a1d2af1fb94621533cefd77ea06f..21ac41937f18c405bd0bc327be041cce1047c222 100644
--- a/src/uncategorized/seBirth.tw
+++ b/src/uncategorized/seBirth.tw
@@ -7,11 +7,11 @@ Refactoring this passage. Main idea for structure:
 2. Showing scene (widget with preparations)
 3. Make calculation of birth process. All live babies will be added to slave property .curBabies as array. They will be in it as long as slave not give next birth. Enough time for any processing.
 4. Showing scene of birth based on calculation (broodmother and normal is merged in one scene, just with variations).
-5. Dealing with babies - they are in separate array, no need to mess with mother .pregType or .preg now.
+5. Dealing with babies — they are in separate array, no need to mess with mother .pregType or .preg now.
 6. Setting up postpartum
 7. Dealing with mother critical states.
 
-I need to break single passage to several widgets, as it's been overcomplicated monster with too many nested if's - true horror for me. :) At least for testing and bugfixing time, later it can be merged back, if needed for processing speed up.
+I need to break single passage to several widgets, as it's been overcomplicated monster with too many nested if's — true horror for me. :) At least for testing and bugfixing time, later it can be merged back, if needed for processing speed up.
 
 */
 <<set $nextButton = "Continue">>
diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw
index a0c2fc1bd9542b73bde1ee9394572ea24a14a71f..e7a6ede6040706635d299ec35f6de1ba3dfabb3a 100644
--- a/src/uncategorized/seCoursing.tw
+++ b/src/uncategorized/seCoursing.tw
@@ -65,7 +65,7 @@ You lead your lurcher $Lurcher.slaveName out on a leash, naked just like the har
 	<<set $phallus = "dildo">>
 <</if>>
 
-<<if canSee($Lurcher)>>$Lurcher.slaveName looks at you questioningly, wondering which of the hares $he should try to chase down and molest<<else>>$Lurcher.slaveName looks at you questioningly, wondering which of the dingling bells $he should try to chase down and molest<</if>>.
+<<if canSee($Lurcher)>>$Lurcher.slaveName looks at you questioningly, wondering which of the hares $he should try to chase down and molest<<else>>$Lurcher.slaveName looks at you questioningly, wondering which of the dinging bells $he should try to chase down and molest<</if>>.
 
 
 <<set $hare1 = 0, $hare2 = 0, $hare3 = 0>>
@@ -85,7 +85,7 @@ You lead your lurcher $Lurcher.slaveName out on a leash, naked just like the har
 	<<set _possibleOrigins.push("disobedient young dickgirl")>>
 <</if>>
 
-<style>  /* a table is used here because very short hare descriptions cause images to indent oddly if they are shown.  This ensures they are always directly below each other. */
+<style>  /* a table is used here because very short hare descriptions cause images to indent oddly if they are shown. This ensures they are always directly below each other. */
 	table.coursing {
 		border-style: hidden;
 		empty-cells: hide;
diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw
index 1ecab00f1cff96ed80a9cac3b81db3777390212a..c11e227cdd593a9934242cbf1e50a69fd150f385 100644
--- a/src/uncategorized/seRetirement.tw
+++ b/src/uncategorized/seRetirement.tw
@@ -43,7 +43,7 @@ in a way that will fill the rest of your property with envy and @@.mediumaquamar
 	<<set $slaves[$i].trust += 3>>
 <</for>>
 <<if $activeSlave.relationship > 3>>
-	$slaves[_sr].slaveName, for _his2 part, is @@.hotpink;overjoyed,@@ though also a bit sad. _He2 looks forward to joining $activeSlave.slaveName one day.
+	$slaves[_sr].slaveName, for _his2 part, is @@.hotpink;overjoyed,@@ though also a bit sad. Although _he2 knows _he2 will $slaves[_sr].assignment for a while longer, _he2 looks forward to joining $activeSlave.slaveName one day.
 	<<set $slaves[_sr].devotion += 10>>
 <</if>>
 <br><br>
@@ -370,7 +370,7 @@ You have @@.yellowgreen;gained a Fuckdoll.@@
 			<<set $slaves[$i].trust += 2>>
 		<</for>>
 		<<if $activeSlave.relationship > 3>>
-			$slaves[_sr].slaveName, for _his2 part, is @@.hotpink;happy,@@ though also a bit sad. _He2 looks forward to joining $activeSlave.slaveName one day.
+			$slaves[_sr].slaveName, for _his2 part, is @@.hotpink;happy,@@ though also a bit sad. Although _he2 knows _he2 will $slaves[_sr].assignment for a while longer, _he2 looks forward to joining $activeSlave.slaveName one day.
 		<<set $slaves[_sr].devotion += 5>>
 		<</if>>
 		<br><br>
diff --git a/src/uncategorized/seWeddingDouble.tw b/src/uncategorized/seWeddingDouble.tw
index 1d7421074727d9b646e938d97aba763a394f73a4..0cdfcb93f079927fcccb8f683a1f5eb23b24bd20 100644
--- a/src/uncategorized/seWeddingDouble.tw
+++ b/src/uncategorized/seWeddingDouble.tw
@@ -1841,7 +1841,6 @@
 					<<set _slave1.devotion -= 5, _slave1.trust -= 5>>
 				<</if>>
 			<</if>>
-		<</if>>
 	<<else>>
 		<<if _slave1.devotion+_slave1.trust >= 175>>
 			<<if _slave1.relationship > 0>>
@@ -1895,6 +1894,7 @@
 			<</if>>
 		<</if>>
 	<</if>>
+	<</if>>
 
 	<<set _slave1.relationship = -3>>
 	<<set _slave1.oralCount += 50>>
@@ -2551,4 +2551,4 @@
 	<</if>>
 	<<set $trinkets.push($desc)>>
 
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index c6184084657ab2545f0d93d3ca319f2a6a6af44c..5d03d42942c17627f9adc37ea2e53734896604d7 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -3,8 +3,18 @@
 <<set $nextButton = "Back", $nextLink = "Slave Interact">>
 
 You prepare $him for sale. $His response to being put up for purchase is
-<<if $activeSlave.devotion < -50>>muted; perhaps $he hopes a new master will be less hateful than you.
-<<elseif $activeSlave.devotion < -20>>muted weeping; for some reason, $he doesn't like being treated like meat on a slab.
+<<if $activeSlave.devotion < -50>>
+	<<if $activeSlave.trust > 20>>
+		annoyance; $he must have thought $he had a good thing going here despite $his defiance.
+	<<else>>
+		muted; perhaps $he hopes a new master will be less hateful than you.
+	<</if>>
+<<elseif $activeSlave.devotion < -20>>
+	<<if $activeSlave.trust > 20>>
+		mild panic; $he seems to be concerned about $his future.
+	<<else>>
+		muted weeping; for some reason, $he doesn't like being treated like meat on a slab.
+	<</if>>
 <<elseif $activeSlave.devotion <= 20>>hesitant; $he can't seem to make up $his mind whether this is going to mean an improvement or not.
 <<elseif $activeSlave.devotion <= 50>>obedient, if mechanical; $he may want to stay with you.
 <<elseif $activeSlave.devotion <= 95>>ill-concealed sorrow; $he clearly wants to stay with you very much.
@@ -14,8 +24,18 @@ You prepare $him for sale. $His response to being put up for purchase is
 <<elseif $activeSlave.trust < -20>>$He's probably hoping $he'll be a little less frightened all the time, wherever $he goes.
 <<elseif $activeSlave.trust < 20>>$He does seem concerned that, hard as you are, $his buyer may be less fair.
 <<elseif $activeSlave.trust < 50>>$He's worried, probably because $he's learned how to avoid punishment here and will have to learn new rules.
-<<elseif $activeSlave.trust < 95>>$He promises $he will do $his best to make you proud by being a good slave to $his new owners.
-<<else>>$He tries to conceal $his terror at going from a trustworthy slave master to the cruel and uncertain world outside your penthouse, but $he fails.
+<<elseif $activeSlave.trust < 95>>
+	<<if $activeSlave.devotion < -20>>
+		$He's worried, probably because $he thinks you won't harm $him while another owner might.
+	<<else>>
+		$He promises $he will do $his best to make you proud by being a good slave to $his new owners.
+	<</if>>
+<<else>>
+	<<if $activeSlave.devotion < -20>>
+		$He's rather upset at the notion that $he may be going from a weak willed master to someone with the balls to actually try and break $him.
+	<<else>>
+		$He tries to conceal $his terror at going from a trustworthy slave master to the cruel and uncertain world outside your penthouse, but $he fails.
+	<</if>>
 <</if>>
 
 <<slaveCost $activeSlave>>
@@ -1847,7 +1867,7 @@ __Bids Received__
 				<<case "cum addicts">>
 					<<if $activeSlave.fetish == "cumslut" && $activeSlave.fetishStrength > 95 && $activeSlave.sexualFlaw == "cum addict">>
 						<br>''<<print cashFormat(500*Math.trunc(($slaveCost*1.2)/500))>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
-						<<link "Accept bid" "Slave Sold">><<set _Price = 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<run cashX(_Price, "slaveTransfer" , $activeSlave)>><</link>>
+						<<link "Accept bid" "Slave Sold">><<set _Price = 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<run cashX(_Price, "slaveTransfer", $activeSlave)>><</link>>
 					<</if>>
 				<<case "horny MILFs">>
 					<<if $activeSlave.physicalAge > 34 && $activeSlave.visualAge > 34 && $activeSlave.energy > 80>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index c1f8883e9dc857cbfddc07fc870f4fbce42cccd2..26da2f35a10873117b4e0dc6c6f5084a34d67fcc 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -558,7 +558,7 @@
 	/*| //Not lactating// */
 	<</if>>
 
-	| <<link "Confinement">>		  	<<= assignJob($activeSlave, "stay confined")>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
+	| <<link "Confinement">>		 	<<= assignJob($activeSlave, "stay confined")>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
 	| <<link "Let $him choose">>		<<= assignJob($activeSlave, "choose her own job")>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
 	| <<link "Stay on this assignment for another month">><<if $activeSlave.assignment != "choose her own job">><<set $activeSlave.sentence += 4>><<replace "#assign">>$activeSlave.assignment ($activeSlave.sentence weeks)<</replace>><</if>><</link>>
 
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index f7db94bdb91fdc9ba51419c73d8bade8804cd330..75980a8a7335fd564119532321a97332b5efaa08 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -596,8 +596,8 @@
 	<<else>>
 		<br><span id="manageArcology"><<link "Manage Arcology">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Arcology">><</link>></span> @@.cyan;[C]@@
 		<br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@
-		<br><span id="manageEconomy"><<link "Manage Economy">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Economy">><</link>></span> @@.cyan;[N]@@
 		<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@
+		<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
 		<<if $secExp == 1>>
 		<<if $propHub == 1>>
 		<br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@
@@ -638,8 +638,8 @@
 <<elseif _Pass == "Manage Arcology">>
 	<br>
 	<br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@
-	<br><span id="manageEconomy"><<link "Manage Economy">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Economy">><</link>></span> @@.cyan;[N]@@
 	<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@
+	<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
 	<<if $secExp == 1>>
 	<<if $propHub == 1>>
 	<br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@
@@ -676,7 +676,7 @@
 <<elseif _Pass == "Manage Penthouse">>
 	<br>
 	<br><span id="manageArcology"><<link [[Manage Arcology|Manage Arcology]]>><</link>></span> @@.cyan;[C]@@
-	<br><span id="manageEconomy"><<link "Manage Economy">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Economy">><</link>></span> @@.cyan;[N]@@
+	<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
 	<br><span id="managePerson"><<link [[Manage Personal Affairs|Manage Personal Affairs]]>><</link>></span> @@.cyan;[X]@@
 	<br>
 	<br><<link [[Wardrobe]]>><</link>>
@@ -686,51 +686,12 @@
 	<br><<if $geneticMappingUpgrade>>[[Gene Lab|Gene Lab]]<</if>>
 	<br><<if $rep >= 10000>>[[Black Market|The Black Market]]<</if>>
 	<br><br><br><br><br>
-<<elseif _Pass == "Manage Economy">>
-	<br>
-	<br><span id="manageArcology"><<link "Manage Arcology">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Arcology">><</link>></span> @@.cyan;[C]@@
-	<br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@
-	<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@
-	<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
-	<<if $secExp == 1>>
-	<<if $propHub == 1>>
-	<br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@
-	<</if>>
-	<<if $secHQ == 1>>
-	<br><span id="securityHQ"><<link "Manage Security">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "securityHQ">><</link>></span> @@.cyan;[Shift+S]@@
-	<</if>>
-	<<if $secBarracks == 1>>
-	<br><span id="secBarracks"><<link "Manage Military">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "secBarracks">><</link>></span> @@.cyan;[Shift+A]@@
-	<</if>>
-	<<if $riotCenter == 1>>
-	<br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@
-	<</if>>
-	<</if>>
-	<<if $cyberMod != 0 && $researchLab.built == "true">>
-	<br>[[Manage Research Lab|Research Lab][$temp = 0]]
-	<</if>>
-	<<if $SF.Toggle && $SF.Active >= 1>>
-	<br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@
-	<</if>>
-
-	<br>
-	<br><span id="PAOButton"><<link [[Personal Assistant|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@
-	<br><span id="policyButton"><<link [[Policies]]>><<set $nextButton = "Back", $nextLink = "Manage Economy">><</link>></span> @@.cyan;[Y]@@
-	<<if $secExp == 1>>
-	<br><span id="edictButton"><<link [[Edicts|edicts]]>><<set $nextButton = "Back", $nextLink = "Manage Economy">><</link>></span> @@.cyan;[D]@@
-	<</if>>
-	<<if $FSAnnounced>>
-	<br><span id="FSButton"><<link [[Future Societies|Future Society]]>><<set $nextButton = "Back", $nextLink = "Manage Economy">><</link>></span> @@.cyan;[F]@@
-	<</if>>
-	<br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[V]@@
-	<br>
-	<br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@
 <<elseif _Pass == "Manage Corporation">>
 	<br>
 	<br><span id="manageArcology"><<link "Manage Arcology">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Arcology">><</link>></span> @@.cyan;[C]@@
 	<br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@
-	<br><span id="manageEconomy"><<link "Manage Economy">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Economy">><</link>></span> @@.cyan;[N]@@
 	<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@
+	<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
 	<<if $secExp == 1>>
 	<<if $propHub == 1>>
 	<br><span id="propHub"><<link "Manage PR">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "propagandaHub">><</link>></span> @@.cyan;[Shift+H]@@
@@ -768,7 +729,7 @@
 	<br>
 	<br><span id="manageArcology"><<link [[Manage Arcology|Manage Arcology]]>><</link>></span> @@.cyan;[C]@@
 	<br><span id="managePenthouse"><<link [[Manage Penthouse|Manage Penthouse]]>><</link>></span> @@.cyan;[X]@@
-	<br><span id="manageEconomy"><<link "Manage Economy">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Economy">><</link>></span> @@.cyan;[N]@@
+	<<if $corpAnnounced == 1>><br><span id="manageCorporation"><<link "Manage Corporation">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Corporation">><</link>><<if ($corpSpecToken > 0) && ($corpSpecTimer == 0)>>@@.yellow;[!]@@<</if>></span><</if>>
 	<br>
 	<br><<link [[Wardrobe]]>><</link>>
 	<br><<if $dispensary>>[[Pharmaceutical Fabricator|Dispensary]]<</if>>
diff --git a/src/uncategorized/walkPast.tw b/src/uncategorized/walkPast.tw
index 3e153476a6e670abc89f1d25f81a911d34713e8a..224ea9072be9d7a6b3208682b092c5f4a4eb57c1 100644
--- a/src/uncategorized/walkPast.tw
+++ b/src/uncategorized/walkPast.tw
@@ -60,208 +60,9 @@
 	<<= boobWatch($activeSlave)>>
 
 <<elseif (_flag > 60)>>
-	<<ButtDescription>>
-	<<switch $activeSlave.clothes>>
-	<<case "a Fuckdoll suit">>
-		$His suit is expressly designed to encourage use of $his rear hole.
-	<<case "uncomfortable straps">>
-		A strap passes between $his
-		<<if ($activeSlave.amp !== 1)>>
-			legs, giving $his gait an awkward sway.
-		<<else>>
-			leg stumps, pressing against $his genitals.
-		<</if>>
-	<<case "shibari ropes">>
-		<<if ($activeSlave.amp !== 1)>>
-			Ropes bind $his legs, giving $his gait an awkward sway.
-		<<else>>
-			A rope passes between $his leg stumps, pressing against $his genitals.
-		<</if>>
-	<<case "attractive lingerie for a pregnant woman">>
-		As $he moves, $his silken panties are very inviting.
-	<<case "a maternity dress">>
-		$His dress covers $his legs, but it will lift easily enough.
-	<<case "stretch pants and a crop-top">>
-		<<if $activeSlave.butt > 10>>
-			$His stretch pants tightly cling to $his rear as $he moves. While the writing adorning it may catch your eye, the huge expanse of wobbling ass cleavage is far more distracting.
-		<<else>>
-			$His stretch pants tightly cling to $his rear as $he moves; the writing on $his bottom gives you plenty of excuses to ogle it.
-		<</if>>
-	<<case "restrictive latex">>
-		As some of the only islands in the sea of black latex, $his holes are eye-catching.
-	<<case "a fallen nuns habit">>
-		$His slutty nun outfit invites sin.
-	<<case "a chattel habit">>
-		$His chattel habit is designed for sex without being removed.
-	<<case "a penitent nuns habit">>
-		$His habit chafes $him so cruelly that it would probably be a relief to $him to have it pulled off, even if $he's roughly fucked afterward.
-	<<case "kitty lingerie">>
-		As $he moves, the strings of $his pretty kitty panties sway enticingly.
-	<<case "attractive lingerie">>
-		As $he moves, $his pretty white garter belt holds $his stockings high up on $his thighs.
-	<<case "a succubus outfit">>
-		$His succubus outfit's tail holds $his skirt up high in back, inviting a damning fuck.
-	<<case "a slutty maid outfit">>
-		$His maid's skirt is cut extremely short, so that the slightest movement reveals a glimpse of $his ass.
-	<<case "a nice maid outfit">>
-		$His maid's skirt is cut conservatively, but it will lift easily enough.
-	<<case "a monokini">>
-		$His monokini contours to the size and shape of $his bottom.
-	<<case "an apron">>
-		$His apron leaves $his buttocks totally exposed.
-	<<case "a cybersuit">>
-		$His bodysuit prominently displays the curves of $his butt.
-	<<case "a string bikini">>
-		As $he moves, $his string lingerie leaves the entire line of $his hips naked and enticing.
-	<<case "a scalemail bikini">>
-		As $he moves, $his scaly lingerie leaves almost the entire line of $his hips naked and enticing.
-	<<case "striped panties">>
-		$His cute panties prominently display the curves of $his butt.
-	<<case "clubslut netting">>
-		As $he moves, $his clubslut netting moves with $him, leaving nothing to the imagination.
-	<<case "a cheerleader outfit">>
-		As $he moves, $his pleated cheerleader bounces up and down flirtatiously.
-	<<case "cutoffs and a t-shirt">>
-		As $he moves, $his cutoffs hug $his butt.
-	<<case "spats and a tank top">>
-		$His spats show off every curve of $his ass.
-	<<case "a slutty outfit">>
-		For today's slutty outfit $he's chosen
-		<<if (random(1,100) > 50) && ($activeSlave.amp !== 1)>>
-			yoga pants so sheer that everything $he's got is clearly visible.
-		<<elseif ($activeSlave.dick > 0)>>
-			a miniskirt so brief that $his ass is hanging out the back, and $his dick is occasionally visible from the front.
-		<<else>>
-			a miniskirt so brief that $his ass is hanging out the back, and $his naked cunt is occasionally visible from the front.
-		<</if>>
-	<<case "a slave gown">>
-		<<if ($activeSlave.amp == 1)>>
-			$His gorgeous dress is specially designed for $his limbless form, but without legs to support it, it can hardly conceal the outline of everything $he has.
-		<<else>>
-			$His gorgeous dress has a thoughtful cut that runs all the way from $his ankle to over $his hip, baring a leg all the way up.
-		<</if>>
-	<<case "a halter top dress">>
-		$His beautiful halter top dress seems to be sculpted around $his bottom.
-	<<case "a ball gown">>
-		$His fabulous silken ball gown is tailored to fit $him and accentuates the shape of $his butt.
-	<<case "a slutty nurse outfit">>
-		$His tight skirt flatters $his ass.
-	<<case "a schoolgirl outfit">>
-		<<if $activeSlave.anus == 0>>
-			This schoolgirl clearly needs to lose $his anal virginity.
-		<<elseif $activeSlave.vagina == 0>>
-			This schoolgirl clearly takes it up the ass; that way, $he can remain a virgin, and be, like, totally pure and innocent.
-		<<else>>
-			This schoolgirl clearly takes it up the ass.
-		<</if>>
-	<<case "a kimono">>
-		<<if ($activeSlave.butt > 5)>>
-			$His kimono demurely covers $his behind, though it cannot conceal its massive shape.
-		<<else>>
-			$His kimono demurely covers $his behind.
-		<</if>>
-	<<case "a hijab and abaya" "a niqab and abaya">>
-		<<if ($activeSlave.butt > 5)>>
-			$His abaya totally conceals $his behind, though it cannot conceal its large size.
-		<<else>>
-			$His abaya totally conceals $his behind.
-		<</if>>
-	<<case "a klan robe">>
-		<<if ($activeSlave.butt > 5)>>
-			$His robe totally conceals $his behind, though it cannot conceal its large size.
-		<<else>>
-			$His robe totally conceals $his behind.
-		<</if>>
-	<<case "a burqa">>
-		<<if ($activeSlave.butt > 7)>>
-			$His burqa totally conceals $his behind, though it cannot conceal its absurd size.
-		<<else>>
-			$His burqa totally conceals $his behind.
-		<</if>>
-	<<case "a burkini">>
-		<<if ($activeSlave.butt > 6)>>
-			$His burkini finds itself accentuating the absurd size of $his behind.
-		<<else>>
-			$His burkini modestly covers $his behind.
-		<</if>>
-	<<case "a hijab and blouse">>
-		<<if ($activeSlave.butt > 5)>>
-			$His skirt modestly covers $his behind, though it cannot conceal its large size.
-		<<else>>
-			$His skirt modestly covers $his behind.
-		<</if>>
-	<<case "a tube top and thong" "a bra" "a button-up shirt" "a sweater" "a tank-top" "a thong" "a tube top" "a striped bra" "a slutty klan robe" "a sports bra" "a t-shirt" "a t-shirt and thong" "an oversized t-shirt">>
-		$His clothing leaves $his butt bare.
-	<<case "a button-up shirt and panties" "a sweater and panties" "a tank-top and panties" "an oversized t-shirt and boyshorts" "boyshorts" "panties" "a t-shirt and panties" "panties and pasties" "striped underwear">>
-		$His panties display the curves of $his butt.
-	<<case "cutoffs" "sport shorts and a t-shirt" "sport shorts" "a sweater and cutoffs" "sport shorts and a sports bra">>
-		$His shorts display the curves of $his butt.
-	<<case "a police uniform" "a t-shirt and jeans" "leather pants" "jeans" "leather pants and a tube top" "leather pants and pasties">>
-		$His pants display every curve of $his butt.
-	<<case "a nice pony outfit" "a slutty pony outfit">>
-		$His leather outfit displays every curve of $his butt.
-	<<case "a skimpy loincloth">>
-		$His loincloth only partially covers $his butt, giving frequent glimpses of the bare flesh beneath it.
-	<<case "a gothic lolita dress">>
-		$His dress modestly covers $his butt.
-	<<case "a hanbok">>
-		$His hanbok modestly covers $his butt.
-	<<case "a one-piece swimsuit">>
-		$His swimsuit displays the delicious curves of $his butt.
-	<<case "battledress">>
-		$His fatigue trousers are not particularly flattering to $his butt.
-	<<case "nice business attire">>
-		$His attractive skirt is nevertheless tight enough to show off $his derrière.
-	<<case "slutty business attire">>
-		$His skirt is so short it'll barely be necessary to lift it.
-	<<case "a comfortable bodysuit">>
-		$His bodysuit displays the curves of $his butt.
-	<<case "a latex catsuit">>
-		$His latex catsuit displays the curves of $his butt.
-	<<case "a military uniform">>
-		$His uniform skirt is nevertheless tight enough to show off $his derrière.
-	<<case "a schutzstaffel uniform">>
-		$His uniform trousers are nevertheless tight enough to show off $his derrière.
-	<<case "a slutty schutzstaffel uniform">>
-		$His uniform miniskirt is nevertheless tight enough to show off the enticing curves of $his butt.
-	<<case "a red army uniform">>
-		$His uniform skirt is nevertheless tight enough to show off $his derrière.
-	<<case "a long qipao">>
-		$His elegant dress shows off all $his curves.
-	<<case "battlearmor">>
-		$His snug battlearmor is nevertheless tight enough to show off $his derrière.
-	<<case "a mounty outfit">>
-		$His uniform slacks are tight enough to show off $his derrière.
-	<<case "a dirndl">>
-		$His skirt shows off the soft curves $his derrière.
-	<<case "lederhosen">>
-		$His shorts tightly hug the crack of $his derrière.
-	<<case "a biyelgee costume">>
-		$His costume skirt has thin enough material to show off $his derrière.
-	<<case "a nice nurse outfit">>
-		$His nurse's trousers demurely cover $his behind.
-	<<case "a mini dress">>
-		$His mini dress displays the curves of $his butt.
-	<<case "a leotard">>
-		$His leotard leaves $his buttocks gloriously bare.
-	<<case "a bunny outfit">>
-		$His teddy covers $his rear, but in tight satin that flatters its curves.
-	<<case "harem gauze">>
-		$His hips are clearly visible through the thin gauze that covers it.
-	<<case "a toga">>
-		$His stellar behind is accented by the light material of $his toga.
-	<<case "a huipil ">>
-		$His huipil is so short that $his butt is on display.
-	<<case "slutty jewelry">>
-		$His belt of light chain accentuates $his hips.
-	<<default>>
-		<<if ($activeSlave.chastityVagina)>>
-			$His chastity belt protects $him from vanilla intercourse.
-		<<else>>
-			You run your eye over $his naked hips.
-		<</if>>
-	<</switch>>
-	<<set $target = "FButt">>
+
+	<<= buttWatch($activeSlave)>>
+
 <<elseif (_flag > 40)>>
 	<<if $activeSlave.inflation == 0>>
 	<<if $activeSlave.bellyImplant < 2000>>
diff --git a/src/uncategorized/wardrobe.tw b/src/uncategorized/wardrobe.tw
index 71f666c603b1092a0187e650d936867d766ae003..80c2c5509a98c0688fd2c6e2a2c96c3ca137a9e4 100644
--- a/src/uncategorized/wardrobe.tw
+++ b/src/uncategorized/wardrobe.tw
@@ -276,8 +276,8 @@ The room containing all the clothes and accessories you have available to dress
 <</if>>
 
 <br>
-<<if $toysBoughtVaginalAccessories == 0>>
-	[[Order a shipment of bullet vibes and vibrating dildos|Wardrobe][cashX(-10000, "capEx"), $toysBoughtVaginalAccessories = 1]]
+<<if $toysBoughtVaginalAttachments == 0>>
+	[[Order a shipment of bullet vibes and vibrating dildos|Wardrobe][cashX(-10000, "capEx"), $toysBoughtVaginalAttachments = 1]]
 	//Costs <<print cashFormat(10000)>>//
 <<else>>
 	You are well stocked with bullet vibrators and vibrating dildos.
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 873f5cd7d87c1559a63d72dc699994ac5e996eac..029a373c3c3ff9366d2d4578cbdaf5bada11aeea 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -11,7 +11,7 @@
 <<case "whoring">>You plan to focus on earning extra money this week.
 <<case "upkeep">>You plan to focus on cleaning the penthouse this week.
 <<case "smuggling">>You plan to make some easy (but dirty) money this week.
-<<case "HG">>You plan to support your Head Girl this week, so $he can give more slaves $his attention.
+<<case "HG">><<setLocalPronouns $HeadGirl>>You plan to support your Head Girl this week, so $he can give more slaves $his attention.
 <<case "sex">>You plan to have as much sex with your slaves as possible this week.
 <<case "trading">>This week you will learn trading.
 <<case "warfare">>This week you will learn modern combat tactics.
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 9f08b9cb8ced8c6c4b741060b0836609650e7a81..841233d7ea17220ac8c4151d6f1e01ae55fe69b7 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -5362,8 +5362,7 @@ $He's got a
 <</widget>>
 
 /* to simplify heterochromia */
-<<widget "eyeColor">><<if def $args[0]>><<if hasVisibleHeterochromia($args[0])>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if hasVisibleHeterochromia($activeSlave)>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>>
-<</if>><</widget>>
+<<widget "eyeColor">><<if def $args[0]>><<if hasVisibleHeterochromia($args[0])>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if hasVisibleHeterochromia($activeSlave)>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>><</if>><</widget>>
 
 <<widget "earDescription">>
 /* ear shape description here */
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index 3e1ba30373806b64e9bad71a994fd6c76e7c572c..a8ebcadaece955fd3061f405872f1f5a79a5259b 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -5920,7 +5920,7 @@ $His
 <<widget "vaginalAttachmentDescription">>
 <<switch $activeSlave.vaginalAttachment>>
 	/* TODO: not sure about this description */
-	$His pussy is filled with a vibrating dildo held in place by a strap, which $he can remove for for vaginal intercourse. $He looks distinctly uncomfortable as it buzzes every so often.
+	$His pussy is filled with a vibrating dildo held in place by a strap, which $he can remove for vaginal intercourse. $He looks distinctly uncomfortable as it buzzes every so often.
 	/* TODO: add descriptions for slaves with gaping+ vaginas */
 <<case "vibrator">>
 <</switch>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index d5ec0b01f6d1f16a00e375d94c365a76783cce00..46f3d90e418e306dd1481ae01c09845683d5daa7 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -699,24 +699,6 @@ This experience
 <</capture>>
 <</widget>>
 
-<<widget "ClearFacilityDecorations">>
-/* Called when a FS is abandoned or failed out of. */
-
-<<if $brothel > 0>><<run ValidateFacilityDecoration("brothelDecoration")>><</if>>
-<<if $club > 0>><<run ValidateFacilityDecoration("clubDecoration")>><</if>>
-<<if $dairy > 0>><<run ValidateFacilityDecoration("dairyDecoration")>><</if>>
-<<if $farmyard > 0>><<run ValidateFacilityDecoration("farmyardDecoration")>><</if>>
-<<if $spa > 0>><<run ValidateFacilityDecoration("spaDecoration")>><</if>>
-<<if $nursery > 0>><<run ValidateFacilityDecoration("nurseryDecoration")>><</if>>
-<<if $clinic > 0>><<run ValidateFacilityDecoration("clinicDecoration")>><</if>>
-<<if $schoolroom > 0>><<run ValidateFacilityDecoration("schoolroomDecoration")>><</if>>
-<<if $cellblock > 0>><<run ValidateFacilityDecoration("cellblockDecoration")>><</if>>
-<<if $servantsQuarters > 0>><<run ValidateFacilityDecoration("servantsQuartersDecoration")>><</if>>
-<<if $arcade > 0>><<run ValidateFacilityDecoration("arcadeDecoration")>><</if>>
-<<if $masterSuite > 0>><<run ValidateFacilityDecoration("masterSuiteDecoration")>><</if>>
-
-<</widget>>
-
 /* Called as <<SetFacilityDecoration "facilityDecoration">>, will generate a clickable list of potential decorations, quotes are needed to pass facilityDecoration as reference - DO NOT INCLUDE $ PREFIX! */
 <<widget "SetFacilityDecoration">>
 <<if ($arcologies[0].FSSupremacist >= 20) && (State.variables[$args[0]] != "Supremacist")>>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 9f96a0167f1e43ffa6e313a2b77a1c749e109129..726b0282b6ca271c71df25ee5569dc58268052b2 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -4811,8 +4811,6 @@
 			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
 		<<case "Nurse">>
 			<<set $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.muscles = random(6,50), $activeSlave.face = random(41,90), $activeSlave.sexualQuirk = "caring", $activeSlave.career = either("a doctor", "a medic", "a medical student", "a nurse", "a paramedic"), $activeSlave.intelligence = random(40,90)>>
-			<<set $activeSlave.actualAge = random(36,$retirementAge-3)>>
-			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
 		<<case "Motherly Attendant">>
 			<<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.face = random(60,90)>>
 			<<set $activeSlave.career = either("a counselor", "a dispatch officer", "a lifeguard", "a masseuse", "a psychologist", "a therapist"), $activeSlave.birthsTotal = random(1,3), $activeSlave.pregKnown = 1, $activeSlave.preg = random(20,35), $activeSlave.pregWeek = $activeSlave.preg, $activeSlave.pregType = 1>>
@@ -4830,23 +4828,23 @@
 			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
 		<<case "Stewardess">>
 			<<set $activeSlave.energy = random(70,90), $activeSlave.fetish = "dom", $activeSlave.fetishStrength = 100, $activeSlave.career = either("a barista", "a bartender", "a caregiver", "a charity worker", "a professional bartender", "a secretary", "a wedding planner", "an air hostess", "an estate agent", "an investor", "an office worker")>>
-		<<case "Milkmaid">>
-			<<set $activeSlave.muscles = random(31,60), $activeSlave.oralSkill = random(31,60), $activeSlave.sexualQuirk = "caring", $activeSlave.behavioralQuirk = "funny", $activeSlave.career = either("a cowgirl", "a dairy worker", "a milkmaid", "a farmer's daughter", "a shepherd", "a veterinarian"), $activeSlave.intelligence = random(20,70)>>
-			<<if $seeDicks > 0>>
-				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(4,9), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
-			<</if>>
 			<<if $AgePenalty == 1>>
 				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
 			<<else>>
 				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>
 			<</if>>
 			<<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>>
+		<<case "Milkmaid">>
+			<<set $activeSlave.muscles = random(31,60), $activeSlave.oralSkill = random(31,60), $activeSlave.sexualQuirk = "caring", $activeSlave.behavioralQuirk = "funny", $activeSlave.career = either("a cowgirl", "a dairy worker", "a milkmaid", "a farmer's daughter", "a shepherd", "a veterinarian"), $activeSlave.intelligence = random(20,70)>>
+			<<if $seeDicks > 0>>
+				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(4,9), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
+			<</if>>
 		<<case "Farmer">>
 			<<set $activeSlave.devotion = 80, $activeSlave.trust = 80, $activeSlave.health = random(80,95), $activeSlave.muscles = random(41,70), $activeSlave.sexualQuirk = "caring", $activeSlave.career = either("a farmer", "a farmer's daughter", "a rancher", "a farmhand", "a zookeeper"), $activeSlave.intelligenceImplant = 30, $activeSlave.intelligence = random(20,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(0,30)>>
 			<<if $seeDicks > 0>>
 				<<set $activeSlave.dick = random(3,5), $activeSlave.balls = random(4,9), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2)>>
 			<</if>>
-			<<if $AgePenalty == 0>>
+			<<if $AgePenalty == 1>>
 				<<set $activeSlave.actualAge = random(36,$retirementAge-5)>>
 			<<else>>
 				<<set $activeSlave.actualAge = random(20,$retirementAge-5)>>