diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index aad7ebe8377210b0d1cc2cc92d57e87cdd69c191..c79cf74bd83fba931be53bbd3665ed13d36c28ee 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -2119,6 +2119,10 @@ window.getCost = function(array) {
 		costs += mercCosts;
 	}
 
+	if(State.variables.citizenRetirementMenials == 1) {
+		costs += State.variables.helots * 2;
+	}
+
 	costs += State.variables.FSSpending;
 
 	//slave expenses
@@ -2516,6 +2520,10 @@ window.getSlaveCost = function(s) {
 	}
 
 	// Retirement account
+	if(State.variables.citizenRetirementMenials === 1 && State.variables.CitizenRetirement === 0) {
+		cost += 2;
+	}
+
 	if(State.variables.CitizenRetirement === 1) {
 		cost += 250;
 	}
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 7c208636f75c448436f0406cbb351952d8a1acfe..cea018b552a71fb7c9d154237f82fb6e73c191b5 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -338,6 +338,7 @@ You should have received a copy of the GNU General Public License along with thi
 
 	<<set $retirementAge = 45>>
 	<<set $customRetirementAge = 45>>
+	<<set $customMenialRetirementAge = 65>>
 	<<set $FSCreditCount = 5>>
 	<<set $FSCreditCountString = "five">>
  
@@ -1192,7 +1193,8 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $BioreactorRetirement = 0>>
 <<set $ArcadeRetirement = 0>>
 <<set $CitizenRetirement = 0>>
-<<set $CitizenRetirementTrigger = 0>>
+<<set $citizenRetirementMenials = 0>>
+<<set $citizenRetirementTrigger = 0>>
 <<set $FSSupLawTrigger = 0>>
 <<set $FSSubLawTrigger = 0>> 
 <<set $SexMilestoneRetirement = 0>>
diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw
index 6ef2b127b9da8acf0e296ae72fda8a0c543fd247..1bf2e3c29056c546aa732f3c6cf84af1ef89b1f6 100644
--- a/src/js/economyJS.tw
+++ b/src/js/economyJS.tw
@@ -150,6 +150,10 @@ window.getCost = function(array) {
 		costs += mercCosts;
 	}
 
+	if(State.variables.citizenRetirementMenials == 1) {
+		costs += State.variables.helots * 2;
+	}
+
 	costs += State.variables.FSSpending;
 
 	//slave expenses
@@ -547,6 +551,10 @@ window.getSlaveCost = function(s) {
 	}
 
 	// Retirement account
+	if(State.variables.citizenRetirementMenials === 1 && State.variables.CitizenRetirement === 0) {
+		cost += 2;
+	}
+
 	if(State.variables.CitizenRetirement === 1) {
 		cost += 250;
 	}
diff --git a/src/pregmod/manageEconomy.tw b/src/pregmod/manageEconomy.tw
index 0b8cfc489351cc009f1d8c291531d8f58a8c1cd5..500fffa18b0b5ebe4b893a0ca1f5e733eb1ef392 100644
--- a/src/pregmod/manageEconomy.tw
+++ b/src/pregmod/manageEconomy.tw
@@ -71,7 +71,7 @@ _percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 1
 _percMiddleClass = Math.trunc(($middleClass / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
-<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent)>>@@ 
+<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@ 
 <<if $LCRent > 30>>
 	//Very High// | [[Decrease|Manage Economy][$LCRent = 30, $rentEffectL = 0.94]]
 <<elseif $LCRent > 20>>
@@ -83,7 +83,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
 <<else>>
 	//Free// | [[Increase|Manage Economy][$LCRent = 10, $rentEffectL = 1.04]]
 <</if>>
-<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent)>>@@
+<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@
 <<if $MCRent > 75>>
 	//Very High// | [[Decrease|Manage Economy][$MCRent = 75, $rentEffectM = 0.94]]
 <<elseif $MCRent > 50>>
@@ -95,7 +95,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
 <<else>>
 	//Free// | [[Increase|Manage Economy][$MCRent = 25, $rentEffectM = 1.04]]
 <</if>>
-<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent)>>@@
+<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@
 <<if $UCRent > 270>>
 	//Very High// | [[Decrease|Manage Economy][$UCRent = 270, $rentEffectU = 0.94]]
 <<elseif $UCRent > 180>>
@@ -107,7 +107,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
 <<else>>
 	//Free// | [[Increase|Manage Economy][$UCRent = 90, $rentEffectU = 1.04]]
 <</if>>
-<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent)>>@@
+<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@
 <<if $TCRent > 975>>
 	//Very High// | [[Decrease|Manage Economy][$TCRent = 975, $rentEffectT = 0.94]]
 <<elseif $TCRent > 650>>
@@ -119,7 +119,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
 <<else>>
 	//Free// | [[Increase|Manage Economy][$TCRent = 325, $rentEffectT = 1.04]]
 <</if>>
-<br>Slaves				| $ASlaves | <<print _percASlaves>>% /*should probably include player owned slaves of all types*/
+<br>Slaves				| $ASlaves | <<print _percASlaves>>% 
 
 <<if $secExp == 0>>
 	<<if $weatherAwareness > 0>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index fbc141b5a20ab8b9190702da77cb9b096e2779ff..2978c7481269e4553e54bc921dbaaff7cd06e8e8 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -2532,6 +2532,9 @@ Setting missing global variables:
 <<if ndef $customRetirementAge>>
 <<set $customRetirementAge = 45>>
 <</if>>
+<<if ndef $customMenialRetirementAge>>
+	<<set $customMenialRetirementAge = 65>>
+<</if>>
 <<if ndef $retirementCum>>
 <<set $retirementCum = 500000>>
 <</if>>
@@ -2553,8 +2556,12 @@ Setting missing global variables:
 <<if ndef $CitizenRetirement>>
 <<set $CitizenRetirement = 0>>
 <</if>>
-<<if ndef $CitizenRetirementTrigger>>
-<<set $CitizenRetirementTrigger = 0>>
+<<if ndef $citizenRetirementMenials>>
+	<<set $citizenRetirementMenials = 0>>
+<</if>>
+<<if ndef $citizenRetirementTrigger>>
+	<<set $citizenRetirementTrigger = $CitizenRetirementTrigger || 0>>
+	<<unset $CitizenRetirementTrigger>>
 <</if>>
 <<if ndef $FSSupLawTrigger>>
 <<set $FSSupLawTrigger = 0>>
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index 79f5d2c9d1118e9dca9dc98075a88a7c9110a73b..5ad4908932bd3ed60baadb20710ddd214defa3e1 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -308,7 +308,7 @@ _topClassP = 1>>
 <</if>>
 
 /*policies*/
-<<if $CitizenRetirement == 1>>
+<<if $citizenRetirementMenials == 1>>
 	<<set _slaveDemandU *= 0.8,
 	_slaveDemandT *= 0.75,
 	_slaveProductivity += 0.05,
@@ -321,48 +321,6 @@ _topClassP = 1>>
 	_upperClassP *= 0.98,
 	_topClass += -5,
 	_topClassP *= 0.98>>
-	<<if $MilkMilestoneRetirement == 1>> /*additional conditional retirement options are each half as strong as base retirement*/
-		<<set _slaveDemandU *= 0.9,
-		_slaveDemandT *= 0.875,
-		_slaveProductivity += 0.025,
-		_expirationFS *= 0.9,
-		_lowerClass += 100,
-		_lowerClassP *= 1.01,
-		_middleClass += 40,
-		_middleClassP *= 1.01,
-		_upperClass += -13.5,
-		_upperClassP *= 0.99,
-		_topClass += -2.5,
-		_topClassP *= 0.99>>
-	<</if>>
-	<<if $CumMilestoneRetirement == 1>>
-		<<set _slaveDemandU *= 0.9,
-		_slaveDemandT *= 0.875,
-		_slaveProductivity += 0.025,
-		_expirationFS *= 0.9,
-		_lowerClass += 100,
-		_lowerClassP *= 1.01,
-		_middleClass += 40,
-		_middleClassP *= 1.01,
-		_upperClass += -13.5,
-		_upperClassP *= 0.99,
-		_topClass += -2.5,
-		_topClassP *= 0.99>>
-	<</if>>
-	<<if $BirthsMilestoneRetirement == 1>>
-		<<set _slaveDemandU *= 0.9,
-		_slaveDemandT *= 0.875,
-		_slaveProductivity += 0.025,
-		_expirationFS *= 0.9,
-		_lowerClass += 100,
-		_lowerClassP *= 1.01,
-		_middleClass += 40,
-		_middleClassP *= 1.01,
-		_upperClass += -13.5,
-		_upperClassP *= 0.99,
-		_topClass += -2.5,
-		_topClassP *= 0.99>>
-	<</if>>
 <</if>>
 <<if $ProRefugees == 1>>
 	<<set _slaveDemandU *= 1.1,
@@ -581,37 +539,27 @@ _topClassP = 1>>
 _middleClass *= 1 + ($TSS.subsidize + $GRI.subsidize + $SCP.subsidize + $LDE.subsidize + $TGA.subsidize + $TCR.subsidize + $TFS.subsidize + $HA.subsidize) * 0.01>>
 
 /*Slave retirement trigger pulled (one time only)*/
-<<if $CitizenRetirementTrigger == 1>>
-	<<if $arcologies[0].FSSupremacistLawME < 1 && $arcologies[0].FSSubjugationistLawME < 1>>
-		<<set $lowerClass += Math.trunc(($NPCSlaves + $helots + $fuckdolls + $menialBioreactors) * 0.2)>>
-	<<elseif $arcologies[0].FSSubjugationistLawME == 1>>
-		<<set $lowerClass += Math.trunc(($NPCSlaves + $helots + $fuckdolls + $menialBioreactors) * 0.15)>>
-	<</if>>
-	<<set _helotsRetirement = Math.trunc($helots * 0.2),
-	$helots = Math.trunc($helots * 0.8),
-	_fuckdollsRetirement = Math.trunc($fuckdolls * 0.2),
-	$fuckdolls = Math.trunc($fuckdolls * 0.8),
-	_menialBioreactorsRetirement = Math.trunc($menialBioreactors * 0.2),
-	$menialBioreactors = Math.trunc($menialBioreactors * 0.8),
-	_ASlavesRetirement = Math.trunc($NPCSlaves * 0.2),
-	$NPCSlaves = Math.trunc($NPCSlaves * 0.8),
-	$CitizenRetirementTrigger = 2>>
+<<if $citizenRetirementTrigger == 1>>
+	<<if $customMenialRetirementAge >= 65>>
+		<<set _citizenRetirementImpact = 0.475 - Math.clamp($customMenialRetirementAge / 200, 0.325, 0.475)>>
+	<<else>>
+		<<set _citizenRetirementImpact = 0.9 - Math.clamp($customMenialRetirementAge / 100, 0.2, 0.65)>>
+	<</if>>
+	<<if $arcologies[0].FSSupremacistLawME + $arcologies[0].FSSubjugationistLawME > 0>>
+		<<set _citizenRetirementImpact *= 2 / 3>>
+	<</if>>
+	<<set $lowerClass += Math.trunc(($NPCSlaves + $helots) * (0.05 + _citizenRetirementImpact)),
+	_helotsRetirement = Math.trunc($helots * (0.05 + _citizenRetirementImpact)),
+	$helots = Math.trunc($helots * (0.95 - _citizenRetirementImpact)),
+	_ASlavesRetirement = Math.trunc($NPCSlaves * (0.05 + _citizenRetirementImpact)),
+	$NPCSlaves = Math.trunc($NPCSlaves * (0.95 - _citizenRetirementImpact)),
+	$citizenRetirementTrigger = 2>>
 	You have enacted citizen retirement, the slaves of eligible age are granted freedom.
 	<<if _helotsRetirement > 1>>
 		@@.red;<<print _helotsRetirement>> of your menial slaves@@ were retired.
 	<<elseif _helotsRetirements > 0>>
 		@@.red;One of your menial slaves@@ was retired.
 	<</if>>
-	<<if _fuckdollsRetirement > 1>>
-		@@.red;<<print _fuckdollsRetirement>> of your fuckdolls@@ were retired.
-	<<elseif _fuckdollsRetirements > 0>>
-		@@.red;One of your fuckdolls@@ was retired.
-	<</if>>
-	<<if _menialBioreactorsRetirement > 1>>
-		@@.red;<<print _menialBioreactorsRetirement>> of your bioreactors@@ were retired.
-	<<elseif _menialBioreactorsRetirements > 0>>
-		@@.red;One of your bioreactors@@ was retired.
-	<</if>>
 	<<if _ASlavesRetirement > 1>>
 		@@.red;<<print _ASlavesRetirement>> slaves@@ in your arcology were given a citizen retirement.
 	<</if>> /*I could bother with a single slave retirement message, but that's never going to get used*/
@@ -641,8 +589,23 @@ $menialBioreactors -= _expirationBR>>
 <</if>>
 
 /*Citizens turning into slaves*/
-<<set _enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS)),
-$lowerClass -= _enslaved>>
+<<if $citizenRetirementMenials == 1>>
+	<<if $customMenialRetirementAge >= 65>>
+		<<set _banishedRatio = 0.475 - Math.clamp($customMenialRetirementAge / 200, 0.325, 0.475)>>
+	<<else>>
+		<<set _banishedRatio = 0.9 - Math.clamp($customMenialRetirementAge / 100, 0.2, 0.65)>>
+	<</if>>
+	<<if $arcologies[0].FSSupremacistLawME + $arcologies[0].FSSubjugationistLawME > 0>>
+		<<set _banishedRatio *= 2 / 3>>
+	<</if>>
+	<<set _banished = Math.trunc(($lowerClass * ($welfare * _welfareFS)) * (0.05 + _banishedRatio)),
+	_enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS)) - _banished,
+	$lowerClass -= _banished>>
+	<br>@@.red;<<print _banished>> citizens were banished@@ from your arcology, they committed enslavable offenses but were too old to be enslaved.
+<<else>>
+	<<set _enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS))>>
+<</if>>
+<<set $lowerClass -= _enslaved>>
 
 /*Bad weather switch*/
 <<if $weatherToday.severity > 3>>
@@ -730,9 +693,51 @@ $lowerClass -= _enslaved>>
 	<<set _honeymoon = 10 * $arcologies[0].honeymoon>>
 <</if>>
 <<set $visitors = Math.trunc((($arcologies[0].prosperity + _FSScore * 5 + _honeymoon) * _transportHub * _terrain * _crime) * ($localEcon / 100))>>
-<br>@@.green;<<print $visitors>> Traders and tourists@@ visited your arcology this week.
+<br>@@.green;<<print $visitors>> traders and tourists@@ visited your arcology this week.
 
 /*slaves*/
+/*Slaves getting retired*/
+<<if $citizenRetirementMenials == 1>>
+	<<set _weeklyRetiredHelots = $helots / (($customMenialRetirementAge - 15) * 52),
+	_weeklyRetiredNPCMenials = $NPCSlaves / (($customMenialRetirementAge - 15) * 52)>> /*This implies a minimum menial age of 15. Even if the player sets minimum ages lower, there's no point having a 3 year old menial slave. 15 seems alright while being nice and round. This also implies ages are distributed evenly, no easy way around that.*/
+	<<if _weeklyRetiredHelots > 1>>
+		<<set _weeklyRetiredHelots = Math.trunc(_weeklyRetiredHelots)>>
+		<<if _weeklyRetiredHelots > 1>>
+			<br>@@.red;<<print _weeklyRetiredHelots>> of your menial slaves@@ retired as free citizens this week.
+		<<else>>
+			<br>@@.red;One of your menial slaves@@ retired as a free citizen this week.
+		<</if>>
+	<<else>>
+		<<set _weeklyRetiredHelots *= 100,
+		_retirementChance = random(1,100)>>
+		<<if _weeklyRetiredHelots > _retirementChance>>
+			<<set _weeklyRetiredHelots = 1>>
+			<br>@@.red;One of your menial slaves@@ retired as a free citizen this week.
+		<<else>>
+			<<set _weeklyRetiredHelots = 0>>
+		<</if>>
+	<</if>>
+	<<if _weeklyRetiredNPCMenials > 1>>
+		<<set _weeklyRetiredNPCMenials = Math.trunc(_weeklyRetiredNPCMenials)>>
+		<<if _weeklyREtiredNPCMenials > 1>>
+			<br>@@.red;<<print _weeklyRetiredNPCMenials>> menial slaves@@ were retired as free citizens by other slave owners in your arcology this week.
+		<<else>>
+			<br>@@.red;One menial slave@@ was retired as a free citizen by another slave owner in your arcology this week.
+		<</if>>
+	<<else>>
+		<<set _weeklyRetiredNPCMenials *= 100,
+		_retirementChance2 = random(1,100)>>
+		<<if _weeklyRetiredNPCMenials > _retirementChance2>>
+			<<set _weeklyRetiredNPCMenials = 1>>
+			<br>@@.red;One menial slave@@ was retired as a free citizen by another slave owner in your arcology this week.
+		<<else>>
+			<<set _weeklyRetiredNPCMenials = 0>>
+		<</if>>
+	<</if>>
+	<<set $helots -= _weeklyRetiredHelots,
+	$NPCSlaves -= _weeklyRetiredNPCMenials,
+	$lowerClass += _weeklyRetiredHelots + _weeklyRetiredNPCMenials>>
+<</if>>
 /*Demand for simple labor*/
 <<set _LSCD = Math.trunc(($LSCBase * ($localEcon / 100)) + ($arcologies[0].prosperity * 4) + (($middleClass + $visitors * 0.6) * 1.5) + (($upperClass + $visitors * 0.2) * 3.5) + ($topClass * 18)),
 /*Demand for owning slaves*/
@@ -810,9 +815,13 @@ _SCD = Math.trunc(($upperClass * ($slaveDemandU + _slaveDemandU)) + ($topClass *
 		<br>@@.green;One lower class citizen@@ moved to your arcology.
 	<</if>>
 <<elseif $lowerClass > _LCD>>
-	<<set _LCEmigration = Math.trunc(($lowerClass - _LCD) * 0.6) + 1,
-	_enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance),
-	$lowerClass -= _LCEmigration,
+	<<set _LCEmigration = Math.trunc(($lowerClass - _LCD) * 0.6) + 1>>
+	<<if $citizenRetirementMenials == 1>>
+		<<set _enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance * (0.05 + _banishedRatio))>>
+	<<else>>
+		<<set _enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance)>>
+	<</if>>
+	<<set $lowerClass -= _LCEmigration,
 	_enslaved += _enslavedEmigrants>>
 	<<if _LCEmigration > 1>>
 		<br>@@.red;<<print _LCEmigration>> lower class citizens@@ had no work and tried to leave your arcology.
@@ -933,8 +942,12 @@ _SCD = Math.trunc(($upperClass * ($slaveDemandU + _slaveDemandU)) + ($topClass *
 	<</if>>
 <</if>>
 <</if>> /*ends _weatherFreeze*/
+<<if $secExp == 1>>
+	<<set $ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors + $secHelots + $slavesEmployedManpower>>
+<<else>>
+	<<set $ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors>>
+<</if>>
 <<set $ACitizens = $lowerClass + $middleClass + $upperClass + $topClass,
-$ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors,
 _percACitizens = Math.trunc(($ACitizens / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percASlaves = Math.trunc(($ASlaves / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 10,
diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw
index 8a598e7e5f48d11f7b7f17698b3b7894a94c9a0b..6b455534295ca78ccb0ed0828f1eeadc8713615e 100644
--- a/src/uncategorized/buySlaves.tw
+++ b/src/uncategorized/buySlaves.tw
@@ -314,7 +314,7 @@ The parts of your arcology you own can house a total of $PopCap menial slaves.
 <</if>>
 The market price of menials is <<print cashFormat(_menialPrice)>>.
 <<set _optionsBreak = 0>>
-<<if _bulkMax > 0>>
+<<if _bulkMax > 0 && $cash > _menialPrice>>
 	[[Buy|Buy Slaves][$helots+=1,$menialSupplyFactor-=1,$cash-=_menialPrice]]
 	<<if $cash > (menialSlaveCost(10))*10>>
 		[[(x10)|Buy Slaves][$helots+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10))*10]]
@@ -324,7 +324,7 @@ The market price of menials is <<print cashFormat(_menialPrice)>>.
 	<</if>>
 	<<if $cash > (_menialPrice+1)*2>>
 		<<set _menialBulkPremium = Math.trunc(1 + Math.clamp($cash/_menialPrice,0,_bulkMax)/400)>>
-		[[(max)|Buy Slaves][$helots+=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)*(_menialPrice+_menialBulkPremium))]]
+		[[(max)|Buy Slaves][$helots+=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax))*(_menialPrice+_menialBulkPremium)]]
 	<</if>>
 	//Bulk transactions may require offering a premium.//
 	<<set _optionsBreak = 1>>
@@ -380,7 +380,7 @@ The market price of menials is <<print cashFormat(_menialPrice)>>.
 The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>.
 <<set _optionsBreak = 0>>
 <<if _bulkMax > 0>>
-<<if $arcologies[0].FSPaternalist == "unset">>
+<<if $arcologies[0].FSPaternalist == "unset" && $cash > _menialPrice*2>>
 	[[Buy|Buy Slaves][$fuckdolls+=1,$menialSupplyFactor-=1,$cash-=(_menialPrice*2)]]
 	<<if $cash > (menialSlaveCost(10)*2)*10>>
 		[[(x10)|Buy Slaves][$fuckdolls+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10)*2)*20]]
@@ -390,14 +390,13 @@ The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>.
 	<</if>>
 	<<if $cash > ((_menialPrice+1)*4)>>
 		<<set _fuckdollBulkPremium = Math.trunc(1 + Math.clamp($cash/(_menialPrice*2),0,_bulkMax)/400)>>
-		[[(max)|Buy Slaves][$fuckdolls+=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)*(_menialPrice*2+_fuckdollBulkPremium))]]
+		[[(max)|Buy Slaves][$fuckdolls+=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax))*(_menialPrice*2+_fuckdollBulkPremium)]]
 	<</if>>
 	//Bulk transactions may require offering a premium.//
 	<<set _optionsBreak = 1>>
 <</if>>
 <</if>>
 <<if $fuckdolls >= 1>>
-	<br>
 	<<if _optionsBreak>>|<</if>>
 	[[Sell|Buy Slaves][$fuckdolls-=1,$menialDemandFactor-=1,$cash+=_menialPrice*2]]
 <<if $fuckdolls >= 10>>
@@ -421,7 +420,7 @@ The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>.
 The market price of standard bioreactors is <<print cashFormat((_menialPrice-100))>>.
 <<set _optionsBreak = 0>>
 <<if _bulkMax > 0>>
-<<if $arcologies[0].FSPaternalist == "unset">>
+<<if $arcologies[0].FSPaternalist == "unset" && $cash > _menialPrice+100>>
 	[[Buy|Buy Slaves][$menialBioreactors+=1,$menialSupplyFactor-=1,$cash-=(_menialPrice+100)]]
 	<<if $cash > (menialSlaveCost(10)-100)*10>>
 		[[(x10)|Buy Slaves][$menialBioreactors+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10)-100)*10]]
@@ -431,7 +430,7 @@ The market price of standard bioreactors is <<print cashFormat((_menialPrice-100
 	<</if>>
 	<<if $cash > (_menialPrice-99)*2>>
 		<<set _bioreactorBulkPremium = Math.trunc(1+ Math.clamp($cash/(_menialPrice-99),0,_bulkMax)/400)>>
-		[[(max)|Buy Slaves][$menialBioreactors+=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)*(_menialPrice-99+_bioreactorBulkPremium))]]
+		[[(max)|Buy Slaves][$menialBioreactors+=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax))*(_menialPrice-99+_bioreactorBulkPremium)]]
 	<</if>>
 	//Bulk transactions may require offering a premium.//
 	<<set _optionsBreak = 1>>
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index db8b8fe239992d28a6cfd833af8b5f677b4c828e..43e3d91aca89ed16ccbb839f1ee14d856ef7f321 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -101,6 +101,17 @@ your __personal living expenses__ are <<print cashFormat(Math.trunc($girls*(250+
 	<<set _archologyCosts += _mercCosts>>
 <</if>>
 
+<<if $citizenRetirementMenials == 1>>
+	<br>__Menial Slave Retirement Premiums__:
+	<<if $CitizenRetirement == 1>>
+		<<set _citizenRetirementMenialsCost = $helots * 2>>
+	<<else>>
+		<<set _citizenRetirementMenialsCost = ($helots + $slaves.length) * 2>>
+	<</if>>
+	<<set _archologyCosts += _citizenRetirementMenialsCost>>
+	<<print cashFormat(_citizenRetirementMenialsCost)>>
+<</if>>
+
 <<if $brothel > 0 || $club > 0 || $arcade > 0 || $dairy > 0 || $farmyard > 0>>
 	<br>__Archology building maintenance__:
 	<<if $brothel > 0>>
diff --git a/src/uncategorized/policies.tw b/src/uncategorized/policies.tw
index 64e7f41100b188d8dd807f4d4bbd58654ab6887f..5c5cf0cecf75421cea18e599b06c97a354468a63 100644
--- a/src/uncategorized/policies.tw
+++ b/src/uncategorized/policies.tw
@@ -10,7 +10,15 @@
 <</if>>
 <<set $showEncyclopedia = 1>><<set $encyclopedia = "Future Societies">>
 <<if $rep < 0>><<set $rep = 0>><</if>>
-<<set $customRetirementAge = Math.clamp($customRetirementAge, 20, 120)>>
+<<set $customMenialRetirementAge = Math.clamp($customMenialRetirementAge, 20, 120)>>
+<<if $citizenRetirementMenials == 1>>
+	<<set $customRetirementAge = Math.clamp($customRetirementAge, 20, $customMenialRetirementAge)>>
+	<<if $customMenialRetirementAge < 45>>
+		<<set $retirementAge = $customMenialRetirementAge>>
+	<</if>>
+<<else>>
+	<<set $customRetirementAge = Math.clamp($customRetirementAge, 20, 120)>>
+<</if>>
 <<if $CustomRetirementAgePolicy == 1>><<set $retirementAge = $customRetirementAge>><</if>>
 <<if $PhysicalRetirementAgePolicy == 1>><<set $retirementAge = $customRetirementAge>><</if>>
 <<set $retirementSex = Math.clamp($retirementSex, 1, 10000000)>>
@@ -109,6 +117,13 @@
 <</if>>
 <br><br>__Slave Retirement Planning__
 
+<<if $citizenRetirementMenials == 1>>
+	<br>''Mandatory Menial Retirement Age:'' you have set your arcology's retirement age for menial slaves at $customMenialRetirementAge.
+	[[Repeal|Policies][$citizenRetirementMenials = 0, $retirementAge = 45]]
+<<else>>
+	<br>''No Menial Retirement Plan:'' without defining a retirement age for menial slaves they will remain slaves until death or freed otherwise.
+<</if>>
+
 <<if $CustomRetirementAgePolicy == 1 && $PhysicalRetirementAgePolicy != 1>>
 	<br>''Redefined Mandatory Retirement Age:'' you have set your arcology's standard retirement age for sex slaves at $retirementAge.
 	[[Repeal|Policies][$CustomRetirementAgePolicy = 0, $retirementAge = 45]]
@@ -840,6 +855,22 @@
 
 	<br><br>__Slave Retirement Planning__
 
+	<<if $citizenRetirementMenials == 0>>
+		<br>''Redefined Mandatory Menial Retirement Age:'' you will set your arcology's retirement age for menial slaves at age
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;<<textbox "$customMenialRetirementAge" $customMenialRetirementAge "Policies">>
+		<<if $arcologies[0].FSDegradationist == "unset">>
+			<<if $citizenRetirementTrigger == 0>>
+				<br>''Menial Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.
+				[[Implement|Policies][$citizenRetirementMenials = 1, $cash -= 5000, $rep -= 1000, $citizenRetirementTrigger = 1]]
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will add upkeep to all menial slaves//
+			<<else>>
+				<br>''Menial Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.
+				[[Implement|Policies][$citizenRetirementMenials = 1, $cash -= 5000, $rep -= 1000]]
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will add upkeep to all menial slaves//
+			<</if>>
+		<</if>>
+	<</if>>
+
 	<<if $CustomRetirementAgePolicy == 0>>
 		<br>''Redefined Mandatory Retirement Age:'' you will set your arcology's standard retirement age for sex slaves at age
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;<<textbox "$customRetirementAge" $customRetirementAge "Policies">>
@@ -856,15 +887,9 @@
 		<<if $ArcadeRetirement == 0>>
 			<<if $CitizenRetirement == 0>>
 				<<if $arcologies[0].FSDegradationist == "unset">>
-					<<if $CitizenRetirementTrigger == 0>>
-						<br>''Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.
-						[[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000, $CitizenRetirementTrigger = 1]]
-						<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will add upkeep to all slaves//
-					<<else>>
-						<br>''Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.
-						[[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000]]
-						<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will add upkeep to all slaves//
-					<</if>>
+					<br>''Sex Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.
+					[[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000]]
+					<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will add upkeep to all sex slaves//
 				<</if>>
 				<<if $arcologies[0].FSPaternalist == "unset">>
 					<br>''Public Arcade Retirement:'' once reaching mandatory retirement age, slaves will be placed in cheap public arcades to be used until useless.
diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw
index 1803976f02728e88bc006dfa330509d423486454..68b78c27d7ff39455fd18cbaed74cf0f2fa2be6d 100644
--- a/src/uncategorized/seRetirement.tw
+++ b/src/uncategorized/seRetirement.tw
@@ -202,8 +202,8 @@ When you return to your desk you realize something.
 <</if>>
 
 <br><br>
-Your arcology has gained a citizen.
-<<set $ACitizens += 1>>
+Your arcology has gained a well-off citizen.
+<<set $upperClass += 1>>
 
 <<elseif $BioreactorRetirement == 1>>
 
@@ -318,6 +318,23 @@ and, a disturbingly short time later, there is a new Fuckdoll, a humanoid figure
 You have @@.yellowgreen;gained a fuckdoll.@@
 <<set $fuckdolls += 1>>
 
+<<elseif $citizenRetirementMenials == 1>>
+	<<if $customMenialRetirementAge == $customRetirementAge || $customMenialRetirementAge == $retirementAge>>
+
+	in a way that fills your other slaves with @@.mediumaquamarine;trust@@ after seeing one of their own gain freedom.
+	<<for $i = 0; $i < $slaves.length; $i++>>
+		<<set $slaves[$i].trust += 2>>
+	<</for>>
+	<<if $activeSlave.relationship > 3>>
+		$slaves[_sr].slaveName, for _his2 part, is @@.hotpink;happy,@@ though also a bit sad. _He2 looks forward to joining $activeSlave.slaveName one day.
+	<<set $slaves[_sr].devotion += 5>>
+	<</if>>
+
+	<br><br>
+	You have @@.yellowgreen;gained a citizen.@@
+	<<set $lowerClass += 1>>
+	<</if>>
+
 <<else>>
 
 into a life of menial drudgery. This has little impact on your other human property.