diff --git a/Changelog.txt b/Changelog.txt
index fba12a893d633504e7cc5e56bcafab1d46db9c41..df87ca8a451ad91caef516558402f6899ccc5b70 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -7391,7 +7391,7 @@ Pregmod
 12/31/16
 
 	8
-	-fixed, which anal addicts wont be satisfied with long, huge butt plugs, only huge plugs.
+	-fixed, which anal addicts won't be satisfied with long, huge butt plugs, only huge plugs.
 	-fixed, Error: <<CorsetPiercingDescription>>: errors within widget contents (Error: cannot find a closing tag for macro <<if>>; Error: child tag <<else>> was found outside of a call to its parent macro <<if>>)
 
 	7
diff --git a/TODO.txt b/TODO.txt
index 8031f94bd71db8de96c9dfd804fcf6219e3d8186..7d386b37331d4084180dc685b8be7644edfab955 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -28,3 +28,5 @@ main.tw porting:
 - use guard
 - toychest
 - walk past
+
+show exactly which organ is ready at the bottom of the main screen
diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw
index aac416bc94a9b46ee32ce1e9a3eed49e85b0427d..99719e7385c19691bed1e195c6dacaf81a13088a 100644
--- a/src/SpecialForce/Firebase.tw
+++ b/src/SpecialForce/Firebase.tw
@@ -176,7 +176,11 @@
 		<</if>>
 		<<if _T1 && _LB> 0>> <br><br>''Launch Bay:''
 			<<if $SF.Squad.Satellite.lv > 0>> <<= App.SF.UnitText('sat')>>
-				<<if $SF.Squad.Satellite.InOrbit < 1>> <br>&nbsp;&nbsp;&nbsp;[[Launch it into geostationary orbit.|Firebase][$SF.Squad.Satellite.InOrbit=1]] //You <span class='red'>cannot</span> upgrade the satellite once it has been launched.// <</if>>
+				<<if $SF.Squad.Satellite.InOrbit < 1>>
+					<br>&nbsp;&nbsp;&nbsp;[[Launch it into geostationary orbit.|Firebase][$SF.Squad.Satellite.InOrbit = 1]] //You <span class='red'>cannot</span> upgrade the satellite once it has been launched.//
+				<<else>>
+					<br>&nbsp;&nbsp;&nbsp;[[Recall the satellite.|Firebase][$SF.Squad.Satellite.InOrbit = 0]]
+				<</if>>
 			<</if>>
 			<<= App.SF.UnitText('GR')>> <<= App.SF.UnitText('ms')>>
 		<</if>>
diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js
index 8b7c29d7c7d5a35f200068eaa9a6fa628a1d35f8..2bac10de259e0df00d4bd5144f5fb8023c76e9d1 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/SpecialForce/SpecialForce.js
@@ -3098,6 +3098,21 @@ App.SF.UnitText = function(input) {
 		power1 = ``,
 		scramble1 = ``;
 
+		if (V.week % 6 === 0) {
+			let loc2 = `is`
+			if (input !== 'HAT') {
+			 loc2 += ` moored to`;
+			} else {
+				 loc2 += ` parked on`;
+			}
+			loc2 += ` the pier in the Naval Yard`;
+			if (input === 'HAT') {
+				loc2 += `, ready to ferry ${tons} tons of soldiers and vehicles`;
+			}
+		} else {
+			const loc2 = `is patrolling the waters near ${V.arcologies[0].name}`;
+		}
+
 	let recom = `has been recommissioned from the old world, and`;
 	let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`;
 	let reactor1 = ``,
@@ -3128,29 +3143,29 @@ App.SF.UnitText = function(input) {
 				const text0 = `<br>''Firebase:''`;
 				if (S.Firebase >= 1) {
 					appear = `has had some organization put into it.`;
+					barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`;
+					garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`;
+					drone = `.`;
 				}
-				barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`;
-				garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`;
-				drone = `.`;
 				if (V.terrain === "oceanic") {
 					garage += ` for inter-arcology travel`;
 				}
 				if (S.Firebase >= 2) {
 					barracks = `A barracks has been constructed near the armory, allowing soldiers a quieter place to sleep and store their personal spoils.`;
+					drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`;
 				}
-				drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`;
 				if (S.Firebase >= 3) {
 					appear = `has become more permanent.`;
+					barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`;
 				}
-				barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`;
 				if (S.Firebase >= 4) {
 					hangar = `Hangar space for storing and repairing aircraft has been converted from unused space on the other side of the garage.`;
 				}
 				if (S.Firebase >= 5) {
 					appear = `is nearing the appearance of a military base.`;
+					launch = `The rest of the firebase has been designated for special projects.`;
+					artillery = `Artillery batteries are set around the base of the arcology.`;
 				}
-				launch = `The rest of the firebase has been designated for special projects.`;
-				artillery = `Artillery batteries are set around the base of the arcology.`;
 				if (V.terrain === "oceanic" || V.terrain === "marine") {
 					launch += ` A Naval Yard has been constructed in the waters near the arcology.`;
 				}
@@ -3196,8 +3211,10 @@ App.SF.UnitText = function(input) {
 		case 'armory':
 			if (S.Armoury >= 0) {
 				const text2 = `\n\n''Armory:''<br>`;
-				radio = `Radios have been wired into the soldiers helmets`;
-				helmets = `.`;
+				if (S.Armoury >= 2) {
+					radio = `Radios have been wired into the soldiers helmets`;
+					helmets = `.`;
+				}
 				if (S.Armoury >= 2) {
 					helmets = ` and a HUD has been integrated into the soldier's eyewear.`;
 				}
@@ -3231,7 +3248,9 @@ App.SF.UnitText = function(input) {
 		case 'drugs':
 			if (S.Drugs >= 0) {
 				const text3 = `\n\n''Drug Lab:''`;
-				amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`;
+				if (S.Drugs >= 2) {
+					amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`;
+				}
 				if (S.Drugs >= 2) {
 					phen = `Phencyclidine has been added to the cocktail at a low dosage as a dissociative psychotropic for soldiers in battle to introduce feelings of detachment, strength and invincibility, and aggression. Some side-effects reduce the tolerable dosage before soldiers go on uncontrollable violent outbreaks.`;
 				}
@@ -3267,17 +3286,17 @@ App.SF.UnitText = function(input) {
 				const text4 = `\n\n''Drone Bay:''`;
 				if (S.Drones >= 2) {
 					a = `equipped with missiles are resting on one side of the drone bay`;
+					b = `; as well as destroying the occasional target.`;
 				}
-				b = `; as well as destroying the occasional target.`;
 				if (S.Drones >= 3) {
 					c = `A fleet of`;
+					d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`;
 				}
-				d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`;
 				if (S.Drones >= 4) {
 					d = `combat drones take up the rest of the space in the drone bay. They have a`;
+					e = `small automatic rifle`;
+					f = `mounted to the underside.`;
 				}
-				e = `small automatic rifle`;
-				f = `mounted to the underside.`;
 				if (S.Drones >= 5) {
 					g = `Armor has been added to protect vulnerable components from small arms fire.`;
 				}
@@ -3304,9 +3323,9 @@ App.SF.UnitText = function(input) {
 				const text5 = `<br>&nbsp;&nbsp;''Assault:''`;
 				if (S.AV >= 2) {
 					engine1 = `The engine1 has been overhauled, allowing much faster maneuvering around the battlefield.`;
+					activate = ``;
+					mechanics = ``;
 				}
-				activate = ``;
-				mechanics = ``;
 				if (S.AV >= 3) {
 					armor2 = `A composite ceramic armor has replaced the original, offering much greater protection from attacks.`;
 				}
@@ -3318,14 +3337,14 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.AV >= 6) {
 					fireC0 = `A fire-control system`;
+					fireC3 = `been installed, guaranteeing`;
+					fireC2 = `has`;
+					fireC1 = `accurate fire.`;
 				}
-				fireC3 = `been installed, guaranteeing`;
-				fireC2 = `has`;
-				fireC1 = `accurate fire.`;
 				if (S.AV >= 7) {
+					fireC1 = `rapid, accurate fire while separating the crew from the stored ammunition in the event the ammo cooks off.`;
 					fireC2 = `and an autoloader have`;
 				}
-				fireC1 = `rapid, accurate fire while separating the crew from the stored ammunition in the event the ammo cooks off.`;
 				if (S.AV >= 8) {
 					armor22 = `A reactive armor system has been added, giving the tank an additional, if temporary, layer of protection.`;
 				}
@@ -3343,9 +3362,9 @@ App.SF.UnitText = function(input) {
 				const text6 = `<br>&nbsp;&nbsp;''Transport:''`;
 				if (S.TV >= 2) {
 					engine3 = `${e0} overhauled, allowing for higher mobility.`;
+					C = ``;
+					B = ``;
 				}
-				C = ``;
-				B = ``;
 				if (S.TV >= 3) {
 					armor3 = `Composite armor has been bolted to the exterior, increasing the survivability of an explosive attack for the crew and passengers.`;
 				}
@@ -3354,24 +3373,24 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.TV >= 5) {
 					m1 = `An automatic missile defense system has been installed,`;
+					m2 = `targeting any guided missiles with laser dazzlers and deploying a smokescreen.`;
 				}
-				m2 = `targeting any guided missiles with laser dazzlers and deploying a smokescreen.`;
 				if (S.TV >= 6) {
 					pod1 = `An anti-tank missile pod`;
+					pod2 = `has been installed on the side of the turret.`;
 				}
-				pod2 = `has been installed on the side of the turret.`;
 				if (S.TV >= 7) {
 					G1 = `25`;
+					G2 = `by attacking enemies through cover and destroying light armor`;
 				}
-				G2 = `by attacking enemies through cover and destroying light armor`;
 				if (S.TV >= 8) {
 					pod2 = `and an anti-aircraft missile pod have been installed on either side of the turret.`;
 				}
 				if (S.TV >= 9) {
 					squad = `two squads`;
+					armor3 = ``;
+					m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`;
 				}
-				armor3 = ``;
-				m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`;
 				if (S.TV >= 10) {
 					engine3 = `${e0} replaced with the newest model, allowing the vehicle to get in and out of the conflict extremely quickly.`;
 				}
@@ -3383,18 +3402,18 @@ App.SF.UnitText = function(input) {
 				const text7 = `<br>&nbsp;''Prototype Goliath Tank:''`;
 				if (S.PGT >= 2) {
 					c1 = `rests in`;
+					b1 = ``;
+					engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`;
 				}
-				b1 = ``;
-				engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`;
 				if (S.PGT >= 3) {
 					gun0 = `a railgun capable of`;
+					gun1 = `firing steel slugs`;
+					gun2 = `through one tank and into another`;
 				}
-				gun1 = `firing steel slugs`;
-				gun2 = `through one tank and into another`;
 				if (S.PGT >= 4) {
+					armor5 = `The armor has been`;
 					armor6 = `reinforced, increasing survivability for the crew inside.`;
 				}
-				armor5 = `The armor has been`;
 				if (S.PGT >= 5) {
 					cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`;
 				}
@@ -3405,7 +3424,7 @@ App.SF.UnitText = function(input) {
 					PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`;
 				}
 				if (S.PGT >= 8) {
-					armor6 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor5-piercing tank rounds.`;
+					armor6 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor-piercing tank rounds.`;
 				}
 				if (S.PGT >= 9) {
 					gun1 = `firing guided projectiles`;
@@ -3421,10 +3440,10 @@ App.SF.UnitText = function(input) {
 				const text8 = `<br>&nbsp;&nbsp;''Assault:''`;
 				if (S.AA >= 2) {
 					W1 = `armed`;
+					W2 = ` and air-to-air missiles,`;
+					W3 = `a combination that can defend the arcology from enemy aircraft, as well as`;
+					support = ` support ground troops`;
 				}
-				W2 = ` and air-to-air missiles,`;
-				W3 = `a combination that can defend the arcology from enemy aircraft, as well as`;
-				support = ` support ground troops`;
 				if (S.AA >= 3) {
 					engines = `The engines have been tuned, allowing faster flight with greater acceleration.`;
 				}
@@ -3439,8 +3458,8 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.AA >= 7) {
 					support = ` attack ground targets`;
+					W2 = `; rocket pods, and air-to-air missiles,`;
 				}
-				W2 = `; rocket pods, and air-to-air missiles,`;
 				if (S.AA >= 8) {
 					stealth = `The old skin has been replaced with a radar-absorbent material, making the aircraft difficult to pick up on radar.`;
 				}
@@ -3476,16 +3495,16 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.TA >= 8) {
 					capacity = `large platoon or 20`;
+					engines01 = `Further tweaks to the engine allow for greater lifting capacity.`;
 				}
-				engines01 = `Further tweaks to the engine allow for greater lifting capacity.`;
 				if (S.TA >= 9) {
 					Radar = `Radar-absorbent materials have replaced the old skin, making it difficult to pick up the VTOL on radar.`;
 				}
 				if (S.TA >= 10) {
 					type = `tiltjet`;
+					engines01 = ``;
+					engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`;
 				}
-				engines01 = ``;
-				engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`;
 				return `${text9} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`;
 			}
 			break;
@@ -3494,8 +3513,8 @@ App.SF.UnitText = function(input) {
 				const text10 = `<br>&nbsp;''Spaceplane:''`;
 				if (S.SpacePlane >= 2) {
 					b5 = ``;
+					shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`;
 				}
-				shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`;
 				if (S.SpacePlane >= 3) {
 					engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 18`;
 				}
@@ -3518,9 +3537,9 @@ App.SF.UnitText = function(input) {
 					skin = `Replaced the underbelly skin with a chameleon kit, matching the color to the sky above it.`;
 				}
 				if (S.SpacePlane >= 10) {
+					engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`;
 					engine20 = `experimental scramjet engines in the atmosphere that can reach Mach 15`;
 				}
-				engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`;
 				return `${text10} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`;
 			}
 			break;
@@ -3529,21 +3548,21 @@ App.SF.UnitText = function(input) {
 				const text11 = `<br>&nbsp;''Gunship:''`;
 				if (S.GunS >= 2) {
 					b4 = `Infrared sensors have been added for the gunners to better pick targets.`;
+					activate2 = ``;
 				}
-				activate2 = ``;
 				if (S.GunS >= 3) {
 					c2 = `The underside of the aircraft has been better armored against small-arms fire`;
+					countermeasures = `.`;
 				}
-				countermeasures = `.`;
 				if (S.GunS >= 4) {
 					fuel = `Larger fuel tanks have been installed in the wings and fuselage, allowing the gunship to provide aerial support for longer periods before refueling.`;
 				}
 				if (S.GunS >= 5) {
 					barrels = `25 mm Gatling cannons`;
+					distance = `; allowing the gunship to eliminate infantry`;
+					DFA = ` and light vehicles from above`;
+					autocannon = ` and a 40 mm autocannon are mounted on`;
 				}
-				distance = `; allowing the gunship to eliminate infantry`;
-				DFA = ` and light vehicles from above`;
-				autocannon = ` and a 40 mm autocannon are mounted on`;
 				if (S.GunS >= 6) {
 					gsSpeed = `The engines have been replaced, allowing both faster travel to a target, and slower travel around a target.`;
 				}
@@ -3558,8 +3577,8 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.GunS >= 10) {
 					DFA = `; both light and heavy vehicles, and most enemy cover from above`;
+					autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`;
 				}
-				autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`;
 				return `${text11} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${gsSpeed} ${c2}${countermeasures} ${fuel}`;
 			}
 			break;
@@ -3572,8 +3591,8 @@ App.SF.UnitText = function(input) {
 					} else {
 						loc1 = `The satellite is in geosynchronous orbit, far above the arcology.`;
 					}
+					gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`;
 				}
-				gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`;
 				if (S.Satellite.lv >= 3) {
 					telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`;
 				}
@@ -3582,12 +3601,12 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.Satellite.lv >= 5) {
 					solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`;
+					surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`;
 				}
-				surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`;
 				if (S.Satellite.lv >= 6) {
 					laser1 = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`;
+					heat = ` while generating a large amount of heat.`;
 				}
-				heat = ` while generating a large amount of heat.`;
 				if (S.Satellite.lv >= 7) {
 					heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`;
 				}
@@ -3598,9 +3617,9 @@ App.SF.UnitText = function(input) {
 					lens = `A higher quality and adjustable lens has been installed on the laser, allowing scalpel precision on armor or wide-area blasts on unarmored targets.`;
 				}
 				if (S.Satellite.lv >= 10) {
-					kin = `A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts.`;
+					kin = `A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts`;
 				}
-				return `${text12} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`;
+				return `${text12} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}.`;
 			}
 			break;
 		case 'GR':
@@ -3608,8 +3627,8 @@ App.SF.UnitText = function(input) {
 				const text13 = `<br>&nbsp;''Giant Robot:''`;
 				if (S.GiantRobot >= 2) {
 					loc = ``;
+					armor8 = `Armor plating has been mounted over the majority of the robot.`;
 				}
-				armor8 = `Armor plating has been mounted over the majority of the robot.`;
 				if (S.GiantRobot >= 3) {
 					power = `The robot is now powered by an umbilical cable system instead of bulky and short-lived batteries.`;
 				}
@@ -3621,15 +3640,15 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.GiantRobot >= 6) {
 					cannon1 = `A custom 45 mm Gatling cannon rifle has been developed for ranged use`;
+					ammo2 = `; though it lacks enough ammo storage for a main weapon.`;
 				}
-				ammo2 = `; though it lacks enough ammo storage for a main weapon.`;
 				if (S.GiantRobot >= 7) {
 					heatsink = `Large heatsinks have been installed out of the back to solve a massive overheating problem. These heatsinks resemble wings, and tend to glow red with heat when in heavy use.`;
 				}
 				if (S.GiantRobot >= 8) {
 					armor8 = ``;
+					actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`;
 				}
-				actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`;
 				if (S.GiantRobot >= 9) {
 					ammo2 = `; with spare ammunition drums kept along the robot's waist.`;
 				}
@@ -3644,8 +3663,8 @@ App.SF.UnitText = function(input) {
 				const text14 = `<br>&nbsp;''Cruise Missile:''`;
 				if (S.MissileSilo >= 2) {
 					b2 = `a modern missile`;
+					c8 = `; tipped with a conventional warhead`;
 				}
-				c8 = `; tipped with a conventional warhead`;
 				if (S.MissileSilo >= 3) {
 					d1 = `The launch systems have been overhauled, allowing a launch within seconds of an attack order being given.`;
 				}
@@ -3676,15 +3695,10 @@ App.SF.UnitText = function(input) {
 		case 'AC':
 			if (S.AircraftCarrier >= 1) {
 				const text15 = `<br>&nbsp;''Aircraft Carrier:''`;
-				if (V.week % 6 === 0) {
-					loc2 = `moored to the pier in the Naval Yard`;
-				} else {
-					loc2 = `patrolling the waters near ${V.arcologies[0].name}`;
-				}
 				if (S.AircraftCarrier >= 2) {
 					radar = `The island's radar and comms have been improved.`;
+					recom1 = ``;
 				}
-				recom1 = ``;
 				if (S.AircraftCarrier >= 3) {
 					AAG = `The antiair guns have been updated to automatically track and predict enemy aircraft movement.`;
 				}
@@ -3709,7 +3723,7 @@ App.SF.UnitText = function(input) {
 				if (S.AircraftCarrier >= 10) {
 					jets = `Attack VTOL from the converted for carrier capability`;
 				}
-				return `${text15} An aircraft carrier ${recom1} is ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`;
+				return `${text15} An aircraft carrier ${recom1} ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`;
 			}
 			break;
 		case 'Sub':
@@ -3717,9 +3731,9 @@ App.SF.UnitText = function(input) {
 				const text16 = `<br>&nbsp;''Submarine:''`;
 				if (S.Sub >= 2) {
 					recom = ``;
+					reactor0 = `A nuclear reactor provides power`;
+					reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`;
 				}
-				reactor0 = `A nuclear reactor provides power`;
-				reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`;
 				if (S.Sub >= 3) {
 					reactor1 = ` and an oxygen generator pulls Oâ‚‚ from the surrounding seawater, allowing the submarine to remain underwater for months if necessary.`;
 				}
@@ -3731,8 +3745,8 @@ App.SF.UnitText = function(input) {
 				}
 				if (S.Sub >= 6) {
 					tubes = `The torpedo tubes have been redesigned for faster loading speeds`;
+					torpedoes = `.`;
 				}
-				torpedoes = `.`;
 				if (S.Sub >= 7) {
 					sonar = `The passive sonar has been finely tuned to detect mechanical noises miles away.`;
 				}
@@ -3745,7 +3759,7 @@ App.SF.UnitText = function(input) {
 				if (S.Sub >= 10) {
 					missiles = `The submarine has been outfitted with several cruise missiles to attack land or sea-based targets.`;
 				}
-				return `${text16} An attack submarine ${recom} is moored to the pier of the Naval Yard. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`;
+				return `${text16} An attack submarine ${recom} ${loc2}. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`;
 			}
 			break;
 		case 'HAT':
@@ -3753,25 +3767,25 @@ App.SF.UnitText = function(input) {
 				const text17 = `<br>&nbsp;''Amphibious Transport:''`;
 				if (S.HAT >= 2) {
 					skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`;
+					recom2 = `;`;
 				}
-				recom2 = `;`;
 				if (S.HAT >= 3) {
 					guns = `A minigun`;
+					guns2 = `has been mounted on the front corners of the craft to defend against attackers.`;
 				}
-				guns2 = `has been mounted on the front corners of the craft to defend against attackers.`;
 				if (S.HAT >= 4) {
 					fans = `The turbines powering the rear fans`;
+					speed = `acceleration and speed.`;
+					turbines = `have been replaced with a more powerful version, allowing greater`;
 				}
-				speed = `acceleration and speed.`;
-				turbines = `have been replaced with a more powerful version, allowing greater`;
 				if (S.HAT >= 5) {
 					armor10 = `The armor protecting its cargo has been increased.`;
 				}
 				if (S.HAT >= 6) {
 					tons = `300`;
+					fans = `The turbines powering the rear fans and impeller`;
+					speed = `acceleration, speed, and carrying capacity.`;
 				}
-				fans = `The turbines powering the rear fans and impeller`;
-				speed = `acceleration, speed, and carrying capacity.`;
 				if (S.HAT >= 7) {
 					guns = `A minigun and grenade launcher`;
 				}
@@ -3784,7 +3798,7 @@ App.SF.UnitText = function(input) {
 				if (S.HAT >= 10) {
 					loadout = `An experimental loadout sacrifices all carrying capacity to instead act as a floating gun platform by mounting several rotary autocannons the deck, should the need arise.`;
 				}
-				return `${text17} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`;
+				return `${text17} An air cushion transport vehicle, or hovercraft ${recom2} ${loc2}. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`;
 			}
 			break;
 	}
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index fed7bad9c6902e4816358fe1c24a778f8ec37d19..75818d68ab6b11f779b6acbaf38485e0756e7ee7 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2555,7 +2555,7 @@ LORE: INTERVIEWS
 	<br>''anon'' for considerable bugfixing, most notably that infernal @@.green;[[reputation|Encyclopedia][$encyclopedia = "Arcologies and Reputation"]]@@ bug.
 	<br>''anon'' added a pair of fairy PA appearances.
 	<br>''anon'' for their clitoral surgery, SMRs, and hip changes.
-	<br>''DarkTalon25'' for the Scotts, Belarus, Dominicans, gilfwork, additional nicknames and a scalemail bikini.
+	<br>''DarkTalon25'' for the Scots, Belarus, Dominicans, gilfwork, additional nicknames and a scalemail bikini.
 	<br>''anon'' for FAbuse alterations, gang leader start, and scarring.
 	<br>''anon'' for numerous pointed out typos.
 	<br>''anon'' for grorious nihon starting rocation.
@@ -2591,7 +2591,7 @@ LORE: INTERVIEWS
 	<br>''hexall90'' for height growth drugs, incubator organ farm support and detailing, the dispensary cleanup, the joint Eugenics bad end rework with ''SFanon (blank)'', the Hippolyta Academy, and the Security Expansion Mod.
 	<br>''sensei'' for coding in support for commas and an excellent family tree rework.
 	<br>''laziestman'' for sexy spats.
-	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary rewrite, general fixes, storyCaption overhaulling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''.
+	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary rewrite, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''.
 	<br>''anon'' for extending FCGudder's economy reports to the other facilities.
 	<br>''MilkAnon'' for his contributions to FCTV and the FC world in general.
 	<br>''valen102938'' for dealing with vector art, both creating new art and utilizing unused art.
diff --git a/src/js/colorinput.js b/src/js/colorinput.js
index 0bd884a15bfed1e416dcfe121894588e3bdc2b95..9178425ef6d8c999efc56c242b80bf2833dabaab 100644
--- a/src/js/colorinput.js
+++ b/src/js/colorinput.js
@@ -2,11 +2,11 @@ Macro.add("colorinput", {
 	handler: function() {
 		if (this.args.length < 2) {
 			let e = [];
-			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error("no " + e.join(" or ") + " specified");
+			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error(`no ${e.join(" or ")} specified`);
 		}
 		if (typeof this.args[0] !== "string") { return this.error("variable name argument is not a string"); }
 		let varName = this.args[0].trim();
-		if (varName[0] !== "$" && varName[0] !== "_") { return this.error('variable name "' + this.args[0] + '" is missing its sigil ($ or _)'); }
+		if (varName[0] !== "$" && varName[0] !== "_") { return this.error(`variable name "${this.args[0]}" is missing its sigil ($ or _)`); }
 		Config.debug && this.debugView.modes({
 			block: true
 		});
@@ -36,18 +36,18 @@ Macro.add("colorinput", {
 				}
 				Engine.play(passage);
 				if (currentPassage === passage) {
-					Scripting.evalJavaScript("window.scrollTo(0, " + currentScrollPosition + ");");
+					Scripting.evalJavaScript(`window.scrollTo(0, ${currentScrollPosition});`);
 				}
 			}
 		}
 
 		jQuery(inputElement).attr({
-			id: this.name + "-" + r,
-			name: this.name + "-" + r,
+			id: `${this.name}-${r}`,
+			name: `${this.name}-${r}`,
 			type: 'color',
 			value: value,
 			tabindex: 0
-		}).addClass("macro-" + this.name)
+		}).addClass(`macro-${this.name}`)
 			.on("change", function() {
 				State.setVar(varName, this.value);
 				// eslint-disable-next-line eqeqeq
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 6417c3f80323422682a570adf2e9ad01fd360a41..8fc321d5d57b9e0fbfa6463da3532464401fd690 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -2246,4 +2246,4 @@ App.Entity.Utils.migratePronouns = function(subject) {
 	delete subject["object"];
 	delete subject["noun"];
 	/* eslint-enable dot-notation */
-}
+};
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index b93f711697172ecf44f8f234d8b7fb845124daa2..30aa181eee457bdc04e8d9421a93a0258985279b 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -568,15 +568,18 @@ window.generateGenetics = (function() {
 			} else if (father !== 0) {
 				smarts = fuzzy(father.intelligence, mother.intelligence);
 				// player is considered "good stock"
-				while (smarts < 50) fuzzy(father.intelligence, mother.intelligence);
+				while (smarts < 50) {
+					fuzzy(father.intelligence, mother.intelligence);
+				}
 			} else {
 				smarts = Math.clamp(normalRandInt(75, 12.5), -100, 100);
 			}
 		} else if (father !== 0) {
 			smarts = fuzzy(father.intelligence, mother.intelligence);
 			// elite slaves are also considered "good stock"
-			while (activeMother.breedingMark && smarts < 50)
+			while (activeMother.breedingMark && smarts < 50) {
 				smarts = fuzzy(father.intelligence, mother.intelligence);
+			}
 		} else {
 			smarts = mother.intelligence;
 		}
@@ -617,16 +620,18 @@ window.generateGenetics = (function() {
 			} else if (father !== 0) {
 				face = fuzzy(father.face, mother.face);
 				// the player is considered "good stock"
-				while (face < 50)
+				while (face < 50) {
 					face = fuzzy(father.face, mother.face);
+				}
 			} else {
 				face = Math.clamp(normalRandInt(60, 20), -100, 100);
 			}
 		} else if (father !== 0) {
 			face = fuzzy(father.face, mother.face);
 			// elite slaves are also considered "good stock"
-			while(activeMother.breedingMark && face < 50)
+			while (activeMother.breedingMark && face < 50) {
 				face = fuzzy(father.face, mother.face);
+			}
 		} else {
 			face = mother.face;
 		}
diff --git a/src/js/pregJS.js b/src/js/pregJS.js
index d202352f10eb3866985dab94f685516f8bdd582b..c23e1caf4d8000c3988e8e5ea358bbb7bd9c224b 100644
--- a/src/js/pregJS.js
+++ b/src/js/pregJS.js
@@ -384,7 +384,7 @@ window.setPregType = function(actor) {
 
 	if (actor.geneticQuirks.superfetation === 2 && actor.womb.length > 0) {
 		let ftvol = FetusGetPrediction(actor, actor.pregData.normalBirth);
-		let cmvol =  ftvol * actor.womb.length;
+		let cmvol = ftvol * actor.womb.length;
 		let maxvol = actor.pregAdaptation*2000;
 		if (State.variables.seeHyperPreg === 0) {
 			maxvol /= 10; // without hyperpreg enabled it's limited to be roughly ten times smaller.
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index 599963c60ff1e666e7df44717da77dcf8045f907..7ce071c73942193b3b7503fb484e21eaaa2fe02a 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -4773,7 +4773,7 @@ window.SlaveSummaryUncached = (function() {
 		}
 		r += " ";
 	}
-	
+
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 */
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 55e6e47285906ba896e9d0d72deb05f01630e247..c885f3c30d2b9afce175e5ee35d6e3cbc59c755d 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -509,15 +509,6 @@ window.isImpregnatedBy = function(mother, father) {
 	return impregnatedBy(mother).includes(father.ID);
 };
 
-window.jsAlert = function(obj) {
-	alert(obj);
-};
-
-window.jsConsoleInfo = function(obj) {
-	// eslint-disable-next-line no-console
-	console.info(obj);
-};
-
 /**
  * @param {App.Entity.SlaveState} slave
  */
diff --git a/src/js/surgery.js b/src/js/surgery.js
index 2f05a47896010c3dca9c48d7ce69f1f081edb268..8a0065fcb97c8c82abb78ebf6e861ccee6a02b4f 100644
--- a/src/js/surgery.js
+++ b/src/js/surgery.js
@@ -545,3 +545,44 @@ window.surgeryAmp = function(slave, part) {
 		}
 	}
 };
+
+/**
+ * Prepare and set up for new Fuckdoll
+ * @param {App.Entity.SlaveState} slave
+ */
+window.beginFuckdoll = function(slave) {
+	slave.fuckdoll = 1;
+	slave.toyHole = "all her holes";
+	if ((slave.pubicHStyle !== "bald") || (slave.pubicHStyle !== "hairless")) {
+		slave.pubicHStyle = "waxed";
+	}
+	slave.livingRules = "spare";
+	slave.speechRules = "restrictive";
+	slave.releaseRules = "restrictive";
+	slave.relationshipRules = "restrictive";
+	slave.choosesOwnClothes = 0;
+	slave.clothes = "a Fuckdoll suit";
+	slave.collar = "none";
+	if ((slave.missingLegs !== 3) || (slave.shoes !== "none")) {
+		slave.shoes = "heels";
+	}
+	slave.armAccessory = "none";
+	slave.legAccessory = "none";
+	slave.vaginalAccessory = "none";
+	slave.vaginalAttachment = "none";
+	slave.dickAccessory = "none";
+	slave.buttplug = "none";
+	slave.chastityAnus = 0;
+	slave.chastityPenis = 0;
+	slave.chastityVagina = 0;
+	slave.attrKnown = 1;
+	slave.fetishKnown = 1;
+	slave.subTarget = 0;
+	slave.sentence = 0;
+	slave.training = 0;
+	slave.inflation = 0;
+	slave.inflationType = "none";
+	slave.inflationMethod = 0;
+	slave.milkSource = 0;
+	slave.cumSource = 0;
+};
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index e3c55587afe30d6d4d093d1c7c64e6387d4008cc..393a44bb12444b38608d23eea1aea6354b123d24 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -3025,6 +3025,8 @@ App.Utils.setLocalPronouns = function(slave, suffix, pronouns) {
 	pronouns = pronouns || [ // Object.getOwnPropertyNames(ps) ?
 		'he', 'him', 'his', 'himself', 'boy',
 		'He', 'Him', 'His', 'Himself', 'Boy',
+		'man', 'men', 'shota',
+		'Men', 'Man', 'Shota',
 		'she', 'her', 'hers', 'herself', 'girl',
 		'She', 'Her', 'Hers', 'Herself', 'Girl',
 		'woman', 'women', 'loli',
@@ -3036,3 +3038,51 @@ App.Utils.setLocalPronouns = function(slave, suffix, pronouns) {
 		scope[p + pSuffix] = ps[p];
 	});
 };
+
+/**
+ * Fix nationalities as adjectives
+ * @param {string} nation
+ * @returns {string}
+ */
+
+window.aNational = function(nation) {
+	let country;
+	if (nation === "a Cook Islander") {
+		country = "Cook Islander";
+	} else if (nation === "a Liechtensteiner") {
+		country = "Liechtensteiner";
+	} else if (nation === "a New Zealander") {
+		country = "New Zealander";
+	} else if (nation === "a Solomon Islander") {
+		country = "Solomon Islander";
+	} else {
+		country = nation;
+	}
+	return country;
+};
+
+/**
+ * Fix nationalities as plurals
+ * @param {string} nation
+ * @returns {string}
+ */
+
+window.moreNational = function(nation) {
+	let country;
+	if (nation === "a Cook Islander") {
+		country = "Cook Islander";
+	} else if (nation === "a Liechtensteiner") {
+		country = "Liechtensteiner";
+	} else if (nation === "Mosotho") {
+		country = "Basotho";
+	} else if (nation === "Motswana") {
+		country = "Batswana";
+	} else if (nation === "a New Zealander") {
+		country = "New Zealander";
+	} else if (nation === "a Solomon Islander") {
+		country = "Solomon Islander";
+	} else {
+		country = nation;
+	}
+	return country;
+};
diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js
index 5c239d5dcbf1c3a5afc0220f6133ae4893304e73..09869c2f8be77846bf0d38968f94b9d2def1b5cc 100644
--- a/src/npc/descriptions/boobs/boobs.js
+++ b/src/npc/descriptions/boobs/boobs.js
@@ -1297,7 +1297,7 @@ App.Desc.boobs = function() {
 
 		let r = `${His} `;
 		if (slave.boobs < 300) {
-			r += `${App.Desc.boobBits.adjective(slave.boobs)} breasts are practically non - existent.`;
+			r += `${App.Desc.boobBits.adjective(slave.boobs)} breasts are practically non-existent.`;
 		} else if (slave.boobs < 10000) {
 			if (V.showBoobCCs) {
 				r += App.Desc.boobBits.format("%ADJ %NOUN, %VOLUME CCs each, would fill %CUPs", slave.boobs);
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index a38b68ac8a2366bdb146bb5fd93925680d10ddc8..9c17fecfc916e7aa46d4d26dc071decb1b4f5f56 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -524,10 +524,10 @@ __You are customizing this slave:__
 		''$language:''
 		<<option 0 "Unaccented">>
 			Unaccented.
-		<<option 1 `"Pretty " + $activeSlave.nationality + " accent"`>>
-			Pretty $activeSlave.nationality accent.
-		<<option 2 `"Thick " + $activeSlave.nationality + " accent"`>>
-			Thick $activeSlave.nationality accent.
+		<<option 1 `"Pretty " + aNational($activeSlave.nationality) + " accent"`>>
+			Pretty <<print aNational($activeSlave.nationality)>> accent.
+		<<option 2 `"Thick " + aNational($activeSlave.nationality) + " accent"`>>
+			Thick <<print aNational($activeSlave.nationality)>> accent.
 		<<optiondefault 3 "Not fluent">>
 			Not fluent.
 	<</options>>
diff --git a/src/player/actions/fEmbrace.tw b/src/player/actions/fEmbrace.tw
index ae0d5ca3eb36103002405bc36f74c3a28eedc14a..0d570cde31224eeb455cfac49bc6694606421634 100644
--- a/src/player/actions/fEmbrace.tw
+++ b/src/player/actions/fEmbrace.tw
@@ -38,7 +38,7 @@ You tell $activeSlave.slaveName to
 <<elseif ($activeSlave.devotion > 50)>>
 	$He dotingly complies, being near you filling $him with delight. Once $he's close, you take $his completely relaxed head in your hands and gaze deeply into $his <<= App.Desc.eyeColor($activeSlave)>> eyes. $He finds the intense attention from $his <<= WrittenMaster()>> disconcerting, and $he looks down after a moment, blushing.
 <<elseif ($activeSlave.devotion > 20)>>
-	$He joyfully complies, happy to be near you. Once $he's close, you you take $his willing head in your hands and gaze deeply into $his <<= App.Desc.eyeColor($activeSlave)>> eyes. $He finds the intense attention from $his <<= WrittenMaster()>> worrying, and $he looks down after a moment, blushing nervously.
+	$He joyfully complies, happy to be near you. Once $he's close, you take $his willing head in your hands and gaze deeply into $his <<= App.Desc.eyeColor($activeSlave)>> eyes. $He finds the intense attention from $his <<= WrittenMaster()>> worrying, and $he looks down after a moment, blushing nervously.
 <<elseif ($activeSlave.devotion >= -20) && ($activeSlave.trust >= -20)>>
 	$He visibly considers disobedience, but decides that complying with such an apparently harmless order is safe, for now. Once $he's close, you take $his head in your hands and gaze deeply into $his <<= App.Desc.eyeColor($activeSlave)>> eyes. $He finds the intense attention from $his <<= WrittenMaster()>> worrying, and $he looks down after a moment, $his lower lip trembling with nervousness.
 <<elseif ($activeSlave.trust < -20)>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index b4709093f6485ca117a563340d1ccc001ebb86a3..b9e8ac1cee1ff546314a8ff8e506a1dd0dcf9a6d 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -1538,7 +1538,7 @@ There is a horrible crash from the shower. You rush in to see <<EventNameLink>>
 <<if !canTalk($activeSlave)>>
 	$He points to $his pussy and comically pantomimes having sex, and then uses gestures to ask if $he can serve you with $his pussy.
 <<else>>
-	$He <<say>>s, "<<= capFirstChar($titleEnunciate)>>, I want to know what it'<<s>> like to have a cock in my virgin pu<<ss>>y. <<S>>eeing <<s>>o many of the other <<s>>lave<<s>> getting fucked look<<s>> like <<s>>o much fun. I'm <<s>>o turned on by it. I can't be a proper <<s>>e<<x>> <<s>>lave without u<<s>>ing my pu<<ss>>y. Plea<<s>>e take my virginity, <<Master>>."
+	$He <<say>>s, "<<= capFirstChar($titleEnunciate)>>, I want to know what it'<<s>> like to have a cock in my virgin pu<<ss>>y. <<if canSee($activeSlave)>><<S>>eeing<<elseif canHear($activeSlave)>>Hearing<<else>>Learning about<</if>> <<s>>o many of the other <<s>>lave<<s>> getting fucked make<<s>> it <<if canSee($activeSlave)>>look<<elseif canHear($activeSlave)>><<s>>ound<<else>><<s>>eem<</if>> like <<s>>o much fun. I'm <<s>>o turned on by it. I can't be a proper <<s>>e<<x>> <<s>>lave without u<<s>>ing my pu<<ss>>y. Plea<<s>>e take my virginity, <<Master>>."
 <</if>>
 $He spreads $his legs <<if $activeSlave.belly >= 10000>>carefully and cocks $his hips<<else>>and cocks $his hips suggestively<</if>> at you.
 
@@ -1548,7 +1548,7 @@ $He spreads $his legs <<if $activeSlave.belly >= 10000>>carefully and cocks $his
 <<if !canTalk($activeSlave)>>
 	$He comically pantomimes anal sex, and then uses gestures to ask if $he can serve you anally.
 <<else>>
-	$He <<say>>s, "<<= capFirstChar($titleEnunciate)>>, I <<s>>ee <<s>>o many of the other <<s>>lave<<s>> getting buttfucked. I think it'<<s>> hot <<s>>eeing them take it up the a<<ss>>, and I feel almo<<s>>t incomplete <<s>>in<<c>>e I don't take cock in every hole. Plea<<s>>e take my butt virginity, <<Master>>."
+	$He <<say>>s, "<<= capFirstChar($titleEnunciate)>>, I <<if canSee($activeSlave)>><<s>>ee<<elseif canHear($activeSlave)>>hear<<else>>am <<s>>urrounded by<</if>> <<s>>o many of the other <<s>>lave<<s>> getting buttfucked. I think it'<<s>> hot <<if canSee($activeSlave)>><<s>>eeing<<elseif canHear($activeSlave)>>hearing<<else>>that you have<</if>> them take it up the a<<ss>>, and I feel almo<<s>>t incomplete <<s>>in<<c>>e I don't take cock in every hole. Plea<<s>>e take my butt virginity, <<Master>>."
 <</if>>
 $He<<if $activeSlave.belly >= 10000>> carefully turns and spreads $his legs, allowing $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>> belly space as $he bends over, to wiggle<<else>> turns around and wiggles<</if>> $his posterior indicatively.
 
@@ -9825,7 +9825,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<</if>>
 			butthole down onto your cock. $He gets quite a workout, raising and lowering $his body to fuck $his own ass on your stationary dick.
 			<<if _faceUp == 1>>
-				Since $he's facing you you get a great view of $his body in motion.
+				Since $he's facing you, you get a great view of $his body in motion.
 			<<else>>
 				$He's so heavy with child, you eventually have to give $him a hand as $he steadily tires.
 			<</if>>
@@ -9903,7 +9903,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<</if>>
 			butthole down onto your cock. $He gets quite a workout, raising and lowering $his body to fuck $his own ass on your stationary dick.
 			<<if _faceUp == 1>>
-				Since $he's facing you you get a great view of $his body in motion.
+				Since $he's facing you, you get a great view of $his body in motion.
 			<<else>>
 				$He's so heavy with child, you eventually have to give $him a hand as $he steadily tires.
 			<</if>>
@@ -14698,7 +14698,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<else>>
 			a nipple
 		<</if>>
-		and pull downward gently. "<<S>>orry <<Master>>," $he mutters in $his barbarous $activeSlave.nationality accent, and sits <<if $activeSlave.belly >= 5000>>carefully<<else>>hurriedly<</if>> down.
+		and pull downward gently. "<<S>>orry <<Master>>," $he mutters in $his barbarous <<print aNational($activeSlave.nationality)>> accent, and sits <<if $activeSlave.belly >= 5000>>carefully<<else>>hurriedly<</if>> down.
 		<br><br>
 		You review 'next,' praising $him for getting that, and then move on to 'sit,' 'stand,' and other such useful terms, teaching the $language language to the nude slave sitting
 		<<if $activeSlave.belly >= 10000 || $activeSlave.weight >= 130>>
@@ -14748,7 +14748,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<br><br><span id="result2">
 			<<link "Now let $him review">>
 				<<replace "#result2">>
-					You tell $him to do the inspection routine again, narrating it $himself. $He understands immediately, and hustles back to stand in front of your desk, brow furrowed in concentration as $he struggles to keep the vocabulary in $his head. $He shows each part of $his body to you in turn, and gets every single one of the terms to describe $his body — which in the legal sense, is actually //your// body, one of many you own — perfectly right, though of course $he repeats them in $his atrocious <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent. $He even @@.mediumaquamarine;has the confidence@@ to throw in a little flourish: $he says
+					You tell $him to do the inspection routine again, narrating it $himself. $He understands immediately, and hustles back to stand in front of your desk, brow furrowed in concentration as $he struggles to keep the vocabulary in $his head. $He shows each part of $his body to you in turn, and gets every single one of the terms to describe $his body — which in the legal sense, is actually //your// body, one of many you own — perfectly right, though of course $he repeats them in $his atrocious <<print aNational($activeSlave.nationality)>> accent. $He even @@.mediumaquamarine;has the confidence@@ to throw in a little flourish: $he says
 					<<if $activeSlave.belly >= 10000>>
 						"Belly!" with flirty emphasis, stroking it sensually.
 					<<elseif ($activeSlave.boobs > 3000)>>
@@ -21029,7 +21029,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 <br><<link "Gently reassure $him">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-		You set the $PC.refreshment aside on your desk for now, and take $him gently by the shoulders. You assure $him that $he is a good $girl who tries $his best, and that $he wont be hurt so long as $he remains well behaved. You affectionately stroke $his shoulders with your thumbs as you speak in a further attempt to calm $him down. $He is highly receptive to your soothing touch and kind words. $He dries $his eyes, gives you an @@.hotpink;affectionate kiss@@ and @@.mediumaquamarine;thanks you prettily@@ before departing.
+		You set the $PC.refreshment aside on your desk for now, and take $him gently by the shoulders. You assure $him that $he is a good $girl who tries $his best, and that $he won't be hurt so long as $he remains well behaved. You affectionately stroke $his shoulders with your thumbs as you speak in a further attempt to calm $him down. $He is highly receptive to your soothing touch and kind words. $He dries $his eyes, gives you an @@.hotpink;affectionate kiss@@ and @@.mediumaquamarine;thanks you prettily@@ before departing.
 		<<set $activeSlave.devotion += 10>>
 		<<set $activeSlave.trust += 10>>
 	<</replace>>
diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw
index 214dc7d7507f7e5634ce9c8e64c23f79ed6072ba..30fa07828c17e60238c12d473ccb97f88bf6b7ac 100644
--- a/src/uncategorized/hgApplication.tw
+++ b/src/uncategorized/hgApplication.tw
@@ -69,7 +69,7 @@ $He helps $activeSlave.slaveName however $he can. The tender care has @@.green;i
 <<if $HeadGirl.accent >= 3>>
 	$He does $his best to give orders in $language, but has to resort to a lot of unseemly gesticulation and shouting, making $him much less effective.
 <<elseif $HeadGirl.accent == 2>>
-	$His heavy $HeadGirl.nationality accent impedes $his clarity in $language, making $him somewhat less effective.
+	$His heavy <<print aNational($HeadGirl.nationality)>> accent impedes $his clarity in $language, making $him somewhat less effective.
 <</if>>
 
 <<if ($HGtraining == "obedience") || ($HGtraining == "flaw") || ($HGtraining == "soften")>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 1d5505d6e8823331fc316ee6831eb82739652107..7429d4304c2d5a95292844a789948649222ca031 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -1198,7 +1198,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 					<<set $activeSlave.trust = -100, $activeSlave.devotion = -100>>
 				<</if>>
 			<<else>>
-				$He will never bear children, and will @@.mediumorchid;remember $his status@@ with every fucking $he receives. Your absolute power over $his body is rightfully @@.gold;terrifying.@@
+				$He will never<<if $activeSlave.counter.birthsTotal > 0>> again<</if>> bear children, and will @@.mediumorchid;remember $his status@@ with every fucking $he receives. Your absolute power over $his body is rightfully @@.gold;terrifying.@@
 				<<set $activeSlave.trust -= 20, $activeSlave.devotion -= 50>>
 			<</if>>
 			Society @@.green;approves@@ of your promptly rendering $him sterile; this advances the idea that only the elite should breed.
@@ -1289,19 +1289,19 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 				<<if $activeSlave.fetish == "boobs">>
 					<<if $activeSlave.fetishKnown == 0>>
 						<<if $servantMilkers == 1>>
-						You escort $him to one of the many milkers installed in the penthouse and instruct $him in its use. The combined sensations of nipple stimulation and relief visibly overwhelm $him, and the resulting series of orgasms leaves $him exhausted.
-						@@.green;$He's a breast fetishist!@@
-						<<set $activeSlave.fetishKnown = 1>>
+							You escort $him to one of the many milkers installed in the penthouse and instruct $him in its use. The combined sensations of nipple stimulation and relief visibly overwhelm $him, and the resulting series of orgasms leaves $him exhausted.
+							@@.green;$He's a breast fetishist!@@
+							<<set $activeSlave.fetishKnown = 1>>
 						<<else>>
-						You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple, and the intense sensation of relief and stimulation overwhelms $him. It doesn't take long for $him to reach the first of a series of orgasms, leaving $him exhausted.
-						@@.green;$He's a breast fetishist!@@
-						<<set $activeSlave.fetishKnown = 1>>
+							You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple, and the intense sensation of relief and stimulation overwhelms $him. It doesn't take long for $him to reach the first of a series of orgasms, leaving $him exhausted.
+							@@.green;$He's a breast fetishist!@@
+							<<set $activeSlave.fetishKnown = 1>>
 						<</if>>
 					<<else>>
 						<<if $servantMilkers == 1>>
-						You escort $him to one of the many milkers installed in the penthouse and instruct $him in its use. $His breast fetish makes the experience comparable to sex for &him, and the resulting series of orgasms leaves $him exhausted.
+							You escort $him to one of the many milkers installed in the penthouse and instruct $him in its use. $His breast fetish makes the experience comparable to sex for &him, and the resulting series of orgasms leaves $him exhausted.
 						<<else>>
-						You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. $His breast fetish makes the experience comparable to sex for $him, and the resulting series of orgasms leaves $him exhausted.
+							You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. $His breast fetish makes the experience comparable to sex for $him, and the resulting series of orgasms leaves $him exhausted.
 						<</if>>
 					<</if>>
 					After allowing $him to rest for a bit you instruct $him to report for $his first assignment. As $he leaves your office $he can already feel the pressure returning to $his chest. @@.hotpink;As far as $he's concerned $his next milking can't come soon enough.@@
@@ -1319,19 +1319,19 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 				<<if $activeSlave.fetish == "boobs">>
 					<<if $activeSlave.fetishKnown == 0>>
 						<<if $servantMilkers == 1>>
-						You escort $him to one of the many milkers installed in the penthouse and attach $him to the device, leaving $his restraints in place. $He is still struggling when you activate the device, and the sudden sensation of relief catches $him off guard. A primal moan erupts from the bottom of $his throat, and it's obvious to both of you that $he's enjoying this in spite of $himself. $He spends the rest of $his milking trying and failing to hide the obvious pleasure $he's deriving from $his predicament.
-						@@.green;$He's a breast fetishist!@@
-						<<set $activeSlave.fetishKnown = 1>>
+							You escort $him to one of the many milkers installed in the penthouse and attach $him to the device, leaving $his restraints in place. $He is still struggling when you activate the device, and the sudden sensation of relief catches $him off guard. A primal moan erupts from the bottom of $his throat, and it's obvious to both of you that $he's enjoying this in spite of $himself. $He spends the rest of $his milking trying and failing to hide the obvious pleasure $he's deriving from $his predicament.
+							@@.green;$He's a breast fetishist!@@
+							<<set $activeSlave.fetishKnown = 1>>
 						<<else>>
-						You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. The sensation overwhelms $him almost immediately, and $his arms struggle against $his restraints as $he fights an impending orgasm. It's an amusing sight that goes on until $he is fully drained.
-						@@.green;$He's a breast fetishist!@@
-						<<set $activeSlave.fetishKnown = 1>>
+							You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. The sensation overwhelms $him almost immediately, and $his arms struggle against $his restraints as $he fights an impending orgasm. It's an amusing sight that goes on until $he is fully drained.
+							@@.green;$He's a breast fetishist!@@
+							<<set $activeSlave.fetishKnown = 1>>
 						<</if>>
 					<<else>>
 						<<if $servantMilkers == 1>>
-						You escort $him to one of the many milkers installed in the penthouse and attach $him to the device, leaving $his restraints in place. $His breast fetish soon overcomes $his obvious disdain for $his situation, and $he spends the milking red in the face, fighting an obviously impending orgasm.
+							You escort $him to one of the many milkers installed in the penthouse and attach $him to the device, leaving $his restraints in place. $His breast fetish soon overcomes $his obvious disdain for $his situation, and $he spends the milking red in the face, fighting an obviously impending orgasm.
 						<<else>>
-						You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. With a sharp intake of breath $he begins to squirm, and $his breast fetish soon has $him moaning and writhing as $he fights an intense orgasm with tears of shame rolling down $his flushed cheeks.
+							You kneel behind $him and begin to gently massage $his swollen breasts. A steady stream of milk begins to erupt from each nipple. With a sharp intake of breath $he begins to squirm, and $his breast fetish soon has $him moaning and writhing as $he fights an intense orgasm with tears of shame rolling down $his flushed cheeks.
 						<</if>>
 					<</if>>
 					As you summon <<if $HeadGirl != 0>>your Head Girl<<else>>another slave<</if>> to escort the $girl to $his first assignment, $he slumps dejectedly in $his restraints. $He is torn between the knowledge that $he is little more than livestock to you, and the disturbing realization that @@.hotpink;$he might enjoy $his new life as a human cow.@@
diff --git a/src/uncategorized/pPeacekeepersIndependence.tw b/src/uncategorized/pPeacekeepersIndependence.tw
index c1c760f4eac4335430811c877509688062d449b4..b0f41e4dee1ef42cdff0269ba17fa7bd832d715a 100644
--- a/src/uncategorized/pPeacekeepersIndependence.tw
+++ b/src/uncategorized/pPeacekeepersIndependence.tw
@@ -21,14 +21,14 @@ General $peacekeepers.generalName contacts you again, looking more tired and bat
 <br><br>
 <span id="result">
 <<if $cash >= 100000>>
-<<link "Provide immediate assistance">>
-	<<replace "#result">>
-		You immediately wire General $peacekeepers.generalName <<print cashFormat(100000)>>, not an impressive sum by Free Cities standards, but probably enough to turn the scales in his plans to keep his force together as it transitions from old world peacekeeping to autocratic nation building. Soon enough, he'll be able to support his men and women through armed extortion, the original form of taxation and, arguably, the only form of taxation.
-		<br><br>
-		"You have my thanks," he says formally. "We'll be in control here soon enough. The one thing we'll have an almost limitless supply of is people. I don't think anyone's likely to notice a few menial slaves transferred into the Free City. I'm sure a regular trade already exists; we'll just be adding a few undesirables to it." He ends the call, looking determined. Despite his confidence, he has his work cut out for him.
-		<<set cashX(-100000, "peacekeepers"), $peacekeepers.strength = 50, $peacekeepers.attitude += 5, $peacekeepers.undermining = 0>>
-	<</replace>>
-<</link>> //This will cost <<print cashFormat(100000)>>//
+	<<link "Provide immediate assistance">>
+		<<replace "#result">>
+			You immediately wire General $peacekeepers.generalName <<print cashFormat(100000)>>, not an impressive sum by Free Cities standards, but probably enough to turn the scales in his plans to keep his force together as it transitions from old world peacekeeping to autocratic nation building. Soon enough, he'll be able to support his men and women through armed extortion, the original form of taxation and, arguably, the only form of taxation.
+			<br><br>
+			"You have my thanks," he says formally. "We'll be in control here soon enough. The one thing we'll have an almost limitless supply of is people. I don't think anyone's likely to notice a few menial slaves transferred into the Free City. I'm sure a regular trade already exists; we'll just be adding a few undesirables to it." He ends the call, looking determined. Despite his confidence, he has his work cut out for him.
+			<<set cashX(-100000, "peacekeepers"), $peacekeepers.strength = 50, $peacekeepers.attitude += 5, $peacekeepers.undermining = 0>>
+		<</replace>>
+	<</link>> //This will cost <<print cashFormat(100000)>>//
 <<else>>
 	You lack the ¤ to make any meaningful contribution.
 <</if>>
diff --git a/src/uncategorized/pSlaveMedic.tw b/src/uncategorized/pSlaveMedic.tw
index a582bdb9c29cd7d604b51de8cc22ed09e8a9d6ba..f5cf21a7206b4ef706e1243d8685f6481ba24adb 100644
--- a/src/uncategorized/pSlaveMedic.tw
+++ b/src/uncategorized/pSlaveMedic.tw
@@ -4,68 +4,44 @@
 
 <<set $slaveMedic = 0>>
 
-<<if $pedo_mode == 1>>
-
-<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
-<<set $activeSlaveOneTimeMaxAge = 18>>
 <<set $oneTimeDisableDisability = 1>>
-<<set $activeSlave = GenerateNewSlave("XX")>>
-<<set $activeSlave.origin = "$He was captured while caring for those injured in a failed attack on the Free City.">>
-<<set $activeSlave.career = "a nurse">>
-<<set $activeSlave.custom.desc = "$He has a faint air of fatigue about $him, and strength too: that of a survivor.">>
-<<set $activeSlave.sexualFlaw = "none">>
-<<set $activeSlave.sexualQuirk = "caring">>
-<<set $activeSlave.behavioralFlaw = "none">>
-<<set $activeSlave.devotion = random(30,40)>>
-<<set $activeSlave.trust = $activeSlave.devotion-20>>
-<<set $activeSlave.oldDevotion = $activeSlave.devotion>>
-<<set $activeSlave.vagina = 2>>
-<<set $activeSlave.preg = -1>>
-<<set $activeSlave.muscles = random(20,50)>>
-<<set $activeSlave.ovaries = 1>>
-<<set $activeSlave.skill.vaginal = 35>>
-<<set $activeSlave.skill.oral = 35>>
-<<set $activeSlave.skill.anal = 15>>
-<<set $activeSlave.skill.whoring = 0>>
-<<set $activeSlave.skill.entertainment = 15>>
-<<set $activeSlave.intelligence = random(51,95)>>
-<<set $activeSlave.intelligenceImplant = 15>>
-<<if $activeSlave.physicalAge >= 12>>
-	<<set $activeSlave.teeth = "cosmetic braces">>
-<</if>>
-<<set $activeSlave.anus = 2>>
-<<set $activeSlave.hips = 1>>
-<<set $activeSlave.boobs = 2000>>
-<<set $activeSlave.boobShape = "perky">>
-<<set $activeSlave.geneticQuirks.macromastia = 2>>
-<<set $activeSlave.butt = 4>>
-<<set $activeSlave.voice = 3>>
-<<set $activeSlave.hStyle = "neat">>
-<<set $activeSlave.hLength = 35>>
-<<set $activeSlave.health = random(20,40)>>
-<<if $mercenaries >= 3>>
-	<<if $activeSlave.counter.publicUse>><<set $activeSlave.counter.publicUse += 39>><<else>><<set $activeSlave.counter.publicUse = 39>><</if>>
+<<if $pedo_mode == 1>>
+	<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
+	<<set $activeSlaveOneTimeMaxAge = 18>>
+	<<set $activeSlave = GenerateNewSlave("XX")>>
+	<<set $activeSlave.sexualQuirk = "caring">>
+	<<set $activeSlave.intelligenceImplant = 15>>
+	<<if $activeSlave.physicalAge >= 12>>
+		<<set $activeSlave.teeth = "cosmetic braces">>
+	<</if>>
+	<<set $activeSlave.hips = 1>>
+	<<set $activeSlave.boobs = 2000>>
+	<<set $activeSlave.boobShape = "perky">>
+	<<set $activeSlave.geneticQuirks.macromastia = 2>>
+	<<set $activeSlave.butt = 4>>
+	<<set $activeSlave.voice = 3>>
 <<else>>
-	<<if $activeSlave.counter.publicUse>><<set $activeSlave.counter.publicUse += 13>><<else>><<set $activeSlave.counter.publicUse = 13>><</if>>
+	<<set $activeSlaveOneTimeMinAge = 25>>
+	<<set $activeSlaveOneTimeMaxAge = 42>>
+	<<set $activeSlave = GenerateNewSlave("XX")>>
+	<<set $activeSlave.anusTat = "bleached">>
+	<<set $activeSlave.height = random(165,190)>>
+	<<set $activeSlave.intelligenceImplant = 30>>
+	<<set $activeSlave.teeth = "normal">>
+	<<set $activeSlave.boobs += 400>>
+	<<set $activeSlave.butt += 1>>
+	<<set $activeSlave.stampTat = either("flowers", "tribal patterns")>>
 <</if>>
-
-<<else>>
-
-<<set $activeSlaveOneTimeMinAge = 25>>
-<<set $activeSlaveOneTimeMaxAge = 42>>
-<<set $activeSlave = GenerateNewSlave("XX")>>
 <<set $activeSlave.origin = "$He was captured while caring for those injured in a failed attack on the Free City.">>
 <<set $activeSlave.career = "a nurse">>
 <<set $activeSlave.custom.desc = "$He has a faint air of fatigue about $him, and strength too: that of a survivor.">>
 <<set $activeSlave.sexualFlaw = "none">>
 <<set $activeSlave.behavioralFlaw = "none">>
-<<set $activeSlave.anusTat = "bleached">>
 <<set $activeSlave.devotion = random(30,40)>>
 <<set $activeSlave.trust = $activeSlave.devotion-20>>
 <<set $activeSlave.oldDevotion = $activeSlave.devotion>>
 <<set $activeSlave.vagina = 2>>
 <<set $activeSlave.preg = -1>>
-<<set $activeSlave.height = random(165,190)>>
 <<set $activeSlave.muscles = random(20,50)>>
 <<set $activeSlave.ovaries = 1>>
 <<set $activeSlave.skill.vaginal = 35>>
@@ -74,14 +50,9 @@
 <<set $activeSlave.skill.whoring = 0>>
 <<set $activeSlave.skill.entertainment = 15>>
 <<set $activeSlave.intelligence = random(51,95)>>
-<<set $activeSlave.intelligenceImplant = 30>>
-<<set $activeSlave.teeth = "normal">>
 <<set $activeSlave.anus = 2>>
-<<set $activeSlave.boobs += 400>>
-<<set $activeSlave.butt += 1>>
 <<set $activeSlave.hStyle = "neat">>
 <<set $activeSlave.hLength = 35>>
-<<set $activeSlave.stampTat = either("flowers", "tribal patterns")>>
 <<set $activeSlave.health = random(20,40)>>
 <<if $mercenaries >= 3>>
 	<<if $activeSlave.counter.publicUse>><<set $activeSlave.counter.publicUse += 39>><<else>><<set $activeSlave.counter.publicUse = 39>><</if>>
@@ -89,8 +60,6 @@
 	<<if $activeSlave.counter.publicUse>><<set $activeSlave.counter.publicUse += 13>><<else>><<set $activeSlave.counter.publicUse = 13>><</if>>
 <</if>>
 
-<</if>>
-
 <span id="artFrame">
 	/* 000-250-006 */
 	<<if $seeImages == 1>>
@@ -109,7 +78,7 @@
 
 You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf.
 
-When you enter the lounge of their <<if $barracks>>barracks<<else>>main living area<</if>>, you see $activeSlave.slaveName kneeling next to a mercenary with most of his armor stripped off. $He's the <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> nurse they captured and enslaved, and $he seems to be doing pretty well in $his new life. $He seems to be checking the sutures on a minor wound to the man's flank.
+When you enter the lounge of their <<if $barracks>>barracks<<else>>main living area<</if>>, you see $activeSlave.slaveName kneeling next to a mercenary with most of his armor stripped off. $He's the <<print aNational($activeSlave.nationality)>> nurse they captured and enslaved, and $he seems to be doing pretty well in $his new life. $He seems to be checking the sutures on a minor wound to the man's flank.
 
 "Don't squirm!" $he says with an annoyed tone. "I'll get you off when I've checked this." He chuckles and holds still; $he redresses the wound, stands up, and strips off $his tank top, allowing $his huge tits to swing free. $He's quite young, but $his $activeSlave.skin body is appealingly curvy. As $he swings one leg across the seated mercenary, $he continues, "Please sit still and let me do the work. You need to take it easy for a day or two or you'll pop those sutures." Using $his hands, $he gently caresses his stiff prick with $his pillowy breasts, eliciting a grunt. $He's a strong $girl, and pleasures him without letting any of $his weight rest on his body at all. When he climaxes, $he leans in to clean him with $his mouth and then heads off to wash out $his cleavage.
 
@@ -117,7 +86,7 @@ When you enter the lounge of their <<if $barracks>>barracks<<else>>main living a
 
 You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf.
 
-When you enter the lounge of their <<if $barracks>>barracks<<else>>main living area<</if>>, you see $activeSlave.slaveName bending over a mercenary with most of his armor stripped off. $He's the <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> nurse they captured and enslaved, and $he seems to be doing pretty well in $his new life. $He seems to be checking the sutures on a minor wound to the man's flank.
+When you enter the lounge of their <<if $barracks>>barracks<<else>>main living area<</if>>, you see $activeSlave.slaveName bending over a mercenary with most of his armor stripped off. $He's the <<print aNational($activeSlave.nationality)>> nurse they captured and enslaved, and $he seems to be doing pretty well in $his new life. $He seems to be checking the sutures on a minor wound to the man's flank.
 
 "Don't squirm," $he says quietly. "I'll get you off when I've checked this." He chuckles and holds still; $he redresses the wound, stands up, and strips off $his fatigue pants. $He's no longer young, but $his $activeSlave.skin legs are pretty enough. As $he swings one leg across the seated mercenary, $he continues, "Please sit still and let me do the work. You need to take it easy for a day or two or you'll pop those sutures." Using a hand, $he guides $himself down onto his stiff prick, eliciting a grunt. $He's a strong $girl, and rides him without letting any of $his weight rest on his hips at all. When he climaxes, $he kneels to clean him with $his mouth and then heads off to wash.
 
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index 57afe35407a9ee4a0a471fd31bfec72bf855a612..fd7c3c9a16e7d3e8d84ed9f22f06651a2de5c980 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -183,7 +183,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 		<<run cashX(forceNeg($contractCost/2), "slaveTransfer", $activeSlave)>>
 		<<replace "#result">>
 		You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in. The inspector has a single moment to stiffen in shock at the sight before _he2 stiffens involuntarily due to the security drone tasing _him2 unconscious. It takes a few credits here and there to circumvent the Shelter's various legal and contractual defenses to prevent slaveowners from doing exactly what you're doing, but you finish the day richer by one more Fuckdoll. Odds are _he2 wants to be defiant, but the suit works perfectly and leaves _him2 no outlet to make _his2 thoughts known.
-		<<set $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels", $activeSlave.armAccessory="none", $activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.buttplug="none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1>>
+		<<run beginFuckdoll($activeSlave)>>
 		<<set $shelterAbuse += 10>>
 		<<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */
 		<<run newSlave($activeSlave)>> /* skip New Slave Intro */
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 5b41c5de7462a1dbd58ed824e75e0564ac0489bf..1dd06ee05cd078cd0faeca8ae5bf9e82112cdf90 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1747,7 +1747,7 @@ Work on $him structurally:
 	<<if $activeSlave.fuckdoll == 0>>
 		<br>$He is a normal sex slave, not a living sex toy.
 		<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-			[[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget = 0, $activeSlave.sentence = 0, $activeSlave.training = 0, $activeSlave.toyHole = "all her holes", $activeSlave.pubicHStyle = "waxed", $activeSlave.livingRules = "spare", $activeSlave.speechRules = "restrictive", $activeSlave.releaseRules = "restrictive", $activeSlave.relationshipRules = "restrictive", $activeSlave.fuckdoll = 1, $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "a Fuckdoll suit", $activeSlave.collar = "none", $activeSlave.shoes = "heels",$activeSlave.armAccessory = "none",$activeSlave.legAccessory = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.buttplug = "none", $activeSlave.attrKnown = 1, $activeSlave.fetishKnown = 1, $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0, $activeSlave.milkSource = 0, $activeSlave.cumSource = 0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him//
+			[[Encase in a Fuckdoll suit|Surgery Degradation][beginFuckdoll($activeSlave), $surgeryType = "fuckdoll"]] //This will greatly restrict $him//
 		<</if>>
 	<<else>>
 		<br>$He is encased in a Fuckdoll suit. [["Extract " + $him|Surgery Degradation][$activeSlave.fuckdoll = 0, $activeSlave.clothes = "no clothing", $activeSlave.shoes = "none", $surgeryType = "fuckdollExtraction"]]
diff --git a/src/uncategorized/saTakeClasses.tw b/src/uncategorized/saTakeClasses.tw
index a89a193792fce0ac7ed48dd1c3efc37ce9383b6e..cd571ec898610f1599727c14764eb5cd49c47b5f 100644
--- a/src/uncategorized/saTakeClasses.tw
+++ b/src/uncategorized/saTakeClasses.tw
@@ -221,7 +221,7 @@
 							<<set $slaves[$i].speechRules = "accent elimination">>
 						<</if>>
 					<<elseif ($slaves[$i].accent == 3)>>
-						$He has @@.green;learned functional $language,@@ and can make $himself understood, though $his $slaves[$i].nationality accent is still quite heavy.
+						$He has @@.green;learned functional $language,@@ and can make $himself understood, though $his <<print aNational($slaves[$i].nationality)>> accent is still quite heavy.
 						<<set $slaves[$i].accent -= 1>>
 					<</if>>
 				<<else>>
@@ -234,7 +234,7 @@
 							<</if>>
 						<</if>>
 					<<elseif ($slaves[$i].accent >= 2)>>
-						$He has @@.green;learned decent $language,@@ though $he retains enough of $his $slaves[$i].nationality accent to make $his voice distinctly sexy.
+						$He has @@.green;learned decent $language,@@ though $he retains enough of $his <<print aNational($slaves[$i].nationality)>> accent to make $his voice distinctly sexy.
 						<<set $slaves[$i].accent = 1>>
 					<</if>>
 				<</if>>
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index 0a83e2b4462e4a571e356bf903d67ca5f7d2ecaa..afc00fd28d13480f2cc2a8c8eda7013bd590e1d7 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -784,11 +784,11 @@ __Bids Received__
 	<br>''<<print cashFormat(_Price)>>'' from a citizen who pays creepily close attention to the state of $his health, and ignores everything else.
 	<<set _NewOwner = 1>>
 <<elseif ($activeSlave.nationality != 0) && (random(1,100) > 80)>>
-	<br>''<<print cashFormat(_Price)>>'' from a citizen with a special appetite for <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "Mosotho">>Basotho<<elseif $activeSlave.nationality == "Motswana">>Batswana<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> <<= $girl>>s.
+	<br>''<<print cashFormat(_Price)>>'' from a citizen with a special appetite for <<print moreNational($activeSlave.nationality)>> <<= $girl>>s.
 	<<set _NewOwner = 1>>
 <</if>>
 <<if _NewOwner == 1>>
-	<<link "Accept bid""Slave Sold">>
+	<<link "Accept bid" "Slave Sold">>
 		<<run cashX(_Price, "slaveTransfer")>>
 	<</link>>
 <</if>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 3d7b36f28f260dab3e686520e727958d80a0a6d0..04488ce8388bb3c27ca9250fc17f404ec20c0dc1 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -16610,7 +16610,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 		$He speaks $language in _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent<<if $activeSlave.speechRules == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
 	<<elseif $activeSlave.accent == 2>>
 		<<set _accent = either("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick")>>
-		$He speaks $language in _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
+		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
 	<<else>>
 		$He speaks little $language, but understands enough to be given orders.
 	<</if>>