diff --git a/devNotes/Slave Generation Widgets.txt b/devNotes/Slave Generation Widgets.txt
deleted file mode 100644
index 242279d61582591e4c7f784e0381e420d4d00901..0000000000000000000000000000000000000000
--- a/devNotes/Slave Generation Widgets.txt	
+++ /dev/null
@@ -1,910 +0,0 @@
-:: slave generation widgets [nobr]
-
-<<widget "NationalityToRace">>
-
-<<if $fixedRace == 0>>
-
-<<if ($activeSlave.nationality is "American")>>
-	<<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "latina", "latina", "asian", "amerindian", "mixed race")>>
-<<elseif ($activeSlave.nationality is "Canadian")>>
-	<<set $activeSlave.race to either("white", "white", "white", "white", "amerindian")>>
-<<elseif ($activeSlave.nationality is "Puerto Rican")>>
-	<<set $activeSlave.race to either("latina")>>
-<<elseif ($activeSlave.nationality is "Cuban")>>
-	<<set $activeSlave.race to either("latina", "black")>>
-<<elseif ($activeSlave.nationality is "Haitian")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Jamaican")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Mexican")>>
-	<<set $activeSlave.race to either("latina", "latina", "latina", "latina", "latina", "amerindian")>>
-<<elseif ($activeSlave.nationality is "Dominican")>>
-	<<set $activeSlave.race to either("mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "mixed race", "white", "white", "black")>>
-<<elseif ($activeSlave.nationality is "Peruvian")>>
-	<<set $activeSlave.race to either("latina", "amerindian")>>
-<<elseif ($activeSlave.nationality is "Venezuelan")>>
-	<<set $activeSlave.race to either("latina")>>
-<<elseif ($activeSlave.nationality is "Bolivian")>>
-	<<set $activeSlave.race to either("latina", "amerindian")>>
-<<elseif ($activeSlave.nationality is "Guatemalan")>>
-	<<set $activeSlave.race to either("latina", "amerindian")>>
-<<elseif ($activeSlave.nationality is "Brazilian")>>
-	<<set $activeSlave.race to either("black", "latina", "mixed race", "mixed race", "amerindian", "white")>>
-<<elseif ($activeSlave.nationality is "Argentinian")>>
-	<<set $activeSlave.race to either("white", "latina", "latina")>>
-<<elseif ($activeSlave.nationality is "Chilean")>>
-	<<set $activeSlave.race to either("white", "latina", "latina", "latina")>>
-<<elseif ($activeSlave.nationality is "Colombian")>>
-	<<set $activeSlave.race to either("latina")>>
-<<elseif ($activeSlave.nationality is "Egyptian")>>
-	<<set $activeSlave.race to either("black", "middle eastern", "middle eastern", "middle eastern", "semitic")>>
-<<elseif ($activeSlave.nationality is "Turkish")>>
-	<<set $activeSlave.race to either("middle eastern", "middle eastern", "middle eastern", "semitic")>>
-<<elseif ($activeSlave.nationality is "Iranian")>>
-	<<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>>
-<<elseif ($activeSlave.nationality is "Armenian")>>
-	<<set $activeSlave.race to either("indo-aryan", "semitic")>>
-<<elseif ($activeSlave.nationality is "Israeli")>>
-	<<set $activeSlave.race to either("white", "middle eastern", "semitic", "semitic")>>
-<<elseif ($activeSlave.nationality is "Saudi")>>
-	<<set $activeSlave.race to either("black", "asian", "middle eastern", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Moroccan")>>
-	<<set $activeSlave.race to either("middle eastern", "middle eastern", "black")>>
-<<elseif ($activeSlave.nationality is "Nigerian")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Kenyan")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Zimbabwean")>>
-	<<set $activeSlave.race to either("black", "black", "black", "black", "white")>>
-<<elseif ($activeSlave.nationality is "Ugandan")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Tanzanian")>>
-	<<set $activeSlave.race to either("black", "black", "black", "semitic")>>
-<<elseif ($activeSlave.nationality is "Ghanan")>>
-	<<set $activeSlave.race to either("black", "black", "black", "semitic")>>
-<<elseif ($activeSlave.nationality is "Congolese")>>
-	<<set $activeSlave.race to either("black")>>
-<<elseif ($activeSlave.nationality is "Ethiopian")>>
-	<<set $activeSlave.race to either("black", "black", "black", "middle eastern", "semitic")>>
-<<elseif ($activeSlave.nationality is "South African")>>
-	<<set $activeSlave.race to either("black", "black", "black", "white")>>
-<<elseif ($activeSlave.nationality is "Chinese")>>
-	<<set $activeSlave.race to either("asian")>>
-<<elseif ($activeSlave.nationality is "Korean")>>
-	<<set $activeSlave.race to either("asian")>>
-<<elseif ($activeSlave.nationality is "Japanese")>>
-	<<set $activeSlave.race to either("asian")>>
-<<elseif ($activeSlave.nationality is "Thai")>>
-	<<set $activeSlave.race to either("asian", "asian", "malay")>>
-<<elseif ($activeSlave.nationality is "Vietnamese")>>
-	<<set $activeSlave.race to either("asian")>>
-<<elseif ($activeSlave.nationality is "Indonesian")>>
-	<<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>>
-<<elseif ($activeSlave.nationality is "Filipina")>>
-	<<set $activeSlave.race to either("asian", "malay", "malay", "pacific islander")>>
-<<elseif ($activeSlave.nationality is "Burmese")>>
-	<<set $activeSlave.race to either("asian", "asian", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Nepalese")>>
-	<<set $activeSlave.race to either("asian", "asian", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Uzbek")>>
-	<<set $activeSlave.race to either("asian")>>
-<<elseif ($activeSlave.nationality is "Afghan")>>
-	<<set $activeSlave.race to either("indo-aryan", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Algerian")>>
-	<<set $activeSlave.race to either("middle eastern")>>
-<<elseif ($activeSlave.nationality is "Libyan")>>
-	<<set $activeSlave.race to either("middle eastern")>>
-<<elseif ($activeSlave.nationality is "Tunisian")>>
-	<<set $activeSlave.race to either("middle eastern")>>
-<<elseif ($activeSlave.nationality is "Lebanese")>>
-	<<set $activeSlave.race to either("middle eastern", "semitic")>>
-<<elseif ($activeSlave.nationality is "Jordanian")>>
-	<<set $activeSlave.race to either("middle eastern", "semitic")>>
-<<elseif ($activeSlave.nationality is "Emirati")>>
-	<<set $activeSlave.race to either("middle eastern", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Omani")>>
-	<<set $activeSlave.race to either("middle eastern", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Malian")>>
-	<<set $activeSlave.race to either("black", "black", "black", "black", "black", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Sudanese")>>
-	<<set $activeSlave.race to either("black", "black", "black", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Yemeni")>>
-	<<set $activeSlave.race to either("black", "semitic", "middle eastern", "middle eastern", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Iraqi")>>
-	<<set $activeSlave.race to either("semitic", "middle eastern", "middle eastern", "middle eastern", "middle eastern")>>
-<<elseif ($activeSlave.nationality is "Indian")>>
-	<<set $activeSlave.race to either("indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Malaysian")>>
-	<<set $activeSlave.race to either("asian", "malay", "malay", "malay")>>
-<<elseif ($activeSlave.nationality is "Kazakh")>>
-	<<set $activeSlave.race to either("asian", "asian", "asian", "semitic", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Pakistani")>>
-	<<set $activeSlave.race to either("indo-aryan", "indo-aryan", "indo-aryan", "semitic")>>
-<<elseif ($activeSlave.nationality is "Bangladeshi")>>
-	<<set $activeSlave.race to either("indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Belarusian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Russian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Ukrainian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Irish")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Icelandic")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Finnish")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Swiss")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Danish")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Norwegian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Austrian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Slovak")>>
-	<<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Dutch")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Belgian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Czech")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Serbian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Portuguese")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Hungarian")>>
-	<<set $activeSlave.race to either("white", "white", "white", "white", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "Estonian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Polish")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Lithuanian")>>
-	<<set $activeSlave.race to either("white")>>
-<<elseif ($activeSlave.nationality is "Romanian")>>
-	<<set $activeSlave.race to either("semitic", "white", "white", "white", "white", "indo-aryan")>>
-<<elseif ($activeSlave.nationality is "German")>>
-	<<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "white")>>
-<<elseif ($activeSlave.nationality is "Swedish")>>
-	<<set $activeSlave.race to either("middle eastern", "white", "white", "white", "white")>>
-<<elseif ($activeSlave.nationality is "French")>>
-	<<set $activeSlave.race to either("black", "middle eastern", "white", "white", "white", "white", "white", "southern European")>>
-<<elseif ($activeSlave.nationality is "Italian")>>
-	<<set $activeSlave.race to either("middle eastern", "southern European", "southern European", "white", "white")>>
-<<elseif ($activeSlave.nationality is "Greek")>>
-	<<set $activeSlave.race to either("southern European")>>
-<<elseif ($activeSlave.nationality is "Spanish")>>
-	<<set $activeSlave.race to either("semitic", "southern European", "southern European")>>
-<<elseif ($activeSlave.nationality is "British")>>
-	<<set $activeSlave.race to either("indo-aryan", "white", "white", "white", "white", "white", "white", "white", "white", "white")>>
-<<elseif ($activeSlave.nationality is "Scottish")>>
-	<<set $activeSlave.race to either("middle eastern", "indo-aryan", "white", "white", "white", "white", "white", "white", "white")>>
-<<elseif ($activeSlave.nationality is "Australian")>>
-	<<set $activeSlave.race to either("white", "white", "black", "asian")>>
-<<elseif ($activeSlave.nationality is "a New Zealander")>>
-	<<set $activeSlave.race to either("white", "white", "white", "white", "pacific islander")>>
-<</if>>
-
-/% Begin mixed race rate adjustment. %/
-/% Some countries are extremely ethnically homogeneous and unlikely to change soon. %/
-<<if ($activeSlave.nationality is "Japanese")>>
-	<<if random(1,100) > 98>>
-		<<set $activeSlave.race to "mixed race">>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Korean")>>
-	<<if random(1,100) > 95>>
-		<<set $activeSlave.race to "mixed race">>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Polish") or ($activeSlave.nationality is "Romanian") or ($activeSlave.nationality is "Bulgarian") or ($activeSlave.nationality is "Lithuanian") or ($activeSlave.nationality is "Croatian")>>
-	/% Croatia isn't an origin currently but the game might add it in the future. %/
-	<<if random(1,100) > 98>>
-		<<set $activeSlave.race to "mixed race">>
-	<</if>>
-<<elseif random(1,100) > 90>>
-	/% Default rate. %/
-	<<set $activeSlave.race to "mixed race">>
-<</if>>
-/% End mixed race rate adjustment. %/
-
-<<else>>
-
-<<switch $fixedRace>>
-<<case "white">>
-	<<set $activeSlave.nationality to $whiteNationalities.random()>>
-<<case "asian">>
-	<<set $activeSlave.nationality to $asianNationalities.random()>>
-<<case "latina">>
-	<<set $activeSlave.nationality to $latinaNationalities.random()>>
-<<case "middle eastern">>
-	<<set $activeSlave.nationality to $middleEasternNationalities.random()>>
-<<case "black">>
-	<<set $activeSlave.nationality to $blackNationalities.random()>>
-<<case "indo-aryan">>
-	<<set $activeSlave.nationality to $indoAryan"Nationalities.random()>>
-<<case "pacific islander">>
-	<<set $activeSlave.nationality to $pacificIslanderNationalities.random()>>
-<<case "malay">>
-	<<set $activeSlave.nationality to $malayNationalities.random()>>
-<<case "amerindian">>
-	<<set $activeSlave.nationality to $amerindianNationalities.random()>>
-<<case "southern european">>
-	<<set $activeSlave.nationality to $southernEuropean"Nationalities.random()>>
-<<case "semitic">>
-	<<set $activeSlave.nationality to $semiticNationalities.random()>>
-<</switch>>
-<<set $activeSlave.race = $fixedRace>>
-
-<</if>>
-
-<<if $arcologies[0].FSSupremacistLawME != 0>>
-<<if $activeSlave.race == $arcologies[0].FSSupremacistRace>>
-	<<set $activeSlave.race to "mixed race">>
-<</if>>
-<</if>>
-
-<</widget>>
-
-<<widget "NationalityToName">>
-
-<<if ($activeSlave.nationality is "American")>>
-	<<if $activeSlave.race is "black">>
-		<<set $activeSlave.birthName to $africanAmericanSlaveNames.random()>>
-	<<elseif $activeSlave.race is "latina">>
-		<<set $activeSlave.birthName to $latinaSlaveNames.random()>>
-	<<elseif $activeSlave.race is "asian">>
-		<<set $activeSlave.birthName to $asianAmericanSlaveNames.random()>>
-	<<elseif $activeSlave.race is "middle eastern">>
-		<<set $activeSlave.birthName to $egyptianSlaveNames.random()>>
-	<<else>>
-		<<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>>
-	<</if>>
-<<case "Canadian">>
-	<<set $activeSlave.birthName to $canadianSlaveNames.random()>>
-<<case "Mexican">>
-	<<set $activeSlave.birthName to $mexicanSlaveNames.random()>>
-<<case "Dominican">>
-	<<set $activeSlave.birthName to $dominicanSlaveNames.random()>>
-<<case "Puerto Rican">>
-	<<set $activeSlave.birthName to $puertoRicanSlaveNames.random()>>
-<<case "Haitian">>
-	<<set $activeSlave.birthName to $haitianSlaveNames.random()>>
-<<case "Jamaican">>
-	<<set $activeSlave.birthName to $jamaicanSlaveNames.random()>>
-<<case "Cuban">>
-	<<set $activeSlave.birthName to $cubanSlaveNames.random()>>
-<<case "Guatemalan">>
-	<<set $activeSlave.birthName to $guatemalanSlaveNames.random()>>
-<<case "Chilean">>
-	<<set $activeSlave.birthName to $chileanSlaveNames.random()>>
-<<case "Peruvian">>
-	<<set $activeSlave.birthName to $peruvianSlaveNames.random()>>
-<<case "Bolivian">>
-	<<set $activeSlave.birthName to $bolivianSlaveNames.random()>>
-<<case "Venezuelan">>
-	<<set $activeSlave.birthName to $venezuelanSlaveNames.random()>>
-<<case "Belarusian">>
-	<<set $activeSlave.birthName to $belarusianSlaveNames.random()>>
-<<case "Russian">>
-	<<set $activeSlave.birthName to $russianSlaveNames.random()>>
-<<case "Ukrainian">>
-	<<set $activeSlave.birthName to $ukrainianSlaveNames.random()>>
-<<case "Italian">>
-	<<set $activeSlave.birthName to $italianSlaveNames.random()>>
-<<case "Spanish">>
-	<<set $activeSlave.birthName to $spanishSlaveNames.random()>>
-<<case "British">>
-	<<set $activeSlave.birthName to $britishSlaveNames.random()>>
-<<case "Scottish">>
-	<<set $activeSlave.birthName to $scottishSlaveNames.random()>>
-<<case "French">>
-	<<set $activeSlave.birthName to $frenchSlaveNames.random()>>
-<<case "German">>
-	<<set $activeSlave.birthName to $germanSlaveNames.random()>>
-<<case "Lithuanian">>
-	<<set $activeSlave.birthName to $lithuanianSlaveNames.random()>>
-<<case "Norwegian">>
-	<<set $activeSlave.birthName to $norwegianSlaveNames.random()>>
-<<case "Slovak">>
-	<<set $activeSlave.birthName to $slovakSlaveNames.random()>>
-<<case "Danish">>
-	<<set $activeSlave.birthName to $danishSlaveNames.random()>>
-<<case "Dutch">>
-	<<set $activeSlave.birthName to $dutchSlaveNames.random()>>
-<<case "Austrian">>
-	<<set $activeSlave.birthName to $austrianSlaveNames.random()>>
-<<case "Swiss">>
-	<<set $activeSlave.birthName to $swissSlaveNames.random()>>
-<<case "Serbian">>
-	<<set $activeSlave.birthName to $serbianSlaveNames.random()>>
-<<case "Belgian">>
-	<<set $activeSlave.birthName to $belgianSlaveNames.random()>>
-<<case "Czech">>
-	<<set $activeSlave.birthName to $czechSlaveNames.random()>>
-<<case "Portuguese">>
-	<<set $activeSlave.birthName to $portugueseSlaveNames.random()>>
-<<case "Swedish">>
-	<<set $activeSlave.birthName to $swedishSlaveNames.random()>>
-<<case "Romanian">>
-	<<set $activeSlave.birthName to $romanianSlaveNames.random()>>
-<<case "Hungarian">>
-	<<set $activeSlave.birthName to $hungarianSlaveNames.random()>>
-<<case "Estonian">>
-	<<set $activeSlave.birthName to $estonianSlaveNames.random()>>
-<<case "Irish">>
-	<<set $activeSlave.birthName to $irishSlaveNames.random()>>
-<<case "Icelandic">>
-	<<set $activeSlave.birthName to $icelandicSlaveNames.random()>>
-<<case "Finnish">>
-	<<set $activeSlave.birthName to $finnishSlaveNames.random()>>
-<<case "Greek">>
-	<<set $activeSlave.birthName to $greekSlaveNames.random()>>
-<<case "Polish">>
-	<<set $activeSlave.birthName to $polishSlaveNames.random()>>
-<<case "Brazilian">>
-	<<set $activeSlave.birthName to $brazilianSlaveNames.random()>>
-<<case "Egyptian">>
-	<<set $activeSlave.birthName to $egyptianSlaveNames.random()>>
-<<case "Colombian">>
-	<<set $activeSlave.birthName to $colombianSlaveNames.random()>>
-<<case "Argentinian">>
-	<<set $activeSlave.birthName to $argentinianSlaveNames.random()>>
-<<case "Turkish">>
-	<<set $activeSlave.birthName to $turkishSlaveNames.random()>>
-<<case "Iranian">>
-	<<set $activeSlave.birthName to $iranianSlaveNames.random()>>
-<<case "Armenian">>
-	<<set $activeSlave.birthName to $armenianSlaveNames.random()>>
-<<case "Israeli">>
-	<<set $activeSlave.birthName to $israeliSlaveNames.random()>>
-<<case "Saudi">>
-	<<set $activeSlave.birthName to $saudiSlaveNames.random()>>
-<<case "South African">>
-	<<if $activeSlave.race is "black">>
-		<<set $activeSlave.birthName to $blackSouthAfricanSlaveNames.random()>>
-	<<else>>
-		<<set $activeSlave.birthName to $whiteSouthAfricanSlaveNames.random()>>
-	<</if>>
-<<case "Nigerian">>
-	<<set $activeSlave.birthName to $nigerianSlaveNames.random()>>
-<<case "Congolese">>
-	<<set $activeSlave.birthName to $congoleseSlaveNames.random()>>
-<<case "Kenyan">>
-	<<set $activeSlave.birthName to $kenyanSlaveNames.random()>>
-<<case "Tanzanian">>
-	<<set $activeSlave.birthName to $tanzanianSlaveNames.random()>>
-<<case "Zimbabwean">>
-	<<if $activeSlave.race == "white">>
-		<<set $activeSlave.birthName to $britishSlaveNames.random()>>
-	<<else>>
-		<<set $activeSlave.birthName to $zimbabweanSlaveNames.random()>>
-	<</if>>
-<<case "Ghanan">>
-	<<set $activeSlave.birthName to $ghananSlaveNames.random()>>
-<<case "Ugandan">>
-	<<set $activeSlave.birthName to $ugandanSlaveNames.random()>>
-<<case "Ethiopian">>
-	<<set $activeSlave.birthName to $ethiopianSlaveNames.random()>>
-<<case "Moroccan">>
-	<<set $activeSlave.birthName to $moroccanSlaveNames.random()>>
-<<case "Chinese">>
-	<<set $activeSlave.birthName to $chineseSlaveNames.random()>>
-<<case "Korean">>
-	<<set $activeSlave.birthName to $koreanSlaveNames.random()>>
-<<case "Thai">>
-	<<set $activeSlave.birthName to $thaiSlaveNames.random()>>
-<<case "Vietnamese">>
-	<<set $activeSlave.birthName to $vietnameseSlaveNames.random()>>
-<<case "Japanese">>
-	<<set $activeSlave.birthName to $japaneseSlaveNames.random()>>
-<<case "Indonesian">>
-	<<set $activeSlave.birthName to $indonesianSlaveNames.random()>>
-<<case "Filipina">>
-	<<set $activeSlave.birthName to $filipinaSlaveNames.random()>>
-<<case "Bangladeshi">>
-	<<set $activeSlave.birthName to $bangladeshiSlaveNames.random()>>
-<<case "Malaysian">>
-	<<set $activeSlave.birthName to $malaysianSlaveNames.random()>>
-<<case "Uzbek">>
-	<<set $activeSlave.birthName to $uzbekSlaveNames.random()>>
-<<case "Afghan">>
-	<<set $activeSlave.birthName to $afghanSlaveNames.random()>>
-<<case "Nepalese">>
-	<<set $activeSlave.birthName to $nepaleseSlaveNames.random()>>
-<<case "Burmese">>
-	<<set $activeSlave.birthName to $burmeseSlaveNames.random()>>
-<<case "Iraqi">>
-	<<set $activeSlave.birthName to $iraqiSlaveNames.random()>>
-<<case "Yemeni">>
-	<<set $activeSlave.birthName to $yemeniSlaveNames.random()>>
-<<case "Sudanese">>
-	<<set $activeSlave.birthName to $sudaneseSlaveNames.random()>>
-<<case "Algerian">>
-	<<set $activeSlave.birthName to $algerianSlaveNames.random()>>
-<<case "Tunisian">>
-	<<set $activeSlave.birthName to $tunisianSlaveNames.random()>>
-<<case "Libyan">>
-	<<set $activeSlave.birthName to $libyanSlaveNames.random()>>
-<<case "Omani">>
-	<<set $activeSlave.birthName to $omaniSlaveNames.random()>>
-<<case "Malian">>
-	<<set $activeSlave.birthName to $malianSlaveNames.random()>>
-<<case "Jordanian">>
-	<<set $activeSlave.birthName to $jordanianSlaveNames.random()>>
-<<case "Lebanese">>
-	<<set $activeSlave.birthName to $lebaneseSlaveNames.random()>>
-<<case "Emirati">>
-	<<set $activeSlave.birthName to $emiratiSlaveNames.random()>>
-<<case "Kazakh">>
-	<<set $activeSlave.birthName to $kazakhSlaveNames.random()>>
-<<case "Pakistani">>
-	<<set $activeSlave.birthName to $pakistaniSlaveNames.random()>>
-<<case "Indian">>
-	<<set $activeSlave.birthName to $indianSlaveNames.random()>>
-<<case "Australian">>
-	<<set $activeSlave.birthName to $australianSlaveNames.random()>>
-<<case "a New Zealander">>
-	<<set $activeSlave.birthName to $newZealanderSlaveNames.random()>>
-<<default>>
-	<<set $activeSlave.birthName to $whiteAmericanSlaveNames.random()>>
-<</switch>>
-
-<</widget>>
-
-<<widget "NationalityToAccent">>
-
-<<set $seed to either(0,1,1,2,2,2,3,3,3,3)>>
-
-<<if ($activeSlave.nationality is "American")>>
-	<<if $activeSlave.race is "black">>
-	<<if $language is "English">>
-		<<set $activeSlave.accent to 0>>
-	<<else>>
-		<<set $activeSlave.accent to either(0,1,1,2,2,2,3,3,3,3)>>
-	<</if>>
-	<<elseif $activeSlave.race is "latina">>
-	<<if $language is "English">>
-		<<set $activeSlave.accent to 0>>
-	<<elseif $language is "Spanish">>
-		<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-		<<set $activeSlave.accent to $seed>>
-	<</if>>
-	<<elseif $activeSlave.race is "asian">>
-	<<if $language is "English">>
-		<<set $activeSlave.accent to 0>>
-	<<elseif $language is "Chinese">>
-		<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-		<<set $activeSlave.accent to $seed>>
-	<</if>>
-	<<elseif $activeSlave.race is "middle eastern">>
-	<<if $language is "English">>
-		<<set $activeSlave.accent to 0>>
-	<<elseif $language is "Arabic">>
-		<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-		<<set $activeSlave.accent to $seed>>
-	<</if>>
-	<<else>>
-	<<if $language is "English">>
-		<<set $activeSlave.accent to 0>>
-	<<else>>
-		<<set $activeSlave.accent to $seed>>
-	<</if>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Canadian")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Mexican")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Dominican")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Puerto Rican")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Haitian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Jamaican")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Cuban")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Guatemalan")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Chilean")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Peruvian")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Bolivian")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Venezuelan")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Russian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Ukrainian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Italian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Spanish")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "British")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Scottish")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 2>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "French")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "German")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Lithuanian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Belarusian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "French")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "German")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Lithuanian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Norwegian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Slovak")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Danish")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Dutch")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Austrian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Swiss")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Serbian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Belgian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Czech")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Portuguese")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Swedish")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Romanian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Hungarian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Estonian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Irish")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Icelandic")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Finnish")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Greek")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Polish")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Brazilian")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Egyptian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Colombian")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Argentinian")>>
-	<<if $language is "Spanish">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Turkish")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Iranian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Armenian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Israeli")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Saudi")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "South African")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Nigerian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Congolese")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Kenyan")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Tanzanian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Zimbabwean")>>
-	<<if $language is "English" && $activeSlave.race == "white">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Ghanan")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Ugandan")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Ethiopian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Moroccan")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Chinese")>>
-	<<if $language is "Chinese">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Korean")>>
-	<<if $language is "Chinese">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Thai")>>
-	<<if $language is "Chinese">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Vietnamese")>>
-	<<if $language is "Chinese">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Japanese")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Indonesian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Filipina")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Bangladeshi")>>
-	<<if $language is "Indian">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Malaysian")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Uzbek")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Afghan")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Nepalese")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Burmese")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Iraqi")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Yemeni")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Sudanese")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Algerian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Tunisian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Libyan")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Omani")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Malian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Jordanian")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Lebanese")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Emirati")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Kazakh")>>
-	<<set $activeSlave.accent to $seed>>
-<<elseif ($activeSlave.nationality is "Pakistani")>>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to either(0,1,2,3)>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Indian")>>
-	<<if $language is "Indian">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "Australian")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif ($activeSlave.nationality is "a New Zealander")>>
-	<<if $language is "English">>
-	<<set $activeSlave.accent to 1>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif $activeSlave.nationality is "Roman Revivalist">>
-	<<if $language is "Latin">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif $activeSlave.nationality is "Ancient Egyptian Revivalist">>
-	<<if $language is "Ancient Egyptian">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif $activeSlave.nationality is "Edo Revivalist">>
-	<<if $language is "Japanese">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif $activeSlave.nationality is "Arabian Revivalist">>
-	<<if $language is "Arabic">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<elseif $activeSlave.nationality is "Ancient Chinese Revivalist">>
-	<<if $language is "Chinese">>
-	<<set $activeSlave.accent to 0>>
-	<<else>>
-	<<set $activeSlave.accent to $seed>>
-	<</if>>
-<<else>>
-	<<set $activeSlave.accent to $seed>>
-<</if>>
-
-<<if $activeSlave.nationality is $language>>
-	<<set $activeSlave.accent to 0>>
-<</if>>
-
-<</widget>>
\ No newline at end of file
diff --git a/src/cheats/mod_EditArcologyCheat.tw b/src/cheats/mod_EditArcologyCheat.tw
index a529f295cbfaa4aaa4ca75a78f2a7b665fc2252c..8d6e5f1b71384784759c43c00d2c3ceb75b1411e 100644
--- a/src/cheats/mod_EditArcologyCheat.tw
+++ b/src/cheats/mod_EditArcologyCheat.tw
@@ -277,15 +277,13 @@ __Player Character__
 <br>Hair color: ''$PC.hColor''.
 <<textbox "$PC.hColor" $PC.hColor "MOD_Edit Arcology Cheat">>
 <br>Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "MOD_Edit Arcology Cheat">> [[Cigars|MOD_Edit Arcology Cheat][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|MOD_Edit Arcology Cheat][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]]
-<br>Preferred method of consumption: <<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>
-<br>[[Smoked|MOD_Edit Arcology Cheat][$PC.refreshmentType = 0]] | [[Drank|MOD_Edit Arcology Cheat][$PC.refreshmentType = 1]] | [[Eaten|MOD_Edit Arcology Cheat][$PC.refreshmentType = 2]] | [[Snorted|MOD_Edit Arcology Cheat][$PC.refreshmentType = 3]] | [[Injected|MOD_Edit Arcology Cheat][$PC.refreshmentType = 4]]
+<br>Preferred method of consumption: <<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<else>>Orally Dissolved<</if>>
+<br>[[Smoked|MOD_Edit Arcology Cheat][$PC.refreshmentType = 0]] | [[Drank|MOD_Edit Arcology Cheat][$PC.refreshmentType = 1]] | [[Eaten|MOD_Edit Arcology Cheat][$PC.refreshmentType = 2]] | [[Snorted|MOD_Edit Arcology Cheat][$PC.refreshmentType = 3]] | [[Injected|MOD_Edit Arcology Cheat][$PC.refreshmentType = 4]] | [[Popped|MOD_Edit Arcology Cheat][$PC.refreshmentType = 5]] | [[Orally Dissolved|MOD_Edit Arcology Cheat][$PC.refreshmentType = 6]]
 
 <br><br>Arcology citizens: $ACitizens
 <<textbox "$ACitizens" $ACitizens>>
 <br>Arcology sex slaves: $ASlaves
 <<textbox "$ASlaves" $ASlaves>>
-<br>Arcology menial slaves:  $AHelots
-<<textbox "$AHelots" $AHelots>>
 <br>Arcology prosperity cap: $AProsperityCap
 <<textbox "$AProsperityCap" $AProsperityCap>>
 
diff --git a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
index 83f8343c4dea9413e0187f391ef492da5f320e77..b690d76c6fcde45f489dbb7bcb9b08f4d8034378 100644
--- a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
+++ b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
@@ -4,7 +4,6 @@
 
 <<set $ACitizens = Number($ACitizens) || 0>>
 <<set $ASlaves = Number($ASlaves) || 0>>
-<<set $AHelots = Number($AHelots) || 0>>
 <<set $shelterAbuse = Number($shelterAbuse) || 0>>
 
 <<set $TSS.studentsBought = Number($TSS.studentsBought) || 0>>
diff --git a/src/cheats/mod_EditSlaveCheat.tw b/src/cheats/mod_EditSlaveCheat.tw
index 184264bb5b9574f6695cb24423133f9c1aa3417a..73c0e46f70d0ff08974d0fcbf31225fff68fce9d 100644
--- a/src/cheats/mod_EditSlaveCheat.tw
+++ b/src/cheats/mod_EditSlaveCheat.tw
@@ -66,6 +66,19 @@
 
 <br>
 
+''Fuckdoll: (0-100)''
+<<textbox "$activeSlave.fuckdoll" $activeSlave.fuckdoll>>
+<br>
+<<radiobutton "$activeSlave.fuckdoll" 0>> Not a fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 15>> Barely a fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 25>> Slight fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 45>> Basic fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 65>> Intermediate fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 85>> Advanced fuckdoll
+<<radiobutton "$activeSlave.fuckdoll" 100>> Total fuckdoll
+
+<br>
+
 ''Nationality: ($activeSlave.nationality)''
 <<textbox "$activeSlave.nationality" $activeSlave.nationality>>
 &nbsp;&nbsp;&nbsp;&nbsp;//This will not alter name or race//
@@ -302,7 +315,7 @@ Unskilled.
 
 <br><br>
 
-''Muscles (0 to 3): $activeSlave.muscles |''
+''Muscles (0 to 100): $activeSlave.muscles |''
 <<textbox "$activeSlave.muscles" $activeSlave.muscles>>
 <br>
 <<radiobutton "$activeSlave.muscles" 0>> None
@@ -456,6 +469,12 @@ Plush.
 
 <br><br>
 
+''Genes (XX:female, XY:male):'' $activeSlave.genes
+<<radiobutton "$activeSlave.amp" "XX">> Female
+<<radiobutton "$activeSlave.amp" "XY">> Male
+
+<br><br>
+
 ''Breasts (200 to 24000):''
 <<textbox "$activeSlave.boobs" $activeSlave.boobs>>
 <br>
@@ -822,6 +841,13 @@ Monstrous.
 <<radiobutton "$activeSlave.scrotum" 7>> Enormous
 <<radiobutton "$activeSlave.scrotum" 8>> Monstrous
 
+<br>
+
+''Prostate (0: no prostate, 1:prostate):'' $activeSlave.prostate
+<br>
+<<radiobutton "$activeSlave.prostate" 0>> No prostate
+<<radiobutton "$activeSlave.prostate" 1>> Prostate
+
 <br><br>
 
 ''Prostitution (0 to 100):''
diff --git a/src/events/gameover.tw b/src/events/gameover.tw
index a9191d9db0e7c69b36da1e445e9d272685cab038..e665223c91105d60921f362ade6482891ec6a8f1 100644
--- a/src/events/gameover.tw
+++ b/src/events/gameover.tw
@@ -44,7 +44,7 @@ Surrounding yourself with powerful has its boons, but also poses a distinct thre
 You look up from your desk as the locked door to your office unseals, and a dozen individuals brazenly walk into your view.<<if $Bodyguard != 0>> $Bodyguard.slaveName stands between you and them. A single glare from the leader of the bunch and she backs off, eyes to the ground.<</if>>
 <br><br>
 <<if $PC.pregSource == -1>>
-	<<if $PC.refreshmentType == 0>>Taking a drag from a fresh $PC.refreshment<<elseif $PC.refreshmentType == 1>>Taking a drink of a fresh glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>Taking a bite of a fresh $PC.refreshment<<elseif $PC.refreshmentType == 3>>Doing a line of $PC.refreshment<<else>>Injecting a hit of $PC.refreshment into your arm<</if>>, you greet your rather unwelcome guests.
+	<<if $PC.refreshmentType == 0>>Taking a drag from a fresh $PC.refreshment<<elseif $PC.refreshmentType == 1>>Taking a drink of a fresh glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>Taking a bite of a fresh $PC.refreshment<<elseif $PC.refreshmentType == 3>>Doing a line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>Injecting a hit of $PC.refreshment into your arm<<elseif $PC.refreshmentType == 5>>Swallowing a $PC.refreshment<<elseif $PC.refreshmentType == 6>>Placing a tab of $PC.refreshment under your tongue<</if>>, you greet your rather unwelcome guests.
 <br><br>
 "You are no longer worthy of being a part of our society. But you carry within you one of our heirs. A conundrum for some, but we have already solved that problem."
 <br><br>
diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw
index 8939152a5f98863fb6b2a0b943bebc598aa9d1de..2a0519f55ba395ffc67395a00f963ba0ce913465 100644
--- a/src/events/intro/initNationalities.tw
+++ b/src/events/intro/initNationalities.tw
@@ -20,7 +20,7 @@
 	<<set $trinkets.push("a framed picture of a slave with her sale price scrawled across the bottom")>>
 <<elseif $PC.career == "engineer">>
 	<<set $trinkets.push("an artist's impression of an early arcology design")>>
-	<<set $AProsperityCap = 100>>
+	<<set $arcologyUpgrade.drones = 1, $arcologyUpgrade.hydro = 1>>
 	<<set $upgradeMultiplierArcology = 0.6>>
 <<elseif $PC.career == "medicine">>
 	<<set $trinkets.push("a framed postsurgical x-ray")>>
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 553b9288f2b8e30e9acc0296bb31100dc994456a..70b1d2c67bf3d492d8c760635b1694b5d5d7a10a 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -287,12 +287,12 @@ Girls will not be able to impregnate others if their age is under <<textbox "$po
 
 <br>
 
-<<if $loliGrowth == 1>>
+<<if $loliGrow == 1>>
 	Children ''will not'' grow as they age.
-    [[Enable Growth|Intro Summary][$loliGrowth = 0]]
+    [[Enable Growth|Intro Summary][$loliGrow = 0]]
 <<else>>
 	Children ''will'' grow as they age.
-    [[Disable Growth|Intro Summary][$loliGrowth = 1]]
+    [[Disable Growth|Intro Summary][$loliGrow = 1]]
 <</if>>
 
 <br>
@@ -619,10 +619,13 @@ Hair color: ''$PC.hColor''.
 <br>
 Preferred refreshment: <<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]]
 <br>
-Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</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]]
+Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<else>>Orally Dissolved<</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]]
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
-<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>>
+<<if $PC.refreshmentType == 0>>//"Smoke" 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>>//
 
 <<else>>
 
@@ -727,15 +730,18 @@ Hair color: ''$PC.hColor''.
 <br>
 Preferred refreshment: <<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]]
 <br>
-Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</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]]
+Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<elseif $PC.refreshmentType == 6>>Dissolved orally<</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]]
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
-<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>>
-
-<br><br>
+<<if $PC.refreshmentType == 0>>//"Smoke" 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>>//
 
 <</if>>
 
+<br><br>
+
 Image display
 <<if $seeImages == 1>>
 	''enabled.'' [[Disable|Intro Summary][$seeImages = 0]]
diff --git a/src/events/intro/pcBodyIntro.tw b/src/events/intro/pcBodyIntro.tw
index 05c22fc3a81e35258585d32abbcec5f8a59107d9..ef0f085ec87fe010a820606534128641595b60fd 100644
--- a/src/events/intro/pcBodyIntro.tw
+++ b/src/events/intro/pcBodyIntro.tw
@@ -72,10 +72,14 @@ Name your character: <<textbox "$PCName" $PCName "PC Body Intro">>
 <br>
 Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "PC Body Intro">> [[Cigars|PC Body Intro][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|PC Body Intro][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]]
 <br>
-Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>''.
-[[Smoked|PC Body Intro][$PC.refreshmentType = 0]] | [[Drank|PC Body Intro][$PC.refreshmentType = 1]] | [[Eaten|PC Body Intro][$PC.refreshmentType = 2]] | [[Snorted|PC Body Intro][$PC.refreshmentType = 3]] | [[Injected|PC Body Intro][$PC.refreshmentType = 4]]
+Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<elseif $PC.refreshmentType == 6>>Dissolved orally<</if>>''.
+[[Smoked|PC Body Intro][$PC.refreshmentType = 0]] | [[Drank|PC Body Intro][$PC.refreshmentType = 1]] | [[Eaten|PC Body Intro][$PC.refreshmentType = 2]] | [[Snorted|PC Body Intro][$PC.refreshmentType = 3]] | [[Injected|PC Body Intro][$PC.refreshmentType = 4]] | [[Popped|PC Body Intro][$PC.refreshmentType = 5]] | [[Orally Dissolved|PC Body Intro][$PC.refreshmentType = 6]]
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
-//Flavor only; no mechanical effect. If entering a custom refreshment, please assign proper usage. <<if $PC.refreshmentType == 0>>"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly<</if>>//
+//Flavor only; no mechanical effect. If entering a custom refreshment, please assign proper usage.
+<<if $PC.refreshmentType == 0>>"Smoke" 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>>//
 
 <br><br>
 
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 4818bd970a532ec3c6376a9d040fc2c05772c474..c2091f3c37a146ae38ef812be8fb331a564fc6a8 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -940,6 +940,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr
 ''fcanon'' for various fixes, massive improvements to the RA and wrangling my inabilty to spll gud.
 ''stuffedgameanon'' for fixes, streamlining the starting girls family code, family trees, unbelievable improvements to the games functionality, the sanityChecker, a tag checker and above ALL else; Improving the game's speed by an obscene amount.
 ''anon'' for a prototype foot job scene.
+''anon'' for writing forced marriages, extra escape outcomes and more player refreshment types.
 ''Bane70'' optimized huge swaths of code with notable professionalism.
 ''Circle Tritagonist'' provided several new collars and outfits.
 ''Qotsafan'' submitted bugfixes.
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 625cc8ea2bd1bdd462e7765725113455a2ccd8a1..04e2f6f5d444e8e5b1a63f8ac48ac09c651d643f 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -1,6 +1,6 @@
 :: init [nobr]
 
-<<set $ver = "0.10.0", $releaseID = 1003>>
+<<set $ver = "0.10.1", $releaseID = 1003>>
 
 /* This needs to be broken down into individual files that can be added to StoryInit instead. */
 
@@ -178,10 +178,10 @@
 <<set $useFSNames = 1>>
 <<set $seeDetails = 1>>
 <<set $seeDesk = 1>>
+<<set $seeBuilding = 1>>
 <<set $seeArcology = 1>>
 <<set $seeFCNN = 1>>
 <<set $seeBuy = 1>>
-<<set $seeArcology = 1>>
 <<set $seeExtreme = 0>>
 <<set $seeHyperPreg = 0>>
 <<set $seeCircumcision = 1>>
@@ -617,7 +617,6 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $futaAddiction = 0>>
 
 <<set $IDNumber = 1>>
-<<set $RulesID = 3>>
 
 <<set $week = 1>>
 <<set $month = "January">>
@@ -766,14 +765,56 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $repGain = 0>>
 <<set $repLoss = 0>>
 <<set $cashLastWeek = 0>>
-<<set $AProsperityCap = 60>>
-<<set $ACitizens = ($AProsperityCap+200)*16>>
-<<set $ASlaves = ($AProsperityCap+200)*4>>
-<<set $AHelots = $ASlaves*2>>
+
+<<set $arcologyUpgrade = {drones: 0, hydro: 0, apron: 0, grid: 0, spire: 0}>>
+
+<<set $AGrowth = 2>>
+<<set $ACitizens = 4000>>
+<<set $ASlaves = 1000>>
+
+<<set $sectors = []>>
+<<set $AS = {type: "Penthouse", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+<<set $AS = {type: "Barracks", ownership: 1}>><<set $sectors.push($AS)>>
+<<for _i = 0; _i < 12; _i++>>
+	<<set _j = random(5,28)>>
+	<<if $sectors[_j].ownership == 1>>
+		<<set $sectors[_j].ownership = 0>>
+	<<else>>
+		<<set _i-->>
+	<</if>>
+<</for>>
+
 <<set $helots = 0>>
 <<set $fuckdolls = 0>>
 <<set $menialBioreactors = 0>>
-<<set $AGrowth = 2>>
 <<set $prestigeAuctioned = 0>>
 <<set $slaveMarketLimit = 20>>
 <<set $slavesSeen = 0>>
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index 0256fce795701f1822d34a276af3988c21cb3a9c..f38f43b5a18037c9b696219ab0af9a6d5434d105 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -518,7 +518,7 @@ window.canDoVaginal = function(slave) {
 		return false;
 	} else if (slave.vaginalAccessory == "combined chastity") {
 		return false;
-	} 
+	}
 	return true;
 };
 
@@ -760,45 +760,26 @@ window.relationTargetWord = function(slave) {
 };
 
 window.ruleApplied = function(slave, ID) {
-	if (!slave) {
-		return null;
-	}else if (!slave.currentRules) {
+	if (!slave || !slave.currentRules)
 		return null;
-	} else {
-		for(var d=0; d < slave.currentRules.length; ++d){
-			if(slave.currentRules[d] == ID){
-				return true;
-			}
-		}return false;
-	}
+	return slave.currentRules.includes(ID);
 };
 
 window.ruleAssignment = function(applyAssignment, assignment) {
-	if (!applyAssignment) {
+	if (!applyAssignment)
 		return false;
-	}
-	for(var d=0; d < applyAssignment.length; ++d){
-		if(applyAssignment[d] == assignment){
-			return true;
-		}
-	}return false;
+	return applyAssignment.includes(assignment);
 };
 
 window.ruleFacility = function(applyFacility, facility) {
-	for(var d=0; d < applyFacility.length; ++d){
-		if(applyFacility[d] == facility){
-			return true;
-		}
-	}return false;
+	if (!applyFacility)
+		return false;
+	return applyFacility.includes(facility);
 };
 
 window.ruleExcludeSlaveFacility = function(rule, slave) {
-	if (!slave) {
-		return null;
-	}else if (!rule) {
+	if (!slave || !rule || !rule.excludeFacility) {
 		return null;
-	}else if (!rule.excludeFacility) {
-		return false;
 	} else {
 		for(var d=0; d < rule.excludeFacility.length; ++d){
 			if(rule.excludeFacility[d] == "hgsuite"){
@@ -886,19 +867,16 @@ window.ruleExcludeSlaveFacility = function(rule, slave) {
 					return true;
 				}
 			}
-		}return false;
+		}
+		return false;
 	}
 };
 
 window.ruleAppliedToSlaveFacility = function(rule, slave) {
-	if (!slave) {
-		return null;
-	}else if (!rule) {
+	if (!slave || !rule || !rule.facility) {
 		return null;
-	}else if (!rule.facility) {
-		return false;
 	} else {
-		for(var d = 0; d < rule.facility.length; ++d){
+		for(var d=0; d < rule.facility.length; ++d){
 			if(rule.facility[d] == "hgsuite"){
 				if(slave.assignment == "live with your Head Girl" ){
 					return true;
@@ -989,43 +967,25 @@ window.ruleAppliedToSlaveFacility = function(rule, slave) {
 };
 
 window.ruleSlaveSelected = function(slave, rule) {
-	if (!slave) {
+	if (!slave || !rule) {
 		return null;
-	}else if (!rule) {
-		return null;
-	}else if (!rule.selectedSlaves) {
+	} else if (!rule.selectedSlaves) {
 		return false;
-	} else {
-		for(var d=0; d < rule.selectedSlaves.length; ++d){
-			if(slave.ID == rule.selectedSlaves[d]){
-				return true;
-			}
-		}return false;
 	}
+	return rule.selectedSlaves.includes(slave.ID);
 };
 
 window.ruleSlaveExcluded = function(slave, rule) {
-	if (!slave) {
-		return null;
-	}else if (!rule) {
+	if (!slave || !rule) {
 		return null;
-	}else if (!rule.excludedSlaves) {
+	} else if (!rule.excludedSlaves) {
 		return false;
-	} else {
-		for(var d=0; d < rule.excludedSlaves.length; ++d){
-			if(slave.ID == rule.excludedSlaves[d]){
-				return true;
-			}
-		}return false;
 	}
+	return rule.excludedSlaves.includes(slave.ID);
 };
 
 window.hasSurgeryRule = function(slave, rules) {
-	if (!slave) {
-		return false;
-	}else if (!rules) {
-		return false;
-	}else if (!slave.currentRules) {
+	if (!slave || !rules || !slave.currentRules) {
 		return false;
 	}else {
 		for(var d=rules.length-1; d >= 0; --d){
@@ -1040,907 +1000,234 @@ window.hasSurgeryRule = function(slave, rules) {
 	}
 };
 
-window.lastPregRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return false;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].preg == -1){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
-};
-
 window.hasHColorRule = function(slave, rules) {
-	if (!slave) {
-		return false;
-	}else if (!rules) {
-		return false;
-	}else if (!slave.currentRules) {
-		return false;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hColor != "no default setting"){
-						return true;
-					}
-				}
-			}
-		}return false;
-	}
+	return lastRuleFor(slave, rules, "hColor") ? true : false;
 };
 
 window.hasHStyleRule = function(slave, rules) {
-	if (!slave) {
-		return false;
-	}else if (!rules) {
-		return false;
-	}else if (!slave.currentRules) {
-		return false;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hStyle != "no default setting"){
-						return true;
-					}
-				}
-			}
-		}return false;
-	}
+	return lastRuleFor(slave, rules, "hStyle") ? true : false;
 };
 
 window.hasEyeColorRule = function(slave, rules) {
-	if (!slave) {
-		return false;
-	}else if (!rules) {
-		return false;
-	}else if (!slave.currentRules) {
-		return false;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hStyle != "no default setting"){
-						return true;
-					}
-				}
-			}
-		}return false;
-	}
+	return lastRuleFor(slave, rules, "eyeColor") ? true : false;
 };
 
-window.lastEyeWearRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
+window.lastRuleFor = function(slave, rules, what) {
+	if (!slave  || !rules || !slave.currentRules)
 		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].eyewear != "no default setting"){
-						return rules[d];
-					}
-				}
+
+	for (var d = rules.length-1; d >= 0; --d) {
+		if (ruleApplied(slave, rules[d].ID)) {
+			if (rules[d][what] !== "no default setting") {
+				return rules[d];
 			}
-		}return null;
+		}
 	}
+
+	return null;
 };
 
-window.lastEyeColorRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
+window.lastPregRule = function(slave, rules) {
+	if (!slave || !rules)
 		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].eyeColor != "no default setting"){
-						return rules[d];
-					}
-				}
+	if (!slave.currentRules)
+		return false;
+
+	for (var d = rules.length-1; d >= 0; --d){
+		if (ruleApplied(slave, rules[d].ID)) {
+			if (rules[d].preg == -1){
+				return rules[d];
 			}
-		}return null;
+		}
 	}
+
+	return null;
+};
+
+window.lastEyeWearRule = function(slave, rules) {
+	return lastRuleFor(slave, rules, "eyewear");
+};
+
+window.lastEyeColorRule = function(slave, rules) {
+	return lastRuleFor(slave, rules, "eyeColor");
 };
 
 window.lastMakeupRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].makeup != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "makeup");
 };
 
 window.lastNailsRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].nails != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "nails");
 };
 
 window.lastHColorRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hColor != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "hColor");
 };
 
 window.lastHStyleRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hStyle != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "hStyle");
 };
 
 window.lastHLengthRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].hLength != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "hLength");
 };
 
 window.lastPubicHColorRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].pubicHColor != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "pubicHColor");
 };
 
 window.lastPubicHStyleRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].pubicHStyle != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "pubicHStyle");
 };
 
 window.lastUnderArmHColorRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){	
-			for(var e=0; e < slave.currentRules.length;++e){	
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].underArmHColor != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "underArmHColor");
 };
 
 window.lastUnderArmHStyleRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){	
-			for(var e=0; e < slave.currentRules.length;++e){	
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].underArmHStyle != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "underArmHStyle");
 };
 
 window.lastNipplesPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].nipplesPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "nipplesPiercing");
 };
+
 window.lastAreolaePiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].areolaePiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "areolaePiercing");
 };
+
 window.lastClitPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].clitPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "clitPiercing");
 };
+
 window.lastClitSettingRule = function(slave, rules) {
-    if (!slave) {
-        return null;
-    }else if (!rules) {
-        return null;
-    }else if (!slave.currentRules) {
-        return null;
-    }else {
-        for(var d=rules.length-1; d >= 0;--d){
-            for(var e=0; e < slave.currentRules.length;++e){
-                if(slave.currentRules[e] == rules[d].ID){
-                    if (rules[d].clitSetting != "no default setting"){
-                        return rules[d];
-                    }
-                }
-            }
-        }return null;
-    }
+	return lastRuleFor(slave, rules, "clitSetting");
 };
+
 window.lastClitSettingXYRule = function(slave, rules) {
-    if (!slave) {
-        return null;
-    }else if (!rules) {
-        return null;
-    }else if (!slave.currentRules) {
-        return null;
-    }else {
-        for(var d=rules.length-1; d >= 0;--d){
-            for(var e=0; e < slave.currentRules.length;++e){
-                if(slave.currentRules[e] == rules[d].ID){
-                    if (rules[d].clitSettingXY != "no default setting"){
-                        return rules[d];
-                    }
-                }
-            }
-        }return null;
-    }
+	return lastRuleFor(slave, rules, "clitSettingXY");
 };
+
 window.lastClitSettingXXRule = function(slave, rules) {
-    if (!slave) {
-        return null;
-    }else if (!rules) {
-        return null;
-    }else if (!slave.currentRules) {
-        return null;
-    }else {
-        for(var d=rules.length-1; d >= 0;--d){
-            for(var e=0; e < slave.currentRules.length;++e){
-                if(slave.currentRules[e] == rules[d].ID){
-                    if (rules[d].clitSettingXX != "no default setting"){
-                        return rules[d];
-                    }
-                }
-            }
-        }return null;
-    }
+	return lastRuleFor(slave, rules, "clitSettingXX");
 };
+
 window.lastClitSettingEnergyRule = function(slave, rules) {
-    if (!slave) {
-        return null;
-    }else if (!rules) {
-        return null;
-    }else if (!slave.currentRules) {
-        return null;
-    }else {
-        for(var d=rules.length-1; d >= 0;--d){
-            for(var e=0; e < slave.currentRules.length;++e){
-                if(slave.currentRules[e] == rules[d].ID){
-                    if (rules[d].clitSettingEnergy != "no default setting"){
-                        return rules[d];
-                    }
-                }
-            }
-        }return null;
-    }
+	return lastRuleFor(slave, rules, "clitSettingEnergy");
 };
+
 window.lastVaginaPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].vaginaPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "vaginaPiercing");
 };
+
 window.lastDickPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].dickPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "dickPiercing");
 };
+
 window.lastAnusPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].anusPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "anusPiercing");
 };
+
 window.lastLipsPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].lipsPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "lipsPiercing");
 };
+
 window.lastTonguePiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].tonguePiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "tonguePiercing");
 };
+
 window.lastEarPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].earPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "earPiercing");
 };
+
 window.lastEyebrowPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].earPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "eyebrowPiercing");
 };
+
 window.lastNosePiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].nosePiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "nosePiercing");
 };
+
 window.lastNavelPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].navelPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "navelPiercing");
 };
+
 window.lastCorsetPiercingRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].corsetPiercing != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "corsetPiercing");
 };
+
 window.lastBoobsTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].boobsTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "boobsTat");
 };
+
 window.lastButtTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].buttTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "buttTat");
 };
+
 window.lastVaginaTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].vaginaTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "vaginaTat");
 };
+
 window.lastDickTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].dickTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "dickTat");
 };
+
 window.lastAnusTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].anusTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "anusTat");
 };
+
 window.lastLipsTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].lipsTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "lipsTat");
 };
+
 window.lastShouldersTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].shouldersTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "shouldersTat");
 };
+
 window.lastArmsTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].armsTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "armsTat");
 };
+
 window.lastLegsTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].legsTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "legsTat");
 };
+
 window.lastStampTatRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].stampTat != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastRuleFor(slave, rules, "stampTat");
 };
 
-window.lastLactationSurgeryRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
+window.lastSurgeryRuleFor = function(slave, rules, what) {
+	if (!slave || !rules || !slave.currentRules)
 		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			if (!rules[d].surgery) {
-				return null;
-			}
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].surgery.lactation != "no default setting"){
-						return rules[d];
-					}
-				}
+
+	for (var d = rules.length-1; d >= 0; --d) {
+		if (!rules[d].surgery)
+			return null;
+
+		if (ruleApplied(slave, rules[d].ID)) {
+			if (rules[d].surgery[what] != "no default setting") {
+				return rules[d];
 			}
-		}return null;
+		}
 	}
+
+	return null;
 };
+
+window.lastLactationSurgeryRule = function(slave, rules) {
+	return lastSurgeryRuleFor(slave, rules, "lactation");
+}
+
 window.lastLipSurgeryRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			if (!rules[d].surgery) {
-				return null;
-			}
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].surgery.lips != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastSurgeryRuleFor(slave, rules, "lips");
 };
+
 window.lastBoobSurgeryRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			if (!rules[d].surgery) {
-				return null;
-			}
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].surgery.boobs != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastSurgeryRuleFor(slave, rules, "boobs");
 };
+
 window.lastButtSurgeryRule = function(slave, rules) {
-	if (!slave) {
-		return null;
-	}else if (!rules) {
-		return null;
-	}else if (!slave.currentRules) {
-		return null;
-	}else {
-		for(var d=rules.length-1; d >= 0;--d){
-			if (!rules[d].surgery) {
-				return null;
-			}
-			for(var e=0; e < slave.currentRules.length;++e){
-				if(slave.currentRules[e] == rules[d].ID){
-					if (rules[d].surgery.butt != "no default setting"){
-						return rules[d];
-					}
-				}
-			}
-		}return null;
-	}
+	return lastSurgeryRuleFor(slave, rules, "butt");
 };
 
 window.checkThresholds = function(number, rule) {
@@ -1996,13 +1283,6 @@ window.checkThresholds = function(number, rule) {
 	}
 };
 
-window.removeFromArray = function(arr, val) {
-	for (var i = 0; i < arr.length; i++)
-		if (val == arr[i])
-			return arr.splice(i,1);
-	return null;
-};
-
 window.milkAmount = function(slave) {
 	var milk;
 	var calcs;
diff --git a/src/npc/fAbuse.tw b/src/npc/fAbuse.tw
index 23629ecd0f321e32e2be280ed94d242ed97a027d..2f459720ff1c0d1c56603cfb9f022be98f765298 100644
--- a/src/npc/fAbuse.tw
+++ b/src/npc/fAbuse.tw
@@ -249,11 +249,11 @@
 <<elseif ($activeSlave.dick > 0) && ($activeSlave.balls > 0)>>
 	You ram <<if ($PC.dick == 0)>>the strap-on<<else>>your dick<</if>> into her sissy butt without lubricant. As she flinches you announce that she'll be taking part in giving herself anal pain. She humps into you lamely, so you administer a truly agonizing slap to her balls<<if ($PC.dick == 0)>><<else>> that makes her anal ring stiffen deliciously around your dick<</if>>. To avoid further punishment she fucks herself against you almost hard enough to hurt herself.<<if ($PC.vagina == 1) && ($PC.dick == 1)>> Fortunately for her, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.<</if>> You orgasm explosively
 	<<AnalVCheck>>
-	<<set $asspain = 1>>
+	<<set _asspain = 1>>
 <<elseif ($activeSlave.dick > 0)>>
 	You ram <<if ($PC.dick == 0)>>the strap-on<<else>>your dick<</if>> into her gelded butt without lubricant and sodomize her as hard as you can without damaging your property.<<if $PC.vagina == 1>> Fortunately for her, this gets you so wet that some of your pussyjuice makes it down onto your shaft and serves as improvised lube.<</if>> She's such a slut that she shows signs of enjoyment, but you put a stop to that whenever it happens by slapping and flicking her cock. You cum explosively
 	<<AnalVCheck>>
-	<<set $asspain = 1>>
+	<<set _asspain = 1>>
 <<else>>
 	She's got no special physical targets for abuse, so you just rape her hard and fast, raining stinging slaps down on her as you do. She cries and whimpers; you finish
 	<<BothVCheck>>
diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw
index 58cb39cc7f32b67ef86cc182e2577240991e3441..b887eb45f69e0b18a9e307129cadf95332c34770 100644
--- a/src/npc/fFeelings.tw
+++ b/src/npc/fFeelings.tw
@@ -350,10 +350,19 @@ My favorite part of my body i<<s>>
 			pu<<ss>>y, <<Master>>," she <<say>>s eagerly. "I can ju<<s>>t imagine your clit again<<s>>t my tongue.
 		<</if>>
 	<<elseif ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60)>>
-		<<if $PC.boobs == 0>>Your <<s>>trong arm<<s>> feel<<s>> <<s>>o good when you hold me down.<</if>>
+		<<if $PC.boobs == 0>>
+			Your <<s>>trong arm<<s>> feel<<s>> <<s>>o good when you hold me down.
+		<<else>>
+			<<if $PC.boobsBonus > 1>>
+				The weight of your boob<<s>> on my back feel<<s>> <<s>>o good when you pin me down.
+			<<else>>
+				Your tit<<s>> feel <<s>>o good on my back when you pin me down.
+			<</if>>
+		<</if>>
 	<<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60)>>
 		<<if $PC.dick == 1>>
 			Your cum i<<s>> incredible, <<Master>>. I would drink every drop of it, if I could.
+			<<if $PC.ballsImplant > 0>>If only tho<<s>>e lovely ball<<s>> made even more cum for you.<</if>>
 			<<if $PC.vagina == 1>>Oh, your femcum, too!<</if>>
 		<</if>>
 	<<elseif ($activeSlave.fetish == "humiliation") && ($activeSlave.fetishStrength > 60)>>
@@ -364,9 +373,20 @@ My favorite part of my body i<<s>>
 	<<elseif ($activeSlave.fetish == "buttslut") && ($activeSlave.fetishStrength > 60)>>
 		<<if $PC.dick == 1>>I love your cock, <<Master>>," she <<say>>s	eagerly. "I love it in my backdoor.<</if>>
 	<<elseif ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60)>>
-		<<if $PC.boobs == 1>>You, uh." She looks down, hesitating. "You have really ni<<c>>e breast<<s>>, <<Master>>.<</if>>
+		<<if $PC.preg > 30>>
+			You, uh." She looks down, hesitating. "Your belly i<<s>> <<s>>o big and wonderful, I ju<<s>> want to feel it,
+		<<elseif $PC.preg > 20>>
+			You, uh." She looks down, hesitating. "You have a really lovely belly,
+		<<elseif $PC.boobs == 1>>
+			You, uh." She looks down, hesitating. "You have really ni<<c>>e breast<<s>>,
+		<</if>>
+		<<Master>>.
 	<<elseif ($activeSlave.fetish == "boobs") && ($activeSlave.fetishStrength > 60)>>
-		<<if $PC.boobs == 1>>Your brea<<s>>t<<s>> are incredible, <<Master>>," she <<say>>s	eagerly. "I love them.
+		<<if $PC.boobsBonus == 3>>Your brea<<s>>t<<s>> are giant, <<Master>>," she <<say>>s eagerly. "I just want to bury my fa<<c>>e in them.
+		<<else $PC.boobsBonus == 2>>Your brea<<s>>t<<s>> are huge, <<Master>>," she <<say>>s eagerly. "I love them.
+		<<else $PC.boobsBonus == 1>>Your brea<<s>>t<<s>> are so big and lovely, <<Master>>," she <<say>>s eagerly. "I love them.
+		<<elseif $PC.boobs == 1>>Your brea<<s>>t<<s>> are incredible, <<Master>>," she <<say>>s	eagerly. "I love them.
+		<</if>>
 	<<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXX > 80)>>
 		<<if $PC.boobs == 1>>You're, uh." She looks down, hesitating. "You're really hot, <<Master>>.<</if>>
 	<<elseif ($activeSlave.attrKnown == 1) && ($activeSlave.attrXY > 80)>>
@@ -853,7 +873,6 @@ My favorite part of my body i<<s>>
 	I do my be<<s>>t to <<s>>upport your vi<<s>>ion for the future.
 <<else>>
 	I try to conform to your vi<<s>>ion for the future.
-	<</if>>
 <</if>>
 
 <<if $arcologies[0].FSRomanRevivalist >= 10>>
@@ -952,7 +971,7 @@ My favorite part of my body i<<s>>
 		I really hope we can <<s>>ave humanity like thi<<s>>.
 	<<elseif ($activeSlave.preg < 0 || $activeSlave.ovaries == 0)>>
 		I'm relieved I fit into your vi<<s>>ion of the future.
-	<else>>
+	<<else>>
 		I know I'm not a perfect fit for your vi<<s>>ion of the future, but I'll do my be<<s>>t to be a good girl.
 	<</if>>
 <</if>>
@@ -1017,6 +1036,7 @@ My favorite part of my body i<<s>>
 		I wish I could make milk for the arcology.
 	<</if>>
 <</if>>
+
 <</if>>
 
 <<if ($activeSlave.devotion > 75)>>
diff --git a/src/pregmod/breederProposal.tw b/src/pregmod/breederProposal.tw
index dc1521686d86d54af8aa57b5a6a3cb083423a8d9..4d86077a66f93c64657ac42e54909ff32caaf427 100644
--- a/src/pregmod/breederProposal.tw
+++ b/src/pregmod/breederProposal.tw
@@ -1,7 +1,5 @@
 :: Breeder Proposal [nobr]
  
-<<set $propPass = 0>>
-
 You draft a proposal to the Societal Elite proposing the use of specially tested slaves as breeding stock. If they can pass the tests required to join the societal elite; even as slaves, their bodies can prove valuable to furthering eugenics. They will gain no additional rights, but their wombs will be used to birth elite children; helping stave off potential threats of inbreeding and adding possible missed beneficial traits into the Elite's gene pool.
 <br><br>
 Within the hour, you are called before The Societal Elite.
diff --git a/src/pregmod/fSlaveSlaveDickConsummate.tw b/src/pregmod/fSlaveSlaveDickConsummate.tw
index 879d932bbeb837b6a53585bd9c0930d6bd8e8254..54a7c48bf784199377715519e35fd34b0c051927 100644
--- a/src/pregmod/fSlaveSlaveDickConsummate.tw
+++ b/src/pregmod/fSlaveSlaveDickConsummate.tw
@@ -1,35 +1,63 @@
 :: FSlaveSlaveDick Consummate
-
-/% Needs work. A lot of fucking work %/
- 
 <<nobr>>
 
 You take a look at the bound toy.
 
 <<if $activeSlave.mother == $slaverapistx.ID>>
-	<<if $activeSlave.fetish == "perverted">>
-		$activeSlave.slaveName seems paralyzed, looking at her mother standing above her with disbelief, curiosity...and excitement?
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName is looking up at her mother, fully naked, her pussy visible and captivating. Her breathing is fast and her nipples hard.
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her mother standing above her with disbelief, curiosity...and excitement?
+			<</if>>				
 	<<else>>
-		$activeSlave.slaveName looks with horror at her mother, knowing what will soon happen.
+		$activeSlave.slaveName looks with horror at her mother, knowing what will soon happen.	
 	<</if>>
 <</if>>
 
 <<if $slaverapistx.mother == $activeSlave.ID>>
-	<<if $activeSlave.fetish == "perverted">>
-		$activeSlave.slaveName seems paralyzed, looking at her daughter with a look of disbelief, hesitation... and excitement?
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName is looking up at her daughter, fully naked, her pussy visible and captivating. Her breathing is fast and her nipples hard.
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her daughter with a look of disbelief, hesitation... and excitement?
+			<</if>>		
+	<<else>>
+		$activeSlave.slaveName looks with horror at her daughter, knowing what will soon happen.		
+	<</if>>
+<</if>>
+
+
+<<if (areSisters($activeSlave, $slaverapistx) > 0)>>
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName seems paralyzed with fear, but her nipples are already hard and her face flushed. Secretly, she may want this.	
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her sister standing above her with disbelief, curiosity...and excitement?
+			<</if>>			
 	<<else>>
-		$activeSlave.slaveName looks with horror at her daughter, knowing what will soon happen.
+		$activeSlave.slaveName looks with horror at her sister, knowing what will soon happen.	
 	<</if>>
+	
+	<<if ($slaverapistx.fetish == "perverted")>>
+			<<if ($slaverapistx.energy > 60)>>
+				$slaverapistx.slaveName is looking down at her sisters bound and helpless form with a look of hunger.
+			<<else>>
+				$slaverapistx.slaveName seems paralyzed, looking down at her bound sister with disbelief, curiosity...and excitement?
+			<</if>>		
+	<<else>>
+		$slaverapistx.slaveName looks with horror down at her bound sister, knowing what will soon happen.	
+	<</if>>	
 <</if>>
 
 <<set $slaverapistx.vaginalCount += 1>>
 <<set $vaginalTotal += 1>>
 
 		
-<<if ($activeSlave.energy > 50)>>
-	<<if ($activeSlave.attrXX > 65)>>
+<<if ($activeSlave.energy > 60)>>
+	<<if ($activeSlave.attrXX > 60)>>
 			<<if ($activeSlave.fetish == "submissive")>>
-				Since $activeSlave.slaveName likes pussy and being dominated, her member becomines rock hard in an instant.
+				Since $activeSlave.slaveName likes pussy and being dominated, and with her good libido her member becomes rock hard in an instant.
 			<<else>>
 				Since $activeSlave.slaveName likes pussy, all it takes is a bit of teasing to get her member hard.
 			<</if>>			
@@ -43,7 +71,7 @@ You take a look at the bound toy.
 
 
 <<if ($activeSlave.devotion > 50)>>
-	Since $activeSlave.slaveName is devoted, restrains are more for show than for praactical purpose.
+	Since $activeSlave.slaveName is devoted, restraints are more for show than for practical purpose.
 <<elseif ($activeSlave.devotion > 20)>>
 	$activeSlave.slaveName is obedient, but this might be too much for her, so you restrain her, making sure she can't resist. 
 <<else>>
@@ -58,16 +86,24 @@ Next, you see to $slaverapistx.slaveName.
 
 
 <<if $activeSlave.mother == $slaverapistx.ID>>
-	<<if $slaverapistx.fetish == "perverted">>
-		$slaverapistx.slaveName is well aware that she is about to rape her own daughter, but despite that seems to feel some arousal at the thought.
+	<<if ($slaverapistx.fetish == "perverted")>>
+		<<if ($slaverapistx.attrXX > 60)>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own daughter, and seems quite eager.
+		<<else>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own daughter, but despite that seems to feel some arousal at the thought.
+		<</if>>
 	<<else>>
 		$slaverapistx.slaveName is well aware that she is about to rape her own daughter and is understandingly distrurbed.	
 	<</if>>
 <</if>>
 
 <<if $slaverapistx.mother == $activeSlave.ID>>
-	<<if $slaverapistx.fetish == "perverted">>
-		$activeSlave.slaveName is well aware that she is about to rape her own mother, but despite that seems to feel some arousal at the thought.
+	<<if ($slaverapistx.fetish == "perverted")>>
+		<<if ($slaverapistx.attrXX > 60)>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own mother, and seems quite eager.
+		<<else>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own mother, but despite that seems to feel some arousal at the thought.
+		<</if>>	
 	<<else>>
 		$slaverapistx.slaveName is well aware that she is about to rape her own mother and is understandingly distrurbed.	
 	<</if>>
@@ -93,25 +129,25 @@ Next, you see to $slaverapistx.slaveName.
 <<set $activeSlave.penetrativeCount += 1>>
 <<set $penetrativeTotal += 1>>
 
-<<if ($slaverapistx.fetish == "dom") && ($slaverapistx.fetishStrength > 60) && ($slaverapistx.fetishKnown == 1) && ($slaverapistx.vagina == 0)>>
-	She lowers her virgin pussy onto $activeSlave.slaveName waiting member, impaling herself slowly and teasing her bound victim. This act @@.lime; breaks in her pussy.@@
-	<<set $slaverapistx.vagina to 1>>
+<<if ($slaverapistx.fetish == "dominant") && ($slaverapistx.fetishStrength > 20) && (($slaverapistx.vagina == 0)>>
+	She lowers her virgin pussy onto $activeSlave.slaveName waiting member, impaling herself slowly and teasing her bound victim. This act @@color:lime; breaks in her pussy.@@
+	<<set $slaverapistx.vagina = 1>>
 	<<set  $slaverapistx.devotion += 4>>
 	<<set  $slaverapistx.fetishStrength += 1>>	
 	
-<<elseif $slaverapistx.devotion > 20 && $activeSlave.vagina == 0>>
-	She accepts your orders without comment and lowers her virgin pussy on $slaverapistx.slaveName's ready dick. She gasps in shock when she feels her hot seed. @@.hotpink;She is broken to slavery@@ by this application of her body, which naturally @@.lime;will break in her pussy.@@
-	<<set $activeSlave.vagina to 1>>
+<<elseif  $slaverapistx.devotion > 20) && (($activeSlave.vagina == 0) >>
+	She accepts your orders without comment and lowers her virgin pussy on $slaverapistx.slaveName's ready dick. She gasps in shock when she feels her hot seed. @@color:hotpink;She is broken to slavery@@ by this application of her body, which naturally @@color:lime;will break in her pussy.@@
+	<<set $activeSlave.vagina = 1>>
 	<<set  $activeSlave.devotion += 10>>
-<<elseif $activeSlave.devotion >= -20 && $activeSlave.vagina == 0>>
-	She is clearly unhappy at the idea of losing her pearl of great price to $slaverapistx.slaveName; this probably isn't what she imagined her first real sex would be like. Worse, she knows she's fertile and realizes she'll likely get pregnant. Nevertheless, @@.hotpink;she is broken to slavery@@ by this application of her body, which naturally @@.lime;will break in her pussy.@@
-	<<set $activeSlave.vagina to 1>>
+<<elseif ($activeSlave.devotion >= -20) && (($activeSlave.vagina == 0)>>
+	She is clearly unhappy at the idea of losing her pearl of great price to $slaverapistx.slaveName; this probably isn't what she imagined her first real sex would be like. She fears he might get pregnant. Nevertheless, @@color:hotpink;she is broken to slavery@@ by this application of her body, which naturally @@color:lime;will break in her pussy.@@
+	<<set $activeSlave.vagina = 1>>
 	<<set  $activeSlave.devotion += 4>>
-<<elseif $activeSlave.vagina == 0>>
-	As you anticipated, she refuses to give $slaverapistx.slaveName her virginity. You restrain her despite her @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;will break in her pussy.@@
-	<<set $activeSlave.devotion -= 5>>
-	<<set $activeSlave.trust -= 5>>
-	<<set $activeSlave.vagina to 1>>
+<<elseif (($activeSlave.vagina == 0)>>
+	As you anticipated, she refuses to give $slaverapistx.slaveName her virginity. However, since she is restrained her resistance amounts to @@color:mediumorchid;horrified tears@@ and @@color:gold;frightened begging.@@ Naturally, this cruel act @@color:lime;will break in her pussy.@@
+	<<set  $activeSlave.devotion -= 5>>
+	<<set  $activeSlave.trust -= 5>>
+	<<set $activeSlave.vagina = 1>>
 
 
 <<elseif ($activeSlave.amp == 1)>>
@@ -131,7 +167,7 @@ Next, you see to $slaverapistx.slaveName.
 <br><br>
 
 <<if ($activeSlave.devotion < -20) && ($slaverapistx.devotion < -20)>>
-	Since you have two restrained slaves, it's up to you to do all the work. Since $activeSlave.slaveName is already lying on the bed, you maneuver $slaverapistx.slaveName's pussy into place. The two slaves make no further moves until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. $slaverapistx.slaveName starts lowering herself very slowly, pulling back every time $activeSlave.slaveName's dick prodding her womanhood. After watching the sad display for a while, you use your own weight to suddely push her onto $activeSlave.slaveName, hilting her in one, scream-enducing move. $slaverapistx.slaveName seems more cooperative after that and you only have to occasionaly prod them with an electrial jolt to keep them going at a faster pace. Both slaves @@.mediumorchid;resent@@ what you made them do and @@.gold;fear you@@ as a result.
+	Since you have two restrained slaves, it's up to you to do all the work. Since $activeSlave.slaveName is already lying on the bed, you maneuver $slaverapistx.slaveName's pussy into place. The two slaves make no further moves until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. $slaverapistx.slaveName starts lowering herself very slowly, pulling back every time $activeSlave.slaveName's dick prods her womanhood. After watching the sad display for a while, you use your own weight to suddely push her onto $activeSlave.slaveName, hilting her in one, scream-enducing move. $slaverapistx.slaveName seems more cooperative after that and you only have to occasionaly prod them with an electrial jolt to keep them going at a faster pace. Both slaves @@color:mediumorchid;resent@@ what you made them do and @@color:gold;fear you@@ as a result.
 	<<set $activeSlave.devotion -= 5>>
 	<<set $slaverapistx.devotion -= 5>>
 	<<set $activeSlave.trust -= 5>>
@@ -139,28 +175,29 @@ Next, you see to $slaverapistx.slaveName.
 
 
 <<elseif ($slaverapistx.devotion < -20)>>
-	Since your dick slave is restrained, you order $slaverapistx.slaveName to kneel on the bed on top of $activeSlave.slaveName, and then maneuver her pussy into place. $slaverapistx.slaveName is uncooperative, so you push her down yourself and prod and slap her untill she starts to ride the cock with urgency. It doesn't take long for $activeSlave.slaveName to orgasm. She @@.mediumorchid;resents@@ what you made her do and @@.gold;fears you@@ as a result.
+	Since your dick slave is restrained, you order $slaverapistx.slaveName to kneel on the bed on top of $activeSlave.slaveName, and then maneuver her pussy into place. $slaverapistx.slaveName is uncooperative, so you push her down yourself and prod and slap her untill she starts to ride the cock with urgency. It doesn't take long for $activeSlave.slaveName to orgasm. She @@color:mediumorchid;resents@@ what you made her do and @@color:gold;fears you@@ as a result.
 	<<set $slaverapistx.devotion -= 5>>
 	<<set $slaverapistx.trust -= 5>>
 
-<<elseif ($slaverapistx.fetish == "dominant") && ($slaverapistx.fetishStrength > 60) && ($slaverapistx.devotion > 20)>>
-	You tie $activeSlave.slaveName on the bed with her dick defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave for her pleasure. She begins playing with her immediately, fondling, pinching and licking while bouncing on the meaty shaft. Occasionaly she stops, denying $activeSlave.slaveName the immediate orgasm and teasing her, fully enjoying her dominant role. By the end of the day $activeSlave.slaveName's abused, pent-up penis has shot a massive load, to her @@.gold;horror@@ and @@.mediumorchid;resentment,@@ while $slaverapistx.slaveName is lying next to her on the bed in a state of obvious @@.hotpink;satiation and bliss.@@
+<<elseif ($slaverapistx.fetish is "dominant") && ($slaverapistx.fetishStrength > 20) && ($slaverapistx.devotion > 20)>>
+	You tie $activeSlave.slaveName on the bed with her dick defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave for her pleasure. She begins playing with her immediately, fondling, pinching and licking while bouncing on the meaty shaft. Occasionaly she stops, denying $activeSlave.slaveName the immediate orgasm and teasing her, fully enjoying her dominant role. By the end of the day $activeSlave.slaveName's abused, pent-up penis has shot a massive load, to her @@color:gold;horror@@ and @@color:mediumorchid;resentment,@@ while $slaverapistx.slaveName is lying next to her on the bed in a state of obvious @@color:hotpink;satiation and bliss.@@
 	<<set $activeSlave.devotion -= 5>>
 	<<set $activeSlave.trust -= 5>>
 	<<set $slaverapistx.devotion += 4>>
 	
-<<elseif ($slaverapistx.fetish == "sadist") && ($slaverapistx.fetishStrength > 60) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
-	You tie $activeSlave.slaveName on the bed with her dick defenseless and available, and then tell the grinning $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to hurt and rape another slave for her pleasure. She begins playing with her immediately, slapping, pinching and licking her boobs while bouncing on the meaty shaft. Occasionaly she stops, denying $activeSlave.slaveName the immediate orgasm by painfully sqeezing and smacking the sensitive shaft. By the end of the day $activeSlave.slaveName's abused, pent-up penis has shot several massive and painfull loads, leaving her lying on the bed, @@.lime;shaking@@ in @@.gold;horror@@ and @@.red;utter exhaustion,@@ while $slaverapistx.slaveName is lying next to her on the bed in a state of obvious @@.hotpink;satiation and bliss.@@
+<<elseif ($slaverapistx.fetish is "sadist") && ($slaverapistx.fetishStrength > 20) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
+	You tie $activeSlave.slaveName on the bed with her dick defenseless and available, and then tell the grinning $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to hurt and rape another slave for her pleasure. She begins playing with her immediately, slapping, pinching and licking her boobs while bouncing on the meaty shaft. Occasionaly she stops, denying $activeSlave.slaveName the immediate orgasm by painfully sqeezing and smacking the sensitive shaft. By the end of the day $activeSlave.slaveName's abused, pent-up penis has shot several massive and painfull loads, leaving her lying on the bed, @@color:lime;shaking@@ in @@color:gold;horror@@ and @@color:red;utter exhaustion,@@ while $slaverapistx.slaveName is lying next to her on the bed in a state of obvious @@color:hotpink;satiation and bliss.@@
 	<<set $activeSlave.health -= 10>>
-	<<set $activeSlave.energy += 5>>
+	<<set $activeSlave.energy += 2>>	
 	<<set $activeSlave.trust -= 8>>
 	<<set $slaverapistx.devotion += 5>>	
 
-<<elseif ($slaverapistx.energy > 95) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
-	You arrange $activeSlave.slaveName on the bed with her cock defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave, just for the perverted novelty of the act. She rides the hepless cock trough seveal orgasms. By the end of the day $slaverapistx.slaveName's cunt is dripping cum, to her obvious @@.hotpink;satiation and bliss.@@ $activeSlave.slaveName is lying next to her on the bed in a state of @@.mediumorchid;resentment,@@ and @@.red;fatigue,@@
+<<elseif ($slaverapistx.energy > 95) && ($slaverapistx.devotion > 20)>>
+	You arrange $activeSlave.slaveName on the bed with her cock defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave, just for the perverted novelty of the act. She rides the hepless $activeSlave.slaveName trough seveal ejaculating orgasms. In the short breaks between them, she testes her pussy. By the end of the day $slaverapistx.slaveName's cunt is dripping cum, to her obvious @@color:hotpink;satiation and bliss.@@  $activeSlave.slaveName is lying next to her on the bed in a state of @@color:mediumorchid;resentment,@@and @@color:red;fatigue,@@, the entire experience having an @@color:lime;impact on her libido.@@
 	<<set $activeSlave.devotion -= 5>>
 	<<set $activeSlave.health -= 5>>
 	<<set $slaverapistx.devotion += 4>>
+	<<set $activeSlave.energy += 5>>	
 
 <<elseif ($activeSlave.devotion <= 20) || ($slaverapistx.devotion <= 20)>>
 	You tie $activeSlave.slaveName onto the bed and tell $slaverapistx.slaveName to get on with it. They fuck mechanically, gazing with roiling emotions into each others' eyes. They do seem to come to some sort of a nonverbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves. As they clean themelves and exit, you notice $slaverapistx.slaveName's looking a little more longignly at $activeSlave.slaveName.
@@ -170,11 +207,11 @@ Next, you see to $slaverapistx.slaveName.
 
 
 <<else>>
-	The two slaves turn eagerly to the business of sex. $slaverapistx.slaveName is happily riding $activeSlave.slaveName, who ocassionlay trusts her hips up. After a little while, when $slaverapistx.slaveName bends down to engage in passionate kissing, you come over and penetrate $activeSlave.slaveName's free vagina with your <<if $PC.dick ==1>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated while restrained, she comes indecently hard. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh.
-	<<set  $activeSlave.devotion += 8>>
-	<<set  $slaverapistx.devotion += 4>>
-	<<set  $activeSlave.energy += 2>>
-	<<set  $slaverapistx.energy += 2>>
+	The two slaves turn eagerly to the business of sex. $slaverapistx.slaveName is happily riding $activeSlave.slaveName, who ocassionlay trusts her hips up. After a little while, when $slaverapistx.slaveName bends down to engage in passionate kissing, you come over and penetrate $activeSlave.slaveName's free vagina with your <<if $PC.dick ==1>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated while restrained, she comes indecently hard. The two of them collapse into an exhausted, @@color:hotpink;happy@@ pile of slave flesh.
+	<<set $activeSlave.devotion += 8>>
+	<<set $slaverapistx.devotion += 4>>
+	<<set $activeSlave.energy += 2>>
+	<<set $slaverapistx.energy += 2>>
 
 <</if>>
 
@@ -184,7 +221,7 @@ Throughout the week, you keep $activeSlave.slaveName's dick intimate with $slave
 				
 				
 			/% pregnancy test? %/				
-<<if canGetPregnant($slaverapistx)>>
+<<if canImpreg($slaverapistx, $activeSlave)>>
 	<<if (Random(1,100) >= 75)>>
 			<<set $slaverapistx.preg = 1>>
 			<<set $slaverapistx.pregSource = $activeSlave.ID>>
diff --git a/src/pregmod/fSlaveSlaveVagConsummate.tw b/src/pregmod/fSlaveSlaveVagConsummate.tw
index 0e690dcf4584cbac128484ed655103e77f6f47fc..8640cee9da6e2f94de8bfb74e56467d7677139b5 100644
--- a/src/pregmod/fSlaveSlaveVagConsummate.tw
+++ b/src/pregmod/fSlaveSlaveVagConsummate.tw
@@ -1,86 +1,187 @@
 :: FSlaveSlaveVag Consummate
- 
+
+<<if $slaverapistx.dick == 1>>
+		<<set $dicksize = "pathetic">>
+<<elseif ($slaverapistx.dick == 2)>>
+		<<set $dicksize = "tiny">>
+<<elseif ($slaverapistx.dick = 3)>>
+		<<set $dicksize = "average">>
+<<elseif ($slaverapistx.dick == 4)>>
+		<<set $dicksize = "big">>
+<<elseif ($slaverapistx.dick == 5)>>
+		<<set $dicksize = "huge">>
+<<elseif ($slaverapistx.dick == 6)>>
+		<<set $dicksize = "gigantic">>
+<<elseif ($slaverapistx.dick == 7)>>
+		<<set $dicksize = "titanic">>
+<<elseif ($slaverapistx.dick == 8)>>
+		<<set $dicksize = "absurd">>
+<<elseif ($slaverapistx.dick == 9)>>
+		<<set $dicksize = "inhuman">>
+<<else>>
+		<<set $dicksize = "obscene">>
+<</if>>
+
 <<nobr>>
 
-The first necessary step is to prepare the slave doing the act.
+You take a look at the slave you selected.
+
+
+<<if $activeSlave.mother == $slaverapistx.ID>>
+	<<if ($slaverapistx.fetish == "perverted")>>
+			<<if ($slaverapistx.energy > 60)>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own daughter, but despite that seems eager to do it.
+			<<else>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own daughter, but despite that seems to feel some arousal at the thought.
+			<</if>>
+	<<else>>
+		$slaverapistx.slaveName is well aware that she is about to rape her own daughter and is understandingly distrurbed.
+	<</if>>
+<</if>>
+
+<<if $slaverapistx.mother == $activeSlave.ID>>
+	<<if ($slaverapistx.fetish == "perverted")>>
+			<<if ($slaverapistx.energy > 60)>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own mother, but despite that seems eager to do it.
+			<<else>>
+				$slaverapistx.slaveName is well aware that she is about to rape her own mother, but despite that seems to feel some arousal at the thought.
+			<</if>>
+	<<else>>
+		$slaverapistx.slaveName is well aware that she is about to rape her own mother and is understandingly distrurbed.
+	<</if>>
+<</if>>
+
+<<if (areSisters($activeSlave, $slaverapistx) > 0)>>
+	<<if ($slaverapistx.fetish == "perverted")>>
+			<<if ($slaverapistx.energy > 60)>>
+				$slaverapistx.slaveName is looking down at her sisters helpless form and inviting pussy with a look of hunger.
+			<<else>>
+				$slaverapistx.slaveName seems paralyzed, looking down at her bound sister with disbelief, curiosity...and excitement?
+			<</if>>
+	<<else>>
+		$slaverapistx.slaveName looks with horror down at her bound sister, knowing what will soon happen.
+	<</if>>	
+<</if>>
 
 <<set $activeSlave.penetrativeCount += 1>>
 <<set $penetrativeTotal += 1>>
 
-<<if ($slaverapistx.fetish is "pregnancy") && ($slaverapistx.fetishKnown == 1) && ($slaverapistx.fetishStrength > 60) && ($slaverapistx.devotion >= -20)>>
-	This is very easy, since $slaverapistx.slaveName has an impregnation fetish and loves the pure act of vaginal sex.
+
+
+<<if ($slaverapistx.fetish == "dominant") && ($slaverapistx.fetishStrength > 20) && ($slaverapistx.devotion >= -20)>>
+	Since $slaverapistx.slaveName loves to dominate others it's not hard to get her <<if $slaverapistx.dick > 0>>$dicksize dick ready.<else>>to don her strap-on.<</if>>
 	<<set  $slaverapistx.devotion += 4>>
-	<<if ($slaverapistx.preg is -3)>>Her member remains limp despite the prospect of getting another slave pregnant, but a direct injection of vasodilators quickly fixes that for this special occasion.
-	<<else>>Her member springs instantly to attention at the prospect of getting another slave pregnant.
-	<</if>>
+		<<if ($slaverapistx.attrXX > 65)>>With her high libido and love for girls, she becomes aroused indicently fast.
+		<<else>>
+			<<if $slaverapistx.dick > 0>>Her $dicksize member springs instantly to attention<else>>She becomes wet and flushed<</if>>
+			at the prospect of forcing herself on another slave.
+		<</if>>
 
-<<elseif ($slaverapistx.attrXX > 65) && ($slaverapistx.attrKnown == 1) && ($slaverapistx.devotion >= -20)>>
-	Since $slaverapistx.slaveName likes sticking her cock in girls, she doesn't take much convincing.
-	<<if ($slaverapistx.preg is -3)>>Her member remains limp despite the prospect of <<if $activeSlave.mpreg == 1>>ass<<else>>pussy<</if>>, but a direct injection of vasodilators quickly fixes that for this special occasion.
-	<<else>>Her member springs instantly to attention at the prospect of pussy.
-	<</if>>
+<<elseif ($slaverapistx.attrXX > 65) && ($slaverapistx.devotion >= -20)>>
+	Since $slaverapistx.slaveName likes sticking her <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>> in girls, she doesn't take much convincing.
 
 <<elseif ($slaverapistx.devotion > 50)>>
 	Since $slaverapistx.slaveName is devoted to you, she'll eagerly fuck anything you tell her to fuck.
-	<<if ($slaverapistx.preg is -3)>>She accepts a direct injection of vasodilators to counteract the hormones keeping her soft,
-	<<else>>She quickly gets herself hard,
+	<<if ($slaverapistx.fetish == "sadist")>>She gleefully accepts any opportunity to torture another salve,
+	<<else>>She quickly gets herself ready,
 	<</if>>
-	only a certain confusion in her look betraying that she realizes how special an occasion this is.
+	eying $activeSlave.slaveName with an expression you can't exactly decypher.
 
 <<elseif ($slaverapistx.devotion > 20)>>
 	Since $slaverapistx.slaveName is obedient, she'll fuck anything you tell her to fuck.
-	<<if ($slaverapistx.preg is -3)>>She accepts a direct injection of vasodilators to counteract the hormones keeping her soft,
-	<<else>>She hurriedly gets herself hard,
-	<</if>>
-	only a slight hesitation betraying her realization that this is a special occasion.
+
 
 <<elseif ($slaverapistx.devotion >= -20)>>
 	Since $slaverapistx.slaveName does not resist your will, she should comply reasonably well.
-	<<if ($slaverapistx.preg is -3)>>She accepts a direct injection of vasodilators to counteract the hormones keeping her soft,
+	<<if (if $slaverapistx.dick > 0)>>She dons a strap-on and applies lube in a mechanical, detached fashion,
 	<<else>>She has to work to get herself hard despite her doubts,
 	<</if>>
 	fear and disgust showing on her face as she absorbs the perversion of the natural order of things she's about to experience.
 
 <<else>>
-	Since $slaverapistx.slaveName is unlikely to comply willingly, you simply restrain her and administer a massive dose of vasodilators, directly where they will do the most good. $slaverapistx.slaveName writhes with the pain of the injection, which is compounded as she springs agonizingly erect.
+	<<if $slaverapistx.dick > 0>>
+		Since $slaverapistx.slaveName is unlikely to comply willingly, you simply restrain her and administer a massive dose of vasodilators, directly where they will do the most good. $slaverapistx.slaveName writhes with the pain of the injection, which is compounded as her $dicksize penis springs agonizingly erect.
+	<else>>
+		Since $slaverapistx.slaveName is unlikely to comply willingly, you tie her up, put a strap-on with a clit vibrator on her and administer strong aphrodisiacs. She writes with discomfort and confusion.
+	<</if>>
+
 
 <</if>>
 
+
 <</nobr>>
 
 <<nobr>>
 
 Next, you see to $activeSlave.slaveName.
 
+<<if $activeSlave.mother == $slaverapistx.ID>>
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName is looking up at her mother, fully naked, her <<if $slaverapistx.dick > 0>>$dicksize penis<else>>strap-on<</if>> standing firm despite her rapid breathing. She is flused and her pussy moist.
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her mothers <<if $slaverapistx.dick > 0>>$dicksize member<else>>strap-on<</if>> with fascination and disbelief.
+			<</if>>
+	<<else>>
+		$activeSlave.slaveName looks with horror at her mothers <<if $slaverapistx.dick > 0>>$dicksize member<else>>strap-on<</if>>, knowing what will soon happen.	
+	<</if>>
+<</if>>
+
+<<if $slaverapistx.mother == $activeSlave.ID>>
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName is looking up at her daughter, fully naked, her <<if $slaverapistx.dick > 0>>$dicksize penis<else>>strap-on<</if>> standing firm despite her rapid breathing. She is flused and her pussy moist.
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her daughters <<if $slaverapistx.dick > 0>>$dicksize cock<else>>strap-on<</if>> swaying above her with disbelief, hesitation... and excitement?
+			<</if>>
+	<<else>>
+		$activeSlave.slaveName looks with horror at her daughters <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>>, knowing what will soon happen.
+	<</if>>
+<</if>>
+
+<<if (areSisters($activeSlave, $slaverapistx) > 0)>>
+	<<if ($activeSlave.fetish == "perverted")>>
+			<<if ($activeSlave.energy > 60)>>
+				$activeSlave.slaveName seems paralyzed with fear, but her nipples are already hard and her face flushed. Her eyes are fixed on the <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>> above her.
+			<<else>>
+				$activeSlave.slaveName seems paralyzed, looking at her sister <<if $slaverapistx.dick > 0>>$dicksize cock<else>>strap-on<</if>> above her with disbelief, curiosity...and excitement?
+			<</if>>			
+	<<else>>
+		$activeSlave.slaveName looks with horror at her sister's <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>>, knowing what will soon happen.
+	<</if>>
+<</if>>
+
 <<set $activeSlave.vaginalCount += 1>>
 <<set $vaginalTotal += 1>>
 
-<<if ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($activeSlave.vagina == 0)>>
-	She presents her virgin pussy to $slaverapistx.slaveName without protest. This act @@.lime; breaks in her pussy.@@
-	<<set $activeSlave.vagina to 1>>
+
+<<if ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && (($activeSlave.vagina == 0)>>
+	She presents her virgin pussy to $slaverapistx.slaveName without protest. This act @@color:lime; breaks in her pussy.@@
+	<<set $activeSlave.vagina = 1>>
 	<<set  $activeSlave.devotion += 4>>
-	<<set  $activeSlave.fetishStrength += 1>>	
+	<<set  $activeSlave.fetishStrength += 1>>
 	
 <<elseif ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($activeSlave.fetishStrength > 60)>>
-	She smiles and presents her pussy to $slaverapistx.slaveName. @@.hotpink;She is grateful@@ for this fulfillment of her fondest wish.
+	She smiles and presents her pussy to $slaverapistx.slaveName. @@color:hotpink;She enjoys@@ submitting to a dominant slave.
 	<<set  $activeSlave.devotion += 4>>
 
-<<elseif  ($activeSlave.devotion > 20) && ($activeSlave.vagina == 0) >>
-	She accepts your orders without comment and presents her virgin pussy to $slaverapistx.slaveName for fertilization. She gasps in shock when she feels her hot seed. @@.hotpink;She is broken to slavery@@ by this application of her body, which naturally @@.lime;will break in her pussy.@@
-	<<set $activeSlave.vagina to 1>>
+<<elseif  ($activeSlave.devotion > 20) && (($activeSlave.vagina == 0) >>
+	She accepts your orders without comment and presents her virgin pussy to $slaverapistx.slaveName. She gasps in shock when she feels the <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>> eneter her. @@color:hotpink;She is broken to slavery@@ by this application of her body, which naturally @@color:lime;will break in her pussy.@@
+	<<set $activeSlave.vagina = 1>>
 	<<set  $activeSlave.devotion += 10>>
-<<elseif ($activeSlave.devotion >= -20) && ($activeSlave.vagina == 0)>>
-	She is clearly unhappy at the idea of losing her pearl of great price to $slaverapistx.slaveName; this probably isn't what she imagined her first real sex would be like. Worse, she knows she's fertile and realizes she'll likely get pregnant. Nevertheless, @@.hotpink;she is broken to slavery@@ by this application of her body, which naturally @@.lime;will break in her pussy.@@
-	<<set $activeSlave.vagina to 1>>
+<<elseif ($activeSlave.devotion >= -20) && (($activeSlave.vagina == 0)>>
+	She is clearly unhappy at the idea of losing her pearl of great price to $slaverapistx.slaveName; this probably isn't what she imagined her first real sex would be like. Nevertheless, @@color:hotpink;she is broken to slavery@@ by this application of her body, which naturally @@color:lime;will break in her pussy.@@
+	<<set $activeSlave.vagina = 1>>
 	<<set  $activeSlave.devotion += 4>>
-<<elseif ($activeSlave.vagina == 0)>>
-	As you anticipated, she refuses to give $slaverapistx.slaveName her virginity. You restrain her despite her @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;will break in her pussy.@@
+<<elseif (($activeSlave.vagina == 0)>>
+	As you anticipated, she refuses to give $slaverapistx.slaveName her virginity. Since she is restrained, her @@color:mediumorchid;horrified tears@@ and @@color:gold;frightened begging@@ are her only signs on rebellion. Naturally, this cruel act @@color:lime;will break in her pussy.@@
 	<<set  $activeSlave.devotion -= 5>>
 	<<set  $activeSlave.trust -= 5>>
-	<<set $activeSlave.vagina to 1>>
+	<<set $activeSlave.vagina = 1>>
+<</if>>	
 
 
-<<elseif ($activeSlave.amp == 1)>>
+<<if ($activeSlave.amp == 1)>>
 	You set her limbless torso up for $slaverapistx.slaveName.
 <<elseif tooBigBreasts($activeSlave)>>
 	You set her up for $slaverapistx.slaveName, face down so the weight of her tits pins her helplessly in place.
@@ -90,8 +191,8 @@ Next, you see to $activeSlave.slaveName.
 	You set her up for $slaverapistx.slaveName, face up so she is pinned under the weight of her giant cock.
 <<elseif tooBigBalls($activeSlave)>>
 	You set her up for $slaverapistx.slaveName, face down so the weight of her giant balls anchor her helplessly in place.
-<<elseif ($activeSlave.fetish is "submissive") && ($activeSlave.fetishStrength > 60) and ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>>
-	She is accustomed to submit to you, but as a natural submissive she doesn't have much trouble submitting to $slaverapistx.slaveName's seed instead.
+<<elseif ($activeSlave.fetish == "submissive") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>>
+	She is accustomed to submit to you, but as a natural submissive she doesn't have much trouble submitting to $slaverapistx.slaveName.
 <<elseif  $activeSlave.devotion < -20>>
 	She tries to refuse, so you restrain her despite her resistance to the idea of being raped by another slave.
 <<elseif  $activeSlave.devotion <= 20>>
@@ -105,29 +206,43 @@ Next, you see to $activeSlave.slaveName.
 <br><br>
 
 <<if ($activeSlave.devotion < -20) && ($slaverapistx.devotion < -20)>>
-	Since you have two restrained slaves, it's up to you to do all the work. You put $activeSlave.slaveName on the couch with her pussy available, and then maneuver $slaverapistx.slaveName's dick into place. The two slaves make no further moves until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. $slaverapistx.slaveName starts moving very slowly, barely prodding. After watching them mechanically go at it for a while, you use your own weight to suddely push her deep into $activeSlave.slaveName. You occasionaly prod them with an electrial jolt to keep them going at a faster pace. Both slaves @@.mediumorchid;resent@@ what you made them do and @@.gold;fear you@@ as a result.
+	Since you have two restrained slaves, it's up to you to do all the work. $activeSlave.slaveName is teid up on the bed with her pussy available, so you maneuver $slaverapistx.slaveName's <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>> into place. The two slaves make no further moves until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. $slaverapistx.slaveName starts moving very slowly, barely prodding. After watching them mechanically go at it for a while, you use your leg to suddely push her deep into $activeSlave.slaveName, fully hilting her in one motion. You occasionaly prod them with an electrial jolt to keep them going at a faster pace. Both slaves @@color:mediumorchid;resent@@ what you made them do and @@color:gold;fear you@@ as a result.
 	<<set  $activeSlave.devotion -= 5>>
 	<<set  $slaverapistx.devotion -= 5>>
 	<<set  $activeSlave.trust -= 5>>
 	<<set  $slaverapistx.trust -= 5>>
 
-
 <<elseif ($slaverapistx.devotion < -20)>>
-	Since your dick slave is restrained, you order $activeSlave.slaveName to present herself on the couch, and then maneuver $slaverapistx.slaveName's dick into place. $activeSlave.slaveName does her best to hump herself against the unwilling cock until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. She is still unenthusiastic, so you have her lie down and have $activeSlave.slaveName ride her to orgasm. She @@.mediumorchid;resents@@ what you made her do and @@.gold;fears you@@ as a result.. Though $activeSlave.slaveName accepts the situation, she looks into $slaverapistx.slaveName's eyes with obvious apology.
+	Since your dick slave is restrained, you order $activeSlave.slaveName to present herself on the bed, and then maneuver $slaverapistx.slaveName's <<if $slaverapistx.dick > 0>>$dicksize dick<else>>strap-on<</if>> into place. $activeSlave.slaveName does her best to hump herself against the unwilling cock until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give her more of the same until she gets going. She is still unenthusiastic, so you have her lie down and have $activeSlave.slaveName ride hersef to orgasm. She @@color:mediumorchid;resents@@ what you made her do and @@color:gold;fears you@@ as a result.. Though $activeSlave.slaveName accepts the situation, she looks into $slaverapistx.slaveName's eyes with obvious apology.
 	<<set  $slaverapistx.devotion -= 5>>
 	<<set  $slaverapistx.trust -= 5>>
 
-<<elseif ($slaverapistx.fetish == "dom") && ($slaverapistx.fetishStrength > 60) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
-	You arrange $activeSlave.slaveName on the couch with her pussy defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave for her pleasure. She penetrates her immediately, fondling, pinching and licking while pistoning away, fully enjoying her dominant role. By the end of the day $activeSlave.slaveName's abused cunt is dripping cum, to her @@.gold;horror@@ and @@.mediumorchid;resentment,@@ while $slaverapistx.slaveName is lying next to her on the couch in a state of obvious @@.hotpink;satiation and bliss.@@
-	<<set  $activeSlave.devotion -= 5>>
-	<<set  $activeSlave.trust -= 5>>
+<<elseif ($slaverapistx.fetish == "dominant") && ($slaverapistx.fetishStrength > 20) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
+	You arrange $activeSlave.slaveName on the bed with her pussy defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave for her pleasure. She penetrates her immediately, fondling, pinching and licking while pistoning away, fully enjoying her dominant role, edging her poor toy again and again and making her beg for release.
 	<<set  $slaverapistx.devotion += 4>>
+	<<set  $slaverapistx.energy += 1>>
+	<<set  $slaverapistx.trust += 2>>
+		<<if ($activeSlave.fetish == "dominant")>>
+				By the end of the day $activeSlave.slaveName's @@color:lime;abused cunt@@ is <<if $slaverapistx.dick > 0>>$dripping with cum<else>>overflowing with juices<</if>>, leaving her @@color:gold;horrified@@ and @@color:mediumorchid;disgusted at her lack of control@@. 
+				<<set  $activeSlave.trust -= 5>>
+				<<set  $activeSlave.energy -= 1>>
+				<<set  $activeSlave.devotion -= 3>>
+		<<elseif ($activeSlave.fetish == "submissive")>>
+				By the end of the day $activeSlave.slaveName's @@color:lime;abused cunt@@ is <<if $slaverapistx.dick > 0>>$dripping with cum<else>>overflowing with juices<</if>>, leaving her @@color:gold;horrified@@ but @@color:hotpink;surprisingly sexually satisfied@@. 
+				<<set  $activeSlave.trust -= 5>>
+				<<set  $activeSlave.energy += 3>>
+				<<set  $activeSlave.devotion = 1>>
+		<</if>>
+		$slaverapistx.slaveName is lying next to her on the bed in a state of obvious @@color:hotpink;satiation@@ and @@color:teal;bliss.@@
+
 
 <<elseif ($slaverapistx.energy > 95) && ($slaverapistx.devotion > 20) && ($activeSlave.devotion < -20)>>
-	You arrange $activeSlave.slaveName on the couch with her pussy defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave, just for the perverted novelty of the act. She blows her load with indecent speed and looks crushed until you tell her to take her time and be thorough. By the end of the day $activeSlave.slaveName's cunt is dripping cum, to her @@.gold;horror@@ and @@.mediumorchid;resentment,@@ while $slaverapistx.slaveName is lying next to her on the couch in a state of obvious @@.hotpink;satiation and bliss.@@
-	<<set  $activeSlave.devotion -= 5>>
-	<<set  $activeSlave.trust -= 5>>
-	<<set  $slaverapistx.devotion += 4>>
+	You arrange $activeSlave.slaveName on the bed with her pussy defenseless and available, and then tell the randy $slaverapistx.slaveName that it's all hers. The slave life has so affected $slaverapistx.slaveName that she is quite eager to rape another slave, just for the perverted novelty of the act. Her high libido keeps her going for a long time, brining the helpless toy to one forced orgasm after another. By the end of the day $activeSlave.slaveName is lying on the bed @@color:lime;all worn out@@, her cunt <<if $slaverapistx.dick > 0>>$dripping with cum<else>>overflowing with juices<</if>>, to her @@color:gold;horror@@ and @@color:mediumorchid;resentment,@@ while $slaverapistx.slaveName is sleeping next to her in a state of obvious @@color:hotpink;satiation and bliss.@@
+	<<set  $activeSlave.devotion -= 3>>
+	<<set  $activeSlave.trust -= 3>>
+	<<set  $activeSlave.energy += 3>>
+	<<set  $slaverapistx.devotion += 3>>
+	<<set  $slaverapistx.trust += 3>>
 
 <<elseif ($activeSlave.devotion <= 20) || ($slaverapistx.devotion <= 20)>>
 	You order $activeSlave.slaveName onto the couch and tell $slaverapistx.slaveName to get on with it. They fuck mechanically, gazing with roiling emotions into each others' eyes. They do seem to come to some sort of a nonverbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves. As they clean themelves and exit, you notice $slaverapistx.slaveName's looking a little more longignly at $activeSlave.slaveName.
@@ -137,7 +252,7 @@ Next, you see to $activeSlave.slaveName.
 
 
 <<else>>
-	The two slaves embrace happily and turn eagerly to the business of vanilla sex. They take their time, humping slowly and gazing into each others' eyes, chaning position often. After a little while, while in doggy position, $activeSlave.slaveName looks over $slaverapistx.slaveName's shoulder to where you're sitting, the invitation clear in her eyes. You come over and penetrate $slaverapistx.slaveName with your <<if $PC.dick ==1>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated, she comes indecently hard. The two of them collapse into an exhausted, @@.hotpink;happy@@ pile of slave flesh.
+	The two slaves happily and eagerly to the business sex. They take their time with foreplay, humping slowly and gazing into each others' eyes, exchanging kisses almost constantly. After a little while, $activeSlave.slaveName looks over $slaverapistx.slaveName's shoulder to where you're sitting, the invitation clear in her eyes. You come over and penetrate $slaverapistx.slaveName with your <<if $PC.dick > 0>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated, she comes indecently hard. The two of them collapse into an exhausted, @@color:hotpink;happy@@ pile of slave flesh.
 	<<set  $activeSlave.devotion += 4>>
 	<<set  $slaverapistx.devotion += 8>>
 
@@ -147,6 +262,13 @@ Next, you see to $activeSlave.slaveName.
 Throughout the week, you keep $activeSlave.slaveName's pussy intimate with $slaverapistx.slaveName's cock. In the end, you are certain they got closer.
 
 
+<<if canImpreg($activeSlave, $slaverapistx)>>
+	<<if (Random(1,100) >= 75)>>
+			<<set $activeSlave.preg = 1>>
+			<<set $activeSlave.pregSource = $slaverapistx.ID>>
+	<</if>>
+<</if>>	
+
 <</nobr>>
 
 
diff --git a/src/pregmod/huskSlaveSwapWorkaround.tw b/src/pregmod/huskSlaveSwapWorkaround.tw
index 061528165210d9a1cf512aa9b3bf3cd9044344af..0a7bd20a65a8d8f5c4baf97df5d690510e8dad38 100644
--- a/src/pregmod/huskSlaveSwapWorkaround.tw
+++ b/src/pregmod/huskSlaveSwapWorkaround.tw
@@ -15,7 +15,7 @@
 
 __Select an eligible slave:__
 <<for _i = 0; _i < $slaves.length; _i++>>\
-	<<if $cybermod == 0 || $slaves[_i].PLimb == 0 || ($slaves[_i].PLimb == 1 && $slaves[_i].amp == 1)>>
+	<<if $slaves[_i].PLimb == 0 || ($slaves[_i].PLimb == 1 && $slaves[_i].amp == 1)>>
 	<<if ($slaves[_i].indenture == 0)>>\
 	<<if ($slaves[_i].breedingMark == 0)>>\
 	<<if ($slaves[_i].reservedChildren == 0)>>\
diff --git a/src/pregmod/reMaleArcologyOwner.tw b/src/pregmod/reMaleArcologyOwner.tw
index 39af19271f245ed228c67623f0d773d0a45ff541..4bff07de86b0c3577bce908968065e7cccfecbe8 100644
--- a/src/pregmod/reMaleArcologyOwner.tw
+++ b/src/pregmod/reMaleArcologyOwner.tw
@@ -14,7 +14,7 @@ He strikes a fine balance in conversation with you, firm enough to not overpower
 <span id="result">
 <<link "Head over and assert yourself">>
 	<<replace "#result">>
-	You head over and insert yourself into the conversation between him and the woman trying to convince him to invest in her solar power concern. Your presence and power are such that she gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to his company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what he was looking for. He is likely concerned that you are far too assertive for him to safely manage. He excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company.
+	You head over and insert yourself into the conversation between him and the woman trying to convince him to invest in her solar power concern. Your presence and power are such that she gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to his company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what he was looking for. He is likely concerned that you are far too assertive for him to safely manage. He excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>sheet of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company.
 	<</replace>>
 <</link>>
 <br><<link "Walk past him and out onto an unoccupied balcony">>
diff --git a/src/pregmod/reMaleCitizenHookup.tw b/src/pregmod/reMaleCitizenHookup.tw
index f7133ed56d2ed0b80e337eb6647f74587e346b00..3f989ecf76893c749feec6bc80dbacfb7dfc557a 100644
--- a/src/pregmod/reMaleCitizenHookup.tw
+++ b/src/pregmod/reMaleCitizenHookup.tw
@@ -211,7 +211,7 @@ He's clearly attracted to you; even the most consummate actor would have difficu
 	<<case "Slimness Enthusiast">>
 		lean muscles, a smooth waist, trim hips and a cute little ass, and gently push him back onto your bed. You tease him as you remove your evening dress, crawl over him and impale yourself on his eager shaft before beginning to ride him. Even a female arcology owner like yourself appreciates a good hard fuck, since regular submission to a pounding from sex slaves would be a scandal. There's little opprobium waiting for you if it's known he had you, though, and he is eagerly thrusting into your pussy. You shift into a slightly more comfortable position<<if $PC.preg >= 20>> (one that forces him to bear the weight of your heavy middle) <</if>>and ride him to orgasm. You follow shortly after, feeling the heat of his seed in the depths of your pussy as it clamps down around his dick. Thankfully, he isn't spent yet and begins anew, quickly carrying your climax to a second orgasm and drawing an adorable moan out of you.
 	<<case "Asset Expansionist">>
-		an inhumanly enormous ass to counterbalance those enormous balls and a semihard cock, unable to become fully erect. You have to struggle to get him him onto your bed. You tease him as you remove your evening dress, crawl over him and
+		an inhumanly enormous ass to counterbalance those enormous balls and a semihard cock, unable to become fully erect. You have to struggle to get him onto your bed. You tease him as you remove your evening dress, crawl over him and
 		<<if $PC.newVag == 1>>
 			impale yourself on his monster shaft as far as you can, quivering in joy at its girth filling you.
 		<<elseif $PC.career == "escort">>
@@ -276,7 +276,7 @@ He's clearly attracted to you; even the most consummate actor would have difficu
 		<</if>><</if>>
 	<<elseif _FS != "Youth Preferentialist">>
 		<<if $Concubine != 0>><<if $Concubine.amp != 1>>
-			The <<if canSee($concubine)>>view of your bouncing tits<<else>>the sound of lusty sex<</if>> is too much for $Concubine.slaveName to resist and crawls over to kiss and carress you as your lover finishes.
+			The <<if canSee($Concubine)>>view of your bouncing tits<<else>>the sound of lusty sex<</if>> is too much for $Concubine.slaveName to resist and crawls over to kiss and carress you as your lover finishes.
 		<</if>><</if>>
 	<</if>>
 	Sometimes society overlooks that you are a woman and have certain needs, but your lover tonight knows exactly how to treat you. When your guest <<if _FS != "Youth Preferentialist">>is finally spent<<else>>wakes up from against your body<</if>>, he showers, dresses, and leaves discreetly, offering you a proper thank you. This is the kind of thing that @@.green;builds a lasting reputation@@ in the Free Cities.
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index d8a7a74d9e597398ff40db96acb46ff1f64b014d..a51d6fea017e319c4008ca752a99b6b177890d30 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -77,7 +77,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 <<if $badBirth > random(1,100)>> /* shits going wrong */
 	<<if $Nurse != 0>>
 		You keep pushing and pushing, but your child is not coming out.<<if $Concubine != 0>> $Concubine.slaveName shifts to massaging your gravid middle, while whispering words of encouragement into your ear. Until $Nurse.slaveName shoos her away so she can take over and get this baby out of you.<</if>> $Nurse.slaveName was prepared for this possibility, adjusts your position and timings, and before long is holding your @@.lime;new baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@ in her arms.
-	<<elseif $BodyGuard != 0>>
+	<<elseif $Bodyguard != 0>>
 		You keep pushing and pushing, but your child is not coming out.<<if $Concubine != 0>> $Concubine.slaveName shifts to massaging your gravid middle, while whispering words of encouragement into your ear. She begins to worry as her lover weakens in front of her. $Bodyguard.slaveName quickly pulls her away from you, fearing the worst.<</if>> $Bodyguard.slaveName read about this possibility and tries everything she can to coax your child out. As time passes, she notices your consciousness begin to fade as exhaustion kicks in. Fearing for your lives, and desperate to save you, she draws her sword from its sheath, hands unsteady from what she is about to do. Carefully, she slits your lower abdomen, allowing your baby-filled womb to pop out through the incision. Doing her best, she cuts open your uterus, pulls your child from you and severs the umbilical cord.
 		<br>
 		<br>
diff --git a/src/pregmod/slaveAgeIntro.tw b/src/pregmod/slaveAgeIntro.tw
index 26dac426f006be40ed23d2d79dba9fe2b42a6d2a..e5ab636004bc11ecb210fe720c599a295c3349b8 100644
--- a/src/pregmod/slaveAgeIntro.tw
+++ b/src/pregmod/slaveAgeIntro.tw
@@ -5,5 +5,5 @@ Do you want to see content involving girls younger than 18 in this game?
 [[No.|PC Body Intro][$minimumSlaveAge = 18, $pedo_mode = 0]] //All slaves will be at least 18 years old, and slavery of children will be illegal in the Free Cities.//
 Yes, I wish to see girls as young as <<textbox "$minimumSlaveAge" $minimumSlaveAge "PC Body Intro">> [[Continue|PC Body Intro][$pedo_mode = 0]]
 [[I just want lots of lolis.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 1]] //Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.//
-[[I wish to see them grow up and become fertile.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 0, $precociousPuberty = 1, $fertilityAge = 10, $potencyAge = 12, $seeAge = 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile yonger than normal puberty age (10) in some cases, and grow up naturally.//
+[[I wish to see them grow up and become fertile.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 0, $precociousPuberty = 1, $loliGrow = 1, $fertilityAge = 10, $potencyAge = 12, $seeAge = 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile yonger than normal puberty age (10) in some cases, and grow up naturally.//
 
diff --git a/src/pregmod/widgets/deathWidgets.tw b/src/pregmod/widgets/deathWidgets.tw
index 42f67eeff215af492a5cede52c28880357f254d1..1462df5ca052079e77df0f776a0d8a93d65a0cc3 100644
--- a/src/pregmod/widgets/deathWidgets.tw
+++ b/src/pregmod/widgets/deathWidgets.tw
@@ -21,7 +21,7 @@ As $slaves[$i].slaveName is going about her business with her overfilled $slaves
 	<<SlavePronouns $slaves[$i]>>
 	<<if $slaves[$i].assignment == "be confined in the arcade">>
 		You are notified by $arcadeName staff that one of the cabinets has broken down and will need to be replaced. It would seem ''@@.pink;$slaves[$i].slaveName@@'', the fucktoy encased in it, died naturally of old age despite $possessive living conditions. $pronounCap was a good unit; logs show $pronoun was taking dick up until the very end.
-	<<elseif $slaves[$i].assignment == "work in the dairy" && $dairyRestraints > 1>>
+	<<elseif $slaves[$i].assignment == "work in the dairy" && $dairyRestraintsSetting > 1>>
 		You are notified by $dairyName staff that one of the occupied milkers has ceased producing. Upon inspection, it would seem ''@@.pink;$slaves[$i].slaveName@@'', the cow restrained in it, died naturally of old age despite $possessive living conditions. $pronounCap was a good cow; $pronoun gave milk up until $possessive death.
 	<<elseif $slaves[$i].fuckdoll > 0>>
 		One of your fuckdoll's monitoring systems alerts you that the slave contained within has died. It would seem ''@@.pink;$slaves[$i].slaveName@@'' has died naturally of old age despite $possessive living conditions. Thankfully the suit notifies its owner of such things; especially with the rumors of earlier models and necrophilia you hear occasionally.
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index f734040b8e9e0aa820f03db4ca43274963c7e0ae..fe6cc08c6c82256e352e4a4282f6e05412c28183 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -39,57 +39,112 @@
 	<<set $fixedRace = 0>>
 <</if>>
 
-<<if ndef $RulesID>>
-	<<set $RulesID to 3>>
-	<<include "Init Rules">>
-<<else>>
-	<<for _i to 0; _i < $defaultRules.length; _i++>>
-		<<if ndef $defaultRules[_i].standardReward>>
-			<<set $defaultRules[_i].standardReward to "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].standardPunishment>>
-			<<set $defaultRules[_i].standardPunishment to "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].aVirginAccessory>>
-			<<set $defaultRules[_i].aVirginAccessory to "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].aVirginDickAccessory>>
-			<<set $defaultRules[_i].aVirginDickAccessory to "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].aVirginButtplug>>
-			<<set $defaultRules[_i].aVirginButtplug to "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].surgery>>
-			<<set $defaultRules[_i].surgery to {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>>
-		<</if>>
-		<<if ndef $defaultRules[_i].dietMilk>>
-			<<set $defaultRules[_i].dietMilk = 0>>
-		<</if>>
-		<<if ndef $defaultRules[_i].dietCum>>
-			<<set $defaultRules[_i].dietCum = 0>>
-		<</if>>
-		<<if ndef $defaultRules[_i].clitSettingXY>>
-			<<set $defaultRules[_i].clitSettingXY = "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].clitSettingXX>>
-			<<set $defaultRules[_i].clitSettingXX = "no default setting">>
-		<</if>>
-		<<if ndef $defaultRules[_i].clitSettingEnergy>>
-			<<set $defaultRules[_i].clitSettingEnergy = "no default setting">>
+<<if ndef $arcologyUpgrade>>
+	<<set $arcologyUpgrade = {drones: 0, hydro: 0, apron: 0, grid: 0, spire: 0}>>
+	<<set $arcologyUpgrade.drones = ($AProsperityCap > 60)  ? 1 : 0>>
+	<<set $arcologyUpgrade.hydro  = ($AProsperityCap > 80)  ? 1 : 0>>
+	<<set $arcologyUpgrade.apron  = ($AProsperityCap > 100) ? 1 : 0>>
+	<<set $arcologyUpgrade.grid   = ($AProsperityCap > 120) ? 1 : 0>>
+	<<set $arcologyUpgrade.spire  = ($AProsperityCap > 240) ? 1 : 0>>
+<</if>>
+
+<<if def $AHelots>>
+	<<set $ASlaves += Math.trunc($AHelots / 2)>>
+	<<unset $AHelots>>
+<</if>>
+
+<<if ndef $seeBuilding>>
+	<<set $seeBuilding = $seeArcology>>
+<</if>>
+
+<<if ndef $sectors>>
+	<<set $sectors = []>>
+	<<set $AS = {type: "Penthouse", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>>
+	<<set $AS = {type: "Barracks", ownership: 1}>><<set $sectors.push($AS)>>
+	<<for _i = 0; _i < 12; _i++>>
+		<<set _j = random(5,28)>>
+		<<if $sectors[_j].ownership == 1>>
+			<<set $sectors[_j].ownership = 0>>
+		<<else>>
+			<<set _i-->>
 		<</if>>
-		<<switch $defaultRules[_i].clitSetting>>
-		<<case "all">>
-			<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100, $defaultRules[_i].clitSettingXX = 100, $defaultRules[_i].clitSettingEnergy = 100>>
-		<<case "none">>
-			<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 0, $defaultRules[_i].clitSettingXX = 0, $defaultRules[_i].clitSettingEnergy = 0>>
-		<<case "men">>
-			<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100>>
-		<<case "women">>
-			<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXX = 100>>
-		<</switch>>
 	<</for>>
 <</if>>
 
+<<for _i = 0; _i < $defaultRules.length; _i++>>
+	<<if ndef $defaultRules[_i].standardReward>>
+		<<set $defaultRules[_i].standardReward = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].standardPunishment>>
+		<<set $defaultRules[_i].standardPunishment = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].aVirginAccessory>>
+		<<set $defaultRules[_i].aVirginAccessory = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].aVirginDickAccessory>>
+		<<set $defaultRules[_i].aVirginDickAccessory = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].aVirginButtplug>>
+		<<set $defaultRules[_i].aVirginButtplug = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].surgery>>
+		<<set $defaultRules[_i].surgery = {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>>
+	<</if>>
+	<<if ndef $defaultRules[_i].dietMilk>>
+		<<set $defaultRules[_i].dietMilk = 0>>
+	<</if>>
+	<<if ndef $defaultRules[_i].dietCum>>
+		<<set $defaultRules[_i].dietCum = 0>>
+	<</if>>
+	<<if ndef $defaultRules[_i].clitSettingXY>>
+		<<set $defaultRules[_i].clitSettingXY = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].clitSettingXX>>
+		<<set $defaultRules[_i].clitSettingXX = "no default setting">>
+	<</if>>
+	<<if ndef $defaultRules[_i].clitSettingEnergy>>
+		<<set $defaultRules[_i].clitSettingEnergy = "no default setting">>
+	<</if>>
+	<<switch $defaultRules[_i].clitSetting>>
+	<<case "all">>
+		<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100, $defaultRules[_i].clitSettingXX = 100, $defaultRules[_i].clitSettingEnergy = 100>>
+	<<case "none">>
+		<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 0, $defaultRules[_i].clitSettingXX = 0, $defaultRules[_i].clitSettingEnergy = 0>>
+	<<case "men">>
+		<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100>>
+	<<case "women">>
+		<<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXX = 100>>
+	<</switch>>
+<</for>>
+
 <<if ndef $month>>
 <<set $month to either("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")>>
 <</if>>
@@ -488,22 +543,6 @@ Setting missing global variables:
 	<<set $nicaeaHeld = 0>>
 <</if>>
 
-<<if ndef $AProsperityCap>>
-	<<set $AProsperityCap to 60>>
-<</if>>
-<<if ndef $ACitizens>>
-	<<set $ACitizens to ($AProsperityCap+200)*16>>
-<</if>>
-<<if ndef $ASlaves>>
-	<<set $ASlaves to ($AProsperityCap+200)*4>>
-<</if>>
-<<if ndef $AHelots>>
-	<<set $AHelots to $ASlaves*2>>
-<</if>>
-<<if ndef $helots>>
-	<<set $helots to 0>>
-<</if>>
-
 <<if ndef $facilityCost>>
 <<set $facilityCost to 500>>
 <</if>>
@@ -1109,14 +1148,14 @@ Setting missing global variables:
 <<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be seperated from other .bellyAccessory */
 <</if>>
 
-<<if ($ver.includes("0.9") != true) || ($ver == "0.9")>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver == "0.9")>>
 	<<if $seeDicks == 2>>
 		<<set $seeDicks = 100>>
 	<<elseif $seeDicks == 1>>
 		<<set $seeDicks = 25>>
 	<</if>>
 <</if>>
-<<if ($ver.includes("0.9.4") != true) && ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) ||  ($ver.includes("0.9.4") != true) && ($ver.includes("0.9") == true) && ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) ||  ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>>
 	<<for _r to 0; _r < $defaultRules.length; _r++>>
 		<<if ndef $defaultRules[_r].aphrodisiacs>>
 			<<set $defaultRules[_r].aphrodisiacs = 0>>
@@ -1190,7 +1229,7 @@ Setting missing slave variables:
 	<<set _Slave.faceShape to "normal">>
 <</if>>
 
-<<if $releaseID > 1000>><<else>>
+<<if $releaseID < 1000>>
 	<<if _Slave.face == -3>>
 		<<set _Slave.face = -100>>
 	<<elseif _Slave.face == -2>>
@@ -1287,8 +1326,7 @@ Setting missing slave variables:
 	<<set _Slave.training = 0>>
 <</if>>
 
-<<if ($ver.includes("0.8.9") != true) && ($ver.includes("0.8.10") != true) && ($ver.includes("0.8.11") != true) && ($ver.includes("0.8.12") != true)>>
-<<if $ver.includes("0.9") != true>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) && ($ver.includes("0.8.9") != true) && ($ver.includes("0.8.10") != true) && ($ver.includes("0.8.11") != true) && ($ver.includes("0.8.12") != true)>>
 	<<if _Slave.attrXX == 2>>
 		<<set _Slave.attrXX = 90>>
 	<<elseif _Slave.attrXX == 1>>
@@ -1312,10 +1350,8 @@ Setting missing slave variables:
 		<<set _Slave.attrXY = 10>>
 	<</if>>
 <</if>>
-<</if>>
 
-<<if $ver.includes("0.9") != true>>
-<<if $ver.includes("0.10") != true>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true)>>
 	<<if _Slave.health <= -9>>
 		<<set _Slave.health = -90>>
 	<<elseif _Slave.health <= -7>>
@@ -1387,9 +1423,8 @@ Setting missing slave variables:
 		<</if>>
 	<</if>>
 <</if>>
-<</if>>
 
-<<if ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9") == true) && ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>>
 	<<if _Slave.oralSkill > 0>>
 	<<if _Slave.oralSkill == 3>>
 		<<set _Slave.oralSkill = 100>>
@@ -1461,7 +1496,7 @@ Setting missing slave variables:
 		<</if>>
 	<</if>>
 <</if>>
-<<if ($ver.includes("0.9") != true) || ($ver == "0.9")>>
+<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9") != true) || ($ver == "0.9")>>
 	<<if _Slave.lips != 0>>
 	<<if _Slave.lips == 3>>
 		<<set _Slave.lips = 85>>
@@ -1750,3 +1785,6 @@ Setting missing slave variables:
 <<if ndef $slavesOriginal>>
 	<<set $slavesOriginal = $slaves>>
 <</if>>
+
+Done!
+
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 9129cb3ab9500e37b7ae5a15bb11a02df1be339e..6101e272ce1e30987ded7db5fe3f4f11955596ea 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -225,7 +225,7 @@ You have a lot of work to do with <span id="name"><<print "[[$activeSlave.slaveN
 
 An escape attempt occurs and is stopped almost before you are informed of it. <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> made a rash attempt to leave the penthouse, but $assistantName monitors everyone constantly and was able to enclose her before she got very far. <<if $assistant == 0>>It reports impersonally that the would-be escapee is locked in the entryway awaiting your judgment.<<else>>She reports suggestively that the would-be escapee is locked in the entryway awaiting your pleasure.<</if>>
 <br><br>
-<<if $AProsperityCap > 60>>Your advanced security systems are able to stop her promptly, and there is no indication to the public that any escape attempt was made.<<else>>Your basic security systems are only able to stop her by briefly locking down your penthouse, exciting @@.red;some adverse public comment.@@<<set $rep -= 100>><</if>>
+<<if $arcologyUpgrade.drones == 1>>Your advanced security systems are able to stop her promptly, and there is no indication to the public that any escape attempt was made.<<else>>Your basic security systems are only able to stop her by briefly locking down your penthouse, exciting @@.red;some adverse public comment.@@<<set $rep -= 100>><</if>>
 <<if $activeSlave.indentureRestrictions > 0>>
   <br><br>
   This behavior has violated her indenture contract, allowing you to apply more severe punishments that might otherwise breach it.
@@ -1327,7 +1327,7 @@ Heading back towards your office after seeing to a minor matter, you encounter <
 
 <<case "refreshment delivery">>
 
-When it's time for refreshments, $assistantName directs the closest unoccupied slave to bring them in. This has the added advantage of bringing an enjoyably unpredictable variety of slaves under your eyes. This time, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> comes through the door of your office, carrying <<if $PC.refreshmentType == 0>>a selection of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 1>>a bottle of $PC.refreshment with a glass in your favorite style<<elseif $PC.refreshmentType == 2>>a selection of $PC.refreshment on a plate of your favored style<<elseif $PC.refreshmentType == 3>>a line of $PC.refreshment and the necessary implements<<else>>a syringe of $PC.refreshment and the necessary implements<</if>> on a tray<<if $activeSlave.preg > 30>> carefully held against her pregnant belly, doing her best to will her child<<if $activeSlave.pregType > 1>>ren<</if>> to not kick the tray off balance<<elseif $activeSlave.preg > 20>> carefully held against her pregnant belly<</if>>.
+When it's time for refreshments, $assistantName directs the closest unoccupied slave to bring them in. This has the added advantage of bringing an enjoyably unpredictable variety of slaves under your eyes. This time, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> comes through the door of your office, carrying <<if $PC.refreshmentType == 0>>a selection of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 1>>a bottle of $PC.refreshment with a glass in your favorite style<<elseif $PC.refreshmentType == 2>>a selection of $PC.refreshment on a plate of your favored style<<elseif $PC.refreshmentType == 3>>a line of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 4>>a syringe of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 5>>a bottle of $PC.refreshment<<elseif $PC.refreshmentType == 4>>several sheets of $PC.refreshment<</if>> on a tray<<if $activeSlave.preg > 30>> carefully held against her pregnant belly, doing her best to will her child<<if $activeSlave.pregType > 1>>ren<</if>> to not kick the tray off balance<<elseif $activeSlave.preg > 20>> carefully held against her pregnant belly<</if>>.
 
 <br><br>
 
@@ -1335,11 +1335,11 @@ She comes to a stop right beside your elbow, waiting for further direction, just
 <<if $activeSlave.amp < 0>>
 	As she maintains her posture obediently, her P-Limbs produce minute machine noises. They allow her good coordination, but their gyros and servomotors are constantly working to maintain it, which means that when she stands still, they're not perfectly quiet.
 <<elseif $activeSlave.boobs > 4000>>
-	Her breasts are so massive that she's got the tray more or less balanced on top of them. As she breathes, her tits rise and fall slightly, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threatening to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<else>>causing the syringes of $PC.refreshment to roll from side to side<</if>>.
+	Her breasts are so massive that she's got the tray more or less balanced on top of them. As she breathes, her tits rise and fall slightly, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threatening to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>causing the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>rattling the $PC.refreshment in its bottle<<elseif $PC.refreshmentType == 6>>threatening to knock the sheets of $PC.refreshment off the tray<</if>>.
 <<elseif $activeSlave.preg > 30>>
-	She keeps the tray balanced atop her pregnancy, though the weight encourages her child<<if $activeSlave.pregType > 1>>ren<</if>> to begin kicking. As you glance over at her, she lets out a minute, tired sigh, as kicks from her child<<if $activeSlave.pregType > 1>>ren<</if>> <<if $PC.refreshmentType == 0>>cause the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>cause ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threaten to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturb the lines of $PC.refreshment<<else>>cause the syringes of $PC.refreshment to roll from side to side<</if>>.
+	She keeps the tray balanced atop her pregnancy, though the weight encourages her child<<if $activeSlave.pregType > 1>>ren<</if>> to begin kicking. As you glance over at her, she lets out a minute, tired sigh, as kicks from her child<<if $activeSlave.pregType > 1>>ren<</if>> <<if $PC.refreshmentType == 0>>cause the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>cause ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threaten to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturb the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>cause the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>rattle the $PC.refreshment in its bottle<<elseif $PC.refreshmentType == 6>>threaten to knock the sheets of $PC.refreshment off the tray<</if>>.
 <<elseif $activeSlave.preg > 20>>
-	Her pregnant belly is big enough that she's got the tray more or less balanced on top of it. As you glance over at her, she lets out a minute, tired sigh, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>nearly rocking the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<else>>causing the syringes of $PC.refreshment to roll from side to side<</if>>.
+	Her pregnant belly is big enough that she's got the tray more or less balanced on top of it. As you glance over at her, she lets out a minute, tired sigh, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>nearly rocking the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>causing the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>nearly tipping the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>threatening to blow the sheets of $PC.refreshment off the tray<</if>>.
 <<elseif $activeSlave.muscles > 30>>
 	With her incredible musculature, she's able to maintain utter stillness in the perfect posture of an obedient slave. A naturally standing human makes some small movements, but her strength allows her to suppress them by setting muscle groups against each other. This has the ancillary benefit of making them stand out nicely.
 <<elseif $activeSlave.energy > 95>>
@@ -1672,7 +1672,7 @@ The consequences of the special qualities of her womanhood soon become apparent.
 <br><br>
 Your slaves are all in the very best of vaginal health, so the scent of her female arousal is not strong. But her cunt produces such copious natural lubricant that with nothing to do but stand there, her <<if $activeSlave.births > 0>>motherly<<elseif $activeSlave.weight > 30>>thick<<elseif $activeSlave.muscles > 30>>strong<<else>>feminine<</if>> inner thighs are soon slick with a sheen of healthy pussyjuice. You notice a droplet of the stuff running down her warm $activeSlave.skin skin.
 <<if canAchieveErection($activeSlave)>>
-	Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible.	
+	Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible.
 <<elseif $activeSlave.dick > 0>>
 	Her pussy is <<if $activeSlave.dick > 3>>entirely<<else>>partially<</if>> concealed by her limp dick, which is getting a good coating, since it's resting against the source.
 <</if>>
@@ -4323,7 +4323,7 @@ You tell her kindly that you understand, and that she'll be trained to address t
 <br><<link "Share some refreshments with her">>
 	<<replace "#name">>$activeSlave.slaveName<</replace>>
 	<<replace "#result">>
-	You reach into the back of your desk, where your private reserves are, and wordlessly offer her a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>. She stares at you disbelievingly for a moment before stammering her thanks and accepting it with both hands. She holds it uncertainly, watching you get one yourself.
+	You reach into the back of your desk, where your private reserves are, and wordlessly offer her a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>pill of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tab of $PC.refreshment<</if>>. She stares at you disbelievingly for a moment before stammering her thanks and accepting it with both hands. She holds it uncertainly, watching you get one yourself.
 	<br><br>
 	She is first among your slaves, but she is still very much a slave. She neither receives nor expects
 	<<if $PC.refreshmentType == 0>>
@@ -4344,7 +4344,7 @@ You tell her kindly that you understand, and that she'll be trained to address t
 	<<else>>
 	  She savors the thrill of using $PC.refreshment for a moment, before turning to you, an almost desperate need on her face.
 	<</if>>
-	You return to work, and she follows your example, though she's rather distracted. When she finishes hers, she sets her tablet down for a moment and comes over to you, doing her best to show her naked body to best advantage as she comes. She gives you a deep kiss, <<if $PC.refreshmentType == 0 || $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>which tastes of fine $PC.refreshment, with a hint of $activeSlave.slaveName,<<else>>with plenty of tongue,<</if>> and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as she savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4>>rush<<else>>flavor<</if>>.
+	You return to work, and she follows your example, though she's rather distracted. When she finishes hers, she sets her tablet down for a moment and comes over to you, doing her best to show her naked body to best advantage as she comes. She gives you a deep kiss, <<if $PC.refreshmentType == 0 || $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>which tastes of fine $PC.refreshment, with a hint of $activeSlave.slaveName,<<else>>with plenty of tongue,<</if>> and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as she savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4 || $PC.refreshmentType == 5 || $PC.refreshmentType == 6>>rush<<else>>flavor<</if>>.
 	<<set $activeSlave.trust += 4>>
 	<</replace>>
 <</link>>
@@ -7306,7 +7306,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
 <<link "Enjoy some oral with your refreshments">>
 	<<replace "#name">>$activeSlave.slaveName<</replace>>
 	<<replace "#result">>
-	There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good $PC.refreshment<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<else>>a syringe of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshment<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<else>>select a syringe of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth == "straightening braces") || ($activeSlave.teeth == "cosmetic braces")>>	You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<else>>injecting a fix into your arm<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@.hotpink;used to being used as a serving girl.@@
+	There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good $PC.refreshment<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<elseif $PC.refreshmentType == 4>>a syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottles of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tabs of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshment<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>select a syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>carefully tap out enough pills of $PC.refreshment to satisfy you<<elseif $PC.refreshmentType == 6>>carefully pick up a tab of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth == "straightening braces") || ($activeSlave.teeth == "cosmetic braces")>>	You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<elseif $PC.refreshmentType == 4>>injecting a fix into your arm<<elseif $PC.refreshmentType == 5>>popping a few $PC.refreshment<<elseif $PC.refreshmentType == 6>>holding the tab under your tongue<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@.hotpink;used to being used as a serving girl.@@
 	<<set $activeSlave.devotion += 4>>
 	<<set $activeSlave.oralCount += 1>>
 	<<set $oralTotal += 1>>
@@ -7316,15 +7316,19 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
 	<<replace "#name">>$activeSlave.slaveName<</replace>>
 	<<replace "#result">>
 	<<if $PC.refreshmentType != 2>>
-	You tell her to hop up on the desk. She obeys promptly, <<if $activeSlave.energy > 95>>already starting to pant<<else>><<if canSee($activeSlave)>>watching you<<else>>listening<</if>> closely for further instructions<</if>>. To her complete lack of surprise, you tell her to pull her legs back and spread her hole<<if $activeSlave.vagina > -1>>s<</if>>. As she opens herself for you, she <<if canSee($activeSlave)>>sees<<else>>hears<</if>> that you're doing something with <<if $PC.refreshmentType == 0>>the $PC.refreshment<<elseif $PC.refreshmentType == 1>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>the plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>the bag of $PC.refreshment<<else>>the syringe of $PC.refreshment<</if>>, and <<if $activeSlave.trust > 50>>relaxes, trusting you completely<<else>>does her best to relax<</if>>. She gasps when she feels
+	You tell her to hop up on the desk. She obeys promptly, <<if $activeSlave.energy > 95>>already starting to pant<<else>><<if canSee($activeSlave)>>watching you<<else>>listening<</if>> closely for further instructions<</if>>. To her complete lack of surprise, you tell her to pull her legs back and spread her hole<<if $activeSlave.vagina > -1>>s<</if>>. As she opens herself for you, she <<if canSee($activeSlave)>>sees<<else>>hears<</if>> that you're doing something with <<if $PC.refreshmentType == 0>>the $PC.refreshment<<elseif $PC.refreshmentType == 1>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>the plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>the bag of $PC.refreshment<<elseif $PC.refreshmentType == 4>>the syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>the tabs of $PC.refreshment<</if>>, and <<if $activeSlave.trust > 50>>relaxes, trusting you completely<<else>>does her best to relax<</if>>. She gasps when she feels
 	<<if $PC.refreshmentType == 0>>
 		the head of the lit $PC.refreshment, warm from your mouth, being gently inserted into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You give her precise muscular instructions, which she does her best to obey, and before long, she's slowly smoking it using her fuckhole. Her body is very permeable there, and the effects of the it hit her very quickly.
 	<<elseif $PC.refreshmentType == 1>>
 		the cool tip of a small enema bulb being gently inserted into her ass. You press the $PC.refreshment into her slowly. You didn't give her much, but her body is very permeable there, and the effects hit her very quickly.
 	<<elseif $PC.refreshmentType == 3>>
 		$PC.refreshment being gently inserted into her ass. You didn't give her much, but her body is very permeable there, and the effects hit her very quickly.
-	<<else>>
+	<<elseif $PC.refreshmentType == 4>>
 		the tip of the syringe penetrate her <<if $activeSlave.dick > 0>>cock head<<elseif $activeSlave.vagina == -1>>tiny front hole<<else>>clit<</if>> and the sting of the contents being forced into her sex organ. You didn't give her much, but her body is very sensitive there, and the effects hit her very quickly.
+	<<elseif $PC.refreshmentType == 5>>
+		your finger pushing a pill deep into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You didn't give her much, but her body is very sensitive there, and the effects hit her very quickly.
+	<<elseif $PC.refreshmentType == 6>>
+		finger pushing a tab into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You didn't give her much, but it quickly disolves and her body is very sensitive there, so the effects hit her very quickly.
 	<</if>>
 	You go back to work, letting the slave loll around on your desk, enjoying the effects. You reflect that it's probably some kind of milestone in wealth that you're willing to throw the good stuff around like this. When she's had time to reflect on the strange incident, she @@.mediumaquamarine;resolves to trust you more in the future,@@ since it can be fun.
 	<<else>>
@@ -7371,7 +7375,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
 <<link "Use her as a cushion">>
 	<<replace "#name">>$activeSlave.slaveName<</replace>>
 	<<replace "#result">>
-	You tell her she's looking very nice today. Surprised,she manages <<if $activeSlave.devotion > 20>>to thank you prettily, wondering<<else>>to thank you hesitantly, worrying about<</if>> what comes next. You pick up a tablet, come around your desk, and fold yourself into a lotus position, just in front of her and with your back to her. Struck by this strange and trusting maneuver, she keeps still, letting you get yourself situated. You slide backward until you are pressed against the mound of breasts behind you, and then relax into their soft, fleshy mass. Your back nestles naturally into her cleavage, and the give of her huge mammaries conforms to you, allowing you to rest your elbows comfortably on each breast as though they were armrests. Feeling the weight of you against her chest, $activeSlave.slaveName throws her arms back, bracing herself against the floor.<<if $activeSlave.preg > 30>> You can feel her full, taut, pregnancy just barely once you have sunk deep into her cleavage.<</if>> You begin to tap away at the tablet, and she realizes <<if $activeSlave.devotion > 20>>with pleased surprise<<else>>with mixed resentment and relief<</if>> that you intend to use her as a sort of human cushion for a while. From where she's sitting, she <<if canSee($activeSlave)>>can easily read over your shoulder, and you make no attempt to stop her<<else>>could read over your shoulder, if she could see<</if>>; keeping secrets from your slaves is generally impractical, and <<if $activeSlave.devotion > 20>>this $desc is trustworthy<<else>>there's nothing she could do with your secrets, even if she were to try<</if>>. After an hour or so, you inspect her and dismiss her, and she leaves @@.mediumaquamarine;trusting her bizarre place@@ in your world.
+	You tell her she's looking very nice today. Surprised, she manages <<if $activeSlave.devotion > 20>>to thank you prettily, wondering<<else>>to thank you hesitantly, worrying about<</if>> what comes next. You pick up a tablet, come around your desk, and fold yourself into a lotus position, just in front of her and with your back to her. Struck by this strange and trusting maneuver, she keeps still, letting you get yourself situated. You slide backward until you are pressed against the mound of breasts behind you, and then relax into their soft, fleshy mass. Your back nestles naturally into her cleavage, and the give of her huge mammaries conforms to you, allowing you to rest your elbows comfortably on each breast as though they were armrests. Feeling the weight of you against her chest, $activeSlave.slaveName throws her arms back, bracing herself against the floor.<<if $activeSlave.preg > 30>> You can feel her full, taut, pregnancy just barely once you have sunk deep into her cleavage.<</if>> You begin to tap away at the tablet, and she realizes <<if $activeSlave.devotion > 20>>with pleased surprise<<else>>with mixed resentment and relief<</if>> that you intend to use her as a sort of human cushion for a while. From where she's sitting, she <<if canSee($activeSlave)>>can easily read over your shoulder, and you make no attempt to stop her<<else>>could read over your shoulder, if she could see<</if>>; keeping secrets from your slaves is generally impractical, and <<if $activeSlave.devotion > 20>>this $desc is trustworthy<<else>>there's nothing she could do with your secrets, even if she were to try<</if>>. After an hour or so, you inspect her and dismiss her, and she leaves @@.mediumaquamarine;trusting her bizarre place@@ in your world.
 	<<set $activeSlave.trust += 4>>
 	<</replace>>
 <</link>>
@@ -7895,7 +7899,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
 <<link "Have mercy on the poor girl and take her off her cum diet for now">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-    You see how $activeSlave.slaveName is suffering and you decide to reconsider her dietary prescription.  You instruct $assistantName to change <<print $activeSlave.slaveName>>'s diet to exclude cum for now.  Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves.  She is now @@.mediumorchid;more confident that she can resist you and get her way@@, she also @@.mediumaquamarine;trusts you a little more@@ to look after her well being.  
+    You see how $activeSlave.slaveName is suffering and you decide to reconsider her dietary prescription.  You instruct $assistantName to change <<print $activeSlave.slaveName>>'s diet to exclude cum for now.  Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves.  She is now @@.mediumorchid;more confident that she can resist you and get her way@@, she also @@.mediumaquamarine;trusts you a little more@@ to look after her well being.
     <<set $activeSlave.trust += 5>>
     <<set $activeSlave.devotion -= 5>>
   <<set $activeSlave.dietCum = 0>>
@@ -7937,7 +7941,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
   <br><<link "Sentence her to a day in $arcadeName for cum injection therapy">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-    You have $assistantName inform $activeSlave.slaveName of her unacceptable behavior and sentence her to a day in $arcadeName.  She cries and pleads for mercy, and even begs to be allowed to suck a cock, any cock, so she can prove her newfound enthusiasm for cum, but you are unmerciful as two other slaves drag her off to serve her sentence.  She is forced to wear a<<if $activeSlave.vagina != -1>> combined vaginal and<<else>>n<</if>> anal chastity belt so that the only hole available is her mouth, and is then confined in $arcadeName with her mouth spread open by a ring gag and her head sticking through the hole in the wall.  A sign below her mouth proclaims her to be a "cum extraction tube" and she is used that way for the duration of her stay--a gruelling, 18-hour marathon of relentless throat fucking.  <<if $activeSlave.sexualFlaw != "hates oral">>Her ordeal is so extreme that she now @@.red;hates oral sex@@<<else>>Her hatred of oral sex makes her ordeal that much more horrific<</if>>, but it @@.hotpink;breaks down her resistance@@.  She now @@.gold;better understands the terrifying power you have over her@@, and the sheer amount of cum she is forced to ingest @@.red;negatively effects her health@@.  Your other cum-fed slaves take note of what you do to girls who can't hold down their assigned diet. 
+    You have $assistantName inform $activeSlave.slaveName of her unacceptable behavior and sentence her to a day in $arcadeName.  She cries and pleads for mercy, and even begs to be allowed to suck a cock, any cock, so she can prove her newfound enthusiasm for cum, but you are unmerciful as two other slaves drag her off to serve her sentence.  She is forced to wear a<<if $activeSlave.vagina != -1>> combined vaginal and<<else>>n<</if>> anal chastity belt so that the only hole available is her mouth, and is then confined in $arcadeName with her mouth spread open by a ring gag and her head sticking through the hole in the wall.  A sign below her mouth proclaims her to be a "cum extraction tube" and she is used that way for the duration of her stay--a gruelling, 18-hour marathon of relentless throat fucking.  <<if $activeSlave.sexualFlaw != "hates oral">>Her ordeal is so extreme that she now @@.red;hates oral sex@@<<else>>Her hatred of oral sex makes her ordeal that much more horrific<</if>>, but it @@.hotpink;breaks down her resistance@@.  She now @@.gold;better understands the terrifying power you have over her@@, and the sheer amount of cum she is forced to ingest @@.red;negatively effects her health@@.  Your other cum-fed slaves take note of what you do to girls who can't hold down their assigned diet.
     <<set $activeSlave.devotion += 5>>
     <<set $activeSlave.trust -= 5>>
     <<set $activeSlave.health -= 5>>
@@ -7954,9 +7958,9 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part
 <<link "Surgically alter her to be of the inferior $arcologies[0].FSSubjugationistRace race, and give her a public debut">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-Some slaves have a bigger potential price to pay for disobedience than they realize.  $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremacistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated.  You escort the struggling <<if $activeSlave.preg > 5>>mother-to-be<<else>>girl<</if>> to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>.  The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction <<if canSee($activeSlave)>>from <<print $activeSlave.slaveName>>'s intelligent eyes<<else>>on <<print $activeSlave.slaveName>>'s intelligent face<</if>><</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table.  
+Some slaves have a bigger potential price to pay for disobedience than they realize.  $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremacistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated.  You escort the struggling <<if $activeSlave.preg > 5>>mother-to-be<<else>>girl<</if>> to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>.  The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction <<if canSee($activeSlave)>>from <<print $activeSlave.slaveName>>'s intelligent eyes<<else>>on <<print $activeSlave.slaveName>>'s intelligent face<</if>><</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table.
 <br><br>
-By the time she wakes up from the anesthesia, you've already made the necessary alterations to her permanent records, which now clearly indicate that she was born <<print $arcologies[0].FSSubjugationistRace>>, and as such, can be rightfully regarded as the racially inferior fuck-animal she now is.  Of course, your fellow slave owners and the slave market will be savvy enough to see through the alterations you've forced upon her, but when you make her available for a day of use in the public square, all your average citizen knows is that the girl they are fucking is simply a worthless $arcologies[0].FSSubjugationistRace slut who doesn't deserve much more than a stomach full of cum.  The surgery @@.red;negatively effects her health@@, but by the end of a long day she'll likely never forget, she has gotten a crash course in what it means to be a $arcologies[0].FSSubjugationistRace slave in your arcology, and any evidence that she was born $activeSlave.race has been efficiently expunged from her records. <<if ($activeSlave.vagina == 0 || $activeSlave.anus == 0)>>@@.lime;All vestiges of her virginity have been unceremoniously stripped away@@.<</if>> The experience has  @@.hotpink;broken down her resistance@@, and your willingness to go to such extremes to subjugate her @@.gold;greatly increases her fear of you@@.  
+By the time she wakes up from the anesthesia, you've already made the necessary alterations to her permanent records, which now clearly indicate that she was born <<print $arcologies[0].FSSubjugationistRace>>, and as such, can be rightfully regarded as the racially inferior fuck-animal she now is.  Of course, your fellow slave owners and the slave market will be savvy enough to see through the alterations you've forced upon her, but when you make her available for a day of use in the public square, all your average citizen knows is that the girl they are fucking is simply a worthless $arcologies[0].FSSubjugationistRace slut who doesn't deserve much more than a stomach full of cum.  The surgery @@.red;negatively effects her health@@, but by the end of a long day she'll likely never forget, she has gotten a crash course in what it means to be a $arcologies[0].FSSubjugationistRace slave in your arcology, and any evidence that she was born $activeSlave.race has been efficiently expunged from her records. <<if ($activeSlave.vagina == 0 || $activeSlave.anus == 0)>>@@.lime;All vestiges of her virginity have been unceremoniously stripped away@@.<</if>> The experience has  @@.hotpink;broken down her resistance@@, and your willingness to go to such extremes to subjugate her @@.gold;greatly increases her fear of you@@.
        <<set $activeSlave.devotion += 5>>
        <<set $activeSlave.trust -= 10>>
        <<set $activeSlave.vagina += 1>>
@@ -8016,7 +8020,7 @@ At first $activeSlave.slaveName is confused as to why you are showing her these
 <br><<link "Discipline her normally.  Artificial racial subjugation is going too far">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-You look $activeSlave.slaveName over, and something about her makes you reconsider playing games with her racial appearance.  <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>>Perhaps her natural $activeSlave.race supremacy is too sacrosanct for you to go to such lengths.  <</if>>You'll not make such an extreme example of her.  Still, she is a disobedient slave, and she cannot be allowed to openly defy your orders and inspections.  You take her over your knee, expose her bare ass and spank her hard and relentlessly.  She screams and whines and struggles, and you call in an obedient slave to help keep control of her as you punish her reddened bottom.  You also make sure to tell her how lucky she is that she isn't one of those worthless sub-human $arcologies[0].FSSubjugationistRace sluts, and that she is getting off easy. But you also remind her that there are worse owners to belong to, and if she continues to resist your will, you will be very selective about who you sell her to.  
+You look $activeSlave.slaveName over, and something about her makes you reconsider playing games with her racial appearance.  <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>>Perhaps her natural $activeSlave.race supremacy is too sacrosanct for you to go to such lengths.  <</if>>You'll not make such an extreme example of her.  Still, she is a disobedient slave, and she cannot be allowed to openly defy your orders and inspections.  You take her over your knee, expose her bare ass and spank her hard and relentlessly.  She screams and whines and struggles, and you call in an obedient slave to help keep control of her as you punish her reddened bottom.  You also make sure to tell her how lucky she is that she isn't one of those worthless sub-human $arcologies[0].FSSubjugationistRace sluts, and that she is getting off easy. But you also remind her that there are worse owners to belong to, and if she continues to resist your will, you will be very selective about who you sell her to.
 <br><br>
 By the time you've finished with her sensitive ass, it shines red, and she is crying and whimpering in pain.  You send her away, having @@.hotpink;dampened her resistance a bit@@, and @@.gold;scared her with your tales of how much worse life could be@@ for her <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>> if she weren't born of the supreme race.<<else>>under a less forgiving owner.<</if>>
     <<set $activeSlave.devotion += 5>>
@@ -8029,7 +8033,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr
 <<link "Give the poor girl a break and take her off her cum diet so she can safely get to a healthier weight">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-    You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal.  You confirm that <<if $activeSlave.dietCum == 1>> her food is supplemented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>>  While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight<<if $activeSlave.preg > 5>>, even more so with her growing child taking whatever nutrients it can<</if>>.  With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate.  However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight.  She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@.hotpink;positive effect on her attitude@@. She @@.aquamarine;trusts you a little more@@ too.  
+    You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal.  You confirm that <<if $activeSlave.dietCum == 1>> her food is supplemented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>>  While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight<<if $activeSlave.preg > 5>>, even more so with her growing child taking whatever nutrients it can<</if>>.  With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate.  However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight.  She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@.hotpink;positive effect on her attitude@@. She @@.aquamarine;trusts you a little more@@ too.
     <<set $activeSlave.trust += 2>>
     <<set $activeSlave.devotion += 2>>
 	<<set $activeSlave.dietCum = 0>>
@@ -8059,7 +8063,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr
 <br><<link "Use aphrodisiacs and positive reinforcement to make her cum diet more palatable">>
   <<replace "#name">>$activeSlave.slaveName<</replace>>
   <<replace "#result">>
-    You do a quick check at your terminal.  She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplemented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>>  You tell her that it can't be helped.  When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore.  By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook.  
+    You do a quick check at your terminal.  She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplemented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>>  You tell her that it can't be helped.  When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore.  By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook.
 	<br><br>
 	You pull out a heavy dose of aphrodisiacs from the drawer in your desk.  They are expensive, but powerful drugs that can be used in a brute force way to manipulate the sexual urges and tastes of even the most frigid sluts.  The mild dose included in every slave's food is usually enough to affect a slow, inevitable change in attitude for resistant slaves, but sometimes a more acute dose can be an amusing way to turn disgust into dependence.  $activeSlave.slaveName shivers as you reassure her and inject her <<if $activeSlave.weight < -80>>bony <<else>>tiny <</if>>body with the powerful drugs.  You know they are working when she begins to perspire a little, and <<if $activeSlave.vagina > -1>>she starts to leak fresh girl-juice down her shivering thighs<<elseif $activeSlave.dick == 0>>starts to turn instinctively to offer you her only hole<<else>>her dick starts to come to attention<</if>>.  You then book her to be the main attraction at a corporate office party that afternoon, where she will be the target of a blow-bang and bukkake.  You see that she's dosed heavily with the drugs every day this week, and then book the rest of her afternoons for similar duties, making sure she still tends to her regular assignments as well.  In the meantime, you also instruct the kitchen that she is to eat as much cum-based food from the dispensers as she can suck down in order to fuel up for these exhausting escapades.  By the end of the week, the aphrodisiacs and her slide into an inescapable routine of cum immersion have done their job, and she has begun to @@.lightcoral;view cum as an inevitable component of her daily life@@.  She also manages to @@.green;gain a little weight@@.  Thanks to your manipulation of her Pavlovian responses through extreme drug therapy, her @@.red;health has suffered a bit@@, but she is also @@.hotpink;more dependent on you@@ thanks to her <<if $activeSlave.addict == 0>>@@.cyan;new@@<<else>>@@.cyan;developing@@<</if>> @@.cyan;addiction to aphrodisiacs.@@
     <<set $activeSlave.devotion += 5>>
@@ -8099,7 +8103,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr
 					<<set $activeSlave.fetishKnown = 1>>
 				<</if>>
 				<</if>>
-				Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@.hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming. 
+				Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@.hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming.
 				<<set $activeSlave.devotion += 5>>
 				<<AnalVCheck>>
 			<</replace>>
@@ -8215,7 +8219,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr
 		You approach her and <<if $activeSlave.dick > 0>>reach under her girldick for her<<else>>cup her<</if>> sopping pussy. She gasps as she feels your cool grasp. Your possessive hand encompasses her vulva, with your index and ring fingers sliding around either side of her pubic mound to grip her entire womanhood.
 		<<if $activeSlave.vagina > 0>>
 			<<if $activeSlave.vagina > 0>>
-				Her relaxed pussy almost draws your middle finger inward and upward, 
+				Her relaxed pussy almost draws your middle finger inward and upward,
 			<<else>>
 				Her pussy welcomes your middle finger,
 			<</if>>
@@ -8706,7 +8710,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr
 				<<set $activeSlave.oralCount++, $oralTotal++>>
 			<</if>>
 			When she's gotten you off, she @@.mediumaquamarine;thanks you trustingly.@@ Even though she wasn't able to figure out how to seat herself in a really satisfactorily sexy way, she's glad you gave her some agency.
-		<</if>>	
+		<</if>>
 	<</replace>>
 	<<set $activeSlave.trust += 5>>
 <</link>>
diff --git a/src/uncategorized/apartments.tw b/src/uncategorized/apartments.tw
new file mode 100644
index 0000000000000000000000000000000000000000..dc13f6b047dd64b36ae2a25179d1f42e808a78ab
--- /dev/null
+++ b/src/uncategorized/apartments.tw
@@ -0,0 +1,36 @@
+:: Apartments [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is a sector of the arcology's living areas,
+<<switch $sectors[$AS].type>>
+<<case "Apartments">>
+	occupied by citizens of varying wealth and social standing.
+<<case "DenseApartments">>
+	upgraded for dense occupancy by as many citizens as possible.
+<<case "LuxuryApartments">>
+	improved for occupancy by the Free Cities' wealthiest citizens.
+<<default>>ERROR: bad sector type
+<</switch>>
+
+You control this part of the arcology and all these tenants pay you rent.
+<<SectorSell>>
+<br>
+
+<<if $sectors[$AS].type != "DenseApartments">>
+	<br>
+	[[Upgrade this sector of apartments for dense occupancy by as many citizens as possible|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $sectors[$AS].type = "DenseApartments"]]
+	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>//
+<</if>>
+
+<<if $sectors[$AS].type != "LuxuryApartments">>
+	<br>
+	[[Improve this sector of apartments for occupancy by the Free Cities' wealthiest citizens|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $sectors[$AS].type = "LuxuryApartments"]]
+	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>//
+<</if>>
+
+<<if $sectors[$AS].type != "Apartments">>
+	<br>
+	[[Return this sector to standard, mixed housing|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Apartments"]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/arcade.tw b/src/uncategorized/arcade.tw
index 653386a40521bc7980bf04b44b742ab139ab6547..54e63874e019f249b1c3c43f74ea3af5b1ae3a95 100644
--- a/src/uncategorized/arcade.tw
+++ b/src/uncategorized/arcade.tw
@@ -61,7 +61,16 @@ $arcadeNameCaps
 <<elseif $arcadeSlaves > 0>>
 	It's understaffed; there are lines here and there for the few holes available.
 <<else>>
-	It's empty and quiet. [[Decommission the arcade|Main][$arcade = 0, $arcadeUpgradeInjectors = 0, $arcadeUpgradeFuckdolls = 0, $arcadeUpgradeCollectors = 0]]
+	It's empty and quiet.
+	<<link "Decommission the arcade">>
+		<<set $arcade = 0, $arcadeUpgradeInjectors = 0, $arcadeUpgradeFuckdolls = 0, $arcadeUpgradeCollectors = 0>>
+		<<for _i = 0; _i < $sectors.length; _i++>>
+		<<if $sectors[_i].type == "Arcade">>
+			<<set $sectors[_i].type = "Markets">><<break>>
+		<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>>
 <</if>>
 
 <br>It can support $arcade inmates.
diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw
index d468a115bc6cbf021838b2764c4945a39466f9c1..a9f2215d20f5b964892730202e1975b5a46271df 100644
--- a/src/uncategorized/arcadeReport.tw
+++ b/src/uncategorized/arcadeReport.tw
@@ -35,6 +35,9 @@
 	<</if>>
 	/% Onward bound as normal %/
 	<<set $oldCash = $cash, $i = _i>>
+
+	/* Perform facility based rule changes */
+	<<set $slaves[_i].clothes = "no clothing">>
 	<<if ($arcadeUpgradeInjectors == 1)>>
 		<<if ($slaves[_i].health > -60)>>
 			<<set $slaves[_i].health -= 10>>
@@ -54,6 +57,7 @@
 		<</if>>
 		<<set $slaves[_i].trust -= 5>>
 	<</if>>
+
 	<<if $showEWD != 0>>
 		<br><br>
 		/* 000-250-006 */
diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw
index 9229ed4e2c7efab3b627c7c3273c97888e2c1fea..376c51c2a6903b57d3ca2d939a9d85590335e74c 100644
--- a/src/uncategorized/arcologyDescription.tw
+++ b/src/uncategorized/arcologyDescription.tw
@@ -1,135 +1,8 @@
 :: Arcology Description [nobr]
 
-/*
-<style>
-	table.arcology {
-		table-layout:fixed;
-		text-align: center;
-		border-collapse: separate;
-		border-spacing: 5px;
-		border-style: hidden;
-		empty-cells: hide;
-	}
-	th, td {
-		background-color: Black;
-		width: 50px;
-	}
-    td#Empty {
-        border: 5px solid LightGray; 
-    }
-    td#Private {
-        border: 5px solid Red; 
-    }
-    td#Apartments {
-        border: 5px solid YellowGreen; 
-    }
-    td#Pens {
-        border: 5px solid GoldenRod; 
-    }
-    td#Entryway {
-        border: 5px solid SlateGray; 
-    }
-    td#Barracks {
-        border: 5px solid OliveDrab; 
-    }
-    td#Apron {
-        border: 5px solid Skyblue; 
-    }
-    td#Hydro {
-        border: 5px solid SeaGreen; 
-    }
-    td#Penthouse {
-        border: 5px solid Teal; 
-    }
-    td#Brothel {
-        border: 5px solid Pink; 
-    }
-    td#Club {
-        border: 5px solid Plum; 
-    }
-    td#Arcade {
-        border: 5px solid DeepPink; 
-    }
-</style>
-
-<center>
-<table class="arcology" border="1">
-	<tr>
-		<td></td>
-		<td></td>
-		<td></td>
-		<td></td>
-		<td id="Penthouse" colspan="4"><<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></td>
-		<td></td>
-		<td></td>
-		<td></td>
-		<td></td>
-	</tr>
-	<tr>
-		<td></td>
-		<td></td>
-		<td></td>
-		<td id="Private" colspan="2">Private</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Empty" colspan="2">Empty</td>
-	</tr>
-	<tr>
-		<td></td>
-		<td></td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Club" colspan="2">[[$clubNameCaps|Club]]</td>
-		<td id="Empty" colspan="2">Empty</td>
-		<td id="Empty" colspan="2">Empty</td>
-	</tr>
-	<tr>
-		<td></td>
-		<td></td>
-		<td id="Brothel" colspan="2">[[$brothelNameCaps|Brothel]]</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Arcade" colspan="2">[[$arcadeNameCaps|Club]]</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-	</tr>
-	<tr>
-		<td></td>
-		<td></td>
-		<td id="Private" colspan="2">Private</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Private" colspan="2">Private</td>
-		<td id="Empty" colspan="2">Empty</td>
-	</tr>
-	<tr>
-		<td></td>
-		<td id="Hydro">Hydro</td>
-		<td id="Empty" colspan="2">Empty</td>
-		<td id="Private" colspan="2">Private</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Private" colspan="2">Private</td>
-		<td id="Hydro">Hydro</td>
-	</tr>
-	<tr>
-		<td></td>
-		<td id="Empty" colspan="2">Empty</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-	</tr>
-	<tr>
-		<td id="Apron">Apron</td>
-		<td id="Apartments" colspan="2">Apartments</td>
-		<td id="Empty" colspan="2">Empty</td>
-		<td id="Entryway" colspan="2">Entryway</td>
-		<td id="Pens" colspan="2">Pens</td>
-		<td id="Barracks" colspan="2">Barracks</td>
-		<td id="Apron" colspan="2">Apron</td>
-	</tr>
-</table>
-</center>
-*/
-
 &nbsp;&nbsp;&nbsp;&nbsp;
-__''$arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $AProsperityCap >= 120>> solar-panelled<</if>> skin gleams in the sunshine<<if $AProsperityCap >= 100>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>.<<if $weatherCladding > 0>> Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $AProsperityCap >= 300>>, though its highest point is capped by tall, elegant spire<</if>>.<</if>>
-Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<elseif $AProsperityCap >= 120>> shining<</if>> bulk
+__''$arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $arcologyUpgrade.apron == 1>> solar-panelled<</if>> skin gleams in the sunshine<<if $arcologyUpgrade.hydro == 1>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>.<<if $weatherCladding == 1>> Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $arcologyUpgrade.spire == 1>>, though its highest point is capped by tall, elegant spire<</if>><<elseif $weatherCladding == 1>> The entirety of its once dull exterior has been retrofitted with breathtaking golden sheets in eye catching designs<<if $arcologyUpgrade.spire == 1>>, its highest point capped by a tall, magnificient spire<</if>>.<</if>>
+Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<elseif $arcologyUpgrade.apron == 1>> shining<</if>> bulk
 <<if $terrain == "urban">>
 	towers above the city around it; it is part of a cluster of arcologies that form a Free City in the midst of an old world urban area.
 <<elseif $terrain == "rural">>
@@ -331,7 +204,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el
 	<<elseif $arcologies[0].FSChineseRevivalistDecoration >= 40>>
 	Some are showing ancient Chinese operas.
 	<</if>>
-	<<if $AProsperityCap >= 190>>The programming is constantly updated to suit the individual viewer.<</if>>
+	<<if $arcologyUpgrade.grid == 1>>The programming is constantly updated to suit the individual viewer.<</if>>
 	<<if $brothelAdsSpending > 0>>
 	Pornographic advertisements for the brothel are interspersed with the programming.
 	<<if $brothelAdsOld == 1>>
@@ -382,7 +255,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el
 	<<else>>
 		sucking dick and taking anal, and the ones that have pussies are being fucked there, too.
 	<</if>>
-	<<if ($brothelAdsXX == 1) && ($brothelAdsImplants == 1) && ($brothelAdsStacked == 1)>>
+	<<if ($brothelAdsXX == 1) && ($brothelAdsImplanted == 1) && ($brothelAdsStacked == 1)>>
 		As a result, the brothel is known as the place to go if you want to rent a<<if $brothelAdsPreg == 1>>pregnant<</if>> bimbo's pussy.
 	<<elseif ($brothelAdsXX == 1) && ($brothelAdsOld == 1)>>
 		As a result, the brothel is known as the place to go if you want to rent a<<if $brothelAdsPreg == 1>>pregnant<</if>> MILF's tits.
@@ -447,7 +320,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el
 		their holes.
 	<</if>>
 	The music videos are very popular.
-	<<if ($clubAdsXX == 1) && ($clubAdsImplants == 1) && ($clubAdsStacked == 1)>>
+	<<if ($clubAdsXX == 1) && ($clubAdsImplanted == 1) && ($clubAdsStacked == 1)>>
 		As a result, $clubName is known as the place to spend a night partying with<<if ($clubAdsPreg == 1)>>pregnant<</if>> bimbos.
 	<<elseif ($clubAdsXX == 1) && ($clubAdsOld == 1)>>
 		As a result, $clubName is known as the place to spend a night partying with<<if ($clubAdsPreg == 1)>>pregnant<</if>> MILFs.
@@ -528,9 +401,9 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el
 	<<elseif $arcologies[0].FSChineseRevivalistDecoration >= 60>>
 	The central plaza is constructed as a Chinese water market, with stalls set up to serve customers passing by on boats riding on shallow canals.
 	<</if>>
-	<<if $AProsperityCap > 60>>A security drone occasionally flies across the open space.<</if>>
+	<<if $arcologyUpgrade.drones == 1>>A security drone occasionally flies across the open space.<</if>>
 <<else>>
-	<<if $AProsperityCap > 60>>The central plaza is a large atrium; a security drone occasionally flies across the open space.<</if>>
+	<<if $arcologyUpgrade.drones == 1>>The central plaza is a large atrium; a security drone occasionally flies across the open space.<</if>>
 <</if>>
 
 <<if ($arcologies[0].FSSupremacistDecoration >= 80) || ($arcologies[0].FSSubjugationistDecoration >= 80) || ($arcologies[0].FSGenderRadicalistDecoration >= 80) || ($arcologies[0].FSGenderFundamentalistDecoration >= 80) || ($arcologies[0].FSPaternalistDecoration >= 80) || ($arcologies[0].FSDegradationistDecoration >= 80) || ($arcologies[0].FSBodyPuristDecoration >= 80) || ($arcologies[0].FSRepopulationFocusDecoration >= 80) || ($arcologies[0].FSRestartDecoration >= 80) || ($arcologies[0].FSTransformationFetishistDecoration >= 80) || ($arcologies[0].FSYouthPreferentialistDecoration >= 80) || ($arcologies[0].FSMaturityPreferentialistDecoration >= 80) || ($arcologies[0].FSSlimnessEnthusiastDecoration >= 80) || ($arcologies[0].FSAssetExpansionistDecoration >= 80) || ($arcologies[0].FSPastoralistDecoration >= 80) || ($arcologies[0].FSPhysicalIdealistDecoration >= 80) || ($arcologies[0].FSChattelReligionistDecoration >= 80) || ($arcologies[0].FSRomanRevivalistDecoration >= 80) || ($arcologies[0].FSEgyptianRevivalistDecoration >= 80) || ($arcologies[0].FSEdoRevivalistDecoration >= 80) || ($arcologies[0].FSArabianRevivalistDecoration >= 80) || ($arcologies[0].FSChineseRevivalistDecoration >= 80)>>
@@ -680,7 +553,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el
 	The noise in the thriving open space is almost oppressive, with the sounds of drunken merriment, traditional music, and distant intercourse forming an omnipresent hum.
 <</if>>
 
-$ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial slaves live in $arcologies[0].name.
+$ACitizens citizens and <<print $ASlaves+$helots+$slaves.length>> slaves live in $arcologies[0].name.
 <<if $arcologies[0].FSSupremacistLawME == 1>>The citizenry is entirely $arcologies[0].FSSupremacistRace.<</if>>
 <<if $arcologies[0].FSRomanRevivalistLaw == 1>>Every citizen has military responsibilities, which are a point of pride to many, with most opting to wear utilitarian clothing even when off duty.<</if>>
 <<if $arcologies[0].FSMaturityPreferentialistLaw == 1>>Most citizens are at least middle-aged, and graying hair on a citizen is considered attractive here.
@@ -704,7 +577,7 @@ $ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial
 
 Its lingua franca is $language.
 
-<span id="neighbors"><br>&nbsp;&nbsp;&nbsp;&nbsp;
+<span id="neighbors">
 <<link "View neighboring arcologies">>
 <<replace "#neighbors">>
 
diff --git a/src/uncategorized/assign.tw b/src/uncategorized/assign.tw
index 1733d59b79a6be4fd6532136f205dac4c8cdf537..d3cd34948fc35d1fc61ad2d53ff2c0503170a6ca 100644
--- a/src/uncategorized/assign.tw
+++ b/src/uncategorized/assign.tw
@@ -3,64 +3,25 @@
 <<set $activeSlave = $slaves[$i], _ID = $activeSlave.ID>>
 
 <<assignJob $activeSlave $returnTo>>
+
 <<switch $returnTo>>
-<<case "Arcade">>
-	<<set $activeSlave.clothes = "no clothing">>
-<<case "Master Suite">>
-	<<if $masterSuiteUpgradeLuxury > 1>>
-		<<set $activeSlave.livingRules = "luxurious">>
-	<<else>>
-		<<set $activeSlave.livingRules = "normal">>
-	<</if>>
-<<case "Dairy">>
-	<<if $dairyRestraintsSetting > 1>>
-		<<set $activeSlave.collar = "none", $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none">>
-	<</if>>
-	<<if $dairyPregSetting > 0>>
-		<<set $reservedChildren -= $activeSlave.reservedChildren>>
-		<<set $activeSlave.reservedChildren to 0>>
-	<</if>>
 <<case "Pit">>
 	<<set $fighterIDs.push(_ID)>>
+
 <<case "Coursing Association">>
 	<<set $Lurcher = $activeSlave>>
-<</switch>>
 
-<<if ($returnTo != "Pit") && ($returnTo != "Coursing Association")>>
-
-<<if $returnTo != "Master Suite">>
-	<<set $activeSlave.livingRules = "spare">>
-<</if>>
-
-<<set $activeSlave.drugs = "no drugs", $activeSlave.releaseRules = "restrictive", $activeSlave.sentence = 0, $activeSlave.standardPunishment = "situational", $activeSlave.standardReward = "situational", $activeSlave.releaseRules = "restrictive">>
-
-<<if _ID == $HeadGirl.ID>><<set $HeadGirl = 0>><</if>>
-<<if _ID == $Recruiter.ID>><<set $Recruiter = 0>><</if>>
-<<if _ID == $Bodyguard.ID>><<set $Bodyguard = 0>><</if>>
-<<if _ID == $Madam.ID>><<set $Madam = 0>><</if>>
-<<if _ID == $DJ.ID>><<set $DJ = 0>><</if>>
-<<if _ID == $Milkmaid.ID>><<set $Milkmaid = 0>><</if>>
-<<if _ID == $Schoolteacher.ID>><<set $Schoolteacher = 0>><</if>>
-<<if _ID == $Attendant.ID>><<set $Attendant = 0>><</if>>
-<<if _ID == $Nurse.ID>><<set $Nurse = 0>><</if>>
-<<if _ID == $Collectrix.ID>><<set $Collectrix = 0>><</if>>
-<<if _ID == $Stewardess.ID>><<set $Stewardess = 0>><</if>>
-<<if _ID == $Wardeness.ID>><<set $Wardeness = 0>><</if>>
-<<if _ID == $Concubine.ID>><<set $Concubine = 0>><</if>>
-
-<<set $slaves[$i] = $activeSlave>>
+<<default>>
+	<<if ($showAssignToScenes != 1) || ($activeSlave.fetish == "mindbroken")>>
+		<<goto $returnTo>>
+	<<elseif ($returnTo == "Dairy") && (($dairyStimulatorsSetting >= 2) || ($dairyFeedersSetting >= 2) || ($dairyPregSetting >= 2))>>
+		<<goto "Industrial Dairy Assignment Scene">>
+	<<elseif ($returnTo == "Dairy") && ($dairyRestraintsSetting == 0 && $activeSlave.devotion > 0)>>
+		<<goto "Free Range Dairy Assignment Scene">>
+	<<elseif ($returnTo == "Brothel")>>
+		<<goto "Brothel Assignment Scene">>
+	<<else>>
+		<<goto $returnTo>>
+	<</if>>
 
-<<if ($showAssignToScenes != 1) || ($activeSlave.fetish == "mindbroken")>>
-	<<goto $returnTo>>
-<<elseif ($returnTo == "Dairy") && (($dairyStimulatorsSetting >= 2) || ($dairyFeedersSetting >= 2) || ($dairyPregSetting >= 2))>>
-	<<goto "Industrial Dairy Assignment Scene">>
-<<elseif ($returnTo == "Dairy") && ($dairyRestraintsSetting == 0 && $activeSlave.devotion > 0)>>
-	<<goto "Free Range Dairy Assignment Scene">>
-<<elseif ($returnTo == "Brothel")>>
-	<<goto "Brothel Assignment Scene">>
-<<else>>
-	<<goto $returnTo>>
-<</if>>
-<<else>>
-	<<goto $returnTo>>
-<</if>>
+<</switch>>
diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw
index 3643317f1381ee932f7d78ea7ef1d25fbd1398da..ebe4a95139605294a7a10f07beb69a20fddf34f8 100644
--- a/src/uncategorized/brothel.tw
+++ b/src/uncategorized/brothel.tw
@@ -107,7 +107,7 @@ $brothelNameCaps
 		sucking dick and taking anal, and the ones that have pussies are being fucked there, too.
 	<</if>>
 	The ads are shown on media across $arcologies[0].name.
-	<<if ($brothelAdsXX == 1) && ($brothelAdsImplants == 1) && ($brothelAdsStacked == 1)>>
+	<<if ($brothelAdsXX == 1) && ($brothelAdsImplanted == 1) && ($brothelAdsStacked == 1)>>
 		As a result, $brothelName is known as the place to go if you want to rent a<<if ($brothelAdsPreg == 1)>>pregnant<</if>> bimbo's pussy.
 	<<elseif ($brothelAdsXX == 1) && ($brothelAdsOld == 1)>>
 		As a result, $brothelName is known as the place to go if you want to rent a<<if ($brothelAdsPreg == 1)>>pregnant<</if>> MILF's tits.
@@ -129,7 +129,16 @@ $brothelNameCaps
 <<elseif $Madam != 0>>
 	$Madam.slaveName is alone in $brothelName, and has nothing to do but keep the place clean and plan future sales efforts.
 <<else>>
-	$brothelNameCaps is empty and desolate. [[Decommission the brothel|Main][$brothel = 0, $brothelUpgradeDrugs = 0, $brothelDecoration = "standard"]]
+	$brothelNameCaps is empty and desolate.
+	<<link "Decommission the brothel">>
+		<<set $brothel = 0, $brothelUpgradeDrugs = 0, $brothelDecoration = "standard">>
+		<<for _i = 0; _i < $sectors.length; _i++>>
+		<<if $sectors[_i].type == "Brothel">>
+			<<set $sectors[_i].type == "Shops">><<break>>
+		<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>>
 <</if>>
 
 <<set _Tmult0 = Math.trunc($brothel*1000*$upgradeMultiplierArcology)>>
diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw
new file mode 100644
index 0000000000000000000000000000000000000000..86ee43059c6943950236a2e788ff33d4046dffe0
--- /dev/null
+++ b/src/uncategorized/buildingWidgets.tw
@@ -0,0 +1,310 @@
+:: building widgets [nobr widget]
+
+/%
+Call as <<DisplayBuilding>>
+Displays the arcology as a table.
+Yes, I am aware this is horrible. If anyone can figure out how to get widgets to play nice with tables, or otherwise unfuck this, tell me and I'll implement it.
+%/
+<<widget "DisplayBuilding">>
+
+<<set _Pass = passage()>>
+
+<style>
+	table.arcology {
+		table-layout: fixed;
+		text-align: center;
+		border-collapse: separate;
+		border-spacing: 5px;
+		border-style: hidden;
+		empty-cells: hide;
+		width: 80%;
+	}
+	th, td {
+		background-color: Black;
+		width: 8%;
+	}
+    td#Empty {
+        border: 5px solid LightGray; 
+    }
+    td#Private {
+        border: 5px solid Red; 
+    }
+    td#Shops {
+        border: 5px solid Thistle; 
+    }
+    td#Brothel {
+        border: 5px solid Violet; 
+    }
+    td#Club {
+        border: 5px solid Orchid; 
+    }
+    td#Apartments {
+        border: 5px solid LimeGreen; 
+    }
+    td#DenseApartments {
+        border: 5px solid SeaGreen; 
+    }
+    td#LuxuryApartments {
+        border: 5px solid PaleGreen; 
+    }
+    td#Markets {
+        border: 5px solid MediumOrchid; 
+    }
+    td#Arcade {
+        border: 5px solid DeepPink; 
+    }
+    td#Pens {
+        border: 5px solid GoldenRod; 
+    }
+    td#Pit {
+        border: 5px solid OrangeRed; 
+    }
+    td#Manufacturing {
+        border: 5px solid SlateGray; 
+    }
+    td#Barracks {
+        border: 5px solid OliveDrab; 
+    }
+    td#Penthouse {
+        border: 5px solid Teal; 
+    }
+    td#Dairy {
+        border: 5px solid White; 
+    }
+</style>
+
+<center>
+<table class="arcology" border="1">
+	<tr> /* Level 9, penthouse, sector 0 */
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+		<th></th>
+	</tr>
+	<tr> /* Level 9, penthouse, sector 0 */
+		<td></td>
+		<td></td>
+		<td></td>
+		<td id="Penthouse" colspan="4">
+			<<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>>
+			<<if $servantsQuarters||$spa||$clinic||$schoolroom||$cellblock||$incubator>>
+				<br>
+				<<if $masterSuite>>[[Suite|Master Suite]]<</if>>
+				<<if $servantsQuarters>>[[Quarters|Servants' Quarters]]<</if>>
+				<<if $spa>>[[Spa]]<</if>>
+				<<if $clinic>>[[Clinic]]<</if>>
+				<<if $schoolroom>>[[Schoolroom]]<</if>>
+				<<if $cellblock>>[[Cellblock]]<</if>>
+				<<if $incubator>>[[Incubator]]<</if>>
+				<<if $HGSuite>>[[HG Suite|Head Girl Suite]]<</if>>
+			<</if>>
+		</td>
+		<td></td>
+		<td></td>
+		<td></td>
+	</tr>
+	<tr> /* Level 6, promenade, sectors 5-7 */
+		<td></td>
+		<td></td>
+		<<for _i = 5; _i <= 7; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Club">>
+				<td colspan="2" id="Club"><<print "[[Club][$AS="+_i+"]]">> ($clubSlaves/<<print $club>><<if $DJ>>, L<</if>>)</td>
+			<<case "Brothel">>
+				<td colspan="2" id="Brothel"><<print "[[Brothel][$AS="+_i+"]]">> ($brothelSlaves/<<print $brothel>><<if $Madam>>,L<</if>>)</td>
+			<<case "Shops">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Shops"><<print "[[Shops][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Shops|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+	<tr> /* Level 5, apartments, sectors 8-11 */
+		<td></td>
+		<<for _i = 8; _i <= 11; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Apartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "DenseApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "LuxuryApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+	<tr> /* Level 4, apartments, sectors 12-15 */
+		<td></td>
+		<<for _i = 12; _i <= 15; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Apartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "DenseApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "LuxuryApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+	<tr> /* Level 3, apartments, sectors 16-19 */
+		<td></td>
+		<<for _i = 16; _i <= 19; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Apartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "DenseApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "LuxuryApartments">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+	<tr> /* Level 2, concourse, sectors 20-24 */
+		<<for _i = 20; _i <= 24; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Markets">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Markets"><<print "[[Markets][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Markets|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "Pit">>
+				<td colspan="2" id="Pit"><<print "[[Pit][$AS="+_i+"]]">></td>
+			<<case "Arcade">>
+				<td colspan="2" id="Arcade"><<print "[[Arcade][$AS="+_i+"]]">> ($arcadeSlaves/<<print $arcade>>)</td>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+	<tr> /* Level 1, service area, sectors 25-29 */
+		<<for _i = 25; _i <= 29; _i++>>
+			<<switch $sectors[_i].type>>
+			<<case "Manufacturing">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Manufacturing"><<print "[[Manufacturing][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Manufacturing|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "Pens">>
+				<<if $sectors[_i].ownership == 1>>
+					<td colspan="2" id="Pens"><<print "[[Pens][$AS="+_i+"]]">></td>
+				<<else>>
+					<td colspan="2" id="Private"><<print "[[Pens|Private][$AS="+_i+"]]">></td>
+				<</if>>
+			<<case "Barracks">>
+				<td colspan="2" id="Barracks">Barracks</td>
+			<<case "Dairy">>
+				<<set _SCapT9 = $bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>>
+				<td colspan="2" id="Dairy"><<print "[[Dairy][$AS="+_i+"]]">> ($dairySlaves<<if _SCapT9>>+_SCapT9<</if>>/<<print $dairy>><<if $Milkmaid>>,L<</if>>)</td>
+			<<default>><td></td>
+			<</switch>>
+		<</for>>
+	</tr>
+</table>
+</center>
+
+<</widget>>
+
+<<widget "SectorSell">>
+
+<<set $price = 1000*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>>
+Selling this sector would relenquish a 4% interest in $arcologies[0].name. Such an interest is worth ¤$price.
+<<if $arcologies[0].ownership >= 4>>
+	[[Sell|Manage Arcology][$cash += $price, $arcologies[0].ownership -= 4, $arcologies[0].demandFactor -= 20, $sectors[$AS].ownership = 0]]
+<</if>>
+
+<</widget>>
+
+/%
+ Call as <<ApartmentEffects>>
+ Updates $ACitizenLimit and $AProsperityCap.
+%/
+<<widget "ApartmentEffects">>
+
+<<if $arcologyUpgrade.drones != 1>>
+	<<set $AProsperityCap = 0>>
+<<elseif $arcologyUpgrade.hydro != 1>>
+	<<set $AProsperityCap = 10>>
+<<elseif $arcologyUpgrade.apron != 1>>
+	<<set $AProsperityCap = 30>>
+<<elseif $arcologyUpgrade.grid != 1>>
+	<<set $AProsperityCap = 60>>
+<<elseif $arcologyUpgrade.spire != 1>>
+	<<set $AProsperityCap = 100>>
+<<else>>
+	<<set $AProsperityCap = 150>>
+<</if>>
+<<set $ACitizenLimit = 0>>
+<<for _i = 8; _i <= 19; _i++>>
+	<<if $sectors[_i].type == "DenseApartments">>
+		<<set $ACitizenLimit += 600, $AProsperityCap += 10>>
+	<<elseif $sectors[_i].type == "LuxuryApartments">>
+		<<set $ACitizenLimit += 400, $AProsperityCap += 15>>
+	<<else>>
+		<<set $ACitizenLimit += 400, $AProsperityCap += 10>>
+	<</if>>
+<</for>>
+
+<</widget>>
+
+/%
+ Call as <<UpdateOwnership>>
+ Updates $arcologies[0].ownership.
+%/
+<<widget "UpdateOwnership">>
+
+<<set $arcologies[0].ownership = 0>>
+<<for _i = 5; _i <= 29; _i++>>
+	<<if $sectors[_i].ownership == 1>>
+		<<set $arcologies[0].ownership += 4>>
+	<</if>>
+<</for>>
+
+<</widget>>
\ No newline at end of file
diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw
index 3ab2de8e5077d679a863534a7cbee1c1eda489b5..3167be76517c784f330a1ef056675e338776b5fa 100644
--- a/src/uncategorized/buySlaves.tw
+++ b/src/uncategorized/buySlaves.tw
@@ -143,8 +143,8 @@ __Sex Slave Purchase Options__
 __Menial Slaves__
 
 <br>
-The parts of your arcology you own can house a total of <<print 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>> menial slaves.
 <<MenialPopCap>>
+The parts of your arcology you own can house a total of $PopCap menial slaves.
 
 <<set $seed = Math.trunc(($slaveCostFactor*1000)/100)*100>>
 <<set $seed = Math.clamp($seed, 500, 1500)>>
diff --git a/src/uncategorized/club.tw b/src/uncategorized/club.tw
index afb687d936a0c1bf12b9c11df50adda35b29592b..1236ce5deb4ea6b72ca577b9443b409b07cc975f 100644
--- a/src/uncategorized/club.tw
+++ b/src/uncategorized/club.tw
@@ -107,7 +107,7 @@ $clubNameCaps
 		their holes.
 	<</if>>
 	The ads are shown across the arcology.
-	<<if ($clubAdsXX == 1) && ($clubAdsImplants == 1) && ($clubAdsStacked == 1)>>
+	<<if ($clubAdsXX == 1) && ($clubAdsImplanted == 1) && ($clubAdsStacked == 1)>>
 		As a result, $clubName is known as the place to spend a night partying with<<if ($clubAdsPreg == 1)>>pregnant<</if>> bimbos.
 	<<elseif ($clubAdsXX == 1) && ($clubAdsOld == 1)>>
 		As a result, $clubName is known as the place to spend a night partying with<<if ($clubAdsPreg == 1)>>pregnant<</if>> MILFs.
@@ -129,7 +129,16 @@ $clubNameCaps
 <<elseif $DJ != 0>>
 	$clubNameCaps is doing business normally, without a complement of sex slaves to spice things up. $DJ.slaveName is alone in $clubName, and can accomplish little by herself.
 <<else>>
-	$clubNameCaps is doing business normally, without a complement of sex slaves to spice things up. [[Decommission the rooms|Main][$club = 0, $clubDecoration = "standard", $clubUpgradePDAs = 0]]
+	$clubNameCaps is doing business normally, without a complement of sex slaves to spice things up.
+	<<link "Decommission the club">>
+		<<set $club = 0, $clubDecoration = "standard", $clubUpgradePDAs = 0>>
+		<<for _i = 0; _i < $sectors.length; _i++>>
+		<<if $sectors[_i].type == "Club">>
+			<<set $sectors[_i].type == "Shops">><<break>>
+		<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>>
 <</if>>
 
 <<if $clubSlaves > 2>>
diff --git a/src/uncategorized/costs.tw b/src/uncategorized/costs.tw
index 137113fd59e91829f407f4196a0dadd22bb58753..2f1752bae05044042df899d20d2bdfafae4863a3 100644
--- a/src/uncategorized/costs.tw
+++ b/src/uncategorized/costs.tw
@@ -101,7 +101,7 @@
 <<if $pregAccessibility != 1>>
 	<<if ($slaves[$i].preg > 30 && $slaves[$i].pregType >= 2) || ($slaves[$i].preg > 20 && $slaves[$i].pregType >= 10) || ($slaves[$i].preg > 10 && $slaves[$i].pregType >= 20) || $slaves[$i].bellyImplant >= 10000>>
 	<<if ($slaves[$i].assignment != "labor in the production line")>>
-	<<set $Costs += 100>>
+	<<set $costs += 100>>
 	<</if>>
 	<</if>>
 <</if>>
diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw
index 5c88f72a6bb8db7d9c3be1a957956e9a7af1964d..ac3c1981fea380083bc92876f8855a43d0daa2f4 100644
--- a/src/uncategorized/dairy.tw
+++ b/src/uncategorized/dairy.tw
@@ -296,7 +296,16 @@ $dairyNameCaps
 <<elseif $Milkmaid != 0>>
 	$Milkmaid.slaveName is alone in $dairyName, and has nothing to do but clean and maintain the equipment.
 <<else>>
-	$dairyNameCaps is empty and desolate. [[Decommission the dairy|Main][$dairy = 0, $dairyFeedersUpgrade = 0, $dairyPregUpgrade = 0, $dairyStimulatorsUpgrade = 0, $dairyDecoration = "standard", $dairyFeedersSetting = 0, $dairyPregSetting = 0, $dairyStimulatorsSetting = 0,$dairyHyperPregRemodel = 0, $cumPipline = 0, $dairyPipeline = 0]]
+	$dairyNameCaps is empty and desolate.
+	<<link "Decommission the dairy">>
+		<<set $dairy = 0, $dairyFeedersUpgrade = 0, $dairyPregUpgrade = 0, $dairyStimulatorsUpgrade = 0, $dairyDecoration = "standard", $dairyFeedersSetting = 0, $dairyPregSetting = 0, $dairyStimulatorsSetting = 0, $dairyHyperPregRemodel = 0, $cumPipeline = 0, $milkPipeline = 0>>
+		<<for _i = 0; _i < $sectors.length; _i++>>
+		<<if $sectors[_i].type == "Dairy">>
+			<<set $sectors[_i].type == "Manufacturing">><<break>>
+		<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>>
 <</if>>
 
 <<set _Tmult0 = Math.trunc($dairy*1000*$upgradeMultiplierArcology)>>
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index ca38d8c12a557e15409e85929d725b032d371442..5cbf541fc9397e0c3d509b554ffdc480e350264c 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -302,7 +302,14 @@
 	<<elseif ($slaves[_i].diet == "fattening") || ($dairyRestraintsSetting > 1)>>
 		<<set $slaves[_i].diet = "healthy">>
 	<</if>>
-
+	<<if $dairyRestraintsSetting > 1>>
+		<<set $slaves[_i].collar = "none", $slaves[_i].clothes = "no clothing", $slaves[_i].buttplug = "none", $slaves[_i].vaginalAccessory = "none">>
+	<</if>>
+	<<if $dairyPregSetting > 0>>
+		<<set $reservedChildren -= $slaves[_i].reservedChildren>>
+		<<set $slaves[_i].reservedChildren to 0>>
+	<</if>>
+	
 	/* General End of Week effects */
 	<<if $showEWD != 0>>
 		<br><br>
diff --git a/src/uncategorized/economics.tw b/src/uncategorized/economics.tw
index 8033d4574651dc349d37da06091de36f93720a4c..3e8d12ab677230371758d765b75a0e8674c65361 100644
--- a/src/uncategorized/economics.tw
+++ b/src/uncategorized/economics.tw
@@ -1,12 +1,14 @@
 :: Economics [nobr]
 
-<<set $nextButton = "Continue">>
-<<set $nextLink = "Scheduled Event">>
+<<set $nextButton = "Continue", $nextLink = "Scheduled Event">>
 
 <<if $cash > -10000>>
 	<<set $debtWarned = 0>>
 <</if>>
 
+<<ApartmentEffects>>
+<<UpdateOwnership>>
+
 //FC Markets Report://
 
 <<set $assetAffected = either("general", "slaves", "entrapment", "capture", "training", "surgical", "drugs")>>
@@ -1290,75 +1292,47 @@ __Arcology Management__
 <<else>>
 	<<set $ASlaves += random(-10,10)>>
 <</if>>
-<<if $AHelots < 100>>
-	<<set $AHelots = random(90,110)>>
-<<else>>
-	<<set $AHelots += random(-10,10)>>
-<</if>>
-<<if $ACitizens < 100>>
-	<<set $ACitizens = random(90,110)>>
-<<else>>
-	<<set $ACitizens += random(-10,10)>>
-<</if>>
+<<set $ACitizens += random(-10,10)>>
 
 <<if $ProImmigrationRep == 1>>
-	Your welcome program for new citizens helps encourage wealthy people from the old world to immigrate, but @@.red;annoys some longstanding citizens.@@
-	<<set $ACitizens += random(10,20)>>
-	<<set $rep -= 100>>
+	<<if $ACitizens < $ACitizenLimit>>
+		Your welcome program for new citizens helps encourage wealthy people from the old world to immigrate, but @@.red;annoys some longstanding citizens.@@
+		<<set $ACitizens += random(10,20)>>
+		<<set $rep -= 100>>
+	<</if>>
 <<elseif $AntiImmigrationCash == 1>>
-	You covertly @@.yellowgreen;sell@@ the private information of potential arcology immigrants on the old world black market.
-	<<set $cash += random(500,1500)>>
-	<<set $ACitizens -= random(5,15)>>
+	<<if $ACitizens > 100>>
+		You covertly @@.yellowgreen;sell@@ the private information of potential arcology immigrants on the old world black market.
+		<<set $cash += random(500,1500)>>
+		<<set $ACitizens -= random(5,15)>>
+	<</if>>
 <</if>>
 <<if $arcologies[0].FSRestartLaw == 1>>
-	Your sterilization program drives several disloyal citizens out of the arcology.
-	<<set $ACitizens -= random(3,10)>>
+	<<if $ACitizens > 100>>
+		Your sterilization program drives several disloyal citizens out of the arcology.
+		<<set $ACitizens -= random(3,10)>>
+	<</if>>
 <</if>>
 <<if $arcologies[0].FSRepopulationFocusLaw == 1>>
-	The rent promotion for pregnant women attracts several gravid ladies and a few girls eager to become mothers to enroll as citizens in your arcology.
-	<<set $ACitizens += random(5,10)>>
+	<<if $ACitizens < $ACitizenLimit>>
+		The rent promotion for pregnant women attracts several gravid ladies and a few girls eager to become mothers to enroll as citizens in your arcology.
+		<<set $ACitizens += random(5,10)>>
+	<</if>>
 <</if>>
 <<if $ProImmigrationCash == 1>>
-	The rent promotion for new immigrants brings new citizens to the arcology.
-	<<set $ACitizens += random(10,20)>>
+	<<if $ACitizens < $ACitizenLimit>>
+		The rent promotion for new immigrants brings new citizens to the arcology.
+		<<set $ACitizens += random(10,20)>>
+	<</if>>
 <<elseif $AntiImmigrationRep == 1>>
-	You allow citizens input on potential immigrants, a @@.green;popular@@ program.
-	<<set $rep += 100>>
-	<<set $AHelots += random(5,15)>>
-<</if>>
-
-<<if $ProRefugees == 1>>
-	Your propaganda in the old world encourages desperate refugees to come here and become menial slaves.
-	<<set $AHelots += random(5,10)>>
-<</if>>
-
-<<if $ACitizens+$ASlaves < ($arcologies[0].prosperity+200)*16>>
-	<<set $ACitizens = Math.trunc($ACitizens*1.05)>>
-	<<set $ASlaves = Math.trunc($ASlaves*(1/$slaveCostFactor))>>
-<<elseif $ACitizens+$ASlaves > ($arcologies[0].prosperity+200)*20>>
-	<<set $ACitizens = Math.trunc($ACitizens*0.95)>>
-	<<set $ASlaves = Math.trunc($ASlaves*0.9)>>
-<</if>>
-
-<<if $AHelots > $ASlaves*2>>
-	<<set $AHelots = Math.trunc($AHelots*0.95)>>
-<<elseif $arcologies[0].FSEgyptianRevivalist != "unset">>
-	<<set $AHelots += random(10,100)>>
-<<elseif $arcologies[0].FSDegradationist != "unset">>
-	<<set $AHelots += random(10,100)>>
-<<elseif $arcologies[0].FSPastoralist != "unset">>
-	<<set $AHelots += random(10,80)>>
-<<elseif $arcologies[0].FSRomanRevivalist != "unset">>
-	<<set $AHelots += random(10,80)>>
-<<elseif $arcologies[0].FSChattelReligionist != "unset">>
-	<<set $AHelots += random(10,20)>>
-<<elseif $arcologies[0].FSPaternalist != "unset">>
-	<<set $AHelots += random(10,20)>>
-<<else>>
-	<<set $AHelots += random(10,50)>>
+	<<if $ACitizens > 100>>
+		You allow citizens input on potential immigrants, a @@.green;popular@@ program.
+		<<set $rep += 100>>
+		<<set $ACitizens -= random(5,15)>>
+	<</if>>
 <</if>>
 
-<<set $seed = random(20,50)>>
+<<set $seed = random(20,40)>>
 <<if $arcologies[0].FSPaternalist != "unset">>
 	Poor citizens can rely on their better-off peers in $arcologies[0].name.
 	<<set $seed -= Math.trunc($arcologies[0].FSPaternalist/10)>>
@@ -1403,19 +1377,32 @@ __Arcology Management__
 <</if>>
 <<if $seed < 0>>
 	<<if $ACitizens < $ASlaves*5>>
-	<<set $ACitizens -= $seed>>
-	<<set $ASlaves += $seed>>
+		<<if $ACitizens > 100>>
+			<<set $ACitizens -= $seed>>
+		<</if>>
+		<<set $ASlaves += $seed>>
 	<</if>>
 <<else>>
 	<<if $ACitizens > $ASlaves*0.1>>
-	<<if $ACitizens > 200>>
-		<<set $ACitizens -= $seed>>
+		<<if $ACitizens > 100>>
+			<<set $ACitizens -= $seed>>
+		<</if>>
 		<<set $ASlaves += $seed>>
 	<</if>>
-	<</if>>
 <</if>>
 
-$ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial slaves live in your arcology.
+<<if $ACitizens >= $ACitizenLimit>>
+	<<set $ACitizens = $ACitizenLimit>>
+	Your arcology is currently home to as many citizens as it can house; unless the living areas are reconfigured, the citizen population will not increase.
+<<elseif $ACitizens <= 100>>
+	<<set $ACitizens = 100>>
+	Your arcology is home to an extremely small number of very wealthy citizens; wealth is as concentrated as possible and the citizen population will not decrease further.
+<<elseif $ACitizens < $ACitizenLimit*0.6>>
+	<<set $ACitizens += random(10,20)>>
+	The availability of a large number of apartments encourages many new citizens to immigrate.
+<</if>>
+
+$ACitizens citizens and <<print $ASlaves+$helots+$slaves.length>> slaves now live in your arcology.
 <<if $arcologies[0].FSSupremacistLawME == 1>>The citizenry is entirely $arcologies[0].FSSupremacistRace.<</if>>
 <<if $arcologies[0].FSRomanRevivalistLaw == 1>>The citizens take pride in their martial duties, preferring to wear utilitarian clothing even when off duty.<</if>>
 <<if $arcologies[0].FSGenderRadicalistLaw == 1>>Every single one of the slaves is female by virtue of her fuckable asshole.
@@ -1441,18 +1428,26 @@ $ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial
 <<elseif $ACitizens > $ASlaves*0.5>>
 	Since many citizens can afford to keep a sex slave, @@.yellow;demand for sexual services is only moderate.@@
 <<elseif $ACitizens > $ASlaves*0.25>>
-	Since most citizens can afford to keep at least one sex slaves, @@.gold;local demand for sexual services is low,@@ though visitors to the arcology will always keep it above a certain minimum.
+	Since most citizens can afford to keep at least one sex slave, @@.gold;local demand for sexual services is low,@@ though visitors to the arcology will always keep it above a certain minimum.
 <<else>>
 	Since most of your citizens now keep private harems of sex slaves, @@.gold;local demand for sexual services is very low,@@ though visitors to the arcology will always keep it above a certain minimum.
 <</if>>
 
 <br>
 
-<<set $rents = ($arcologies[0].prosperity*$arcologies[0].ownership*2)+random(1,100)>>
+<<set $rents = random(1,100)>>
+<<for _i = 1; _i < $sectors.length; _i++>>
+	<<if $sectors[_i].ownership == 1>>
+		<<switch $sectors[_i].type>>
+		<<case "DenseApartments" "LuxuryApartments" "Apartments" "Shops" "Markets" "Manufacturing">>
+			<<set $rents += $arcologies[0].prosperity*10>>
+		<</switch>>
+	<</if>>
+<</for>>
 <<set $rentalMultiplier = 1>>
 <<if $arcologies[0].FSPaternalistLaw == 1>>
 	<<set $rentalMultiplier -= 0.1>>
-	Slaveowners who can prove that they abstain from certain practices are given a reduction to their rent.
+	Tenants who can prove that they abstain from certain practices are given a reduction to their rent.
 <</if>>
 <<if $arcologies[0].FSYouthPreferentialistLaw == 1>>
 	<<set $rentalMultiplier -= 0.1>>
@@ -1548,7 +1543,7 @@ earning you @@.yellowgreen;¤$seed.@@
 
 <<set _AWeekGrowth = $AGrowth>>
 <<if _AWeekGrowth+$arcologies[0].prosperity > $AProsperityCap>>
-	@@.yellow;$arcologies[0].name is at its maximum prosperity, so rents will not increase until it is upgraded.@@
+	@@.yellow;$arcologies[0].name is at its maximum prosperity, so rents will not increase until it is improved.@@
 <<elseif (2*_AWeekGrowth)+$arcologies[0].prosperity >= $AProsperityCap>>
 	@@.yellow;Your arcology is nearly at its maximum prosperity.@@
 	<<set $arcologies[0].prosperity += _AWeekGrowth>>
@@ -1830,24 +1825,25 @@ The Futanari Sisters have a <<if $TFS.schoolProsperity > 4>>very prosperous<<els
 <</if>>
 
 <<if $marketAssistantLimit != 0>>
+<<silently>><<MenialPopCap>><</silently>>
 <<set $seed = Math.clamp($slaveCostFactor*1000, 500, 1500)>>
 <br>
 Your ''business assistant'' manages the menial slave market.
 <<if $seed <= 800+$marketAssistantAggressiveness>>/* BUY */
-	<<if $helots+$fuckdolls+$menialBioreactors >= 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>>
+	<<if $helots+$fuckdolls+$menialBioreactors >= $PopCap>>
 	There is no room in the parts of your arcology you own for more menial slaves.
 	<<else>>
-	<<if $cash > $marketAssistantLimit+$seed>>
-		<<if $assistant == 0>>It<<else>>She<</if>> acquires more chattel, since it's a buyers' market.
-		<<if ($arcologies[0].FSPastoralist != "unset") && ($arcologies[0].FSPaternalist == "unset")>>
-			<<set $menialBioreactors += Math.trunc(($cash-$marketAssistantLimit)/($seed-100)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed-100))*($seed-100)>>
-		<<elseif ($arcologies[0].FSDegradationist != "unset")>>
-			<<set $fuckdolls += Math.trunc(($cash-$marketAssistantLimit)/($seed*2)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed*2))*($seed*2)>>
-		<<else>>
-			<<set $helots += Math.trunc(($cash-$marketAssistantLimit)/($seed)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed))*($seed)>>
+		<<if $cash > $marketAssistantLimit+$seed>>
+			<<if $assistant == 0>>It<<else>>She<</if>> acquires more chattel, since it's a buyers' market.
+			<<if ($arcologies[0].FSPastoralist != "unset") && ($arcologies[0].FSPaternalist == "unset")>>
+				<<set $menialBioreactors += Math.trunc(($cash-$marketAssistantLimit)/($seed-100)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed-100))*($seed-100)>>
+			<<elseif ($arcologies[0].FSDegradationist != "unset")>>
+				<<set $fuckdolls += Math.trunc(($cash-$marketAssistantLimit)/($seed*2)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed*2))*($seed*2)>>
+			<<else>>
+				<<set $helots += Math.trunc(($cash-$marketAssistantLimit)/($seed)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed))*($seed)>>
+			<</if>>
 		<</if>>
 	<</if>>
-	<</if>>
 <<elseif $seed >= 1200-$marketAssistantAggressiveness>>/* SELL */
 	<<if $helots+$fuckdolls+$menialBioreactors > 0>>
 		<<if $assistant == 0>>It<<else>>She<</if>> liquidates your chattel holdings, since it's a sellers' market.
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
index 66b27a89e9758bc98ec8158517aaf72cb8cfbc21..efd8c180442bb3d2122fe3a07a3ad916d5c42dde 100644
--- a/src/uncategorized/endWeek.tw
+++ b/src/uncategorized/endWeek.tw
@@ -121,7 +121,7 @@
 	<<set $PC.preg++>>
 <</if>>
 
-<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $HGBalls = 0, $HGRelease = 1, $Recruiter = 0, $Madam = 0, $madamCashBonus = 0, $DJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Nurse = 0, $Bodyguard = 0, $bedSlaves = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0>>
+<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $HGBalls = 0, $HGRelease = 1, $Recruiter = 0, $Madam = 0, $madamCashBonus = 0, $DJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Nurse = 0, $Bodyguard = 0, $bedSlaveOne = 0, $bedSlaveTwo = 0, $bedSlaveThree = 0, $bedSlaveFour = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0>>
 
 /* GAMEOVERS */
 <<if $slaves.length < 1>>
diff --git a/src/uncategorized/freeRangeDairyAssignmentScene.tw b/src/uncategorized/freeRangeDairyAssignmentScene.tw
index cfc8e23ab68dae4a94b6258cee43f30a2131b9f6..222e02a36055a3011bd64c67245c3a1765f6306b 100644
--- a/src/uncategorized/freeRangeDairyAssignmentScene.tw
+++ b/src/uncategorized/freeRangeDairyAssignmentScene.tw
@@ -33,7 +33,7 @@ While walking to her designated stall, she passes the other cows currently at th
     <</if>>
 
     <<for $i = 0; $i < $slaves.length; $i++>>
-        <<if $slaves[$i].assignment == "work in the dairy" && $slaves[$i].balls > 5 && $activeSlave.ID != $slaves[$i].ID>>
+        <<if $slaves[$i].assignment == "work in the dairy" && $slaves[$i].slaveName != $activeSlave.slaveName && $slaves[$i].balls > 5 >>
             <<set $aroused = true >>
             The hyper-endowed cum-cow $slaves[$i].slaveName is the pride of $dairyName. $activeSlave.slaveName stops to watch her for a while. The constant suction on her dick has her panting. She is obviously nearing climax. Soon, her eyes bulge and her muscles tense.
             <<if  $dairyStimulatorsSetting == 1>>
@@ -308,7 +308,15 @@ It does not take long for $activeSlave.slaveName to reach her first orgasm of ma
     <<if $activeSlave.dick > 0 >>
     Her	<<if $activeSlave.balls > 5 >>cum-engorged<</if>> balls draw up.
     Her <<if $activeSlave.dick > 8 >>gargantuan member<<elseif $activeSlave.dick > 6 >>huge cock<<else>>dick<</if>> twitches and flexes within its receptacle.
-        <<if $activeSlave.balls > 5 >>
+		<<if $activeSlave.balls >= 50>>
+			A special tank beneath her holds her monolithic balls' endless ejaculate while the machine struggles to suck it away.
+		<<elseif $activeSlave.balls >= 37>>
+			A special tank attached to the hose holds her titanic balls' near endless ejaculate while the machine struggles to suck it away.
+		<<elseif $activeSlave.balls >= 25>>
+			A special reservoir attached to the hose holds her massive balls' ridiculous ejaculate while the machine struggles to suck it away.
+		<<elseif $activeSlave.balls >= 10>>
+			The machine strains to suck down the giant load from her huge balls.
+        <<elseif $activeSlave.balls > 5 >>
         The copious ejaculation from her over-sized balls give the machine something to work on.
         <<elseif $activeSlave.balls > 0 >>
         Her ejaculate is quickly sucked away.
@@ -317,19 +325,28 @@ It does not take long for $activeSlave.slaveName to reach her first orgasm of ma
         <</if>>
     <</if>>
 <<if $activeSlave.lactation > 0 >>
-The milking cups on her nipples switch from rhythmic pulsing into intense suction. Aided by her orgasm, she seems to ejaculate milk
-    <<if $activeSlave.boobs > 10000 >>
+<br>
+The milking cups on her nipples switch from rhythmic pulsing into intense suction. Aided by her orgasm, milk spurts from her nipples 
+    <<if $activeSlave.boobs > 20000 >>
+    in obscenely massive amounts. Her immense breasts seem to never empty.
+    <<elseif $activeSlave.boobs > 10000 >>
     in absurdly large amounts. Her gargantuan breasts do not seem to get less milk-laden for a long time.
     <<elseif $activeSlave.boobs > 5000 >>
-    in a large amount. Her huge breasts can provide liters of milk.
+    in a large amount. Her huge breasts can provide multiple liters of milk.
     <<elseif $activeSlave.boobs > 1000 >>
-    in a fair amount. Her large breasts can store an impressive volume of milk.
-    <<elseif $activeSlave.boobs > 500 >>
-    enough for whitening a cup of coffee. Her average breasts cannot store much more.
+    for quite some time. Her large breasts can store an impressive volume of milk.
+    <<elseif $activeSlave.boobs > 700 >>
+    until there is enough for whitening a cup of coffee. Her average breasts cannot store much more.
+    <<elseif ($arcologies[0].FSSlimnessEnthusiast > 80) >>
+    for a suprisingly long time. Your arcology succeeded in optimized the milking process for small breasts.
     <<else>>
     for a short time. Her small tits cannot dispense much milk at once.
     <</if>>
 <</if>>
+<<if $activeSlave.prostate != 0 && $activeSlave.dick == 0 >>
+<br>
+$activeSlave.slaveName has no cock, but a functional prostate gland. It's attached to her urethra, so she squirts <<if $activeSlave.prostateImplant == 1>>massively<<else>>copiously<</if>> while she orgasms. The exotic fluid is caught by a basin positioned unter her dripping pussy.
+<</if>>
 <br><br>
 With the first milking cycle being over, $activeSlave.slaveName drifts into a relaxing slumber.
 <<if $dairyFeedersSetting == 1 && ($activeSlave.sexualFlaw == "cum addict" || $activeSlave.fetish == "cumslut") >>
diff --git a/src/uncategorized/genericPlotEvents.tw b/src/uncategorized/genericPlotEvents.tw
index 32df6153260fd638173dcfef87fc0537599b2bac..1649a8178167b08ffa888b948740ddfcd75370cb 100644
--- a/src/uncategorized/genericPlotEvents.tw
+++ b/src/uncategorized/genericPlotEvents.tw
@@ -23,7 +23,7 @@ Early one morning, you hear convulsive dry heaving coming from one of the bathro
 <br><br>
 It doesn't take much investigation before you find other slaveowners reporting the same thing. Elementary detective work fingers a particular drug supplier as the culprit, and before long the unfortunate Pharmaceutical concern is drowning under a rain of harsh public comment and harsher private contract warfare. As the day wears on, the poor slaves feel a bit better, but begin to report discomfort in their breasts. Apparently the problem has to do with contamination of the curative production line with A-HGH production reactants.
 <br><br>
-The firm promptly pays @@.yellowgreen;fair compensation@@ for the minor damage to your slaves' health. However, you're left with the matter of the boobs to deal with. Over the week, all your slaves on curatives experience at least a little @@.lime;breast growth,@@ and some gain several cup sizes.<<if $medicalEnema == 1>> Those with bellies full of curative mixture, on the other hand, have not stopped growing yet and won't until they completely absorb their load. They will likely end up @@.lime;sporting enormous tits@@ by the end of this..<</if>>
+The firm promptly pays @@.yellowgreen;fair compensation@@ for the minor damage to your slaves' health. However, you're left with the matter of the boobs to deal with. Over the week, all your slaves on curatives experience at least a little @@.lime;breast growth,@@ and some gain several cup sizes.<<if $medicalEnema == 1>> Those with bellies full of curative mixture, on the other hand, have not stopped growing yet and won't until they completely absorb their load. They will likely end up @@.lime;sporting enormous tits@@ by the end of this.<</if>>
 
 <<case "bad breasts">>
 
@@ -577,7 +577,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your
 	<<replace "#result">>
 	The hapless manufacturer eventually goes bankrupt.  However, you do manage to force surgical correction of the pregnancies before they do.  As additional compensation, they agree to naturally enhance your afflicted slaves busts knowing full well that most buyers are not interested in slaves that have been knocked up.  At the managers expense, your slaves move through a top-flight surgeons care and are pregnancy free and sporting @@.lime;larger breasts@@.
 	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if $slaves[$i].drugs is "breast injections">>
+		<<if $slaves[$i].drugs == "breast injections">>
 			<<set $slaves[$i].boobs += 100*(random(1,10))>>
 		<</if>>
 	<</for>>
@@ -655,7 +655,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your
 <<case "militia">>
 
 <<set $personalArms = 0>>
-<<if $AProsperityCap > 60>>
+<<if $arcologyUpgrade.drones == 1>>
 <<link "Arm yourself and your drones">>
 	<<replace "#result">>
 	In a time of uncertainty, the public adores people who protect them. So, in addition to publicly procuring yourself the latest weapons and armor, you update the arcology's drone systems. The security drones' riot cannons can be replaced for easy maintenance, so it's rather easy to provide them with alternate, lethal weaponry that they can switch to if it becomes necessary. $arcologies[0].name becomes known as one of the best-protected in the Free Cities. @@.green;Your reputation has greatly improved.@@
diff --git a/src/uncategorized/importRule.tw b/src/uncategorized/importRule.tw
index 1244784a817fa81da9c854030ce2d3da7a02a7e9..3b9fdf20056f202810c0506a7b26dbeabf0b1d24 100644
--- a/src/uncategorized/importRule.tw
+++ b/src/uncategorized/importRule.tw
@@ -1,26 +1,31 @@
 :: Import Rule [nobr]
 
+<<set $nextButton = "Continue", $nextLink = "Rules Assistant">>
 
-<<set $nextButton = "Continue">>
-<<set $nextLink = "Rules Assistant">>
 //Paste the code into the text box and click Apply//
 <br><br>
 <span id = "import">
 </span>
+
 <<set $tempRule = "">>
 <<textbox "$tempRule" $tempRule>>
+
 <<link "Apply">>
 	<<if (def $tempRule) && ($tempRule !== "")>>
 		<<set $tempRule = eval('({' + $tempRule + '})')>>
 
-		<<if $defaultRules.length > 0>>
-			<<set $RulesID += 1>>
-		<<else>>
-			<<set $RulesID = 1>>
-		<</if>>
-
-		<<set $tempRule.ID = $RulesID>>
 		<<set $defaultRules.push($tempRule)>>
+
+		/* renumber rule IDs and update slaves' assigned rule IDs if needed */
+		<<for $r = 0; $r < $defaultRules.length; $r++>>
+			<<set $defaultRules[$r].ID = $r + 1>>
+		<</for>>
+		<<for _i = 0; _i < $slaves.length; _i++>>
+			<<silently>>
+				<<CheckAutoRulesActivate $slaves[_i]>>
+			<</silently>>
+		<</for>>
+
 		<<replace #import>>
 			''Rule imported successfully!''
 			<br><br>
@@ -33,7 +38,9 @@
 	<</if>>
 	<<unset $tempRule>>
 <</link>>
+
 <br><br>
+
 <<link "Continue">>
 	<<goto "Rules Assistant">>
 <</link>>
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index ba0b629894505a7cd03c4e78bb9d5db89870b9c9..61027bda076f434eb383dff812838a47bfd40cff 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -14,18 +14,6 @@
 <<if ndef $defaultRules>>
 	<<include "Init Rules">>
 <</if>>
-<<if ndef $PC.birthArcOwner>>
-	<<set $PC.birthArcOwner = 0>>
-<</if>>
-<<if ndef $PC.birthCitizen>>
-	<<set $PC.birthCitizen = 0>>
-<</if>>
-<<if ndef $medicalEnema>>
-	<<set $medicalEnema = 0>>
-<</if>>
-<<if ndef $slaveDeath>>
-	<<set $slaveDeath = 0>>
-<</if>>
 <<if ndef $assistantExtra2>>
 	<<set $assistantExtra2 = 0>>
 <</if>>
@@ -149,13 +137,14 @@
 	<<set $incubatorNameCaps = "The Incubator">>
 <</if>>
 
-<<if $seeArcology == 1>>&nbsp;&nbsp;&nbsp;&nbsp;//<<include "Arcology Description">> | [[Hide|Main][$seeArcology = 0]]//<br><</if>>
+<<if $seeBuilding == 1>><<DisplayBuilding>><</if>>
+<<if $seeArcology == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<<include "Arcology Description">> | [[Hide|Main][$seeArcology = 0]]<br><</if>>
 
 <<if $seeDesk == 1>>
 <<include "Office Description">>
-//[[Hide|Main][$seeDesk = 0]]//
+[[Hide|Main][$seeDesk = 0]]
 <</if>>
-<<if $seeFCNN == 1>><center>FCNN: <<print $fcnn.random()>>//[[Hide|Main][$seeFCNN = 0]]//</center><</if>>
+<<if $seeFCNN == 1>><center>FCNN: <<print $fcnn.random()>> [[Hide|Main][$seeFCNN = 0]]</center><</if>>
 <<if ($seeDesk == 1) && ($seeFCNN == 0)>><br><</if>>
 
 __''MAIN MENU''__&nbsp;&nbsp;&nbsp;&nbsp;//[[Summary Options]]
@@ -260,7 +249,7 @@ Filter by assignment: |
 
 <<if (_BG > -1) && ($slaves[_BG].assignment == "guard you")>>
 	<<set $i = _BG>>
-	<<set $GO = "idiot ball">>
+	<<set _GO = "idiot ball">>
 	<br><<include "Use Guard">>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<print "[[Use her mouth|FLips][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">>
 	| <<print "[[Play with her tits|FBoobs][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">>
@@ -277,7 +266,7 @@ Filter by assignment: |
 	<<if canDoAnal($slaves[_BG])>>
 	| <<print "[[Fuck her ass|FAnus][$activeSlave = $slaves["+_BG+"], $nextButton = _j, $nextLink = _k, $returnTo = _l]]">>
 	<</if>>
-	| <<print "[[Abuse her|Gameover][$gameover = $GO]]">>
+	| <<print "[[Abuse her|Gameover][$gameover = _GO]]">>
 <</if>>
 
 <<set $activeSlave = Array.random($slaves)>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index e5cc4a74249c7b104429074032cfc0d7e4490eb1..a6a9be195469ae47388508f705bb7de233b2db30 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -1,7 +1,6 @@
 :: Manage Arcology [nobr]
 
-<<set $nextButton = "Back">>
-<<set $nextLink = "Main">>
+<<set $nextButton = "Back", $nextLink = "Main">>
 
 <<if $cheatMode == 1>>
 <center>
@@ -10,40 +9,18 @@
 <</if>>
 <<set $showEncyclopedia = 0>>
 
+<<DisplayBuilding>>
 <<include "Arcology Description">>
 
 <br><br>
 
 __Arcology Ownership__
+<br>
+<<UpdateOwnership>>
 You own ''$arcologies[0].ownership%'' of $arcologies[0].name, <<if $arcologies[0].minority > 0>>against ''$arcologies[0].minority%'' owned by the second most significant holder<<else>>and there are no other significant holders<</if>>.
 <<if $arcologies[0].minority > $arcologies[0].ownership-10>>
 	@@.red;This is a dangerously narrow margin of control.@@
 <</if>>
-<<set $price = 500*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>>
-A 1% interest in $arcologies[0].name is worth ¤$price and will require a transaction cost of ¤10000 to acquire.
-<br>&nbsp;&nbsp;&nbsp;&nbsp;
-<<if $arcologies[0].ownership+$arcologies[0].minority < 100>>
-	[[Buy|Manage Arcology][$cash -= $price+10000, $arcologies[0].ownership += 1, $arcologies[0].demandFactor += 5]]
-	<<if $arcologies[0].ownership+$arcologies[0].minority <= 90>>
-	<<if $cash > $price*10>>
-		| [[10%|Manage Arcology][$cash -= ($price*10)+10000, $arcologies[0].ownership += 10, $arcologies[0].demandFactor += 50]]
-		//Transaction costs will only be paid once//
-	<</if>>
-	<</if>>
-<<else>>Buy<</if>> |
-<<if $arcologies[0].ownership > 0>>
-	[[Sell|Manage Arcology][$cash += $price, $arcologies[0].ownership -= 1, $arcologies[0].demandFactor -= 5]]
-	<<if $arcologies[0].ownership >= 10>>
-		| [[10%|Manage Arcology][$cash += $price*10, $arcologies[0].ownership -= 10, $arcologies[0].demandFactor -= 50]]
-	<</if>>
-<</if>>
-<<if $arcologies[0].ownership+$arcologies[0].minority < 100>>
-<<if $rep >= 10000>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<set $repPrice = Math.clamp($price/2, 0, 10000)>>
-	You have so much political capital that you can spend reputation to acquire ownership by spending reputation. [[Use reputation|Manage Arcology][$rep -= $repPrice, $arcologies[0].ownership += 1, $arcologies[0].demandFactor += 5]]
-<</if>>
-<</if>>
 
 <<if $FSAnnounced > 0>>
 	<<if $FSCredits > 0>>
@@ -57,25 +34,21 @@ A 1% interest in $arcologies[0].name is worth ¤$price and will require a transa
 __Construction__
 <br>
 
-<<if $AProsperityCap <= 60>>
-	//The first major upgrade needed is the installation of a drone security system so higher-class citizens will feel safe and protected should they choose to immigrate. This upgrade will cost ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>.// [[Install drone security system|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $AProsperityCap += 20]]
-<<elseif $AProsperityCap <= 80>>
-	//The next major upgrade needed is the installation of a better water reclamation system so your residents will have access to cheaper water and hydroponically grown food. This upgrade will cost ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>.// [[Upgrade water reclamation system|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $AProsperityCap += 20]]
-<<elseif $AProsperityCap <= 100>>
-	//The next major upgrade needed is the installation of a broader apron at the bottom of the arcology to increase its surface area and gather more solar energy. Right now, tenants that use a lot of power have to import it from outside. This upgrade will cost ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>.// [[Install solar apron|Manage Arcology][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $AProsperityCap += 20]]
-<<elseif $AProsperityCap <= 120>>
-	//The next major upgrade needed is an improvement of the arcology's electrical transmission lines to make efficient use of the additional power from the solar apron. This upgrade will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>.// [[Upgrade transmission lines|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $AProsperityCap += 30]]
-<<elseif $AProsperityCap <= 150>>
-	//The next major upgrade needed is an overhaul of the commercial floors. As the arcology has become prosperous a better class of citizen has started to look for a higher class of establishment. These renovations will cost ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>.// [[Renovate commercial floors|Manage Arcology][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $AProsperityCap += 40]]
-<<elseif $AProsperityCap <= 190>>
-	//The next major upgrade needed is an overhaul of the residential floors. As the arcology has become prosperous a better class of citizen has started to look for a higher class of living quarters. These renovations will cost ¤<<print Math.trunc(200000*$upgradeMultiplierArcology)>>.// [[Renovate residential floors|Manage Arcology][$cash -= Math.trunc(200000*$upgradeMultiplierArcology), $AProsperityCap += 50]]
-<<elseif $AProsperityCap <= 240>>
-	//The next major upgrade needed is the addition of a spire at the top of the arcology to increase the space available for the wealthiest citizens to own whole floors. This huge project will cost ¤<<print Math.trunc(250000*$upgradeMultiplierArcology)>>.// [[Add spire|Manage Arcology][$cash -= Math.trunc(250000*$upgradeMultiplierArcology), $AProsperityCap += 60]]
+<<if $arcologyUpgrade.drones != 1>>
+	//The first major upgrade needed is the installation of a drone security system so higher-class citizens will feel safe and protected should they choose to immigrate. This upgrade will cost ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>.// [[Install drone security system|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $arcologyUpgrade.drones = 1]]
+<<elseif $arcologyUpgrade.hydro != 1>>
+	//The next major upgrade needed is the installation of a better water reclamation system so your residents will have access to cheaper water and hydroponically grown food. This upgrade will cost ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>.// [[Upgrade water reclamation system|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcologyUpgrade.hydro = 1]]
+<<elseif $arcologyUpgrade.apron != 1>>
+	//The next major upgrade needed is the installation of a broader apron at the bottom of the arcology to increase its surface area and gather more solar energy. Right now, tenants that use a lot of power have to import it from outside. This upgrade will cost ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>.// [[Install solar apron|Manage Arcology][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $arcologyUpgrade.apron = 1]]
+<<elseif $arcologyUpgrade.grid != 1>>
+	//The next major upgrade needed is an improvement of the arcology's electrical transmission lines to make efficient use of the additional power from the solar apron. This upgrade will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>.// [[Upgrade transmission lines|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $arcologyUpgrade.grid = 1]]
+<<elseif $arcologyUpgrade.spire != 1>>
+	//The next major upgrade needed is the addition of a spire at the top of the arcology to increase the space available for the wealthiest citizens to own whole floors. This huge project will cost ¤<<print Math.trunc(250000*$upgradeMultiplierArcology)>>.// [[Add spire|Manage Arcology][$cash -= Math.trunc(250000*$upgradeMultiplierArcology), $arcologyUpgrade.spire = 1]]
 <<else>>
 	//The arcology's public areas are fully upgraded.//
 <</if>>
 <<if ($PC.engineering >= 100) || ($PC.career == "arcology owner")>>
-<<if $AProsperityCap < 360>>
+<<if $weatherCladding != 2>>
 	//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>>
@@ -84,9 +57,9 @@ __Construction__
 
 <<if $weatherCladding == 0>>
 	//Extreme weather is becoming common worldwide. The arcology's exterior can be hardened to reduce damage in case of heavy weather, but this will reduce its beauty somewhat and will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>. Your citizens are <<if $weatherAwareness == 0>>likely to disapprove of this measure as alarmism.<<else>>@@.yellow;concerned that this measure has not been taken already.@@<</if>> // [[Apply weather cladding|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $weatherCladding = 1]]
-<<elseif $weatherCladding == 1 && $AProsperityCap is 300>>
+<<elseif $weatherCladding == 1 && $arcologyUpgrade.spire == 1>>
 	The arcology's exterior is jacketed with unsightly but sturdy weather cladding. Your arcology is so prosperous that remodeling the cladding into something beautiful is within the realm of possibility. This massive project will cost ¤<<print Math.trunc(3500000*$upgradeMultiplierArcology)>> and without a doubt render your arcology one of the wonders of the world.
-[[Remodel weather cladding|Manage Arcology][$cash -= Math.trunc(3500000*$upgradeMultiplierArcology), $weatherCladding = 2, $AProsperityCap = 360]]
+[[Remodel weather cladding|Manage Arcology][$cash -= Math.trunc(3500000*$upgradeMultiplierArcology), $weatherCladding = 2]]
 <<elseif $weatherCladding == 1>>
 	//The arcology's exterior is jacketed with unsightly but sturdy weather cladding.//
 <<elseif $weatherCladding == 2>>
@@ -95,114 +68,6 @@ __Construction__
 
 <br><br>
 
-__Facilities__
-<br>
-
-<<if $brothel == 0>>
-	[[Combine empty apartments into a brothel|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $brothel = 5]]
-	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
-<<elseif $brothel > 0>>
-	A brothel has been installed directly below your penthouse. It can support <<print $brothel>> whores.
-<</if>>
-
-<br>
-
-<<if $club == 0>>
-	[[Build a club to serve as a focal point for public sluts|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $club = 5]]
-	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
-<<elseif $club > 0>>
-	There are rooms off the club to support slaves as they please citizens. They can support <<print $club>> sluts.
-<</if>>
-
-<br>
-
-<<if $arcade == 0>>
-	[[Construct a sex arcade to confine slaves in|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcade = 5]]
-	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
-<<elseif $arcade > 0>>
-	A sex arcade has been installed in the arcology. It can support <<print $arcade>> inmates.
-<</if>>
-
-<br>
-
-<<if $dairy == 0>>
-	[[Add a dairy to the water reclamation facility|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $dairy = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
-<<elseif $dairy > 0>>
-	A dairy has been installed in the water reclamation area of your penthouse. It can support <<print $dairy>> milkers.
-<</if>>
-
-<br>
-
-<<if $servantsQuarters == 0>>
-	[[Build a dormitory to house large numbers of house servants|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $servantsQuarters = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
-<<else>>
-	Your penthouse includes a dormitory to house large numbers of house servants.
-<</if>>
-
-<br>
-
-<<if $schoolroom == 0>>
-	[[Build a schoolroom where slaves can be educated|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $schoolroom = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
-<<else>>
-	Your penthouse includes a schoolroom where slaves can be educated.
-<</if>>
-
-<br>
-
-<<if $spa == 0>>
-	[[Install open baths to provide relaxation space for resting slaves|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $spa = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
-<<else>>
-	The penthouse includes a fully appointed spa where slaves can rest and recuperate.
-<</if>>
-
-<br>
-
-<<if $clinic == 0>>
-	[[Expand the surgical recovery area to accommodate patients and a nurse|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clinic = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
-<<else>>
-	The surgical recovery area has been expanded to take in more unhealthy slaves and be staffed by a nurse.
-<</if>>
-
-<br>
-
-<<if $cellblock == 0>>
-	[[Construct cells to properly confine disobedient slaves|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $cellblock = 5]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
-<<else>>
-	The lower level of the penthouse includes a hallway of cells to confine slaves in.
-<</if>>
-
-<<if $cyberMod == 1>>
-	<br>
-	<<if $researchLab.built == "true">>
-		Your penthouse is now equipped with a research lab.
-	<<else>>
-		[[Clear out one of the floors and install research equipment|Manage Arcology][$cash -= Math.trunc(15000*$upgradeMultiplierArcology), $researchLab.built = "true", $researchLab.maxSpace = 5]]
-		//Costs ¤<<print Math.trunc(15000*$upgradeMultiplierArcology)>>//
-	<</if>>
-<</if>>
-
-<<if $familyTesting == 1>>
-<br>
-<<if $AProsperityCap > 120>>
-<<if $incubator == 0>>
-	[[Install an incubation chamber to rapidly age children|Manage Arcology][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $incubator = 1]]
-	//Costs ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>//
-<<else>>
-	The penthouse has a specialized facility dedicated to rapidly aging children.
-<</if>>
-<<elseif $AProsperityCap >= 100 && $AProsperityCap <= 120>>
-	//Installation of a child aging facility will require the arcology's electrical infrastructure to be overhauled.//
-<</if>>
-<</if>>
-
-<br><br>
-
 __Special Arcology Upgrades__
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
 
diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw
index b56f379f41e78dd8ef41bfd11c884813fac6a1b7..ad77ed9321df9f6bf287587e4914fa92a2335f0e 100644
--- a/src/uncategorized/managePenthouse.tw
+++ b/src/uncategorized/managePenthouse.tw
@@ -33,7 +33,8 @@ The penthouse also features little individual rooms, which house slaves who do e
 
 <br><br>
 
-__Penthouse Improvements__
+__Penthouse Facilities__
+
 <br>
 
 <<if $masterSuite == 0>>
@@ -45,6 +46,65 @@ __Penthouse Improvements__
 
 <br>
 
+<<if $servantsQuarters == 0>>
+	[[Build a dormitory to house large numbers of house servants|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $servantsQuarters = 5]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<else>>
+	Your penthouse includes a dormitory to house large numbers of house servants.
+<</if>>
+
+<br>
+
+<<if $schoolroom == 0>>
+	[[Build a schoolroom where slaves can be educated|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $schoolroom = 5]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<else>>
+	Your penthouse includes a schoolroom where slaves can be educated.
+<</if>>
+
+<br>
+
+<<if $spa == 0>>
+	[[Install open baths to provide relaxation space for resting slaves|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $spa = 5]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<else>>
+	The penthouse includes a fully appointed spa where slaves can rest and recuperate.
+<</if>>
+
+<br>
+
+<<if $clinic == 0>>
+	[[Expand the surgical recovery area to accommodate patients and a nurse|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clinic = 5]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<else>>
+	The surgical recovery area has been expanded to take in more unhealthy slaves and be staffed by a nurse.
+<</if>>
+
+<br>
+
+<<if $cellblock == 0>>
+	[[Construct cells to properly confine disobedient slaves|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $cellblock = 5]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<else>>
+	The lower level of the penthouse includes a hallway of cells to confine slaves in.
+<</if>>
+
+<br>
+
+<<if $familyTesting == 1>>
+<<if $arcologyUpgrade.grid == 1>>
+<<if $incubator == 0>>
+	[[Install an incubation chamber to rapidly age children|Manage Penthouse][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $incubator = 1]]
+	//Costs ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>//
+<<else>>
+	The penthouse has a specialized facility dedicated to rapidly aging children.
+<</if>>
+<<elseif $arcologyUpgrade.hydro == 1 || $arcologyUpgrade.apron == 1>>
+	//Installation of a child aging facility will require the arcology's electrical infrastructure to be overhauled.//
+<</if>>
+<br>
+<</if>>
+
 <<if $HGSuite != 1>>
 	[[Build a small suite for a Head Girl to live in|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $HGSuite = 1]]
 	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
@@ -52,6 +112,20 @@ __Penthouse Improvements__
 	There is a small but handsome suite next to yours reserved for the Head Girl.
 <</if>>
 
+<<if $cyberMod == 1>>
+	<br>
+	<<if $researchLab.built == "true">>
+		Your penthouse is now equipped with a research lab.
+	<<else>>
+		[[Clear out one of the floors and install research equipment|Manage Penthouse][$cash -= Math.trunc(15000*$upgradeMultiplierArcology), $researchLab.built = "true", $researchLab.maxSpace = 5]]
+		//Costs ¤<<print Math.trunc(15000*$upgradeMultiplierArcology)>>//
+	<</if>>
+<</if>>
+
+<br><br>
+
+__Penthouse Upgrades__
+
 <br>
 
 <<if $servantMilkers != 1>>
@@ -191,37 +265,28 @@ __Penthouse Improvements__
 
 <br>
 
-<<if $pit == 0>>
-	[[Build a pit to host slave fights|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $pit = 1]]
-	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<<if $surgeryUpgrade == 0>>
+<<if $rep > 10000>>
+	[[Upgrade the remote surgery|Manage Penthouse][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $surgeryUpgrade = 1]]
+	//Costs ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>//
 <<else>>
-	You have a room with a padded pit sunken into the floor for slave fights.
+	//You lack the reputation to secure rare surgery upgrades//
+<</if>>
+<<else>>
+	Your remote surgery has been heavily upgraded and customized.
 <</if>>
 
 <br>
 
-<<if ($dispensary == 0)>>
-<<if ($rep > 2000)>>
+<<if $dispensary == 0>>
+<<if $rep > 2000>>
 	[[Install a pharmaceutical fabricator|Manage Penthouse][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $dispensary = 1, $drugsCost = $drugsCost/4]]
 	//Costs ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>//
 <<else>>
 	//You lack the reputation to obtain cutting-edge pharmaceutical technology//
 <</if>>
 <<else>>
-	There is a [[pharmaceutical fabricator|Dispensary]] in the basement.
-<</if>>
-
-<br>
-
-<<if ($surgeryUpgrade == 0)>>
-<<if ($rep > 10000)>>
-	[[Upgrade the remote surgery|Manage Penthouse][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $surgeryUpgrade = 1]]
-	//Costs ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>//
-<<else>>
-	//You lack the reputation to secure rare surgery upgrades//
-<</if>>
-<<else>>
-	Your remote surgery has been heavily upgraded and customized.
+	There is a [[pharmaceutical fabricator|Dispensary]] attached to the surgery.
 <</if>>
 
 <br>
diff --git a/src/uncategorized/manufacturing.tw b/src/uncategorized/manufacturing.tw
new file mode 100644
index 0000000000000000000000000000000000000000..b6b6f2a7db8c8247f2d4a86af6cb2a7a7f819453
--- /dev/null
+++ b/src/uncategorized/manufacturing.tw
@@ -0,0 +1,17 @@
+:: Manufacturing [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is a space in the arcology's service areas, rented to a variety of tenants for manufacturing purposes. You control this part of the arcology and all these producers pay you rent.
+<<SectorSell>>
+<br>
+
+<<if $dairy == 0>>
+	<br>
+	[[Construct a dairy to milk slaves on an industrial scale|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $dairy = 5, $sectors[$AS].type = "Dairy"]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
+<</if>>
+
+<br>
+[[Build pens to increase the number of menial slaves you can house|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Pens"]]
+//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
\ No newline at end of file
diff --git a/src/uncategorized/markets.tw b/src/uncategorized/markets.tw
new file mode 100644
index 0000000000000000000000000000000000000000..7600665edff0e6ebd765e1c82cb1a70b570dfe6d
--- /dev/null
+++ b/src/uncategorized/markets.tw
@@ -0,0 +1,19 @@
+:: Markets [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is an area of the concourse occupied by large stores and markets, many of which sell slaves. You control this part of the arcology and all these merchants pay you rent.
+<<SectorSell>>
+<br>
+
+<<if $arcade == 0>>
+	<br>
+	[[Construct a sex arcade to present slaves' holes for public use|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcade = 5, $sectors[$AS].type = "Arcade"]]
+	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
+<</if>>
+
+<<if $pit == 0>>
+	<br>
+	[[Build a pit to host proper slave fights|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $pit = 1, $sectors[$AS].type = "Pit"]]
+	//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index 44285fff16434f0a9ad75901693cabc2ca209e66..7e489e555206a9064c655664e5a73ceacfcbf6b4 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -118,7 +118,10 @@ The level of sexual energy in the suite is
 	/* 000-250-006 */
 <<if ($slaves[_i].assignment != "be your Concubine")>>
 	<<if $verboseDescriptions == 1>>''__@@.pink;$slaves[_i].slaveName@@__'' sees to your pleasure in the master suite.<</if>>
+
+	/* Perform facility based rule changes */
 	<<if ($masterSuiteUpgradeLuxury == 1)>>
+	<<set $slaves[_i].livingRules = "luxurious">>
 	<<if ($slaves[_i].devotion <= 95)>>
 		<<set $slaves[_i].devotion += 2>>
 	<</if>>
@@ -129,6 +132,7 @@ The level of sexual energy in the suite is
 		<<set $slaves[_i].trust++>>
 	<</if>>
 	<<elseif ($masterSuiteUpgradeLuxury == 2)>>
+	<<set $slaves[_i].livingRules = "luxurious">>
 	<<if ($slaves[_i].energy > 90)>>
 		<<if ($slaves[_i].devotion <= 95)>>
 		<<set $slaves[_i].devotion += 2>>
@@ -145,6 +149,7 @@ The level of sexual energy in the suite is
 		<</if>>
 	<</if>>
 	<<else>>
+	<<set $slaves[_i].livingRules = "spare">>
 	<<if ($slaves[_i].devotion <= 20) && ($slaves[_i].trust > -20)>>
 		<<set $slaves[_i].devotion -= 2, $slaves[_i].trust -= 5>>
 	<<elseif ($slaves[_i].devotion <= 60)>>
@@ -156,6 +161,7 @@ The level of sexual energy in the suite is
 		<<set $slaves[_i].trust++>>
 	<</if>>
 	<</if>>
+
 <<else>>
 	<<set $Concubine = $slaves[_FLs]>>
 	<<if $verboseDescriptions == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>''Your concubine $Concubine.slaveName is serving you in $masterSuiteName.'' More than any other slave, her sexual brilliance and physical appeal are @@.green;critical@@ to your reputation.
@@ -193,9 +199,9 @@ The level of sexual energy in the suite is
 	<</if>>
 	<<if $slaves[_i].devotion <= 20>>
 	<<if $masterSuiteUpgradeLuxury > 0>>
-		<<set $slaves[_i].devotion += 4, $slaves[_i].trust += 4>>
+		<<set $slaves[_i].livingRules = "luxurious", $slaves[_i].devotion += 4, $slaves[_i].trust += 4>>
 	<<else>>
-		<<set $slaves[_i].devotion += 2, $slaves[_i].trust += 2>>
+		<<set $slaves[_i].livingRules = "normal", $slaves[_i].devotion += 2, $slaves[_i].trust += 2>>
 	<</if>>
 	<</if>>
 	<<if $masterSuiteDecoration != "standard">>
diff --git a/src/uncategorized/minorInjuryResponse.tw b/src/uncategorized/minorInjuryResponse.tw
index 70c34c5753d8490cbe1d7429ed6f96c415449f6c..618534dc2123c4ed91a3e222c85542cdad97a872 100644
--- a/src/uncategorized/minorInjuryResponse.tw
+++ b/src/uncategorized/minorInjuryResponse.tw
@@ -1,15 +1,15 @@
 :: minor injury response [nobr]
- 
+
 <<if $arcologies[0].FSDegradationist > 20>>
 
 She carries on, knowing that in your degradationist arcology, this is accepted behavior.
 
 <<elseif $arcologies[0].FSPaternalist > 20>>
 
-<<if ($AProsperityCap >= 60) && (random(1,100) > 50)>>
+<<if ($arcologyUpgrade.drones == 1) && (random(1,100) > 50)>>
 	The security drones successfully detain him and oblige him to pay significant @@.yellowgreen;compensation,@@ since abusing slaves is discouraged here.
 	<<set $cash += 50>>
-<<elseif ($AProsperityCap >= 160) && (random(1,100) > 50)>>
+<<elseif ($arcologyUpgrade.grid == 1) && (random(1,100) > 50)>>
 	The computer systems successfully detain him and require him to pay significant @@.yellowgreen;compensation,@@ since abusing slaves is discouraged here.
 	<<set $cash += 50>>
 <<elseif ($slaves[$i].whoreSkill > random(1,100))>>
@@ -22,10 +22,10 @@ She carries on, knowing that in your degradationist arcology, this is accepted b
 
 <<else>>
 
-<<if ($AProsperityCap >= 60) && (random(1,100) > 50)>>
+<<if ($arcologyUpgrade.drones == 1) && (random(1,100) > 50)>>
 	The security drones successfully detain him and oblige him to pay minor @@.yellowgreen;compensation.@@
 	<<set $cash += 10>>
-<<elseif ($AProsperityCap >= 160) && (random(1,100) > 50)>>
+<<elseif ($arcologyUpgrade.grid == 1) && (random(1,100) > 50)>>
 	The computer systems successfully detain him and require him to pay minor @@.yellowgreen;compensation.@@
 	<<set $cash += 10>>
 <<elseif ($slaves[$i].whoreSkill > random(1,100))>>
diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw
index 72905c7decb65c070788b086aef853426f7576ff..5caf999cfdb6c9a41962d3a1f7704d0594654f8f 100644
--- a/src/uncategorized/neighborsDevelopment.tw
+++ b/src/uncategorized/neighborsDevelopment.tw
@@ -353,7 +353,7 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i]
 	<<set $arcologies[$i].prosperity -= 1>>
 	<<if $arcologies[$i].direction != 0>>
 	<<if $rivalSet == 0>>
-	<<if $rivalFS != 0>>
+	<<if $rivalryFS != 0>>
 	  <<set $arcologies[$i].rival = 1>>
 	  <<set $rivalSet = 1>>
 	<</if>>
@@ -383,7 +383,7 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i]
 <<elseif $arcologies[$i].minority < $arcologies[$i].PCminority>>
 	<<set $arcologies[$i].minority = 0>>
 <<elseif $arcologies[$i].minority > (100 - $arcologies[$i].minority - $arcologies[$i].ownership - $arcologies[$i].PCminority)*5>>
-	<<set $arcologies[$i].minority -= random(1,3)>>
+	<<set $arcologies[$i].minority -= random(3,5)>>
 <<elseif $arcologies[$i].minority < (100 - $arcologies[$i].minority - $arcologies[$i].ownership - $arcologies[$i].PCminority)*4>>
 	<<if $arcologies[$i].minority < 10>>
 		<<if $arcologies[$i].ownership + $arcologies[$i].PCminority <= 90>>
@@ -2179,4 +2179,4 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i]
 <</if>>
 <</if>> /* CLOSES INFLUENCE INITIATION */
 
-<</for>>
\ No newline at end of file
+<</for>>
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
index ce17740a664f1895c305518f6273212402bd2f10..4afca14f2b042aaf6723b88c9672b95050f38786 100644
--- a/src/uncategorized/nonRandomEvent.tw
+++ b/src/uncategorized/nonRandomEvent.tw
@@ -18,7 +18,7 @@
 <<elseif (_effectiveWeek == 11)>>
 	<<set $Event = "assistant">>
 	<<goto "Assistant Events">>
-<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $AProsperityCap <= 60 && $Bodyguard == 0 && $PC.career != "arcology owner">>
+<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $arcologyUpgrade.drones != 1 && $Bodyguard == 0 && $PC.career != "arcology owner">>
 		<<goto "P raped">>
 <<elseif (_effectiveWeek == 14)>>
 	<<set $Event = "bad curatives">>
diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw
index bc8613f49ed864c42f42cfce31483a89c6a11c8d..c998486e93ddb8f940c05575b00d301f750532c3 100644
--- a/src/uncategorized/officeDescription.tw
+++ b/src/uncategorized/officeDescription.tw
@@ -1,6 +1,6 @@
 :: Office Description [nobr]
 
-&nbsp;&nbsp;&nbsp;&nbsp;//You are at your desk in your penthouse office. It has a glass top interface from which you can rule over $arcologies[0].name; $assistantName's avatar is visible in one corner.
+&nbsp;&nbsp;&nbsp;&nbsp;You are at your desk in your penthouse office. It has a glass top interface from which you can rule over $arcologies[0].name; $assistantName's avatar is visible in one corner.
 
 <<include "Personal Assistant Appearance">>
 
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index 16a678791ee2846a28fae375d9d7805cf40c721b..d684e6a81fc9805f3d42e005c0591ff94582fe3d 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -5,6 +5,9 @@
 
 This save was created using FC version $ver build $releaseID.
 
+<br><br>
+[[Apply Backwards Compatibility Update|Backwards Compatibility]]
+
 <br><br>
 Genetics array test:
 <<link "Run Test">><<goto "test genetics">><</link>>
@@ -48,7 +51,15 @@ Image display
 
 <br><br>
 
-<<if ($seeArcology == 1)>>
+<<if $seeBuilding == 1>>
+Main menu arcology interface @@.cyan;ENABLED@@. [[Disable|Options][$seeBuilding = 0]]
+<<else>>
+Main menu arcology interface @@.red;DISABLED@@. [[Enable|Options][$seeBuilding = 1]]
+<</if>>
+
+<br>
+
+<<if $seeArcology == 1>>
 Main menu arcology description @@.cyan;ENABLED@@. [[Disable|Options][$seeArcology = 0]]
 <<else>>
 Main menu arcology description @@.red;DISABLED@@. [[Enable|Options][$seeArcology = 1]]
@@ -161,7 +172,7 @@ Assignment performance vignettes on the end week report are
 
 /* Accordion 000-250-006 */
 <br />
-	Accordion effects on weekly reports are 
+	Accordion effects on weekly reports are
 <<if ($useAccordion != 1)>>
 	@@.red;DISABLED@@. [[Enable|Options][$useAccordion = 1]]
 <<else>>
@@ -253,7 +264,7 @@ Curative side effects are @@.red;DISABLED@@. [[Enable|Options][$curativeSideEffe
 	Cybernetics Mod is currently @@.red;DISABLED@@. [[Enable|Options][$cyberMod = 1]]
 <<else>>
 	Cybernetics Mod is currently @@.cyan;ENABLED@@. [[Disable|Options][$cyberMod = 0]]
-<</if>> 
+<</if>>
 
 <br><br>
 
diff --git a/src/uncategorized/pBombing.tw b/src/uncategorized/pBombing.tw
index 424418b0b779beeb81689411397012a9abb5b730..557ad6d11ca725927756cd7c3d411396eb9ee9fa 100644
--- a/src/uncategorized/pBombing.tw
+++ b/src/uncategorized/pBombing.tw
@@ -75,7 +75,7 @@ The implant is small, and went off too far ahead to do anything more than stun.
 	As you collect your senses, you are dimly aware of a massive form rushing to stand over you. In its hands is a chunky object that emits three long tongues of flame and makes three barking sounds that break through the ringing in your ears. You manage to get yourself together enough to understand the mercenary as he slings his shotgun and kneels to check you over. His experienced hands disclose no injury, and he says, "You'll be OK, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>. Come on, up and at 'em. Let's get you checked out." There is some @@.red;minor property damage@@ to repair, but no lasting harm.
 	<<set $cash -= 1000>>
 
-<<elseif $AProsperityCap > 60>>
+<<elseif $arcologyUpgrade.drones == 1>>
 	Two security drones reach the scene at the very last second. They drop the assailants with taser rounds, the demonic little munitions' sharp heads burying themselves in muscle before applying voltage. There is some @@.red;minor property damage@@ to repair, but no lasting harm.
 	<<set $cash -= 1000>>
 
diff --git a/src/uncategorized/pCoupAftermath.tw b/src/uncategorized/pCoupAftermath.tw
index 8668ba37b2544e07d76a01c998425a0e40eed1be..c413f1e9ec6c4cb72e4aea2becea5b223587594a 100644
--- a/src/uncategorized/pCoupAftermath.tw
+++ b/src/uncategorized/pCoupAftermath.tw
@@ -15,7 +15,7 @@
 
 <<if $mercenaries == 0>>Your security drones<<elseif $mercenaries <= 3>>Your mercenaries<<else>>Your $mercenariesTitle<</if>> perform the grisly task of disposing of the bodies of the Daughters killed in the assault. They strip them of anything that might be of use in cleaning up after the attempted coup - communication devices, PDAs, computers, even handwritten notes. The raw intel is scanned and passed to $assistantName. Most of it is rubbish.
 <br><br>
-Some of it is not. There is evidence of payments from a <<if $rivalset == 0>>nearby Free City<<else>>neighboring arcology<</if>> to the leadership of the Daughters. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> is silent for a long time, crosschecking records to assemble a complete picture despite your enemies' attempts to disguise the transactions. Finally, $assistantName finishes and displays a picture, using nearly the entire surface of your desk for effect. <<if $assistant > 0>>"This," she says in a tone of satisfaction, "is the <<if _num < $seeDicks>>bastard<<elseif (_num-25) < $seeDicks>>bitch<<else>>cunt<</if>> you want, <<if $PC.title == 0>>Ma'am<<else>>Sir<</if>>."<<else>>"This," it says neutrally, "is the culprit, <<if $PC.title == 0>>Ma'am<<else>>Sir<</if>>."<</if>>
+Some of it is not. There is evidence of payments from a <<if $rivalSet == 0>>nearby Free City<<else>>neighboring arcology<</if>> to the leadership of the Daughters. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> is silent for a long time, crosschecking records to assemble a complete picture despite your enemies' attempts to disguise the transactions. Finally, $assistantName finishes and displays a picture, using nearly the entire surface of your desk for effect. <<if $assistant > 0>>"This," she says in a tone of satisfaction, "is the <<if _num < $seeDicks>>bastard<<elseif (_num-25) < $seeDicks>>bitch<<else>>cunt<</if>> you want, <<if $PC.title == 0>>Ma'am<<else>>Sir<</if>>."<<else>>"This," it says neutrally, "is the culprit, <<if $PC.title == 0>>Ma'am<<else>>Sir<</if>>."<</if>>
 
 The face is vigorous, determined, <<if _num < $seeDicks>>and masculine. The very stereotype of the male arcology owner.<<elseif (_num-50 < $seeDicks)>>and androgynous. The very stereotype of the dissolute arcology owner.<<else>>and feminine. The very stereotype of the female arcology owner.<</if>>
 <<if $rivalSet != 0>>
diff --git a/src/uncategorized/pMercenaryRomeo.tw b/src/uncategorized/pMercenaryRomeo.tw
index c84e73b9f4042e52e01b4bf652d3acbdd98dca5d..c756f111c8c9fc0a09dbebbe9241ab2618d356c4 100644
--- a/src/uncategorized/pMercenaryRomeo.tw
+++ b/src/uncategorized/pMercenaryRomeo.tw
@@ -47,7 +47,7 @@
 
 <</nobr>>\
 \
-One of your mercenaries requests an interview. He's a worn, grey-haired tank of a man, made bulkier still by heavy ceramic plate armor and lots of ammunition and gear. The murderous submachine gun favored for city fighting looks like a toy in his hands. But as he sits at your invitation and accepts a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<else>>syringe  of $PC.refreshment<</if>> proffered by an attentive slave girl, he seems almost bashful.
+One of your mercenaries requests an interview. He's a worn, grey-haired tank of a man, made bulkier still by heavy ceramic plate armor and lots of ammunition and gear. The murderous submachine gun favored for city fighting looks like a toy in his hands. But as he sits at your invitation and accepts a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>pill of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tab of $PC.refreshment<</if>> proffered by an attentive slave girl, he seems almost bashful.
 
 "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I'll say this straight. I'd like to buy one of your slaves. I've been seeing <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> a lot, and she makes the years sit a little lighter on me. I've scraped together what I can, and I can pay ¤$slaveCost." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with her. "Well," he says, actually blushing, "I'd free her. And marry her, if she'd have me."
 \
diff --git a/src/uncategorized/pMercsHelpCorp.tw b/src/uncategorized/pMercsHelpCorp.tw
index 2b338969a11f02a1b0727f279e257b00215d2096..4f13f66d38f84a797a005c2c563f1bd9eeae69af 100644
--- a/src/uncategorized/pMercsHelpCorp.tw
+++ b/src/uncategorized/pMercsHelpCorp.tw
@@ -12,7 +12,7 @@
 \
 Your weekly meeting with your $mercenariesTitle commander finishes with unusual speed. With the arcology owner who set the Daughters on you enslaved, all other immediate threats defused or smashed,<<if $arcologies[0].FSRomanRevivalistLaw > 0>> your citizens serving in the urban cohorts with enthusiasm,<</if>> and the $mercenariesTitle in excellent fighting condition, there just weren't enough concerns from either of your perspectives to fill the time. You sit across your desk from each other, discussing the global situation over $PC.refreshment.
 
-"You know, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>," the scarred man says thoughtfully. "Threat board's pretty sparse these days. I mean, not for those poor bastards." He <<if $PC.refreshmentType == 0>>waves his $PC.refreshment<<elseif $PC.refreshmentType == 1>>uses his glass to point<<elseif $PC.refreshmentType == 2>>points a piece of $PC.refreshment<<elseif $PC.refreshmentType == 3>>finishes arranging a line before pointing<<else>>using his syringe to point<</if>> at a screen showing a live news feed from a war on the other side of the world. A huge cloud in an unmistakable, malevolent shape, a broad rising head atop a dirty column of vapor, is towering above a large city.
+"You know, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>," the scarred man says thoughtfully. "Threat board's pretty sparse these days. I mean, not for those poor bastards." He <<if $PC.refreshmentType == 0>>waves his $PC.refreshment<<elseif $PC.refreshmentType == 1>>uses his glass to point<<elseif $PC.refreshmentType == 2>>points a piece of $PC.refreshment<<elseif $PC.refreshmentType == 3>>finishes arranging a line before pointing<<elseif $PC.refreshmentType == 4>>using his syringe to point<<elseif $PC.refreshmentType == 5>>shaking the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>using the sheet of $PC.refreshment to point<</if>> at a screen showing a live news feed from a war on the other side of the world. A huge cloud in an unmistakable, malevolent shape, a broad rising head atop a dirty column of vapor, is towering above a large city.
 
 "But in our immediate area, there's just not much that can threaten us. Most trouble on the horizon's going to come from economics and supply and the climate, but that stuff doesn't shoot back. I think we can afford a little dispersal of military effort. Why don't I second squads to your corporation, when we've got the availability? Your corporate guys are already pulling meat out of the conflict zones. No offense to them, they're pretty good, but they're not quite at the level of my boys and girls. And don't worry, I'd keep 'em clear of shit like that." He indicates the onscreen mushroom cloud again.
 
diff --git a/src/uncategorized/pens.tw b/src/uncategorized/pens.tw
new file mode 100644
index 0000000000000000000000000000000000000000..f9dd120723859049c304de139eaa679566413c82
--- /dev/null
+++ b/src/uncategorized/pens.tw
@@ -0,0 +1,11 @@
+:: Pens [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is a space in the arcology's service areas, designed to house hundreds of slaves for paying owners. You control this part of the arcology. If you own menial slaves, they will be kept here; unused space will be rented to other slave brokers.
+<<SectorSell>>
+<br>
+
+<br>
+[[Convert this sector into a manufacturing district|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Manufacturing"]]
+//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>//
\ No newline at end of file
diff --git a/src/uncategorized/personalAssistantAppearance.tw b/src/uncategorized/personalAssistantAppearance.tw
index dea86ec184e62c858ceda588bb0bca8d38dd0616..94e5750721994fcf9e0fe4ddd0b73e5e5030579a 100644
--- a/src/uncategorized/personalAssistantAppearance.tw
+++ b/src/uncategorized/personalAssistantAppearance.tw
@@ -1219,11 +1219,11 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0]
 	<<if $marketAssistantRelationship == "cute">>
 		They're sitting back to back, reading their books and giggling to each other over whispers of what they erotic tricks they can do.
 	<<elseif $marketAssistantRelationship == "nonconsensual">>
-		$assistantName has her plaything tightly bound to a rack and is gleefully pouring hot wax onto the oddly silent market assistant. You see why when a drop lands on her sensative clit, eliciting a scream from the restrained imp; $assistantName pulls her restraints even tighter as punishment.
+		$assistantName has her test subject stripped and bound. She focuses a spell on a single of the girls breasts and records the results as it steadily begins swelling, leaving it's twin behind. The market assistant moans as an egg pushes its way out of her erect nipple.
 	<<elseif $marketAssistantRelationship == "incestuous">>
-		$assistantName and her sister are struggling to stay airborn as they attempt push an oversized, double-ended dildo out of their own cunt and into the other's. When they notice you watching, $assistantName seizes the opportunity to bear down hard, forcing the entirety of the toy into the distracted market assistant. She crashes to the ground, hands upon her cock bulged middle, orgasming indecently.
+		$assistantName is lustfully groping her sister's plush breasts. Upon noticing your gaze, she channels her magic and <<if $seeDicks != 0>>sprouts a huge dick strait into her sister's plump rear<<else>>begins to enlarge the already lovely handfuls<</if>>. The market assistant can only finger herself in response, oblivious to everything going on.
 	<<else>>
-		They're taking swings at each other with switches. Giggling with each swing and moaning with every successful strike.
+		They've pulled open each others robes and are gently tribbing. Upon noticing you, $assistantName casts a spell to triple the market assistant's sensitivity and braces for the impending orgasm. She cums so hard she passses out; $assistantName gently pulls her into a close embrace until she recovers.
 	<</if>>
 <<else>>
 	She's idly turning the pages of her spellbook. When she notices you watching, she flips the book around to show you a new and kinky trick she wants to try out.
diff --git a/src/uncategorized/pit.tw b/src/uncategorized/pit.tw
index 509ea17cb84e1db6569fd8568823c95a3cf79112..529d193a840c99653f8cc0a56d2ee6da799b8031 100644
--- a/src/uncategorized/pit.tw
+++ b/src/uncategorized/pit.tw
@@ -15,6 +15,15 @@ $pitNameCaps is clean and ready,
 	with slaves assigned to the week's bout.
 <<else>>
 	but no slaves are assigned fight.
+	<<link "Decommission the pit">>
+		<<set $pit = 0>>
+		<<for _i = 0; _i < $sectors.length; _i++>>
+		<<if $sectors[_i].type == "Pit">>
+			<<set $sectors[_i].type == "Pit">><<break>>
+		<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>>
 <</if>>
 
 //<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, slaves assigned here can continue their usual duties.//
diff --git a/src/uncategorized/private.tw b/src/uncategorized/private.tw
new file mode 100644
index 0000000000000000000000000000000000000000..83c1f1f55c0a722a76b5fea9668c02cca7ad79c2
--- /dev/null
+++ b/src/uncategorized/private.tw
@@ -0,0 +1,33 @@
+:: Private [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is a privately-owned
+<<switch $sectors[$AS].type>>
+<<case "Shops">>
+	section of the promenade filled with a variety of small, higher-end shops, salons, brothels, and clubs.
+<<case "Apartments">>
+	sector of the arcology's living areas, occupied by citizens of varying wealth and social standing.
+<<case "DenseApartments">>
+	sector of the arcology's living areas, upgraded for dense occupancy by as many citizens as possible.
+<<case "LuxuryApartments">>
+	sector of the arcology's living areas, mproved for occupancy by the Free Cities' wealthiest citizens.
+<<case "Markets">>
+	area of the concourse occupied by large stores and markets, many of which sell slaves.
+<<case "Manufacturing">>
+	space in the arcology's service areas, rented to a variety of tenants for manufacturing purposes.
+<<case "Pens">>
+	space in the arcology's service areas, designed to house hundreds of slaves for paying owners.
+<<default>>ERROR: bad sector type
+<</switch>>
+
+<<set $price = 1000*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>>
+You will have to acquire an additional 4% interest in $arcologies[0].name to take control of this sector. Such an interest is worth ¤$price and will require a transaction cost of ¤10000 to acquire for a total cost of ¤<<print $price+10000>>.
+<<if $arcologies[0].ownership+$arcologies[0].minority <= 96>>
+	[[Buy|Manage Arcology][$cash -= $price+10000, $arcologies[0].ownership += 4, $arcologies[0].demandFactor += 20, $sectors[$AS].ownership = 1]]
+	<<if $rep >= 18000>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		<<set $repPrice = Math.clamp($price/2, 0, 18000)>>
+		You have so much political capital that you can spend reputation to acquire ownership by spending reputation. [[Use reputation|Manage Arcology][$rep -= $repPrice, $arcologies[0].ownership += 4, $arcologies[0].demandFactor += 20, $sectors[$AS].ownership = 1]]
+	<</if>>
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index df80f4d92ae2066d019e03027e8f8d437d17c5c5..765f503dcce19aa2ac4ea2dd106116c2481895ff 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -858,7 +858,7 @@
 <<if $eventSlave.assignment == "serve the public">>
 <<if $eventSlave.fetishKnown == 1>>
 <<if $FSDegradationist == "unset">>
-<<if $AProsperityCap > 60>>
+<<if $arcologyUpgrade.drones == 1>>
 	<<set $RESSevent.push("mean girls")>>
 <</if>>
 <</if>>
@@ -1596,7 +1596,7 @@
 <<if ($eventSlave.pregType < 50)>>
 <<if ($eventSlave.births > 10)>>
 <<if ($eventSlave.assignment == "whore") || ($eventSlave.assignment =="serve the public")>>
-<<if ($eventslave.amp != 1)>>
+<<if ($eventSlave.amp != 1)>>
 <<if ($eventSlave.prestige == 0)>>
 	<<set $events.push("RE legendary womb")>>
 <</if>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index 334b5abc098712bae504cabec7b12c4322265bef..7eba906640800e458b30b803db09f1825466fb1c 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -410,7 +410,7 @@
 		<<set $PESSevent.push("headgirl dickgirl")>>
 	<</if>>
 	<</if>>
-	<<if ($universalRuleImpregnation == "HG")>>
+	<<if ($universalRulesImpregnation == "HG")>>
 	<<if ($HeadGirl.devotion > 95)>>
 	<<if ($HeadGirl.balls > 0)>>
 		<<set $PESSevent.push("worshipful impregnatrix")>>
@@ -627,7 +627,7 @@
 <<if ($HeadGirl.devotion > 50) && ($HeadGirl.whoreSkill >= 100)>>
 	<<set $recruit.push("whore recruit")>>
 <</if>>
-<<if ($AProsperityCap > 60)>>
+<<if $arcologyUpgrade.drones == 1>>
 	<<set $events.push("RE malefactor")>>
 	<<set $malefactor = ["liberator", "whore", "businesswoman", "addict", "anchorBaby"]>>
 	<<if $seeDicks != 0>>
diff --git a/src/uncategorized/reFemaleArcologyOwner.tw b/src/uncategorized/reFemaleArcologyOwner.tw
index c551c37f225db06a547114b5b25c6b24be170e96..3411912796725eca85971b5a373bcf73ffab831a 100644
--- a/src/uncategorized/reFemaleArcologyOwner.tw
+++ b/src/uncategorized/reFemaleArcologyOwner.tw
@@ -12,7 +12,7 @@ She strikes a fine balance in conversation with you, firm enough for a rising wo
 <span id="result">
 <<link "Head over and assert yourself">>
 	<<replace "#result">>
-	You head over and insert yourself into the conversation between her and the man trying to convince her to invest in his solar power concern. Your presence and power are such that he gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to her company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what she was looking for. She is likely concerned that this is too much public <<if $PC.title == 1>>submission<<else>>vulnerability<</if>> for her to safely manage. She excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company.
+	You head over and insert yourself into the conversation between her and the man trying to convince her to invest in his solar power concern. Your presence and power are such that he gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to her company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what she was looking for. She is likely concerned that this is too much public <<if $PC.title == 1>>submission<<else>>vulnerability<</if>> for her to safely manage. She excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>sheet of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company.
 	<</replace>>
 <</link>>
 <br><<link "Walk past her and out onto an unoccupied balcony">>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 2f7e973f42a102b529a5a006784998631c45dac8..8c190575aa1178fe8d7d27064cafcff0992eed76 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1766,7 +1766,7 @@ The prosthesis facility has constructed $possessive prosthetic limbs.
 	[["Surgically remove " + $possessive + " ability to grow hair"|Surgery Degradation][$cash -= $surgeryCost,$activeSlave.bald = 1,$surgeryType = "hair removal"]]
 <</if>>
 
-<<if $activeSlave.underArmHStyle != "bald" && $activeSlave.underArmHStyle != "hairless" && $activeSlave.pubicHStyle != "bald" && $activeSlave.pubicHStyle != "hairless">>
+<<if ($activeSlave.underArmHStyle != "bald" && $activeSlave.underArmHStyle != "hairless") || ($activeSlave.pubicHStyle != "bald" && $activeSlave.pubicHStyle != "hairless")>>
 <br>
 	$pronounCap <<if $activeSlave.physicalAge >= 12>>naturally grows<<else>>will someday grow<</if>> $activeSlave.origHColor body hair.
 	[["Surgically remove " + $possessive + " ability to grow body hair"|Surgery Degradation][$cash -= $surgeryCost,$surgeryType = "body hair removal"]]
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index d068d1e974d4885bd220b18fc392f2db08997e55..a421cf6aa56af416baa99259ff6e03215f38c8f5 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -3,30 +3,33 @@
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Main">>
 <<set $showEncyclopedia = 1, $encyclopedia = "Personal Assistant">>
 
-<<if $defaultRules.length > 0>>
+<<set _length = $defaultRules.length>>
 
-	<<for _r = 0; _r < $defaultRules.length; _r++>>
-		<<if $currentRule.ID == $defaultRules[_r].ID>>
-			<<set $r = _r+1>>
+<<if _length > 0>>
+
+	<<if ndef $currentRule || $currentRule == null>>  <<set $currentRule = $defaultRules[0]>>           <</if>>
+	<<if ndef $currentRule.assignment>>               <<set $currentRule.assignment = []>>              <</if>>
+	<<if ndef $currentRule.excludeAssignment>>        <<set $currentRule.excludeAssignment = []>>       <</if>>
+	<<if ndef $currentRule.excludedSlaves>>           <<set $currentRule.excludedSlaves = []>>          <</if>>
+	<<if ndef $currentRule.selectedSlaves>>           <<set $currentRule.selectedSlaves = []>>          <</if>>
+	<<if ndef $currentRule.facility>>                 <<set $currentRule.facility = []>>                <</if>>
+	<<if ndef $currentRule.excludeFacility>>          <<set $currentRule.excludeFacility = []>>         <</if>>
+
+	<<for $r = _length - 1; $r >= 0; $r-->>
+		<<if $defaultRules[$r] == null>>
+			<<set $defaultRules.deleteAt($r)>>
+			<<goto "Rules Assistant">>
+		<<elseif $currentRule.ID == $defaultRules[$r].ID>>
+			<<set $r = $r + 1>>
 			<<break>>
 		<</if>>
 	<</for>>
-	
-	/* backwards compatibility */
-	<<if ndef $currentRule.assignment>>			<<set $currentRule.assignment = []>>		<</if>>
-	<<if ndef $currentRule.excludeAssignment>>	<<set $currentRule.excludeAssignment = []>>	<</if>>
-	<<if ndef $currentRule.excludedSlaves>>		<<set $currentRule.excludedSlaves = []>>	<</if>>
-	<<if ndef $currentRule.selectedSlaves>>		<<set $currentRule.selectedSlaves = []>>	<</if>>
-	<<if ndef $currentRule.facility>>			<<set $currentRule.facility = []>>			<</if>>
-	<<if ndef $currentRule.excludeFacility>>	<<set $currentRule.excludeFacility = []>>	<</if>>
-	
+
 	<center>
 		<<if $r > 1>>
 			@@.cyan;[Shift+←,Shift+Q] @@<span id="firstRule">
 			<strong>
 			<<link "First">>
-				<<set $currentRule.facility = _facility>>
-				<<set $currentRule.excludeFacility = _excludeFacility>>
 				<<set $currentRule = $defaultRules[0]>>
 				<<goto "Rules Assistant">>
 			<</link>>
@@ -36,9 +39,7 @@
 			@@.cyan;[←,Q] @@<span id="prevRule">
 			<strong>
 			<<link "Prev">>
-				<<set $currentRule.facility = _facility>>
-				<<set $currentRule.excludeFacility = _excludeFacility>>
-				<<set $currentRule = $defaultRules[_r-1]>>
+				<<set $currentRule = $defaultRules[$r-2]>>
 				<<goto "Rules Assistant">>
 			<</link>>
 			</strong>
@@ -47,15 +48,13 @@
 			[Shift+←,Shift+Q] First  |  [←,Q] Prev
 		<</if>>
 
-		&nbsp;&nbsp;&nbsp;&nbsp;''Viewing Rule $r of $defaultRules.length''&nbsp;&nbsp;&nbsp;&nbsp;
+		&nbsp;&nbsp;&nbsp;&nbsp;''Viewing Rule $r of _length''&nbsp;&nbsp;&nbsp;&nbsp;
 
-		<<if _r+1 < $defaultRules.length>>
+		<<if $r < _length>>
 			<span id="nextRule">
 			<strong>
 			<<link "Next">>
-				<<set $currentRule.facility = _facility>>
-				<<set $currentRule.excludeFacility = _excludeFacility>>
-				<<set $currentRule = $defaultRules[_r+1]>>
+				<<set $currentRule = $defaultRules[$r]>>
 				<<goto "Rules Assistant">>
 			<</link>>
 			</strong>
@@ -64,11 +63,11 @@
 			Next [E,→]  |  
 		<</if>>
 
-		<<if $r != $defaultRules.length && $defaultRules[$defaultRules.length-1]>>
+		<<if $r < _length>>
 			<span id="lastRule">
 			<strong>
 			<<link "Last">>
-				<<set $currentRule = $defaultRules[$defaultRules.length-1]>>
+				<<set $currentRule = $defaultRules[_length-1]>>
 				<<goto "Rules Assistant">>
 			<</link>>
 			</strong>
@@ -79,8 +78,8 @@
 	</center>
 
 	<center>
-		<<if _r > 0>>
-			<<print $defaultRules[_r-1].name+" &emsp; <- &emsp;&emsp;">>
+		<<if $r > 1>>
+			<<print $defaultRules[$r-2].name+" &emsp; <- &emsp;&emsp;">>
 		<<else>>
 			<<print "&emsp;&emsp;&emsp;&emsp;&emsp;">>
 		<</if>>
@@ -92,8 +91,8 @@
 		@@.yellow;$currentRule.name@@
 		</span>
 
-		<<if _r < $defaultRules.length-1>>
-			<<print "&emsp;&emsp; -> &emsp; "+$defaultRules[_r+1].name>>
+		<<if $r < _length>>
+			<<print "&emsp;&emsp; -> &emsp; "+$defaultRules[$r].name>>
 		<<else>>
 			<<print "&emsp;&emsp;&emsp;&emsp;&emsp;">>
 		<</if>>
@@ -101,15 +100,15 @@
 
 	<center>
 		<span id="ruleDown">
-			<<if _r > 0>>
-			<<link "Lower Priority">>
-			<<set _tmpRule = $defaultRules[_r]>>
-			<<set $defaultRules[_r] = $defaultRules[_r-1]>>
-			<<set $defaultRules[_r-1] = _tmpRule>>
-			<<goto "Rules Assistant">>
-			<</link>>
+			<<if $r > 1>>
+				<<link "Lower Priority">>
+					<<set _tmpRule = $defaultRules[$r-1]>>
+					<<set $defaultRules[$r-1] = $defaultRules[$r-2]>>
+					<<set $defaultRules[$r-2] = _tmpRule>>
+					<<goto "Rules Assistant">>
+				<</link>>
 			<<else>>
-			Lower Priority
+				Lower Priority
 			<</if>>
 		</span>
 			|
@@ -120,11 +119,11 @@
 		<</link>>
 			|
 		<span id="ruleUp">
-			<<if _r < $defaultRules.length-1>>
+			<<if $r < _length>>
 				<<link "Higher Priority">>
-					<<set _tmpRule = $defaultRules[_r]>>
-					<<set $defaultRules[_r] = $defaultRules[_r+1]>>
-					<<set $defaultRules[_r+1] = _tmpRule>>
+					<<set _tmpRule = $defaultRules[$r-1]>>
+					<<set $defaultRules[$r-1] = $defaultRules[$r]>>
+					<<set $defaultRules[$r] = _tmpRule>>
 					<<goto "Rules Assistant">>
 				<</link>> 
 			<<else>>
@@ -132,7 +131,7 @@
 			<</if>>
 		</span>
 	</center>
-<</if>> /* closes if $defaultRules.length > 0 */
+<</if>> /* closes if _length > 0 */
 
 <br>
 
@@ -140,7 +139,7 @@
 
 <br><br>
 
-<<if $defaultRules.length < 1>>
+<<if _length < 1>>
 ''No rules.''
 
 <<else>>
@@ -1072,7 +1071,7 @@ Vaginal accessories for other slaves: ''$currentRule.vaginalAccessory.''
 	<<RAChangeApply>>
 <</link>>
 
-
+<<if $seeDicks != 0 || $makeDicks != 0>>
 <br>
 <span id = "avdaccessory">
 Dick accessories for anal virgins: ''$currentRule.aVirginDickAccessory.''
@@ -1151,7 +1150,7 @@ Dick accessories for other slaves: ''$currentRule.dickAccessory.''
 	<<RAChangeSave>>
 	<<RAChangeApply>>
 <</link>>
-
+<</if>>
 
 <br>
 
@@ -1722,8 +1721,6 @@ Slave diets:
 	<<RAChangeApply>>
 <</link>>
 <<if $dietXXY == 1>>
-<<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>>
-<<if $activeSlave.balls > 0>>
 |
 <<link "Futanari">>
 	<<set $currentRule.diet = "XXY">>
@@ -1732,9 +1729,7 @@ Slave diets:
 	<<RAChangeApply>>
 <</link>>
 <</if>>
-<</if>>
-<</if>>
-<</if>>
+<</if>> /* closes $feeder == 1 */
 
 <span id = "dietsupport">
 <<if $currentRule.diet !== "no default setting">>
@@ -2517,7 +2512,7 @@ Relationship rules: ''$currentRule.relationshipRules.''
 <<link "Reset this rule to use FC Dev's preferred options">>
 	<<replace "#saveresult">>
 	//Rule reset.//
-	<<for _t = 0; _t < $defaultRules.length; _t++>>
+	<<for _t = 0; _t < _length; _t++>>
 
 		<<if $currentRule.ID == $defaultRules[_t].ID>>
 			<<if ($currentRule.ID == 1)>>
@@ -2780,58 +2775,49 @@ Relationship rules: ''$currentRule.relationshipRules.''
 <span id="result">
 <<set _text = "Remove rule " + $r>>
 <<link _text>>
-	<<set $defaultRules[$r-1].activation = "none">>
-	<<for $s = 0; $s < $slaves.length; $s++>>
-	  <<CheckAutoRulesActivate $slaves[$s]>>
-	<</for>>
-	<<set $defaultRules.pluck([$r-1],[$r-1])>>
-	<<for _r = $defaultRules.length; _r >= 0; _r-->>
-		<<if def $defaultRules[_r]>>
-			<<set $currentRule = $defaultRules[_r]>>
+	<<set $defaultRules.deleteAt($r-1)>>
+	<<for $r = $defaultRules.length; $r > 0; $r-->>
+		<<if def $defaultRules[$r-1]>>
+			<<set $currentRule = $defaultRules[$r-1]>>
 			<<break>>
 		<</if>>
 	<</for>>
 	<<goto "Rules Assistant">>
 <</link>>
 </span>
-<</if>>
 
-<br>
+<</if>> /* closes if _length > 0 */
 
-<<if $defaultRules.length < 10>>
-	<br>
+<br><br>
+
+<<if _length < 10>>
 
 	<<link "Add a new rule">>
 
 		<<set _activeRule = {aphrodisiacs: "no default setting", activation: "none", thresholdLower: 4, thresholdUpper: "none", eqLower: true, eqUpper: true, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", fuckdoll: 0, choosesOwnClothes: 0, collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", cSec: 0, bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", markings: "none", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", analArea: 1, dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", useRulesAssistant: 1, diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: "no default setting", autoSurgery: 0, choosesOwnAssignment: 0, lactation: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "none", facility: [], excludeFacility: [], assignFacility: "none", excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting" }>>
 
-		<<if ndef _r>>
-			<<set _r = 0>>
-			<<set $r = 1>>
-		<</if>>
-
-		<<if $defaultRules.length > 0>>
-			<<set _length to ($defaultRules.length+1)>>
-			<<set $RulesID to $RulesID+1>>
-		<<else>>
-			<<set _length to 1>>
-			<<set $RulesID to 1>>
-		<</if>>
-
-		<<set _activeRule.name = "Rule " + _length>>
-		<<set _activeRule.ID = $RulesID>>
-
+		<<set _activeRule.name = "Rule " + (_length+1)>>
 		<<set $defaultRules.push(_activeRule)>>
 
-		<<set $currentRule = $defaultRules[$defaultRules.length-1]>>
+		/* renumber rule IDs and update slaves' assigned rule IDs if needed */
+		<<for $r = 0; $r < $defaultRules.length; $r++>>
+			<<set $defaultRules[$r].ID = $r + 1>>
+		<</for>>
+		<<for _i = 0; _i < $slaves.length; _i++>>
+			<<silently>>
+				<<CheckAutoRulesActivate $slaves[_i]>>
+			<</silently>>
+		<</for>>
+
+		<<set $currentRule = $defaultRules[_length]>>
 		<<goto "Rules Assistant">>
 		
-	<</link>>
+	<</link>> |
 
 <</if>>
 
-<<if $defaultRules.length > 0>>
-	| <span id="apply">
+<<if _length > 0>>
+	<span id="apply">
 		<span id="applied"></span>
 		<span id="applyresult"></span>
 	</span>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 4d7ec903ab9478d092d96716c349bdd33c3e0886..6fa30779c2512b2efad6e8f31db93d4724abc532 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -2178,7 +2178,7 @@
 <<if ($slaves[$i].assignment != "work in the brothel")>>
 <<if ($slaves[$i].assignment != "serve in the club")>>
 <<if ($slaves[$i].assignment != "serve in the master suite") || ($masterSuiteUpgradeLuxury < 2)>>
-<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)>>
+<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyStimulatorsSetting == 0)>>
 <<if ($slaves[$i].vagina is 3) && ($slaves[$i].vaginalAccessory != "large dildo") && ($slaves[$i].vaginalAccessory != "huge dildo")>>
 	With a rest from strenuous use, @@.orange;$possessive loose vagina recovers a little.@@
 	<<set $slaves[$i].vagina -= 1>>
@@ -5071,7 +5071,7 @@
 	<<if $slaves[$i].physicalAge >= 18>>
 		<<if ($slaves[$i].boobs > 9000+($slaves[$i].muscles*100))>>
 		<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) || $arcologies[0].FSAssetExpansionistResearch == 0>>
-		<<if ($slaves[$i].drugs != "breast injections" && $FSAssetExpansionistResearch == 0)>>
+		<<if ($slaves[$i].drugs != "breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>>
 		<<if ($slaves[$i].boobs > 9000+($slaves[$i].muscles*100))>>
 			Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@
 			<<set $slaves[$i].boobs to Math.clamp($slaves[$i].boobs-25, 9000+($slaves[$i].muscles*100), 25000)>>
@@ -5110,7 +5110,7 @@
 	<<elseif $slaves[$i].physicalAge <= 3>>
 		<<if ($slaves[$i].boobs > 5100+($slaves[$i].muscles*10))>>
 		<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2) or $arcologies[0].FSAssetExpansionistResearch == 0>>
-		<<if ($slaves[$i].drugs != "breast injections" && $FSAssetExpansionistResearch == 0)>>
+		<<if ($slaves[$i].drugs != "breast injections" && $arcologies[0].FSAssetExpansionistResearch == 0)>>
 		<<if ($slaves[$i].boobs > 5100+($slaves[$i].muscles*10))>>
 			Her breasts are larger than her body can possibly sustain without industrial intervention, and they @@.orange;naturally lose mass.@@
 			<<set $slaves[$i].boobs to Math.clamp($slaves[$i].boobs-25, 5100+($slaves[$i].muscles*10), 25000)>>
diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw
index fc190579e78967d22092f6637c3cb442561e5173..a030e00eb0b76af2fde81a8e7fa60b547c69508b 100644
--- a/src/uncategorized/seBirth.tw
+++ b/src/uncategorized/seBirth.tw
@@ -646,7 +646,7 @@ Childbirth has @@.lime;greatly stretched out $possessive ass.@@
 <<elseif ($slaves[$i].anus == 2)>>
 Childbirth has @@.lime;stretched out $possessive ass.@@
 <<elseif ($slaves[$i].anus == 3)>>
-$possessiveCaps ass was loose enough to not be stretched by childbirth.
+$possessiveCap ass was loose enough to not be stretched by childbirth.
 <<elseif ($slaves[$i].anus < 10)>>
 Childbirth stood no chance of stretching $possessive gaping ass.
 <<elseif ($slaves[$i].anus == 10)>>
diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw
index 19c9b22752f12f2cd84f633d7701447d152394b1..6a6c9599f165e70f6891ea404f985b9c94089afb 100644
--- a/src/uncategorized/seCoursing.tw
+++ b/src/uncategorized/seCoursing.tw
@@ -15,7 +15,7 @@
 	<</if>>
 <</for>>
 
-It's time to go coursing. You meet with fellow members of the Coursing Association while the automated maintenance drones clear the plaza and lay down the green, sharing a refine discussion of recent events over <<if $PC.refreshmentType == 0>>a $PC.refreshment<<elseif $PC.refreshmentType == 1>>glasses of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plates of $PC.refreshment<<elseif $PC.refreshmentType == 3>>hits of $PC.refreshment<<else>>shots of $PC.refreshment<</if>>. Once the field is ready, the day's hares are led out and chained in a row along one side of the plaza, naked. You and the other members watch this process intently, since you won't get any more information on them than what you can learn by looking.
+It's time to go coursing. You meet with fellow members of the Coursing Association while the automated maintenance drones clear the plaza and lay down the green, sharing a refine discussion of recent events over <<if $PC.refreshmentType == 0>>a $PC.refreshment<<elseif $PC.refreshmentType == 1>>glasses of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plates of $PC.refreshment<<elseif $PC.refreshmentType == 3>>hits of $PC.refreshment<<elseif $PC.refreshmentType == 4>>shots of $PC.refreshment<<elseif $PC.refreshmentType == 5>>handfulls of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tabs of $PC.refreshment<</if>>. Once the field is ready, the day's hares are led out and chained in a row along one side of the plaza, naked. You and the other members watch this process intently, since you won't get any more information on them than what you can learn by looking.
 <br><br>
 The rules have been explained to the hares: they're to be freed if they can reach the other side of the plaza without being caught and raped by the lurchers who will be released to chase them.
 
diff --git a/src/uncategorized/shops.tw b/src/uncategorized/shops.tw
new file mode 100644
index 0000000000000000000000000000000000000000..a2ca2bcc560dd3cf1b930feec4f343a59f310e35
--- /dev/null
+++ b/src/uncategorized/shops.tw
@@ -0,0 +1,19 @@
+:: Shops [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Manage Arcology">>
+
+This is a section of the promenade filled with a variety of small, higher-end shops, salons, brothels, and clubs. You control this part of the arcology and all these businesses pay you rent.
+<<SectorSell>>
+<br>
+
+<<if $brothel == 0>>
+	<br>
+	[[Convert this sector of the promenade into a brothel|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $brothel = 5, $sectors[$AS].type = "Brothel"]]
+	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
+<</if>>
+
+<<if $club == 0>>
+	<br>
+	[[Build a club to serve as a focal point for public sluts|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $club = 5, $sectors[$AS].type = "Club"]]
+	//Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs//
+<</if>><<set $nextButton = "Back", $nextLink = "Manage Arcology">>
\ No newline at end of file
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index 298c6614d5b23fca2e560c0df2787076805fcecf..071b6a8bbe51aec824d688e8dfbc203d96cf6c44 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -523,7 +523,7 @@ _Pass $nextLink
 		<span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@
 	<</if>>
 	<br><span id="LanguageButton"><<link "Language options">><<set $seed = $language>><<goto "Change Language">><</link>></span> @@.cyan;[L]@@
-	<br><span id="PAOButton"><<link [[Personal assistant options]]>><</link>></span> @@.cyan;[T]@@
+	<br><span id="PAOButton"><<link [[Assistant Options|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@
 	<br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[U]@@
 	<br><span id="WARButton"><<link [[Wardrobe]]>><</link>></span> @@.cyan;[W]@@
 	<<if $cyberMod != 0 && $researchLab.built == "true">>
diff --git a/src/utility/assignWidgets.tw b/src/utility/assignWidgets.tw
index edee8d60f9ec7213c489d49789740720062cd13d..557f41b3be535f08aa51cf6cd60f6a5905396c91 100644
--- a/src/utility/assignWidgets.tw
+++ b/src/utility/assignWidgets.tw
@@ -3,7 +3,7 @@
 /%
 	Call as <<assignJob slaveObject $returnto | _currentRule.facilityRemove | "serve in the master suite"
 	$args[0] slave object. *MUST be present*
-	$args[1] Job to assign slave to. Will accept the $returnto vars and the _currentRule.assignFacility vars and the actual job assignments "serve in the master suite" etc.
+	$args[1] Job to assign slave to. Will accept the $returnTo vars and the _currentRule.assignFacility vars and the actual job assignments "serve in the master suite" etc.
 
 	This is basically a Widget version of assign but will work anywhere, and saves to the slaves[..] array, and changes your $args[0] var sent.
 %/
@@ -19,9 +19,9 @@
 	<<set _wi = $i>>
 <<else>>
 	<<for _wi = 0; _wi < _SL; _wi++>>
-	<<if _wID == $slaves[_wi].ID>>
-		<<break>>
-	<</if>>
+		<<if _wID == $slaves[_wi].ID>>
+			<<break>>
+		<</if>>
 	<</for>>
 <</if>>
 
@@ -43,6 +43,10 @@
 	<<set $args[0].assignment = "serve in the club",            $args[0].assignmentVisible = 0, $clubSlaves++, $ClubiIDs.push({ID: _wID, Index: _wi})>>
 <<case "dairy" "work in the dairy">>
 	<<set $args[0].assignment = "work in the dairy",            $args[0].assignmentVisible = 0, $dairySlaves++, $DairyiIDs.push({ID: _wID, Index: _wi})>>
+	<<if $dairyPregSetting > 0>>
+		<<set $reservedChildren -= $args[0].reservedChildren>>
+		<<set $args[0].reservedChildren = 0>>
+	<</if>>
 <<case "hgsuite" "head girl suite" "live with your head girl">>
 	<<set $args[0].assignment = "live with your Head Girl",     $args[0].assignmentVisible = 0, $HGSuiteSlaves++, $HGSuiteiIDs.push({ID: _wID, Index: _wi})>>
 <<case "servantsquarters" "servants' quarters" "work as a servant">>
@@ -74,7 +78,7 @@
 
 <<if $slaves[_wi].choosesOwnClothes == 1>><<include "SA chooses own clothes">><<set $args[0] = $slaves[_wi]>><</if>> /* update clothes, then update $args[0] */
 
-<</if>>
+<</if>> /* not Pit or Coursing Association */
 <</widget>>
 
 /%
@@ -87,8 +91,23 @@
 %/
 <<widget removeJob>>
 <<if ($args[1] != "Pit") && ($args[1] != "Coursing Association")>>
+
 <<set _wID = $args[0].ID, _SL = $slaves.length>>
 
+<<if _wID == $HeadGirl.ID>><<set $HeadGirl = 0>><</if>>
+<<if _wID == $Recruiter.ID>><<set $Recruiter = 0>><</if>>
+<<if _wID == $Bodyguard.ID>><<set $Bodyguard = 0>><</if>>
+<<if _wID == $Madam.ID>><<set $Madam = 0>><</if>>
+<<if _wID == $DJ.ID>><<set $DJ = 0>><</if>>
+<<if _wID == $Milkmaid.ID>><<set $Milkmaid = 0>><</if>>
+<<if _wID == $Schoolteacher.ID>><<set $Schoolteacher = 0>><</if>>
+<<if _wID == $Attendant.ID>><<set $Attendant = 0>><</if>>
+<<if _wID == $Nurse.ID>><<set $Nurse = 0>><</if>>
+<<if _wID == $Collectrix.ID>><<set $Collectrix = 0>><</if>>
+<<if _wID == $Stewardess.ID>><<set $Stewardess = 0>><</if>>
+<<if _wID == $Wardeness.ID>><<set $Wardeness = 0>><</if>>
+<<if _wID == $Concubine.ID>><<set $Concubine = 0>><</if>>
+
 /% use .toLowerCase() to get rid of a few dupe conditions. %/
 <<switch $args[1].toLowerCase()>>
 <<case "clinic" "get treatment in the clinic">>
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 945343b0ec5e361fb01a14a12fa6282d0998aea2..3e4f7392ef2d478156837e843c192da9526e6118 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -3477,7 +3477,7 @@ $pronounCap's got a
 		$pronounCap cannot get to $possessive feet unaided, and prefers to remain seated so $possessive enormous balls don't weigh $object down as much.
 		<</if>>
 	<<elseif $activeSlave.balls >= 100>>
-		$possessiveCap testicles each dwarf $oject, making $object almost entirely testicle.
+		$possessiveCap testicles each dwarf $object, making $object almost entirely testicle.
 	<<else>>
 		$possessiveCap testicles each dwarf $possessive torso, making $object almost entirely testicle.
 	<</if>>
@@ -3692,7 +3692,7 @@ $pronounCap's got a
 			$pronounCap cannot get to $possessive feet unaided, and prefers to remain seated so $possessive enormous balls don't weigh $object down as much.
 			<</if>>
 		<<elseif $activeSlave.balls >= 100>>
-			$possessiveCap testicles each dwarf $oject, making $object almost entirely testicle.
+			$possessiveCap testicles each dwarf $object, making $object almost entirely testicle.
 		<<else>>
 			$possessiveCap testicles each dwarf $possessive torso, making $object almost entirely testicle.
 		<</if>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 6387a0dd26f72321aeadbc9293a9595d6e39cc3f..593d198dadb818bf89e324f600d903ea2424fad7 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -431,9 +431,9 @@
 <<replace #sexoption>>
 	<<if ($activeSlave.vagina > -1)>>
 		<<if canDoVaginal($activeSlave)>>
-		<<link "Fuck her">><<replace "#miniscene">><<include "FVagina">><br><</replace>><</link>>
+		<<link "Fuck her">><<replace "#miniscene">><<include "FVagina">><br><</replace>><<SlaveInteractFertility>><</link>>
 		<<if canDoAnal($activeSlave)>>
-			| <<link "Use her holes">><<replace "#miniscene">><<include "FButt">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+			| <<link "Use her holes">><<replace "#miniscene">><<include "FButt">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><<SlaveInteractFertility>><</link>>
 		<</if>>
 		<<else>>
 		//Remove her chastity belt if you wish to fuck her//
@@ -1042,8 +1042,13 @@
 %/
 <<widget "MenialPopCap">>
 
-<<set _PopCap = 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>>
-<<set _OverMenialCap = ($helots+$fuckdolls+$menialBioreactors)-_PopCap>>
+<<set $PopCap = 500>>
+<<for _i = 20; _i < $sectors.length; _i++>>
+	<<if $sectors[_i].type == "Pens">>
+		<<set $PopCap += 500>>
+	<</if>>
+<</for>>
+<<set _OverMenialCap = ($helots+$fuckdolls+$menialBioreactors)-$PopCap>>
 <<if _OverMenialCap > 0>>
 	<<set _Price = Math.trunc(($slaveCostFactor*1000)/100)*100>>
 	<<set _Price = Math.clamp(_Price, 500, 1500)>>
@@ -1753,6 +1758,470 @@ This experience
 
 <</widget>>
 
+<<widget "ClearFacilityDecorations">>
+/* Called when a FS is abandoned or failed out of. */
+
+<<if $brothel > 0>>
+<<if $brothelDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($brothelDecoration == "Supremacist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($brothelDecoration == "Subjugationist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($brothelDecoration == "Gender Radicalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($brothelDecoration == "Gender Fundamentalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($brothelDecoration == "Paternalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($brothelDecoration == "Body Purist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($brothelDecoration == "Transformation Fetishist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($brothelDecoration == "Youth Preferentialist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($brothelDecoration == "Maturity Preferentialist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($brothelDecoration == "Slimness Enthusiast")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($brothelDecoration == "Asset Expansionist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($brothelDecoration == "Pastoralist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($brothelDecoration == "Physical Idealist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($brothelDecoration == "Chattel Religionist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($brothelDecoration == "Degradationist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($brothelDecoration == "Roman Revivalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($brothelDecoration == "Egyptian Revivalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($brothelDecoration == "Edo Revivalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($brothelDecoration == "Arabian Revivalist")>>
+	<<set $brothelDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($brothelDecoration == "Chinese Revivalist")>>
+	<<set $brothelDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $club > 0>>
+<<if $clubDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($clubDecoration == "Supremacist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($clubDecoration == "Subjugationist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($clubDecoration == "Gender Radicalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($clubDecoration == "Gender Fundamentalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($clubDecoration == "Paternalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($clubDecoration == "Body Purist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($clubDecoration == "Transformation Fetishist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($clubDecoration == "Youth Preferentialist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($clubDecoration == "Maturity Preferentialist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($clubDecoration == "Slimness Enthusiast")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($clubDecoration == "Asset Expansionist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($clubDecoration == "Pastoralist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($clubDecoration == "Physical Idealist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($clubDecoration == "Chattel Religionist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($clubDecoration == "Degradationist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($clubDecoration == "Roman Revivalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($clubDecoration == "Egyptian Revivalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($clubDecoration == "Edo Revivalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($clubDecoration == "Arabian Revivalist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($clubDecoration == "Chinese Revivalist")>>
+	<<set $clubDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $dairy > 0>>
+<<if $dairyDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($dairyDecoration == "Supremacist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($dairyDecoration == "Subjugationist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($dairyDecoration == "Gender Radicalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($dairyDecoration == "Gender Fundamentalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($dairyDecoration == "Paternalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($dairyDecoration == "Body Purist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($dairyDecoration == "Transformation Fetishist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($dairyDecoration == "Youth Preferentialist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($dairyDecoration == "Maturity Preferentialist")>>
+	<<set $clubDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($dairyDecoration == "Slimness Enthusiast")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($dairyDecoration == "Asset Expansionist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($dairyDecoration == "Pastoralist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($dairyDecoration == "Physical Idealist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($dairyDecoration == "Chattel Religionist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($dairyDecoration == "Degradationist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($dairyDecoration == "Roman Revivalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($dairyDecoration == "Egyptian Revivalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($dairyDecoration == "Edo Revivalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($dairyDecoration == "Arabian Revivalist")>>
+	<<set $dairyDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($dairyDecoration == "Chinese Revivalist")>>
+	<<set $dairyDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $spa > 0>>
+<<if $spaDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($spaDecoration == "Supremacist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($spaDecoration == "Subjugationist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($spaDecoration == "Gender Radicalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($spaDecoration == "Gender Fundamentalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($spaDecoration == "Paternalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($spaDecoration == "Body Purist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($spaDecoration == "Transformation Fetishist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($spaDecoration == "Youth Preferentialist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($spaDecoration == "Maturity Preferentialist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($spaDecoration == "Slimness Enthusiast")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($spaDecoration == "Asset Expansionist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($spaDecoration == "Pastoralist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($spaDecoration == "Physical Idealist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($spaDecoration == "Chattel Religionist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($spaDecoration == "Degradationist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($spaDecoration == "Roman Revivalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($spaDecoration == "Egyptian Revivalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($spaDecoration == "Edo Revivalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($spaDecoration == "Arabian Revivalist")>>
+	<<set $spaDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($spaDecoration == "Chinese Revivalist")>>
+	<<set $spaDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $clinic > 0>>
+<<if $clinicDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($clinicDecoration == "Supremacist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($clinicDecoration == "Subjugationist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($clinicDecoration == "Gender Radicalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($clinicDecoration == "Gender Fundamentalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($clinicDecoration == "Paternalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($clinicDecoration == "Body Purist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($clinicDecoration == "Transformation Fetishist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($clinicDecoration == "Youth Preferentialist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($clinicDecoration == "Maturity Preferentialist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($clinicDecoration == "Slimness Enthusiast")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($clinicDecoration == "Asset Expansionist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($clinicDecoration == "Pastoralist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($clinicDecoration == "Physical Idealist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($clinicDecoration == "Chattel Religionist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($clinicDecoration == "Degradationist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($clinicDecoration == "Roman Revivalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($clinicDecoration == "Egyptian Revivalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($clinicDecoration == "Edo Revivalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($clinicDecoration == "Arabian Revivalist")>>
+	<<set $clinicDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($clinicDecoration == "Chinese Revivalist")>>
+	<<set $clinicDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $schoolroom > 0>>
+<<if $schoolroomDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($schoolroomDecoration == "Supremacist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($schoolroomDecoration == "Subjugationist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($schoolroomDecoration == "Gender Radicalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($schoolroomDecoration == "Gender Fundamentalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($schoolroomDecoration == "Paternalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($schoolroomDecoration == "Body Purist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($schoolroomDecoration == "Transformation Fetishist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($schoolroomDecoration == "Youth Preferentialist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($schoolroomDecoration == "Maturity Preferentialist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($schoolroomDecoration == "Slimness Enthusiast")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($schoolroomDecoration == "Asset Expansionist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($schoolroomDecoration == "Pastoralist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($schoolroomDecoration == "Physical Idealist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($schoolroomDecoration == "Chattel Religionist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($schoolroomDecoration == "Degradationist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($schoolroomDecoration == "Roman Revivalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($schoolroomDecoration == "Egyptian Revivalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($schoolroomDecoration == "Edo Revivalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($schoolroomDecoration == "Arabian Revivalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($schoolroomDecoration == "Chinese Revivalist")>>
+	<<set $schoolroomDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $cellblock > 0>>
+<<if $cellblockDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($cellblockDecoration == "Supremacist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($cellblockDecoration == "Subjugationist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($cellblockDecoration == "Gender Radicalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($cellblockDecoration == "Gender Fundamentalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($cellblockDecoration == "Paternalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($cellblockDecoration == "Body Purist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($cellblockDecoration == "Transformation Fetishist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($cellblockDecoration == "Youth Preferentialist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($cellblockDecoration == "Maturity Preferentialist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($cellblockDecoration == "Slimness Enthusiast")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($cellblockDecoration == "Asset Expansionist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($cellblockDecoration == "Pastoralist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($cellblockDecoration == "Physical Idealist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($cellblockDecoration == "Chattel Religionist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($cellblockDecoration == "Degradationist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($cellblockDecoration == "Roman Revivalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($cellblockDecoration == "Egyptian Revivalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($cellblockDecoration == "Edo Revivalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($cellblockDecoration == "Arabian Revivalist")>>
+	<<set $cellblockDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($cellblockDecoration == "Chinese Revivalist")>>
+	<<set $cellblockDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $servantsQuarters > 0>>
+<<if $servantsQuartersDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($servantsQuartersDecoration == "Supremacist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($servantsQuartersDecoration == "Subjugationist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($servantsQuartersDecoration == "Gender Radicalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($servantsQuartersDecoration == "Gender Fundamentalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($servantsQuartersDecoration == "Paternalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($servantsQuartersDecoration == "Body Purist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($servantsQuartersDecoration == "Transformation Fetishist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($servantsQuartersDecoration == "Youth Preferentialist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($servantsQuartersDecoration == "Maturity Preferentialist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($servantsQuartersDecoration == "Slimness Enthusiast")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($servantsQuartersDecoration == "Asset Expansionist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($servantsQuartersDecoration == "Pastoralist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($servantsQuartersDecoration == "Physical Idealist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($servantsQuartersDecoration == "Chattel Religionist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($servantsQuartersDecoration == "Degradationist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($servantsQuartersDecoration == "Roman Revivalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($servantsQuartersDecoration == "Egyptian Revivalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($servantsQuartersDecoration == "Edo Revivalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($servantsQuartersDecoration == "Arabian Revivalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($servantsQuartersDecoration == "Chinese Revivalist")>>
+	<<set $servantsQuartersDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $arcade > 0>>
+<<if $arcadeDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($arcadeDecoration == "Supremacist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($arcadeDecoration == "Subjugationist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($arcadeDecoration == "Gender Radicalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($arcadeDecoration == "Gender Fundamentalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($arcadeDecoration == "Paternalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($arcadeDecoration == "Body Purist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($arcadeDecoration == "Transformation Fetishist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($arcadeDecoration == "Youth Preferentialist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($arcadeDecoration == "Maturity Preferentialist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($arcadeDecoration == "Slimness Enthusiast")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($arcadeDecoration == "Asset Expansionist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($arcadeDecoration == "Pastoralist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($arcadeDecoration == "Physical Idealist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($arcadeDecoration == "Chattel Religionist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($arcadeDecoration == "Degradationist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($arcadeDecoration == "Roman Revivalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcadeDecoration == "Egyptian Revivalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($arcadeDecoration == "Edo Revivalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($arcadeDecoration == "Arabian Revivalist")>>
+	<<set $arcadeDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($arcadeDecoration == "Chinese Revivalist")>>
+	<<set $arcadeDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<<if $masterSuite > 0>>
+<<if $masterSuiteDecoration != "standard">>
+<<if ($arcologies[0].FSSupremacist == "unset") && ($masterSuiteDecoration == "Supremacist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($masterSuiteDecoration == "Subjugationist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($masterSuiteDecoration == "Gender Radicalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($masterSuiteDecoration == "Gender Fundamentalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSPaternalist == "unset") && ($masterSuiteDecoration == "Paternalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($masterSuiteDecoration == "Body Purist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($masterSuiteDecoration == "Transformation Fetishist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($masterSuiteDecoration == "Youth Preferentialist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($masterSuiteDecoration == "Maturity Preferentialist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($masterSuiteDecoration == "Slimness Enthusiast")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($masterSuiteDecoration == "Asset Expansionist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSPastoralist == "unset") && ($masterSuiteDecoration == "Pastoralist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($masterSuiteDecoration == "Physical Idealist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($masterSuiteDecoration == "Chattel Religionist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSDegradationist == "unset") && ($masterSuiteDecoration == "Degradationist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($masterSuiteDecoration == "Roman Revivalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($masterSuiteDecoration == "Egyptian Revivalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($masterSuiteDecoration == "Edo Revivalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($masterSuiteDecoration == "Arabian Revivalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($masterSuiteDecoration == "Chinese Revivalist")>>
+	<<set $masterSuiteDecoration = "standard">>
+<</if>>
+<</if>>
+<</if>>
+
+<</widget>>
 
 /%
  Call as <<SlaveInteractFucktoy>>
@@ -1783,5 +2252,3 @@ This experience
 <</replace>>
 
 <</widget>>
-
-
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index 47fe54b998c6c475fe39d7d74c16b8f41ad0cbc7..7f8f30d04d632e8f2a3900be31dcd8a509fa36bc 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -10,12 +10,21 @@
 	<br>
 	<<if $currentRule.activation == "custom" >>
 		<<textarea "$currentRule.customActivationText" $currentRule.customActivationText>>
-		<<link "Save activation">>
+		<<link "Test custom rule">>
+			<<set State.variables._parseFailed = true>>
 			<<replace #customsave>>
-				//Activated save link below - remember to save your changes!//
+				<<script>>
+					try {
+						parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]);
+						State.variables._parseFailed = false;
+					} catch (e) { throwError("Failed to parse custom rule. Please check syntax and try again."); }
+				<</script>>
+				<<if State.variables._parseFailed == false>>
+					//Rule parsed successfully. Remember to save your changes using Save rule or Apply rules.//
+					<<RAChangeSave>>
+					<<RAChangeApply>>
+				<</if>>
 			<</replace>>
-			<<RAChangeSave>>
-			<<RAChangeApply>>
 		<</link>>
 		<span id="customsave"></span>
 	<<elseif ($currentRule.activation != "none") && ($currentRule.activation != "always")>>
@@ -98,10 +107,10 @@
 		<<if ($currentRule.thresholdLower == "none") && ($currentRule.thresholdUpper == "none")>>
 			<<set $currentRule.activation = "always">>
 		<<elseif ($currentRule.thresholdLower != "none") && ($currentRule.thresholdUpper != "none")>>
-			<<if (def $currentRule.thresholdLower && $currentRule.thresholdLower > $currentRule.thresholdUpper)>>
+			<<if (def $currentRule.thresholdLower) && ($currentRule.thresholdLower > $currentRule.thresholdUpper)>>
 				<<set $currentRule.thresholdLower = $currentRule.thresholdUpper>>
 			<</if>>
-			<<if (def $currentRule.thresholdUpper && $currentRule.thresholdUpper < $currentRule.thresholdLower)>>
+			<<if (def $currentRule.thresholdUpper) && ($currentRule.thresholdUpper < $currentRule.thresholdLower)>>
 				<<set $currentRule.thresholdUpper = $currentRule.thresholdLower>>
 			<</if>>
 		<</if>>
@@ -214,7 +223,7 @@
 <<else>>
 	''Rest''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "rest")>>
+		<<set $currentRule.assignment.delete("rest")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -235,7 +244,7 @@
 <<else>>
 	''Fucktoy''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "please you")>>
+		<<set $currentRule.assignment.delete("please you")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -256,7 +265,7 @@
 <<else>>
 	''Subordinate Slave''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "be a subordinate slave")>>
+		<<set $currentRule.assignment.delete("be a subordinate slave")>>
 		<<RAChangeSetAssignment>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
@@ -279,7 +288,7 @@
 <<else>>
 	''House Servant''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "be a servant")>>
+		<<set $currentRule.assignment.delete("be a servant")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -300,7 +309,7 @@
 <<else>>
 	''Confined''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "stay confined")>>
+		<<set $currentRule.assignment.delete("stay confined")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -321,7 +330,7 @@
 <<else>>
 	''Whore''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "whore")>>
+		<<set $currentRule.assignment.delete("whore")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -342,7 +351,7 @@
 <<else>>
 	''Public Servant''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "serve the public")>>
+		<<set $currentRule.assignment.delete("serve the public")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -363,7 +372,7 @@
 <<else>>
 	''Milking''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "get milked")>>
+		<<set $currentRule.assignment.delete("get milked")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -384,7 +393,7 @@
 <<else>>
 	''Gloryhole''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.assignment, "work a glory hole")>>
+		<<set $currentRule.assignment.delete("work a glory hole")>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -467,7 +476,7 @@
 <<else>>
 	''Rest''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "rest")>>
+		<<set $currentRule.excludeAssignment.delete("rest")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -488,7 +497,7 @@
 <<else>>
 	''Fucktoy''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "please you")>>
+		<<set $currentRule.excludeAssignment.delete("please you")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -509,7 +518,7 @@
 <<else>>
 	''Subordinate Slave''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "be a subordinate slave")>>
+		<<set $currentRule.excludeAssignment.delete("be a subordinate slave")>>
 		<<RAChangeSetAssignment>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
@@ -531,7 +540,7 @@
 <<else>>
 	''House Servant''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "be a servant")>>
+		<<set $currentRule.excludeAssignment.delete("be a servant")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -552,7 +561,7 @@
 <<else>>
 	''Confined''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "stay confined")>>
+		<<set $currentRule.excludeAssignment.delete("stay confined")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -573,7 +582,7 @@
 <<else>>
 	''Whore''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "whore")>>
+		<<set $currentRule.excludeAssignment.delete("whore")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -594,7 +603,7 @@
 <<else>>
 	''Public Servant''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "serve the public")>>
+		<<set $currentRule.excludeAssignment.delete("serve the public")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -615,7 +624,7 @@
 <<else>>
 	''Milking''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "get milked")>>
+		<<set $currentRule.excludeAssignment.delete("get milked")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -636,7 +645,7 @@
 <<else>>
 	''Gloryhole''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeAssignment, "work a glory hole")>>
+		<<set $currentRule.excludeAssignment.delete("work a glory hole")>>
 		<<RAChangeExcludeAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -687,7 +696,7 @@
 <<else>>
 	''$HGSuiteNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "hgsuite")>>
+		<<set $currentRule.facility.delete("hgsuite")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -711,7 +720,7 @@
 <<else>>
 	''$brothelNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "brothel")>>
+		<<set $currentRule.facility.delete("brothel")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -735,7 +744,7 @@
 <<else>>
 	''$clubNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "club")>>
+		<<set $currentRule.facility.delete("club")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -759,7 +768,7 @@
 <<else>>
 	''$arcadeNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "arcade")>>
+		<<set $currentRule.facility.delete("arcade")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -783,7 +792,7 @@
 <<else>>
 	''$dairyNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "dairy")>>
+		<<set $currentRule.facility.delete("dairy")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -807,7 +816,7 @@
 <<else>>
 	''$servantsQuartersNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "servantsquarters")>>
+		<<set $currentRule.facility.delete("servantsquarters")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -831,7 +840,7 @@
 <<else>>
 	''$masterSuiteNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "mastersuite")>>
+		<<set $currentRule.facility.delete("mastersuite")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -855,7 +864,7 @@
 <<else>>
 	''$schoolroomNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "schoolroom")>>
+		<<set $currentRule.facility.delete("schoolroom")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -879,7 +888,7 @@
 <<else>>
 	''$spaNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "spa")>>
+		<<set $currentRule.facility.delete("spa")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -903,7 +912,7 @@
 <<else>>
 ''$clinicNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "clinic")>>
+		<<set $currentRule.facility.delete("clinic")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -927,7 +936,7 @@
 <<else>>
 	''$cellblockNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.facility, "cellblock")>>
+		<<set $currentRule.facility.delete("cellblock")>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -948,8 +957,11 @@
   Applying to all facilities except:
 	<<link "None">>
 		<<set $currentRule.excludeFacility = []>>
+		<<set $currentRule.assignFacility = "none">>
+		<<set $currentRule.facilityRemove = false>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeExcludeFacility>>
+		<<RAChangeAssignFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
 	<</link>>
@@ -977,7 +989,12 @@
 <<else>>
 	''$HGSuiteNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "hgsuite")>>
+		<<set $currentRule.excludeFacility.delete("hgsuite")>>
+		<<if $currentRule.assignFacility == "hgsuite">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1001,7 +1018,12 @@
 <<else>>
 	''$brothelNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "brothel")>>
+		<<set $currentRule.excludeFacility.delete("brothel")>>
+		<<if $currentRule.assignFacility == "brothel">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1025,7 +1047,12 @@
 <<else>>
 	''$clubNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "club")>>
+		<<set $currentRule.excludeFacility.delete("club")>>
+		<<if $currentRule.assignFacility == "club">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1049,7 +1076,12 @@
 <<else>>
 	''$arcadeNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "arcade")>>
+		<<set $currentRule.excludeFacility.delete("arcade")>>
+		<<if $currentRule.assignFacility == "arcade">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1073,7 +1105,12 @@
 <<else>>
 	''$dairyNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "dairy")>>
+		<<set $currentRule.excludeFacility.delete("dairy")>>
+		<<if $currentRule.assignFacility == "dairy">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1097,7 +1134,12 @@
 <<else>>
 	''$servantsQuartersNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "servantsquarters")>>
+		<<set $currentRule.excludeFacility.delete("servantsquarters")>>
+		<<if $currentRule.assignFacility == "servantsquarters">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1121,7 +1163,12 @@
 <<else>>
 	''$masterSuiteNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "mastersuite")>>
+		<<set $currentRule.excludeFacility.delete("mastersuite")>>
+		<<if $currentRule.assignFacility == "mastersuite">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1145,7 +1192,12 @@
 <<else>>
 	''$schoolroomNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "schoolroom")>>
+		<<set $currentRule.excludeFacility.delete("schoolroom")>>
+		<<if $currentRule.assignFacility == "schoolroom">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1169,7 +1221,12 @@
 <<else>>
 	''$spaNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "spa")>>
+		<<set $currentRule.excludeFacility.delete("spa")>>
+		<<if $currentRule.assignFacility == "spa">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1193,7 +1250,12 @@
 <<else>>
 ''$clinicNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "clinic")>>
+		<<set $currentRule.excludeFacility.delete("clinic")>>
+		<<if $currentRule.assignFacility == "clinic">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1217,7 +1279,12 @@
 <<else>>
 	''$cellblockNameCaps''
 	<<link Stop>>
-		<<set removeFromArray($currentRule.excludeFacility, "cellblock")>>
+		<<set $currentRule.excludeFacility.delete("cellblock")>>
+		<<if $currentRule.assignFacility == "cellblock">>
+			<<set $currentRule.assignFacility = "none">>
+			<<set $currentRule.facilityRemove = false>>
+			<<RAChangeAssignFacility>>
+		<</if>>
 		<<RAChangeExcludeFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
@@ -1250,7 +1317,7 @@
 |
 <<if ($currentRule.setAssignment != "rest")>>
 	<<link "Rest">>
-		<<set removeFromArray($currentRule.assignment, "rest")>>
+		<<set $currentRule.assignment.delete("rest")>>
 		<<set $currentRule.setAssignment = "rest">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1266,7 +1333,7 @@
 |
 <<if ($currentRule.setAssignment != "please you")>>
 	<<link "Fucktoy">>
-		<<set removeFromArray($currentRule.assignment, "please you")>>
+		<<set $currentRule.assignment.delete("please you")>>
 		<<set $currentRule.setAssignment = "please you">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1282,7 +1349,7 @@
 |
 <<if ($currentRule.setAssignment != "be a servant")>>
 	<<link "House Servant">>
-		<<set removeFromArray($currentRule.assignment, "be a servant")>>
+		<<set $currentRule.assignment.delete("be a servant")>>
 		<<set $currentRule.setAssignment = "be a servant">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1298,7 +1365,7 @@
 |
 <<if ($currentRule.setAssignment != "stay confined")>>
 	<<link "Confined">>
-		<<set removeFromArray($currentRule.assignment, "stay confined")>>
+		<<set $currentRule.assignment.delete("stay confined")>>
 		<<set $currentRule.setAssignment = "stay confined">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1314,7 +1381,7 @@
 |
 <<if ($currentRule.setAssignment != "whore")>>
 	<<link "Whore">>
-		<<set removeFromArray($currentRule.assignment, "whore")>>
+		<<set $currentRule.assignment.delete("whore")>>
 		<<set $currentRule.setAssignment = "whore">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1330,7 +1397,7 @@
 |
 <<if ($currentRule.setAssignment != "serve the public")>>
 	<<link "Public Servant">>
-		<<set removeFromArray($currentRule.assignment, "serve the public")>>
+		<<set $currentRule.assignment.delete("serve the public")>>
 		<<set $currentRule.setAssignment = "serve the public">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1346,7 +1413,7 @@
 |
 <<if ($currentRule.setAssignment != "get milked")>>
 	<<link "Milking">>
-		<<set removeFromArray($currentRule.assignment, "get milked")>>
+		<<set $currentRule.assignment.delete("get milked")>>
 		<<set $currentRule.setAssignment = "get milked">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1362,7 +1429,7 @@
 |
 <<if ($currentRule.setAssignment != "work a glory hole")>>
 	<<link "Gloryhole">>
-		<<set removeFromArray($currentRule.assignment, "work a glory hole")>>
+		<<set $currentRule.assignment.delete("work a glory hole")>>
 		<<set $currentRule.setAssignment = "work a glory hole">>
 		<<set $currentRule.assignFacility = "none">>
 		<<set $currentRule.facilityRemove = false>>
@@ -1405,7 +1472,7 @@
 	<<link $HGSuiteNameCaps>>
 		<<set $currentRule.assignFacility = "hgsuite">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "hgsuite")>>
+		<<set $currentRule.facility.delete("hgsuite")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("hgsuite")>>
 			<<RAChangeExcludeFacility>>
@@ -1426,7 +1493,7 @@
 	<<link $brothelNameCaps>>
 		<<set $currentRule.assignFacility = "brothel">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "brothel")>>
+		<<set $currentRule.facility.delete("brothel")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("brothel")>>
 			<<RAChangeExcludeFacility>>
@@ -1447,7 +1514,7 @@
 	<<link $clubNameCaps>>
 		<<set $currentRule.assignFacility = "club">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "club")>>
+		<<set $currentRule.facility.delete("club")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("club")>>
 			<<RAChangeExcludeFacility>>
@@ -1468,7 +1535,7 @@
 	<<link $arcadeNameCaps>>
 		<<set $currentRule.assignFacility = "arcade">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "arcade")>>
+		<<set $currentRule.facility.delete("arcade")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("arcade")>>
 			<<RAChangeExcludeFacility>>
@@ -1489,7 +1556,7 @@
 	<<link $dairyNameCaps>>
 		<<set $currentRule.assignFacility = "dairy">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "dairy")>>
+		<<set $currentRule.facility.delete("dairy")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("dairy")>>
 			<<RAChangeExcludeFacility>>
@@ -1510,7 +1577,7 @@
 	<<link $servantsQuartersNameCaps>>
 		<<set $currentRule.assignFacility = "servantsquarters">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "servantsquarters")>>
+		<<set $currentRule.facility.delete("servantsquarters")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("servantsquarters")>>
 			<<RAChangeExcludeFacility>>
@@ -1531,7 +1598,7 @@
 	<<link $masterSuiteNameCaps>>
 		<<set $currentRule.assignFacility = "mastersuite">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "mastersuite")>>
+		<<set $currentRule.facility.delete("mastersuite")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("mastersuite")>>
 			<<RAChangeExcludeFacility>>
@@ -1552,7 +1619,7 @@
 	<<link $schoolroomNameCaps>>
 		<<set $currentRule.assignFacility = "schoolroom">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "schoolroom")>>
+		<<set $currentRule.facility.delete("schoolroom")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("schoolroom")>>
 			<<RAChangeExcludeFacility>>
@@ -1573,7 +1640,7 @@
 	<<link $spaNameCaps>>
 		<<set $currentRule.assignFacility = "spa">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "spa")>>
+		<<set $currentRule.facility.delete("spa")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("spa")>>
 			<<RAChangeExcludeFacility>>
@@ -1594,7 +1661,7 @@
 	<<link $clinicNameCaps>>
 		<<set $currentRule.assignFacility = "clinic">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "clinic")>>
+		<<set $currentRule.facility.delete("clinic")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("clinic")>>
 			<<RAChangeExcludeFacility>>
@@ -1615,7 +1682,7 @@
 	<<link $cellblockNameCaps>>
 		<<set $currentRule.assignFacility = "cellblock">>
 		<<set $currentRule.setAssignment = "none">>
-		<<set removeFromArray($currentRule.facility, "cellblock")>>
+		<<set $currentRule.facility.delete("cellblock")>>
 		<<if $currentRule.facility.length == 0>>
 			<<set $currentRule.excludeFacility.push("cellblock")>>
 			<<RAChangeExcludeFacility>>
@@ -2303,58 +2370,79 @@ Relationship rules: ''$currentRule.relationshipRules.''
 	<br><br>
 	<<link _text>>
 		<<replace "#saveresult">>
-			<br><br>//Rule $r saved//
-			<<for _t = 0; _t < $defaultRules.length; _t++>>
-				<<if $currentRule.ID == $defaultRules[_t].ID>>
-					<<if $currentRule.thresholdLower != "none">>
-						<<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>>
-					<</if>>
-					<<if $currentRule.thresholdUpper != "none">>
-						<<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>>
+			<br><br>
+			<<set State.variables._parseFailed = false>>
+			<<if $currentRule.activation == "custom">>
+				<<script>>
+					try { parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]); 
+						} catch (e) { State.variables._parseFailed = true; throwError("Failed to parse custom rule. Please check syntax and try again."); }
+				<</script>>
+			<</if>>
+			<<if State.variables._parseFailed == false>>
+				<<for _t = 0; _t < $defaultRules.length; _t++>>
+					<<if $currentRule.ID == $defaultRules[_t].ID>>
+						<<if $currentRule.thresholdLower != "none">>
+							<<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>>
+						<</if>>
+						<<if $currentRule.thresholdUpper != "none">>
+							<<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>>
+						<</if>>
+						<<set $defaultRules[_t] = $currentRule>>
+						//Rule $r saved//
+						<<break>>
 					<</if>>
-					<<set $defaultRules[_t] = $currentRule>>
-					<<break>>
-				<</if>>
-			<</for>>
+				<</for>>
+			<</if>>
 		<</replace>>
 	<</link>>
 <</replace>>
 <</widget>>
 /%
  Call as <<RAChangeApply>>
-<<RAChangeApply>>
 %/
 <<widget "RAChangeApply">>
 <<replace #apply>>
 	<span id="applyresult">
 	<<link "Apply rules">>
+		<<set State.variables._parseFailed = false>>
 		<<replace "#saveresult">>
-			<br><br>//Rule $r saved//
-			<<for _t = 0; _t < $defaultRules.length; _t++>>
-				<<if $currentRule.ID == $defaultRules[_t].ID>>
-					<<if $currentRule.thresholdLower != "none">>
-						<<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>>
-					<</if>>
-					<<if $currentRule.thresholdUpper != "none">>
-						<<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>>
+			<br><br>
+			<<if $currentRule.activation == "custom">>
+				<<script>>
+					try { parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]); 
+						} catch (e) { State.variables._parseFailed = true; throwError("Failed to parse custom rule. Please check syntax and try again."); }
+				<</script>>
+			<</if>>
+			<<if State.variables._parseFailed == false>>
+				<<for _t = 0; _t < $defaultRules.length; _t++>>
+					<<if $currentRule.ID == $defaultRules[_t].ID>>
+						<<if $currentRule.thresholdLower != "none">>
+							<<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>>
+						<</if>>
+						<<if $currentRule.thresholdUpper != "none">>
+							<<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>>
+						<</if>>
+						<<set $defaultRules[_t] = $currentRule>>
+						//Rule $r saved//
+						<<break>>
 					<</if>>
-					<<set $defaultRules[_t] = $currentRule>>
-					<<break>>
-				<</if>>
-			<</for>>
-		<</replace>>
-		<<replace "#applied">>
-			<<for $i = 0; $i < $slaves.length; $i++>>
-				<<if $slaves[$i].useRulesAssistant == 1>> /* skip RA-exempt slaves */
-				  <<set $activeSlave = $slaves[$i]>>
-				  <<CheckAutoRulesActivate $activeSlave>> /* does not use or modify $currentRule */
-				  <<DefaultRules $activeSlave>> /* does not use or modify $currentRule */
-				<</if>>
-			<</for>>
-		<</replace>>
-		<<replace "#applyresult">>
-			//Rules applied.//<br>
+				<</for>>
+			<</if>>
 		<</replace>>
+		<<if State.variables._parseFailed == false>>
+			<<replace "#applied">>
+				<<for $i = 0; $i < $slaves.length; $i++>>
+					<<if $slaves[$i].useRulesAssistant == 1>> /* skip RA-exempt slaves */
+					  <<set $activeSlave = $slaves[$i]>>
+					  <<CheckAutoRulesActivate $activeSlave>> /* does not use or modify $currentRule */
+					  <<DefaultRules $activeSlave>> /* does not use or modify $currentRule */
+					<</if>>
+				<</for>>
+			<</replace>>
+			<<replace "#applyresult">>
+				//Rules applied.//<br>
+			<</replace>>
+		<</if>>
 	<</link>>
 	</span>
 	<span id="applied"></span>
@@ -3080,12 +3168,13 @@ Your brand design is ''$brandDesign.''
 	<<for _s = 0; _s < $args[0].currentRules.length; _s++>>
 		<<if _currentRule.ID == $args[0].currentRules[_s]>>
 			<<set _dump = $args[0].currentRules.deleteAt(_s)>>
+			<br>//@@.tan;Rule _rule (_currentRule.name) is no longer applying to $args[0].slaveName, who is assigned to $args[0].assignment.@@//
+			<<if $args[0].assignmentVisible == 0>>
+				<<include "Rules Facility Remove">>
+			<</if>>
+			<<break>>
 		<</if>>
 	<</for>>
-	<br>//@@.tan;Rule _rule (_currentRule.name) is no longer applying to $args[0].slaveName, who is assigned to $args[0].assignment.@@//
-	<<if $args[0].assignmentVisible == 0>>
-		<<include "Rules Facility Remove">>
-	<</if>>
 <</widget>>
 
 /%
@@ -4533,7 +4622,7 @@ consequences.
 <<if !_exclude>>
 <<switch _currentRule.assignFacility>>
 <<case "hgsuite">>
-	<<if ($args[0].indentureRestrictions <= 0) && ($args[0].assignment != "live with your Head Girl")>>
+	<<if ($HGSuiteSlaves == 0) && ($args[0].indentureRestrictions <= 0) && ($args[0].assignment != "live with your Head Girl")>>
 		<br>$args[0].slaveName has been automatically assigned to live in your Head Girl's private suite.
 		<<if ($personalAttention == $args[0].ID)>>
 			$args[0].slaveName no longer has your personal attention; you plan to focus on business.
@@ -4732,8 +4821,14 @@ consequences.
 		<<set _currentRule = $defaultRules[_r], _rule = _r+1, _ruleAppliesToThisSlave = true>> /* starting assumption, to be tested below */
 
 		<<switch _currentRule.activation>> /* check activation conditions */
+
 			<<case "custom">>	/* for betterRA */
-				<<if ! parseAndEvaluate(_currentRule.customActivationText, $args[0])>>
+				<<set State.variables._parseFailed = _currentRule.customActivationText>>
+				<<script>>
+					try { if (parseAndEvaluate(State.variables._parseFailed, State.variables.args[0])) { State.variables._parseFailed = -1; }
+						} catch (e) { throwError("Failed to parse a custom rule. Check your custom rules in the Rules Assistant options."); }
+				<</script>>
+				<<if State.variables._parseFailed != -1>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "always">>
@@ -4741,43 +4836,43 @@ consequences.
 			<<case "none">>
 					<<set _ruleAppliesToThisSlave = false>>
 			<<case "devotion">>
-				<<if ! checkThresholds($args[0].devotion, _currentRule)>>
+				<<if !checkThresholds($args[0].devotion, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "trust">>
-				<<if ! checkThresholds($args[0].trust, _currentRule)>>
+				<<if !checkThresholds($args[0].trust, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "health">>
-				<<if ! checkThresholds($args[0].health, _currentRule)>>
+				<<if !checkThresholds($args[0].health, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "sex drive">> /* rule can only be applied if slave's sexuality is known */
-				<<if ($args[0].attrKnown == 0) || ! checkThresholds($args[0].energy, _currentRule)>>
+				<<if ($args[0].attrKnown == 0) || !checkThresholds($args[0].energy, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "age">>
-				<<if ! checkThresholds($args[0].physicalAge, _currentRule)>>
+				<<if !checkThresholds($args[0].physicalAge, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "weight">>
-				<<if ! checkThresholds($args[0].weight, _currentRule)>>
+				<<if !checkThresholds($args[0].weight, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "lactation">>
-				<<if ! checkThresholds($args[0].lactation, _currentRule)>>
+				<<if !checkThresholds($args[0].lactation, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "pregnancy week">>
-				<<if ! checkThresholds($args[0].preg, _currentRule)>>
+				<<if !checkThresholds($args[0].preg, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "pregnancy foetuses">> /* pregnancy only becomes visible after tenth week */
-				<<if $args[0].preg <= 10 || ! checkThresholds($args[0].pregType, _currentRule)>>
+				<<if $args[0].preg <= 10 || !checkThresholds($args[0].pregType, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 			<<case "belly implant volume">>
-				<<if ! checkThresholds($args[0].bellyImplant, _currentRule)>>
+				<<if !checkThresholds($args[0].bellyImplant, _currentRule)>>
 					<<set _ruleAppliesToThisSlave = false>>
 				<</if>>
 		<</switch>> /* closes activation condition checks */