diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index faee542935c8facd9df072af85cb6b606466b174..0c90088afa9445e90142d27f5958d7ad10410e53 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -749,7 +749,7 @@ Accepts int
 
 ageImplant:
 
-has has facial surgery to reduce age
+has had facial surgery to reduce age
 0 - no
 1 - yes
 
diff --git a/src/SpecialForce/CheatEdit.tw b/src/SpecialForce/CheatEdit.tw
index 2abf6d88bba52a9d0182e5b0e21def4624b50cce..b67c351099399d59634fa6ef4b1cd2e367f602b6 100644
--- a/src/SpecialForce/CheatEdit.tw
+++ b/src/SpecialForce/CheatEdit.tw
@@ -6,14 +6,16 @@
 <br>''Armory:'' <<textbox "$SF.Squad.Armoury" $SF.Squad.Armoury "CheatEdit">>/_AU
 <br>''Drug Lab:'' <<textbox "$SF.Squad.Drugs" $SF.Squad.Drugs "CheatEdit">>/_DrugsU
 <<if $SF.Squad.Firebase >= 2>>
-<br>''Drone Bay:'' <<textbox "$SF.Squad.Drones" $SF.Squad.Drones "CheatEdit">>/_DU<</if>>
+	<br>''Drone Bay:'' <<textbox "$SF.Squad.Drones" $SF.Squad.Drones "CheatEdit">>/_DU
+<</if>>
 
 <<if $SF.Squad.Firebase >= 1 && $terrain !== "oceanic">> <br><br>''Garage:''
 	<br>&nbsp;''Vehicles:''
 	<br>&nbsp;&nbsp;''Attack:'' <<textbox "$SF.Squad.AV" $SF.Squad.AV "CheatEdit">>/_AVU
 	<br>&nbsp;&nbsp;''Transport:'' <<textbox "$SF.Squad.TV" $SF.Squad.TV "CheatEdit">>/_TVU
 	<<if _T1>>
-	<br>&nbsp;''Prototype Goliath Tank:'' <<textbox "$SF.Squad.PGT" $SF.Squad.PGT "CheatEdit">>/_PGTU<</if>>
+		<br>&nbsp;''Prototype Goliath Tank:'' <<textbox "$SF.Squad.PGT" $SF.Squad.PGT "CheatEdit">>/_PGTU
+	<</if>>
 <</if>>
 
 <<if $SF.Squad.Firebase >= 4>> <br><br>''Hangar:''
@@ -21,15 +23,18 @@
 	<br>&nbsp;&nbsp;''Attack:'' <<textbox "$SF.Squad.AA" $SF.Squad.AA "CheatEdit">>/_AAU
 	<br>&nbsp;&nbsp;''Transport:'' <<textbox "$SF.Squad.TA" $SF.Squad.TA "CheatEdit">>/_TAU
 	<<if _T1>>
-	<br>&nbsp;''Spaceplane'': <<textbox "$SF.Squad.SpacePlane" $SF.Squad.SpacePlane "CheatEdit">>/_SPU
-	<br>&nbsp;''Gunship:'' <<textbox "$SF.Squad.GunS" $SF.Squad.GunS "CheatEdit">>/_GunSU
+		<br>&nbsp;''Spaceplane'': <<textbox "$SF.Squad.SpacePlane" $SF.Squad.SpacePlane "CheatEdit">>/_SPU
+		<br>&nbsp;''Gunship:'' <<textbox "$SF.Squad.GunS" $SF.Squad.GunS "CheatEdit">>/_GunSU
 		<br><br>''Launch Bay:''
 		<br>&nbsp;''Satellite:'' <<textbox "$SF.Squad.Satellite.lv" $SF.Squad.Satellite.lv "CheatEdit">>/_SatU
 		<<if $terrain !== "oceanic">>
-		<br>&nbsp;''Giant Robot:'' <<textbox "$SF.Squad.GiantRobot" $SF.Squad.GiantRobot "CheatEdit">>/_GRU<</if>>
+			<br>&nbsp;''Giant Robot:'' <<textbox "$SF.Squad.GiantRobot" $SF.Squad.GiantRobot "CheatEdit">>/_GRU
+		<</if>>
 		<br>&nbsp;''Cruise Missile:'' <<textbox "$SF.Squad.MissileSilo" $SF.Squad.MissileSilo "CheatEdit">>/_MSU
-<<if $terrain === "oceanic" || $terrain === "marine">> <br><br>''Naval Yard:''
-	<br>&nbsp;''Aircraft Carrier:'' <<textbox "$SF.Squad.AircraftCarrier" $SF.Squad.AircraftCarrier "CheatEdit">>/_ACU
-	<br>&nbsp;''Submarine:'' <<textbox "$SF.Squad.Sub" $SF.Squad.Sub "CheatEdit">>/_SubU
-	<br>&nbsp;''Amphibious Transport:'' <<textbox "$SF.Squad.HAT" $SF.Squad.HAT "CheatEdit">>/_HATU
-<</if>><</if>><</if>>
\ No newline at end of file
+		<<if $terrain === "oceanic" || $terrain === "marine">> <br><br>''Naval Yard:''
+			<br>&nbsp;''Aircraft Carrier:'' <<textbox "$SF.Squad.AircraftCarrier" $SF.Squad.AircraftCarrier "CheatEdit">>/_ACU
+			<br>&nbsp;''Submarine:'' <<textbox "$SF.Squad.Sub" $SF.Squad.Sub "CheatEdit">>/_SubU
+			<br>&nbsp;''Amphibious Transport:'' <<textbox "$SF.Squad.HAT" $SF.Squad.HAT "CheatEdit">>/_HATU
+		<</if>>
+	<</if>>
+<</if>>
\ No newline at end of file
diff --git a/src/SpecialForce/NamingColonel.tw b/src/SpecialForce/NamingColonel.tw
index 52b824280b3cffab8409299ce37df130246d6260..a6b7a33715803eece6215752456f74d325c7cb8f 100644
--- a/src/SpecialForce/NamingColonel.tw
+++ b/src/SpecialForce/NamingColonel.tw
@@ -71,7 +71,7 @@
 		<<if $PC.dick > 0>>
 			then force your cock roughly down her throat while you cum. She swallows as much as she can before pulling
 		<<else>>
-			 tightly with your thighs, pressing her face tightly against your pussy as you cum. When you release her, she pulls
+			tightly with your thighs, pressing her face tightly against your pussy as you cum. When you release her, she pulls
 		<</if>> away, coughing.
 
 		<br><br>
@@ -116,6 +116,6 @@
 	<<if $mercenaries > 1>>
 		Either way, I'll keep my hands off those mercs you've already installed. I figure that you've reasons for having two different death squads under contract.
 	<</if>>
-	<br><br>Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arco owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like.
+	<br><br>Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arc owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like.
 	<br><br>Talk to you later, boss.//
 <</if>>
\ No newline at end of file
diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw
index 7bdc653e619f71f97fa00086844ad1e357fbc7d0..72ca2c8bb32f7ad3d7694ec5aa4d74a9951ab7cb 100644
--- a/src/SpecialForce/Proposal.tw
+++ b/src/SpecialForce/Proposal.tw
@@ -20,7 +20,7 @@
 		<<set _price *= .75>>
 	<</if>>
 	<br><<link "Prepare for an announcement." "Security Force Naming-Colonel">>
-		 <<replace "#result">>
+		<<replace "#result">>
 			<<= App.SF.Init()>>
 			<<set $SF.IntroProgress = -1>>
 			<<run cashX(forceNeg(_price), "specialForces")>>
@@ -30,5 +30,5 @@
 		<<replace "#result">>
 			<<set $SF.Active = 0>>
 		<</replace>>
-	 <</link>>
+	<</link>>
 </span>
\ No newline at end of file
diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js
index 3b5cfcc48d636d7cd41eca3b65edfccda56b091c..ba43021aa0c6578b42c582d637ebef457d6aa90e 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/SpecialForce/SpecialForce.js
@@ -16,7 +16,7 @@ App.SF.Init = function() {
 	V.SF.Caps = V.SF.Caps || "The Special Force";
 	V.SF.Lower = V.SF.Lower || "the special force";
 	App.SF.AAR(0);
-	
+
 	if (V.SF.Squad === undefined) V.SF.Squad = {};
 	V.SF.Squad.Troops = V.SF.Squad.Troops || 40;
 	V.SF.Squad.Armoury = V.SF.Squad.Armoury || 0;
@@ -844,10 +844,10 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nEvery vehicle crew leader in the Firebase is an Elite, and is thus privy to the contents of these strategy meetings. As such, every vehicle crew has a great deal of power in determining their own armor kits and loadouts to best fit the tactics used for their next mission. Every crewman is handpicked, and every single vehicle unit is unique, with the only similarity being the common ground vehicle chassis types between them. Your tanker crews have been known to snatch victory from the jaws of defeat with the help of their unique and unpredictable individuality and unconventional unit compositions throughout their careers in your armor units. Inspired of these glorious service records, their offspring often choose to become vehicle crewmen themselves.\n`;
 					}
 					if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nThe hangar is a cavernous place, and when takeoffs and landings are not in progress there are many open spaces for gangs of ambitious air force understudies to gather around veterans and teachers and learn more about their craft, as well as lots of places to simply kick back with a good book and await the next summons for a CASEVAC, air assault, or assault support flight mission. At any given time, these open spaces are in heavy use by the the airmen and airwomen who are not busy at work here. The longest wall of the hangar is also host to a massive and beautiful mural altogether depicting all of the renowned aces and flight instructors the Firebase has known throughout its history thus far. While artful, this mural also holds the promise that through this multitude of Elite personnel, the hangar should always have a rich pool of skillful pilots and maintenance personnel for the good of the service.\n`;
+						text += `\nThe hangar is a cavernous place, and when takeoffs and landings are not in progress there are many open spaces for gangs of ambitious air force understudies to gather around veterans and teachers and learn more about their craft, as well as lots of places to simply kick back with a good book and await the next summons for a CASEVAC, air assault, or assault support flight mission. At any given time, these open spaces are in heavy use by the airmen and airwomen who are not busy at work here. The longest wall of the hangar is also host to a massive and beautiful mural altogether depicting all of the renowned aces and flight instructors the Firebase has known throughout its history thus far. While artful, this mural also holds the promise that through this multitude of Elite personnel, the hangar should always have a rich pool of skillful pilots and maintenance personnel for the good of the service.\n`;
 					}
 					if (textDisplay === 75 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nWithin the numerous transport aircraft of the hangar, a unique change can be found; since greater human quality is a focus and priority of the Firebase, the seating for passengers has has been completely replaced by rows of specialized transport pods; every passenger now has a life-support enabled, environmentally-sealed, shock-absorbent, blast-resistant, and fireproof individual pod to climb into and remain inside of until their aircraft arrives at their intended destination. These pods are welded into the interiors of every passenger section, leading to an extreme degree of passenger survivability, even when crashed or shot down by enemy fire, but at the cost of smaller troop payloads once the transport aircraft touch down. While it currently is uncomfortable for the troops, once the proud few, specially bred and registered children of the current generation of Firebase troops grow up and seek to follow in their parent's footsteps, these advanced 'seating' arrangements will be downright necessary to protect the lives of the Firebase's greatest and scarcest asset; it's Elite fighting personnel.\n`;
+						text += `\nWithin the numerous transport aircraft of the hangar, a unique change can be found; since greater human quality is a focus and priority of the Firebase, the seating for passengers has been completely replaced by rows of specialized transport pods; every passenger now has a life-support enabled, environmentally-sealed, shock-absorbent, blast-resistant, and fireproof individual pod to climb into and remain inside of until their aircraft arrives at their intended destination. These pods are welded into the interiors of every passenger section, leading to an extreme degree of passenger survivability, even when crashed or shot down by enemy fire, but at the cost of smaller troop payloads once the transport aircraft touch down. While it currently is uncomfortable for the troops, once the proud few, specially bred and registered children of the current generation of Firebase troops grow up and seek to follow in their parent's footsteps, these advanced 'seating' arrangements will be downright necessary to protect the lives of the Firebase's greatest and scarcest asset; it's Elite fighting personnel.\n`;
 					}
 					if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nNear the barracks, the residents of the Firebase are grateful to have the aid of the Aristocracy Academy. This impressively large and well-equipped facility is staffed with Elites from all over the arcology, and these impeccable men and women carry out all the services needed to help this place function as a part-time 'Finishing School' for all members of the Firebase; the curriculum specializes in training unkempt soldiers and staff to become proper ladies and gentlemen; how to dress, speak, behave, dance, and handle a wide variety of decidedly civilian scenarios in the classiest manner possible.\n`;
@@ -965,7 +965,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nOn the longest wall of the garage is a cartoonish motion picture illustration depicting quite a lovely, lavish scene; every fighting vehicle used in the Firebase is depicted as being on parade, streaming past the arcology in precise rows of vehicles that form an endless tide of disciplined armor units obviously on their way to their next victory. Flanking the armor columns are a long crowd of women throwing colorful flowers of all kinds\n`;
 					}
 					if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nYour crewmen feel very attached to the vehicles they have been given charge of, as as such every single vehicle is the garage has a feminine name and is affectionately regarded as 'female'. To celebrate this, every vehicle hull has been decorated with a beautiful high-resolution pin-up illustration of a unique, sexy, sassy, scantily-clad lady with her name (and thus that vehicle's name) drawn right next to her.\n`;
+						text += `\nYour crewmen feel very attached to the vehicles they have been given charge of, and as such every single vehicle is the garage has a feminine name and is affectionately regarded as 'female'. To celebrate this, every vehicle hull has been decorated with a beautiful high-resolution pin-up illustration of a unique, sexy, sassy, scantily-clad lady with her name (and thus that vehicle's name) drawn right next to her.\n`;
 					}
 					if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nWith its high-ceiling and many light fixtures, the hangar is distinctive in its appearance and function; the conventional overhead lighting has been replaced with elegant chandelier lighting that makes the work stations below perpetually look like tables at a classy gala. And in a way, they are. Well-stocked juice bars occupy the hangar's busier corners, while the bathroom's many stalls are kept spotless by a well-staffed janitorial outfit. An inviting but expensive deli-grocery shop and adjacent ATM machine lie near the entrance too, their clean presentation almost beckoning to the staff and pilots of the hangar to enter.\n`;
@@ -1027,7 +1027,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nIt is worth noting that the garage has taken on many characteristics of a sandy beach, harkening back to the amphibious landings of times both past and present. The entire garage floor is covered in a thick blanket of sand, complete with small sand dunes, patches of marram grass, rocky outcroppings, an enormous overhead fluorescent light fixture to mimic the sun, and even an artificial breeze from powerful new air filtration systems. Work stations are protectively sectioned off with hand-crafted wooden palisades, and vehicles are tended to on raised wooden platforms meant to help keep the sand out of the machinery. Meanwhile tiny communities of crabs, lobsters, frogs, and other natural amphibians gravitate towards the small refillable pool installed next to the far wall of the building.\n`;
 					}
 					if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nWithin the garage, extreme attention to detail is paid to the subject of camouflage. Every ground vehicle is camouflaged extremely well, with a hefty reserve supply of custom handmade and semi-adhesive frost, mud, foliage, rubble, and many other forms of concealment kept on stock at all times to tailor the appearance of each vehicle precisely to the mission. The staff of the the garage are some of the best vehicle camouflage outfitters in the world, and your ground vehicles are often not spotted by enemy combatants until it is far too late.\n`;
+						text += `\nWithin the garage, extreme attention to detail is paid to the subject of camouflage. Every ground vehicle is camouflaged extremely well, with a hefty reserve supply of custom handmade and semi-adhesive frost, mud, foliage, rubble, and many other forms of concealment kept on stock at all times to tailor the appearance of each vehicle precisely to the mission. The staff of the garage are some of the best vehicle camouflage outfitters in the world, and your ground vehicles are often not spotted by enemy combatants until it is far too late.\n`;
 					}
 					if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe floor of the hangar is a thick bed of rich, moist brown soil, complete with its own grass patches, stone footpaths, and flowerbeds. It is a lively place, and spaces that are not filled with clean and filtered air are rather filled with the smell of burning hemp and soft melodic music. The hangar's breakroom has become a yoga room, complete with hired instructors, and the various workstations often feature little potted plants that have been given pet names by the staff. Moss and vines are covering many of the walls in the hangar, with overgrowth being regularly pruned by on-slaves when there are no other duties to perform. The same can be said for the weeds that frequently crop up throughout the facility.\n`;
@@ -1446,7 +1446,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nCushioned couches, lounge chairs, and futons lie all around the armory, and on every last one of them lies a debriefed soldier sleeping off their last deployment with the help of some opium. Most of them haven't even bothered to change out of their fatigues, and many have their weapons and body armor strewn carelessly on the floor beside them. Further still, a few have their pants pulled down to their ankles, whilst an intoxicated slave-whore lazily rides them. Heavy smoke fills the air, and adjacent to the central quartermaster's booth is a tidy fast food bar where shots of soft drinks, small plates of fried foods, and tiny condiments are always in quick supply for those that the time to spare.\n`;
 					}
 					if (textDisplay === 40 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nThere are are drug platters, snack bowls, and punch bowls for every battle station of the command center. During combat maneuvers the staff here are especially ravenous, chugging down large amounts of substance while they send messages that carry power over life and death. The pressure to succeed and secure victory is high, and in order to cope, the staff consume.\n`;
+						text += `\nThere are drug platters, snack bowls, and punch bowls for every battle station of the command center. During combat maneuvers the staff here are especially ravenous, chugging down large amounts of substance while they send messages that carry power over life and death. The pressure to succeed and secure victory is high, and in order to cope, the staff consume.\n`;
 					}
 					if (textDisplay === 45 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe distribution point of the drug laboratory is an eerie place, with a very thick white mist for soldiers to stroll through on their way to the drug selection buffet. The mist is so dense and rich that many soldiers report feeling either high or buzzed after just a few minutes inside of it.\n`;
@@ -1499,7 +1499,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nSex toys, and a generous supply of snack bars, porn magazines, and electric cigarettes are issued to every cage inmate upon internment. The captives are free to relieve their anxieties at any time, and are encouraged to do so.\n`;
 					}
 					if (textDisplay === 25 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nThe smell of milk has slowly spread throughout the Firebase, especially in the vicinity of the open-air ranch on the northern outskirts of the common area. This place supplies most of the milk used in preparing Firebase meals. Here, dozens of diverse, prized slave-cows are lined up on adjustable milk racks and serviced by cheerful, seasoned farmers from around the arcology. Visiting soldiers are rewarded for hand-milking the cows themselves, with both a bottle of the free warm milk (or cum) they just squoze out and with permission to fuck a choice cow in any position they desire. It's a good deal, and this place is frequented quite a bit by men who like milky tits and women who like the huge bull-dicks.\n`;
+						text += `\nThe smell of milk has slowly spread throughout the Firebase, especially in the vicinity of the open-air ranch on the northern outskirts of the common area. This place supplies most of the milk used in preparing Firebase meals. Here, dozens of diverse, prized slave-cows are lined up on adjustable milk racks and serviced by cheerful, seasoned farmers from around the arcology. Visiting soldiers are rewarded for hand-milking the cows themselves, with both a bottle of the free warm milk (or cum) they just squeezed out and with permission to fuck a choice cow in any position they desire. It's a good deal, and this place is frequented quite a bit by men who like milky tits and women who like the huge bull-dicks.\n`;
 					}
 					if (textDisplay === 30 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nTroop bedding is clearly separated by drawn boundaries on the ground every 50 bunks, and for good reason: For every 50 troops, there is a designated slave cow assigned to service them and only them. During mornings and evenings, these cows wander along their assigned bunks to attend to the physical needs of their soldiers, be those needs sexual or nutritional.\n`;
@@ -1523,7 +1523,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nThe garage resembles a large farm's toolshed, only this toolshed is very big, and it definitely has more than one tractor. Most of the walls of the garage have been covered with decorative wooden planks to resemble the walls of a barn, as have most of its tables and counterspaces. Duty stations have been separated by imperfect high wooden gates and fences as well, to give the impression of having 'stables' for the various vehicle 'steeds' around as well. Naturally, there are a few cows tied down to some of the workstations, next to wooden tables stacked with cups. After all what hardworking mechanics doesn't want a sweet warm glass of milk after completing a job well done?\n`;
 					}
 					if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nTo their good credit, the mechanics have also managed to affix compact chilled human milk dispensers to the interiors of the ground vehicles too. The seating for pilots have been reupholstered with tanned hide materials upon request, many of the the interiors have been repainted with farmland or bovine designs, and even the floors have been given a light blanket of straw covering.\n`;
+						text += `\nTo their good credit, the mechanics have also managed to affix compact chilled human milk dispensers to the interiors of the ground vehicles too. The seating for pilots have been reupholstered with tanned hide materials upon request, many of the interiors have been repainted with farmland or bovine designs, and even the floors have been given a light blanket of straw covering.\n`;
 					}
 					if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe hangar's appearance is somewhat reminiscent of that of improvised rural airfields of the sort found in farmland countrysides all over the world; tall rows of crops and ploughed fields of dirt now surround or flank the runways and landing pads of the hangar, while the walls themselves are mostly covered in an active illustration wallpaper that depicts the outdoor sky in colors that change to reflect the actual time of day.\n`;
@@ -1656,10 +1656,10 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nUnbeknownst to the variety of non-hostile actors that your aircraft must pass overhead in order to reach their next mission, your selected personal favorite quotes, books & articles excerpts, and works of art taken from your multiculturalist collection are diligently inscribed onto every inch the interior of the aircrafts' cockpits and passenger sections, where vehicle occupants can see them and have their resolve and conviction bolstered by them before and after battle. The ceilings of each aircraft's interior must be scrubbed clean of soot every week as well, since thick and tall imported wax candles are burnt inside of the aircraft interiors during all hours of aircraft operation in remembrance of every pilot and passenger that has died while operating from that aircraft.\n`;
 					}
 					if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nA grand supermarket now occupies the prime area behind the common area. The familiar architecture of the structure, combined with the highly prolific paint scheme and globalized interior decoration, makes the building itself acheive a certain rapport with all who enter. The layout of the building is complex, with sections for buying international delicacy foods, rows of racks for shoppers to buy rare and specialized tools and trinkets, and platforms for customers to browse all manner of Free Cities and Old World apparels, luxury cars, exotic pets, and many other amusements. It is also a place of great finds; highly coveted niche publications and artworks are on offer in the less frequented corners, and huge high resolution wallscreens adorn the walls and ceilings as they illustrate the newest products and clearance sales on offer. Everyday, upbeat music and audio adverts can be heard from within the building, inviting all to come and partake of the fun within. There is no doubt that this place serves as the centerpiece to the Firebase's materialistic culture.\n`;
+						text += `\nA grand supermarket now occupies the prime area behind the common area. The familiar architecture of the structure, combined with the highly prolific paint scheme and globalized interior decoration, makes the building itself achieve a certain rapport with all who enter. The layout of the building is complex, with sections for buying international delicacy foods, rows of racks for shoppers to buy rare and specialized tools and trinkets, and platforms for customers to browse all manner of Free Cities and Old World apparels, luxury cars, exotic pets, and many other amusements. It is also a place of great finds; highly coveted niche publications and artworks are on offer in the less frequented corners, and huge high resolution wallscreens adorn the walls and ceilings as they illustrate the newest products and clearance sales on offer. Everyday, upbeat music and audio adverts can be heard from within the building, inviting all to come and partake of the fun within. There is no doubt that this place serves as the centerpiece to the Firebase's materialistic culture.\n`;
 					}
 					if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nA carefully paved world-class swimming pool occupies the exterior of the Firebase, with an intergrated water heater, several water slides, and even a built-in waterfall. The pool and its surrounding platform plays host to the regular pool parties and swimming competitions that are open to all soldiers and staff that have some free time. Laughter can frequently be heard from the swimwear-clad partygoers as they hang out and socialize here.\n`;
+						text += `\nA carefully paved world-class swimming pool occupies the exterior of the Firebase, with an integrated water heater, several water slides, and even a built-in waterfall. The pool and its surrounding platform plays host to the regular pool parties and swimming competitions that are open to all soldiers and staff that have some free time. Laughter can frequently be heard from the swimwear-clad partygoers as they hang out and socialize here.\n`;
 					}
 					if (textDisplay === 90 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nLenghty, good-spirited debates and competitions have become regular activities in the Firebase, and that is to be expected. Your exciting, inclusive tolerant, and artistic multiculture fills a void within your warriors that killing, drugging, and whoring do not. For many it provides new outlooks on life, for those that delve deep enough, it provides novel reams of worldly wisdom. Rather than take up space in cemeteries, the bodies of your fallen are promptly cremated to make more room for the living. Every week, ceremonies are held in honor of Life itself. Sanctioned protocols for properly interacting with non-hostile civilians, soldiers, and slaves from foreign countries and arcologies are taught consistently throughout basic training alongside the conventional curricula, which has so far worked well in avoiding faux pas that could have lead to needless conflict with members of other cultures. Soldiers and staff can be heard humming internationally-popular songs or quietly chanting military cadences as they clean weapons and tools, get dressed, move about, and perform many other typical tasks, including fucking. Quite a few officers and NCO's double as language teachers too, and trained interpreters are a coveted addition to any platoon that doesn't already have one. It is common for deployed troops to exchange gifts with one another before mounting up and heading for battle, and as you see a fully kitted infantry section huddled around an ornate tree right now, you are confident that the globalization effort has succeeded.\n`;
@@ -1670,7 +1670,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 					break;
 				case 'Slimness_Enthusiasm':
 					if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) {
-						text += `\nIn celebration of Slimness Enthusiasm, you've gifted the Colonel with her very own fleet of small single-seater reconnaissance buggies, all made from extremely lightweight-yet-durable alloys, and precisely engineered miniature nuclear reactors meant to allow each vehicle in the fleet to achieve obscene speeds in the field in all terrains. They even come with roof hardpoint mounts for mounting light remote-operated weapons. Thanks to their stellar support systems they also ensure driver safety and orientation during use, reliably absorbing and redistributing the energy received from the the multitude of shocks, bounces, g-forces, jolts, jumps, and other maneuverability hiccups that would make these vehicles impossible to handle without them. All that being said, they are very fun to drive and eventually master. Also, their extreme mobility, tiny target profiles, quiet engines, and ease of camouflage all make them excellent recon vehicles for the Colonel and her friends to use for races, scouting missions, and raids whenever things in the Firebase get too boring.\n`;
+						text += `\nIn celebration of Slimness Enthusiasm, you've gifted the Colonel with her very own fleet of small single-seater reconnaissance buggies, all made from extremely lightweight-yet-durable alloys, and precisely engineered miniature nuclear reactors meant to allow each vehicle in the fleet to achieve obscene speeds in the field in all terrains. They even come with roof hardpoint mounts for mounting light remote-operated weapons. Thanks to their stellar support systems they also ensure driver safety and orientation during use, reliably absorbing and redistributing the energy received from the multitude of shocks, bounces, g-forces, jolts, jumps, and other maneuverability hiccups that would make these vehicles impossible to handle without them. All that being said, they are very fun to drive and eventually master. Also, their extreme mobility, tiny target profiles, quiet engines, and ease of camouflage all make them excellent recon vehicles for the Colonel and her friends to use for races, scouting missions, and raids whenever things in the Firebase get too boring.\n`;
 					}
 					if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe meals are prepared and presented as low-calorie or even calorie-free, stripping fatty content wherever possible. Smaller portions and slices than market standard are not uncommon either.\n`;
@@ -1756,7 +1756,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nThe men and women of the Firebase are always encouraged to expand upon their weaponry, and for most, the armory is the place to do exactly that. In the center of the armory lies a massive table that hosts a dizzying and splendid assortment of magnetic picatinny rails, huge under-barrel shotguns or grenade launchers, tritium iron sights, broad and adjustable laser sights, large zoomable scopes, collapsible tactical bipods and tripods, extended or reinforced gun barrels, adjustable stocks, extended magazines, massive drum magazines, terrifyingly large bayonets and combat knives, bulky grenades with extra fragmentation effects, and so on, and so forth. Troops are encouraged to pile as many attachments and accessories onto their weapons as practically possible, and by the time they are done, you could swear that their weapons are almost as big as they are.\n`;
 					}
 					if (textDisplay === 40 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nBattlestations within the command center are twice as tall as they were before, due to the implementation of universal equipment redundancies. Every wall-mounted machine, holographic operations table, computer console, digital archive, and backup hard drive has been bolstered with the existence of new identical back up copies, ensuring that no data is lost should some terrible accident, physical attack, or cyber breach occur. These backups have been been stacked vertically to avoid taking up precious floorspace.\n`;
+						text += `\nBattlestations within the command center are twice as tall as they were before, due to the implementation of universal equipment redundancies. Every wall-mounted machine, holographic operations table, computer console, digital archive, and backup hard drive has been bolstered with the existence of new identical back up copies, ensuring that no data is lost should some terrible accident, physical attack, or cyber breach occur. These backups have been stacked vertically to avoid taking up precious floorspace.\n`;
 					}
 					if (textDisplay === 45 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe drug lab facility has a built-up topless bar extension where off duty personnel can come and drink themselves silly. All manner of typical bar snacks and games can be found, with darts, beer pong, and other games of marksmanship being particularly popular. Of course, the men will sometimes tire of these games and decide to play with one of the numerous big-tittied barmaids instead. Spicing up the festivities is the abundance of newfangled trial drugs freely given to those who come, since your chemical engineers are happy to let bar patrons be their second test population for the effects of their newer substances. After each event, lots of empty syringes and spilt beer alike can be seen all over the floors.\n`;
@@ -1833,7 +1833,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nThe garage, also known as the Stabula Machinis, is filled with noise of mechanicuses performing check-ups, upgrades, and repairs on your vehicles, making sure that Roman engineering is still the best in the world.\n`;
 					}
 					if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nParticular vehicles within the garage have been painted and modified to look more like quadrigas of old, with four horse heads and intricate reliefs of weels.\n`;
+						text += `\nParticular vehicles within the garage have been painted and modified to look more like quadrigas of old, with four horse heads and intricate reliefs of wheels.\n`;
 					}
 					if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nThe hangar, also known as the Aer Navale, is filled with noise of mechanicuses performing check-ups, upgrades, and repairs on your aircraft, while the stalwart nauta caeli prepare for their next flight to ensure your dominance.\n`;
@@ -1945,7 +1945,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nThe command center is monumental, adorned with hieroglyphs and depictions of the Gods and great battles in the history of Kemet, and hieroglyphic wall inscriptions praising loyalty to the Pharaoh and glorifying him.\n`;
 					}
 					if (textDisplay === 45 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nMeanwhile, the local Temple of Imhotep srves as a place of healing and enhancement, where miracles of cutting-edge modern medicine as well as more traditional cures are available for your nakhtu-aa.\n`;
+						text += `\nMeanwhile, the local Temple of Imhotep serves as a place of healing and enhancement, where miracles of cutting-edge modern medicine as well as more traditional cures are available for your nakhtu-aa.\n`;
 					}
 					if (textDisplay === 50 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nElaborate jewelry, luxurious tunics, wigs, and even burning perfume cones have become popular fashion trends for off-duty personnel to wear in between missions.\n`;
@@ -2158,7 +2158,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 						text += `\nOutside the Firebase gates, a majestic walled perimeter has been carefully erected so as to make the outside grounds of the Firebase more closely resemble the Forbidden City; a broad garden of bright yellow chrysanthemums, a heavily reinforced stone roadway with accompanying stone footpaths, finely sanded wooden benches and fences, and brightly colored walls and gates greet any who would presume to enter or exit the Firebase domain... Besides you, of course.\n`;
 					}
 					if (textDisplay === 90 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
-						text += `\nYour soldiers put in effort carry themselves in a manner befitting such a communal setting; they are cooperative, diligent, and disciplined at all times. They identify first and formost as warriors of 'the emperor', and are proud to have a powerful empire such as your arcology to call home and fight for. In their personal dealings, they do their best to handle most affairs using the esteemed Mandarin dialect, and they avoid unseemly things like disloyalty, foolishness, and dishonor like the plagues that they are. These are true Imperial men and women, and they will relentlessly carry your society into the future as they fight to impress your name upon both Heaven and Earth themselves.\n`;
+						text += `\nYour soldiers put in effort carry themselves in a manner befitting such a communal setting; they are cooperative, diligent, and disciplined at all times. They identify first and foremost as warriors of 'the emperor', and are proud to have a powerful empire such as your arcology to call home and fight for. In their personal dealings, they do their best to handle most affairs using the esteemed Mandarin dialect, and they avoid unseemly things like disloyalty, foolishness, and dishonor like the plagues that they are. These are true Imperial men and women, and they will relentlessly carry your society into the future as they fight to impress your name upon both Heaven and Earth themselves.\n`;
 					}
 					if (textDisplay === 100 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) {
 						text += `\nChinese Revivalism: Sometimes when The Colonel is relaxing or just making her rounds in the Firebase, you'll see her wearing a long qipao cut high along the sides for ease of movement. She is known to prefer going commando, and the slits sometimes part to tease what's underneath for anyone watching her. She keeps a number of intelligent eunuchs in her company often, and they usually scurry along behind her to record everything that she says and does for later review. Her pavilion is lavishly furnished and concubines wait on her hand and foot when she rests. Her combat battledress now features lacquered armor and a golden burnished helm signifying her position as leader.\n`;
@@ -2227,7 +2227,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 				r += `Finally weary of your constant intrusions into her territory and crew, The Colonel gathers up her people for a full scale liquidation and dispersal of personnel and assets throughout the Free City itself; they are going to discreetly sell off the majority of their military hardware, assume new identities and melt into the fabric of the Free City's wider population. Gone are the days of plunder and dominion, as this retirement plan will make many of them some of the wealthiest tenants in the entire Free City, and they will no longer need to break their backs living the lives of soldiers. With the liquidation complete and the money distributed, the army moves on to the net stage of the plan.`;
 				r += `\nAt midnight, the lights are the first thing the Colonel's forces disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens panic almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Her army moves fast and quietly throughout the arcology and the streets outside of it, slipping through your security units and drones with an ease that stinks of months of careful planning and study. Most disturbingly, your penthouse's communications networks are all but destroyed, and your PA has been unreachable, seemingly hacked by some obscure technology you figure only the Colonel's contacts and few others could provide.`;
 				r += `\nOutside, her many aircraft escape the local airspace to patrol the Arcology outskirts, evading recon scans, the monitoring systems of your secured penthouse, and the feeble attempts of your sentries to shoot them down. A great many of them will be escaping by air, it seems. Many are escaping by land too: Swarms of personnel carriers and utility trucks are driving off to neighboring arcologies or even neighboring Free Cities by the dozens for retirement, as the remainder of her army purchase new apartments and properties in various arcologies nearby while being dressed in civilian clothing. After just a few days, the entire army has essentially disappeared, hopelessly obscured by mountains of digital noise, detailed fake backstories, lavish fake identities, and lots of bribes and carefully destroyed digital and physical records. Your special force has gone completely AWOL and there is nothing you or anyone can do about it. It seems your experienced former warriors have a eye for deception too.`;
-				r += `\nYou are trapped inside your Penthouse by the electricity-cutting digital virus that has kept you inside and communicatively isolated for the past week. Probably with the goal of keeping you in the dark, figuratively and literally, so that you could not intervene in the The Colonel's total assimilation into the Free Cities. The lazy bitch did not want to cooperate with your Future Societies plans, so she and her men decided to stop being soldiers altogether, and live off of their savings. Your only relief comes at the midnight of the seventh day, when the virus self-terminates and the arcology's electricity, PA, and communications lines return to full functioning.`;
+				r += `\nYou are trapped inside your Penthouse by the electricity-cutting digital virus that has kept you inside and communicatively isolated for the past week. Probably with the goal of keeping you in the dark, figuratively and literally, so that you could not intervene in The Colonel's total assimilation into the Free Cities. The lazy bitch did not want to cooperate with your Future Societies plans, so she and her men decided to stop being soldiers altogether, and live off of their savings. Your only relief comes at the midnight of the seventh day, when the virus self-terminates and the arcology's electricity, PA, and communications lines return to full functioning.`;
 				r += `\nYour arcology is once more yours, but your people will never forget the troubling week they spent in total darkness and lockdown, or the sudden mass desertion and disappearance of the army that you convinced them to allow, or the fact that there was nothing you could do to prevent or mitigate any of it.`;
 				break;
 			case "Shell-Shocked":
@@ -2980,7 +2980,7 @@ App.SF.UnitText = function(input) {
 		turret = ``;
 
 	let B = `has been recommissioned for use by ${V.SF.Lower}. They`;
-	let C = `, mechanics are giving the new purchases a final tuneup`;
+	let C = `, mechanics are giving the new purchases a final tune-up`;
 	let squad = `a squad`,
 		G1 = `20`,
 		G2 = `in a firefight`;
diff --git a/src/SpecialForce/WeeklyChoices.tw b/src/SpecialForce/WeeklyChoices.tw
index 4ebdc86b41004fdbd2bbe9adcd51e67a8c0fd547..6456bc9a421ca7d1047b54412a48b8d5d9ab888e 100644
--- a/src/SpecialForce/WeeklyChoices.tw
+++ b/src/SpecialForce/WeeklyChoices.tw
@@ -92,7 +92,7 @@
 				pastoralist shop, helping the Colonel select a more comfortable breast pump.
 			<<else>>
 				shop that catches the Colonel's eye.
-			 <</if>>
+			<</if>>
 			<<if $PC.slaving >= 100 && $PC.career == "slaver">>
 				Your mastery and extensive history of slaving allows you to assist the Colonel greatly. The shop owner is so impressed by your understanding of slavery that she asks you for some advice. Before you leave, you manage to pass on a few tips, helping the business with future customers.
 				<<if $arcologies[0].prosperity < $AProsperityCap>> <<set $arcologies[0].prosperity++>> <</if>>
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index e36c6b3e5bff089e0e223d6fb82c2bf6f6c0c651..5062946543e1038306b3abb3a9de40552a59ecee 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -574,7 +574,7 @@ App.UI.jobLinks = function() {
 
 	/**
 	 * Generates assignment links
-	 * @param {number} index index in the slaves array or -1 for the activeSlave
+	 * @param {number} index in the slaves array or -1 for the activeSlave
 	 * @param {string} [passage] optional next passage to go to
 	 * @param {linkCallback} [callback]
 	 * @returns {string}
diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js
index 7ec26382f744753422e2de43523dfa5ce2203e35..30bf3581877c2c6367f0efb9d9a962e06371e20c 100644
--- a/src/js/generateMarketSlave.js
+++ b/src/js/generateMarketSlave.js
@@ -2039,11 +2039,11 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			V.activeSlave.balls = 0;
 			V.activeSlave.preg = 0;
 			V.activeSlave.eyebrowHStyle = "bald";
-			V.activeSlave.armpitHStyle = "bald";
+			V.activeSlave.underArmHStyle = "bald";
 			V.activeSlave.pubicHStyle = "bald";
 			V.activeSlave.hStyle = "bald";
 			V.activeSlave.behavioralFlaw = jsEither(["none", "odd"]);
-			V.activeSlave.customTat = "$He has the abstract symbol of Nueva Universidad de Libertad tattooed on $his left shoulder.";
+			V.activeSlave.custom.tattoo = "$He has the abstract symbol of Nueva Universidad de Libertad tattooed on $his left shoulder.";
 			break;
 		case "gangs and smugglers":
 			if (V.pedo_mode === 1) {
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index 6b04b24f99cf3173f0c57f62b848eb9f1594312f..8ceaa342ce25b7533fe5c5ba70fae058ce4d85bd 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -976,19 +976,19 @@ window.num = function(x) {
 	const SCALES = ["thousand", "million", "billion", "trillion"];
 
 	/**
-	 * helper function for use with Array.filter
-	 * @param {any} item
-	 * @returns {boolean}
-	 */
+	* helper function for use with Array.filter
+	* @param {any} item
+	* @returns {boolean}
+	*/
 	function isTruthy(item) {
 		return !!item;
 	}
 
 	/**
-	 * convert a number into "chunks" of 0-999
-	 * @param {number} number
-	 * @returns {number[]}
-	 */
+	* convert a number into "chunks" of 0-999
+	* @param {number} number
+	* @returns {number[]}
+	*/
 	function chunk(number) {
 		const thousands = [];
 
@@ -1001,10 +1001,10 @@ window.num = function(x) {
 	}
 
 	/**
-	 * translate a number from 1-999 into English
-	 * @param {number} number
-	 * @returns {string}
-	 */
+	* translate a number from 1-999 into English
+	* @param {number} number
+	* @returns {string}
+	*/
 	function inEnglish(number) {
 		let hundreds;
 		let tens;
@@ -1034,11 +1034,11 @@ window.num = function(x) {
 	}
 
 	/**
-	 * append the word for a scale. Made for use with Array.map
-	 * @param {string} chunk
-	 * @param {number} exp
-	 * @returns {string}
-	 */
+	* append the word for a scale. Made for use with Array.map
+	* @param {string} chunk
+	* @param {number} exp
+	* @returns {string}
+	*/
 	function appendScale(chunk, exp) {
 		let scale;
 		if (!chunk) {
@@ -1049,9 +1049,9 @@ window.num = function(x) {
 	}
 
 	/**
-	 * @param {number} s
-	 * @returns {string}
-	 */
+	* @param {number} s
+	* @returns {string}
+	*/
 	function commaNum(s) {
 		if (!s) {
 			return "0";
diff --git a/src/npc/agent/agentFramework.js b/src/npc/agent/agentFramework.js
index aa5e80c1b78cd8ffedd3b3894d2409dbbb048f97..2dff5de1bf1e6b39c7f99df83735fee336d91526 100644
--- a/src/npc/agent/agentFramework.js
+++ b/src/npc/agent/agentFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.arcologyAgent = {
 	genericName: null,
 	jobs: {
 		agentsSlave: {
-			position: "agents's toy",
+			position: "agent's toy",
 			assignment: "live with your agent",
 			publicSexUse: true,
 			fuckdollAccepted: false
@@ -29,9 +29,9 @@ App.Data.Facilities.arcologyAgent = {
 
 App.Entity.Facilities.AgentJob = class extends App.Entity.Facilities.ManagingJob {
 	/**
-	 * @param {App.Entity.SlaveState} slave
-	 * @returns {string[]}
-	 */
+	* @param {App.Entity.SlaveState} slave
+	* @returns {string[]}
+	*/
 	canEmploy(slave) {
 		let r = super.canEmploy(slave);
 		if (slave.intelligence + slave.intelligenceImplant <= 15) {
diff --git a/src/npc/fDance.tw b/src/npc/fDance.tw
index 388fa4b9e8b93804fb4960aa4088f42d027b0636..64921408944fc39f567116f082b880e02e0f3167 100644
--- a/src/npc/fDance.tw
+++ b/src/npc/fDance.tw
@@ -366,7 +366,7 @@ But it's not over yet. You tell your slave that it's time to incorporate some st
 <<elseif ($activeSlave.sexualFlaw == "attention whore")>>
 	As an attention whore, this is what $he lives for.
 	<<if ($activeSlave.skill.entertainment >= 99)>>
-		Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. Being a an attention whore, $he is obsessed with attracting the sexual arousal of others. $He begins by writhing $his hips and rolling $his ass. $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose, even though $he is also fulfilled by the event $he knows that your desire is all that matters. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free.
+		Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. Being an attention whore, $he is obsessed with attracting the sexual arousal of others. $He begins by writhing $his hips and rolling $his ass. $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose, even though $he is also fulfilled by the event $he knows that your desire is all that matters. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free.
 	<<elseif ($activeSlave.skill.entertainment >= 60)>>
 		Your slave is a skilled entertainer, well above average. Being an attention whore, $he is obsessed with attracting the sexual arousal of others. $He begins by writhing $his hips and rolling $his ass. $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He surely wishes $he were a better entertainer so you would call on $him to strip more often.
 	<<elseif ($activeSlave.skill.entertainment >= 40)>>
diff --git a/src/npc/fPCImpreg.tw b/src/npc/fPCImpreg.tw
index 8b4e7fe90c5334d576044fc5a1ac7f56bcc8adc7..4425c140df1e0bc6b0080861583e80e3408420fe 100644
--- a/src/npc/fPCImpreg.tw
+++ b/src/npc/fPCImpreg.tw
@@ -132,7 +132,7 @@ You call $him over so you can
 	<<else>>
 		You take $him from behind against your desk. $He steadies $himself as $he feels your hands roaming across $his _belly belly. As the sex reaches its climax, $his breaths grow short and $his moans passionate. $He pushed against you,
 	<</if>>
-	 As the sex reaches its climax your semen<<if $PC.balls == 3>> fills $him until $his stomach is distended and wobbling with your cum<<elseif $PC.balls == 2>> pours into $him until $he is stuffed with your cum<<elseif $PC.balls == 1>> pours into $him<<else>> jets into $his welcoming depths<</if>> as $he begs you to use $his unworthy body to make a new slave.
+	As the sex reaches its climax your semen<<if $PC.balls == 3>> fills $him until $his stomach is distended and wobbling with your cum<<elseif $PC.balls == 2>> pours into $him until $he is stuffed with your cum<<elseif $PC.balls == 1>> pours into $him<<else>> jets into $his welcoming depths<</if>> as $he begs you to use $his unworthy body to make a new slave.
 <<elseif $activeSlave.devotion < -20>>
 	$He tries to refuse, so you bend the disobedient slave over your desk and take $him hard from behind. $His breasts slide back and forth across the desk. You give $his buttocks some nice hard swats as you pound $him. $He grunts and moans but knows better than to try to get away. $He begs you not to cum inside $him, knowing $he's fertile, and sobs when $he feels you<<if $PC.balls == 3>> filling $him until $his stomach is distended and wobbling with your cum<<elseif $PC.balls == 2>> pouring into $him until $he is stuffed with your cum<<elseif $PC.balls == 1>> pouring into $him<<else>> blow your load<</if>> despite $his pleas.
 <<elseif $activeSlave.devotion <= 20>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 64ab29229e4c19377646f55dee4ee3e9146f4457..0f03cc9220dd1712c3c1281f5428d02cb5076c05 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -9878,7 +9878,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<<else>>
 				to plan $his pregnancies.
 			<</if>>
-			 They'll happen when they happen, and until then $he'll take it up the butt like a good slut. $He @@.gold;nods and wipes $his eyes@@ even as
+			They'll happen when they happen, and until then $he'll take it up the butt like a good slut. $He @@.gold;nods and wipes $his eyes@@ even as
 			<<if ($activeSlave.anus == 1)>>
 				$he grimaces involuntarily at your painful use of $his tight butthole.
 			<<elseif ($activeSlave.anus == 2)>>
diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw
index d8e0843c6167e6dd2e87cad40cf2019ad73bfdee..6f372e433b9a4934bb8f18f3d9ce6e27d1a866c2 100644
--- a/src/uncategorized/brothelReport.tw
+++ b/src/uncategorized/brothelReport.tw
@@ -200,7 +200,7 @@
 			<<else>>
 				<<run saWhore($slaves[$i])>>
 			<</if>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;$He whores $himself because $he doesn't have enough whores to manage to keep $him busy, and makes @@.yellowgreen;<<print cashFormat($Madam.lastWeeksCashIncome)>>@@. $He can charge more for $his time, since many citizens find it erotic to fuck the Madam.
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;$He whores $himself because $he doesn't have enough whores to manage to keep $him busy, and makes @@.yellowgreen;<<print cashFormat($Madam.lastWeeksCashIncome)>>.@@ $He can charge more for $his time, since many citizens find it erotic to fuck the Madam.
 			<<set _profits += $cash-_oldCash, _oldCash = $cash>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 7077045e3b8bb8d3e705b383f0e3301510bd60c6..d356b58a95ece518d12c6492f77f4b1de11b2378 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -192,7 +192,7 @@
 		<</if>>
 	<</if>>
 	<<if $slaves[_i].missingLegs == 3>>
-		<<set $slaves[_i].heels = 0, $slaves[_i].shoes = "none", $slaves[_i].legsAccessory = "none", $slaves[_i].legsTat = 0,  $slaves[_i].heightImplant = 0>>
+		<<set $slaves[_i].heels = 0, $slaves[_i].shoes = "none", $slaves[_i].legAccessory = "none", $slaves[_i].legsTat = 0,  $slaves[_i].heightImplant = 0>>
 		<<if (["ankles", "calves", "feet", "left ankle", "left calf", "left foot", "left thigh", "right ankle", "right calf", "right foot", "right thigh", "thighs"]includes($slaves[_i].brandLocation))>>
 			<<set $slaves[_i].brand = 0>>
 			<<set $slaves[_i].brandLocation = 0>>
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
index 53b1c01c423af4d7ff094d43275c1b6159bbeb91..bbe8026d2aaedd115e7e051f275145e91a739d86 100644
--- a/src/uncategorized/nonRandomEvent.tw
+++ b/src/uncategorized/nonRandomEvent.tw
@@ -173,7 +173,7 @@
 	<<goto "secExpSmilingMan">>
 <<elseif $rivalOwner == 0 && $smilingManProgress == 3 && $secExp == 1>>
 	<<goto "secExpSmilingMan">>
-<<elseif ($rivalOwner == 0) && ($FCNNstation == 0) && ($week > 95) && ($cash > 200000) && ($rep > 7500)>>
+<<elseif ($rivalOwner == 0) && ($seeFCNN == 1) && ($FCNNstation == 0) && ($week > 95) && ($cash > 200000) && ($rep > 7500)>>
 	<<goto "SE FCNN Station">>
 <<else>>
 	<<if random(1,100) > _effectiveWeek+25>>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index e26273731199d5d141b9432c4d69a81d3d34f08c..87ff5f61f9ef566ebef0d60a847c8e0e82850c59 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -95,7 +95,7 @@ Image display
 		<</if>><br>
 		Clothing erection bulges
 		<<if $showClothingErection>>
-			@@.cyan;ENABLED@@. [[Disable|Options][$showClothingErection = 0]]
+			@@.cyan;ENABLED.@@ [[Disable|Options][$showClothingErection = 0]]
 		<<else>>
 			@@.red;DISABLED.@@ [[Enable|Options][$showClothingErection = 1]]
 		<</if>>
diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw
index 97a274340dcc6be80293e405a589af47439dbb05..69841a11dcc3aa795f3037bb3630db41b560325b 100644
--- a/src/uncategorized/recETS.tw
+++ b/src/uncategorized/recETS.tw
@@ -34,8 +34,9 @@
 	<<set _races = setup.filterRacesLowercase.filter(race => race !== $arcologies[0].FSSubjugationistRace)>>
 	<<set $fixedRace = _races.random()>>
 <</if>>
-<<set $activeSlave = GenerateNewSlave()>>
-<<set $activeSlave.origin = "She sold herself into slavery to escape addiction debts.">>
+<<set $activeSlave = GenerateNewSlave("XX")>>
+<<set $activeSlave.origin = "$He sold $himself into slavery to escape addiction debts.">>
+<<set $activeSlave.career = setup.uneducatedCareers.random()>>
 <<set $activeSlave.devotion = random(-15,15)>>
 <<set $activeSlave.trust = random(-15,15)>>
 <<set $activeSlave.oldDevotion = $activeSlave.devotion>>
@@ -744,7 +745,8 @@
 
 <<case "addict mother daughter">>
 
-<<set $activeSlave.origin = "You tricked her mother into selling her into slavery to clear addiction debts.">>
+<<set $activeSlave.origin = "You tricked $his mother into selling $him into slavery to clear addiction debts.">>
+<<set $activeSlave.career = setup.uneducatedCareers.random()>>
 <<set $activeSlave.slaveName = $activeSlave.birthName>>
 <<set $activeSlave.ID = $activeSlave.ID + 1000>>
 <<set $activeSlave.devotion += 10>>
@@ -1799,7 +1801,7 @@ This call is coming from a public kiosk, which is usually an indication that the
 	<<case "incest sister sister">>
 		They cheer happily and hug each other tightly. They ought to be an interesting addition to your penthouse.
 	<<case "incest twin brother">>
-		They hug each other tightly as the they slip a hand down the other's pants. They ought to be an interesting addition to your penthouse.
+		They hug each other tightly as they slip a hand down the other's pants. They ought to be an interesting addition to your penthouse.
 	<<case "incest twin sister">>
 		They cheer happily and hug each other tightly. They ought to be an interesting addition to your penthouse.
 	<<case "incest twins mixed">>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index d8a5ee9159cd21ec47bfb55cd34ca347dbc28584..50bdc8a4c0db51facdf74e0990e167ca78281670 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1483,7 +1483,7 @@ Deal with $his hair:
 	$He is no longer capable of growing hair on $his head.
 <</if>>
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
-<<if ($activeSlave.eyebrowStyle != "bald")>>
+<<if ($activeSlave.eyebrowHStyle != "bald")>>
 	$He has $activeSlave.origHColor eyebrows.
 	[["Surgically remove " + $his + " ability to grow eyebrows"|Surgery Degradation][cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$surgeryType = "eyebrow removal"]]
 <<else>>
diff --git a/src/uncategorized/resFailure.tw b/src/uncategorized/resFailure.tw
index eba52bb6c8d27de68a682c8d07114bf9c40d529d..326b8ec64e6addb2741c36054197d6fe5f1739f9 100644
--- a/src/uncategorized/resFailure.tw
+++ b/src/uncategorized/resFailure.tw
@@ -372,7 +372,7 @@
 		<<set $activeSlave.health = random(60,80)>>
 		<<set $activeSlave.devotion = random(60,75)>>
 		<<set $activeSlave.trust = random(60,75)>>
-		<<set $activeSlave.intelligenceImplant = 30;
+		<<set $activeSlave.intelligenceImplant = 30>>
 		<<if $NUL.schoolUpgrade == 1>>
 			<<set $activeSlave.intelligence = random(50, 70)>>
 			<<set $activeSlave.skill.whoring = random(70, 80)>>
@@ -385,7 +385,7 @@
 		<<if $NUL.schoolUpgrade == 2>>
 			<<set $activeSlave.skill.anal = random(60, 80)>>
 			<<set $activeSlave.skill.oral = random(70, 90)>>
-			<<set $activeSlave.anus = random(1, 3);
+			<<set $activeSlave.anus = random(1, 3)>>
 		<<else>>
 			<<set $activeSlave.skill.anal = random(10, 30)>>
 			<<set $activeSlave.skill.oral = random(20, 40)>>
@@ -402,10 +402,10 @@
 		<<set $activeSlave.balls = 0>>
 		<<set $activeSlave.preg = 0>>
 		<<set $activeSlave.eyebrowHStyle = "bald">>
-		<<set $activeSlave.armpitHStyle = "bald">>
+		<<set $activeSlave.underArmHStyle = "bald">>
 		<<set $activeSlave.pubicHStyle = "bald">>
 		<<set $activeSlave.hStyle = "bald">>
-		<<set $activeSlave.customTat = "$He has the abstract symbol of Nueva Universidad de Libertad tattooed on $his left shoulder.">>
+		<<set $activeSlave.custom.tattoo = "$He has the abstract symbol of Nueva Universidad de Libertad tattooed on $his left shoulder.">>
 		<<run newSlave($activeSlave)>> /* skip New Slave Intro */
 	<</for>>
 <<elseif $RESFailure == "TGA">>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index bd587df7dac934c87e83b164bf1adcbbef563856..b17f823c62a3d07dcd78162c29e8cef6b10d68ff 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1068,7 +1068,7 @@
 			<</if>>
 		<</if>>
 		<<if $growthStim == 1>>
-			<<if ($activeSlave.height < 274 || ($activeSlave.height < 160 && $activeSlave.geneticQruirks.dwarfism == 2 && $activeSlave.geneticQruirks.gigantism != 2)) && $activeSlave.height < Math.clamp((Height.mean($activeSlave) * 1.25),0,274)>>
+			<<if ($activeSlave.height < 274 || ($activeSlave.height < 160 && $activeSlave.geneticQuirks.dwarfism == 2 && $activeSlave.geneticQuirks.gigantism != 2)) && $activeSlave.height < Math.clamp((Height.mean($activeSlave) * 1.25),0,274)>>
 				| <<link "Growth stimulants">><<set $activeSlave.drugs = "growth stimulants">><<SlaveInteractDrugs>><</link>>
 			<<else>>
 				| Growth stimulants
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index 77d2a601bdf9c67c0bfc9db509ee29b65f705dd7..83b94533fcbb7b360bca5e8a8610a99e1276cf24 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -136,9 +136,9 @@ As the remote surgery's long recovery cycle completes,
 	<<run SetBellySize($activeSlave)>>
 	your new Fuckdoll <<if ($activeSlave.amp != 1)>>stumbles<<else>>is carried<</if>> out of the surgery room. The only <<if $activeSlave.vagina > -1>>areas of skin visible are those around its vulva and anus<<else>>area of skin visible is that around its anus<</if>><<if $activeSlave.lips > 95>>, though its lips are also visible as its facepussy makes the standard Fuckdoll mouth insert unnecessary<</if>>. You can see it starting to struggle against the constricting material of the Fuckdoll suit as the sedation wears off. Other than the tiny area of exposed skin and the slight movement, there's no indication that the sex doll in front of you is alive at all.
 <<elseif $surgeryType == "fuckdollExtraction">>
-	$activeSlave.slaveName <<if ($activeSlave.amp != 1)>>walks<<else>>is carried<</if>> out of the surgery room.
+	$activeSlave.slaveName <<if $activeSlave.amp == 1>>is carried<<elseif canWalk($activeSlave)>>walks<<else>>is escorted<</if>> out of the surgery room.
 <<else>>
-	$activeSlave.slaveName <<if ($activeSlave.amp != 1)>>walks<<else>>is carried<</if>> out of the surgery room<<if canSee($activeSlave)>> and catches sight of $himself in the floor-length mirror outside the door<<else>> and is detailed the modifications done to $his body, assuming $he hasn't already realized them<</if>>.
+	$activeSlave.slaveName <<if $activeSlave.amp == 1>>is carried<<elseif canWalk($activeSlave)>>walks<<else>>is escorted<</if>> out of the surgery room<<if canSee($activeSlave)>> and catches sight of $himself in the floor-length mirror outside the door<<else>> and is detailed the modifications done to $his body, assuming $he hasn't already realized them<</if>>.
 <</if>>
 
 <<switch $surgeryType>>
@@ -2511,7 +2511,7 @@ As the remote surgery's long recovery cycle completes,
 
 <<case "eyebrow removal">>
 	<<set $activeSlave.eyebrowHStyle = "bald">>
-	When $he <<if $activeSlave.amp == 1>>is carried<<else>>walks<</if>> out of the surgery $he feels the breeze on $his face and realizes that $his eyebrows are gone, permanently.
+	When $he <<if $activeSlave.amp == 1>>is carried<<elseif canWalk($activeSlave)>>walks<<else>>is escorted<</if>> out of the surgery $he feels the breeze on $his face and realizes that $his eyebrows are gone, permanently.
 	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
 		<br>
 		<<if $activeSlave.devotion > 50>>
@@ -2530,7 +2530,7 @@ As the remote surgery's long recovery cycle completes,
 <<case "hair removal">>
 	<<set $activeSlave.hStyle = "bald">>
 	<<set $activeSlave.eyebrowHStyle = "bald">>
-	When $he <<if $activeSlave.amp == 1>>is carried<<else>>walks<</if>> out of the surgery $he immediately notices the chill on $his head and realizes that $he is bald.
+	When $he <<if $activeSlave.amp == 1>>is carried<<elseif canWalk($activeSlave)>>walks<<else>>is escorted<</if>> out of the surgery $he immediately notices the chill on $his head and realizes that $he is bald.
 	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
 		<br>
 		<<if $activeSlave.devotion > 50>>
@@ -2666,7 +2666,7 @@ As the remote surgery's long recovery cycle completes,
 		<<else>>anxious about what you did to $him, dreading the news.
 		<</if>>
 	<<else>>
-		Over the course of the treatment, $he begins to feel the initial effects and on inspection, when $he <<if $activeSlave.amp == 1>>is carried<<else>>walks<</if>> out of the surgery room, $he feels somehow smaller and changed in <<if _numberChanges == 1>>at least one way<<elseif _numberChanges == 2>>two ways<<else>>several ways<</if>>.<br><br>
+		Over the course of the treatment, $he begins to feel the initial effects and on inspection, when $he <<if $activeSlave.amp == 1>>is carried<<elseif canWalk($activeSlave)>>walks<<else>>is escorted<</if>> out of the surgery room, $he feels somehow smaller and changed in <<if _numberChanges == 1>>at least one way<<elseif _numberChanges == 2>>two ways<<else>>several ways<</if>>.<br><br>
 		<<if _hair != ''>>_hair<</if>>
 		<<if _genitalChanges.length > 0>>
 			$He can _sense that $his junk is different now, it seems $his
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index d6741490e41e7b379921c65d03cc43bb61623fb0..2feac3836f0110f94fda9bce0cc1af5022eb4810 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -193,7 +193,7 @@
 			<</if>>
 		<</if>>
 		<<if $growthStim == 1>>
-			<<if ($activeSlave.height < 274 || ($activeSlave.height < 160 && $activeSlave.geneticQruirks.dwarfism == 2 && $activeSlave.geneticQruirks.gigantism != 2)) && $activeSlave.height < Math.clamp((Height.mean($activeSlave) * 1.25),0,274)>>
+			<<if ($activeSlave.height < 274 || ($activeSlave.height < 160 && $activeSlave.geneticQuirks.dwarfism == 2 && $activeSlave.geneticQuirks.gigantism != 2)) && $activeSlave.height < Math.clamp((Height.mean($activeSlave) * 1.25),0,274)>>
 				| <<link "Growth Stimulants">><<set $activeSlave.drugs = "growth stimulants">><<SlaveInteractDrugs>><</link>>
 			<<else>>
 				| Growth Stimulants