diff --git a/README.md b/README.md
index 2f125cd5b84ef6170d54121c2548d021bb99fd3e..2dc2e7ae70c3d31d09e923d617a5ed75c43a0bc9 100644
--- a/README.md
+++ b/README.md
@@ -24,14 +24,14 @@ Compile the game:
 * Linux/Mac
     1. Ensure executable permission on file `devTools/tweeGo/tweego` (not tweego.exe!)
     2. Ensure executable permission on file `compile.sh`
-    3. In the root dir of sources (where you see src, devTools, bin...) run command `./compile.sh` from console. 
+    3. In the root dir of sources (where you see src, devTools, bin...) run command `./compile.sh` from console.
         Alternatively, if you have make installed, run `make all` in the root directory.
 
 To play open FCpregmod.html in bin/ (Recommendation: Drag it into incognito mode)
 
 ## Common problems
 
-* I get an error on gamestart reading `Apologies! A fatal error has occurred. Aborting. Error: Unexpected token @ in 
+* I get an error on gamestart reading `Apologies! A fatal error has occurred. Aborting. Error: Unexpected token @ in
     JSON at position 0. Stack Trace: SyntaxError: Unexpected token @ in JSON at position 0 at JSON.parse (<anonymous>)
     at JSON.value` or some variant
     - clear cookies
@@ -45,9 +45,9 @@ To play open FCpregmod.html in bin/ (Recommendation: Drag it into incognito mode
 
 * I wish to report a sanityCheck issue.
     - Great, however a large majority of the results are false positives coming from those specific sections being split
-      over several lines in the name of readability and git grep's 
+      over several lines in the name of readability and git grep's
       [intentionally](http://git.661346.n2.nabble.com/bug-git-grep-P-and-multiline-mode-td7613900.html ) lacking support
-       for multiline. An Attempt to add -Pzl (https://gitgud.io/pregmodfan/fc-pregmod/merge_requests/2108 ) created a 
+       for multiline. An Attempt to add -Pzl (https://gitgud.io/pregmodfan/fc-pregmod/merge_requests/2108 ) created a
        sub condition black hole. What follows are examples of common false positives that can safely be ignored:
 ```
 [MissingClosingAngleBracket]src/art/vector/Generate_Stylesheet.tw:11:<<print "<style>."+_art_display_class+" {
@@ -67,7 +67,7 @@ First time setup:
 
 0. Follow the steps to clone the main repository if you haven't already.
 1. Create an account on gitgud if you don't have a usable one.
-    * (optional) Add an SSH key to your account for easier pushing. This allows you to connect to gitgud through SHH, 
+    * (optional) Add an SSH key to your account for easier pushing. This allows you to connect to gitgud through SHH,
     which doesn't require your credentials every time.
 2. Fork the main repository through gitgud interface.
     * (optional) Delete all branches other than pregmod-master, so you don't get them locally when fetching.
@@ -94,7 +94,7 @@ Typical cycle with Git:
     * Via terminal: `git commit <files>`
     * Make the commit message useful (`Fix X`, `Add Y`, etc.)
 5. (optional, but recommended) Run sanityCheck before final push to catch any errors you missed. (You can ignore errors unrelated to files you changed.)
-6. Push result into your forked repository 
+6. Push result into your forked repository
     * Via terminal:
         * Initially `git push -u origin <branch-name>`
         * Afterwards `git push` will suffice.
diff --git a/devNotes/Useful JS Function Documentation.txt b/devNotes/Useful JS Function Documentation.txt
index 25502b5fa51f4273cd32c0419d40a550b4142ba6..e114b88f4898edd4ad5cb9d5893db1f121c1f6b8 100644
--- a/devNotes/Useful JS Function Documentation.txt	
+++ b/devNotes/Useful JS Function Documentation.txt	
@@ -173,7 +173,7 @@ relationshipChecks [script] All work as expected with <<if X.rivalryTarget == $s
 	relationshipTermShort(id) Prints the short form of the above. e.g. line 321 of slaveInteract.
 		`"Fuck $him with $his <<print relationshipTermShort($activeSlave)>> <<= SlaveFullName($slaves[_si])>>"`
 		Would print 'Fuck $him with $his BFF <<= SlaveFullName($slaves[_si])>>'
-	
+
 	PCrelationshipTerm(id) Prints the relationship term for the input (relative to the PC) if the relationship is < -1.
 		<<if $slaves[$i].relationship < -1>>
 			$He loves being your <<print PCrelationshipTerm($slaves[$i])>>.
diff --git a/devNotes/eye functions.md b/devNotes/eye functions.md
index e1bdb1a49e240fd267cc3749277d67c1979cb098..0e04c3ab142fe974092367a5884f1f754a15271b 100644
--- a/devNotes/eye functions.md	
+++ b/devNotes/eye functions.md	
@@ -2,132 +2,132 @@
 
 In all functions `side` can be `left`, `right` or `both` unless stated otherwise.
 
-Eye types: `1`: normal; `2`: glass; `3`: cybernetic  
+Eye types: `1`: normal; `2`: glass; `3`: cybernetic
 `0` is used as return value if there is no eye, but is never stored in the slave object.
 
 Vision: `0`: blind; `1`: nearsighted (or impaired/blurred); `2`: normal
 
 ### Read-only functions
 
-* `hasAnyEyes(slave)`:  
+* `hasAnyEyes(slave)`:
     True if slave has at least one eye.
 
-* `hasAnyNaturalEyes(slave)`:  
+* `hasAnyNaturalEyes(slave)`:
     True if slave has at least one eye that is natural.
 
-* `hasAnyProstheticEyes(slave)`:  
+* `hasAnyProstheticEyes(slave)`:
     True if slave has at least one eye that is prosthetic (cybernetic or glass).
 
-* `hasAnyCyberneticEyes(slave)`:  
+* `hasAnyCyberneticEyes(slave)`:
     True if slave has at least one eye that is cybernetic.
 
-* `hasBothEyes(slave)`:  
+* `hasBothEyes(slave)`:
     True if slave has both eyes.
 
-* `hasBothNaturalEyes(slave)`:    
+* `hasBothNaturalEyes(slave)`:
     True if slave has both eyes and they are natural.
 
 * `hasBothProstheticEyes(slave)`:
     True if slave has both eyes and they are prosthetic (cybernetic or glass).
 
-* `hasBothCyberneticEyes(slave)`:  
+* `hasBothCyberneticEyes(slave)`:
     True if slave has both eyes and they are cybernetic.
 
-* `hasLeftEye(slave)`:  
+* `hasLeftEye(slave)`:
     True if slave has left eye.
 
-* `hasRightEye(slave)`:  
+* `hasRightEye(slave)`:
     True if slave has right eye.
 
-* `getLeftEyeType(slave)`:  
+* `getLeftEyeType(slave)`:
     Returns type of the left eye.
 
-* `getRightEyeType(slave)`:  
+* `getRightEyeType(slave)`:
     Returns type of the right eye.
 
-* `getLeftEyeVision(slave)`:  
+* `getLeftEyeVision(slave)`:
     Returns vision of the left eye.
 
-* `getRightEyeVision(slave)`:  
+* `getRightEyeVision(slave)`:
     Returns vision of the right eye.
 
-* `getBestVision(slave)`:  
+* `getBestVision(slave)`:
     Returns highest vision of both eyes.
 
-* `getWorstVision(slave)`:  
-    Returns lowest vision of both eyes. 
+* `getWorstVision(slave)`:
+    Returns lowest vision of both eyes.
 
-* `anyVisionEquals(slave, vision)`:  
+* `anyVisionEquals(slave, vision)`:
     True if one eye has the specified vision.
 
-* `getLeftEyeColor(slave)`:  
+* `getLeftEyeColor(slave)`:
     Returns color of the left eye. If there is no eye `empty` is returned.
 
-* `getRightEyeColor(slave)`:  
+* `getRightEyeColor(slave)`:
     Returns color of the right eye. If there is no eye `empty` is returned.
 
-* `getLeftEyePupil(slave)`:  
+* `getLeftEyePupil(slave)`:
     Returns the shape of pupil of the left eye. If there is no eye `circular` is returned.
 
-* `getRightEyePupil(slave)`:  
+* `getRightEyePupil(slave)`:
     Returns the shape of pupil of the right eye. If there is no eye `circular` is returned.
 
-* `hasVisibleHeterochromia(slave)`:  
+* `hasVisibleHeterochromia(slave)`:
     True if left and right eye colors are different. Does NOT relate to the genetic quirk.
 
-* `getGeneticEyeColor(slave, side)`:  
-    Gives the genetic color of the specified eye.  
+* `getGeneticEyeColor(slave, side)`:
+    Gives the genetic color of the specified eye.
     `both` is not allowed as value of `side`.
 
-* `getLenseCount(slave)`:  
+* `getLenseCount(slave)`:
     Counts the number of eyes that are not the genetic color.
 
 
 ### Description
 
-* `App.Desc.eyesType(slave)`:  
+* `App.Desc.eyesType(slave)`:
     Fits in a sentence like this: She has {return}.
 
-* `App.Desc.eyeTypeToString(type)`:  
-    Converts an eye type to a string.  
-    `1` -> `natural`  
-    `2` -> `glass`  
+* `App.Desc.eyeTypeToString(type)`:
+    Converts an eye type to a string.
+    `1` -> `natural`
+    `2` -> `glass`
     `3` -> `artificial`
 
-* `App.Desc.eyesColor(slave, adj = "", eye = "eye", eyes = "eyes")`:  
-    Fits in a sentence like this: She has {return}.  
+* `App.Desc.eyesColor(slave, adj = "", eye = "eye", eyes = "eyes")`:
+    Fits in a sentence like this: She has {return}.
     `adj` is added in between color and eye like this: `brown wet eyes`.
 
-* `App.Desc.eyeColor(slave)`:  
-    Fits in a sentence like this: She has {return} eyes.  
+* `App.Desc.eyeColor(slave)`:
+    Fits in a sentence like this: She has {return} eyes.
     Prefer App.Desc.eyesColor if possible as it works reliably with only one eye. Example where this is better: {return}-eyed gaze
 
-* `App.Desc.eyesVision(slave)`:  
+* `App.Desc.eyesVision(slave)`:
     Fits in a sentence like this: She has {return}.
 
-* `App.Desc.eyesToVision(slave)`:  
-    Converts an eye vision to a string.  
-    `0` -> `blind`  
-    `1` -> `nearsighted`  
-    `2` -> `normal`  
+* `App.Desc.eyesToVision(slave)`:
+    Converts an eye vision to a string.
+    `0` -> `blind`
+    `1` -> `nearsighted`
+    `2` -> `normal`
 
 
 ### Modification
 
-* `eyeSurgery(slave, side, action)`:  
-    Modifies a slaves eyes.  
-    Allowed values for `action`:  
-    No Existing eyes required: `normal`, `glass`, `cybernetic`  
+* `eyeSurgery(slave, side, action)`:
+    Modifies a slaves eyes.
+    Allowed values for `action`:
+    No Existing eyes required: `normal`, `glass`, `cybernetic`
     Existing eyes required: `remove`, `blind`, `blur`, `fix`
 
-* `setEyeColor(slave, color, side = "both")`:  
+* `setEyeColor(slave, color, side = "both")`:
     Changes the visible eye color.
 
-* `setEyeColorFull(slave, iris, pupil, sclera, side)`:  
+* `setEyeColorFull(slave, iris, pupil, sclera, side)`:
     Changes all visible parts of the eye.
 
-* `setGeneticEyeColor(slave, color, heterochromia = false)`:  
+* `setGeneticEyeColor(slave, color, heterochromia = false)`:
     Changes the genetic eye color. WARNING: If `heterochromia` is `true`, the function will add the genetic quirk, even if the slave did not have it before.
 
-* `resetEyeColor(slave, side)`:  
-    Sets the eye color to the genetic color. Takes heterochromia and albinism into account.
\ No newline at end of file
+* `resetEyeColor(slave, side)`:
+    Sets the eye color to the genetic color. Takes heterochromia and albinism into account.
diff --git a/devNotes/limb functions.md b/devNotes/limb functions.md
index 891727b6b155a3b349ae3c6001da62f49d78000f..70547e93e85af149944d08601373f7f9ae301bd0 100644
--- a/devNotes/limb functions.md	
+++ b/devNotes/limb functions.md	
@@ -19,7 +19,7 @@ cybernetic: 6   -5
 
 ```
 <<if isAmputee($activeSlave)>>
-	Slave is full amputee.
+    Slave is full amputee.
 <</if>>
 ```
 
@@ -30,122 +30,122 @@ Most functions can be used like this, though some are more specialized.
 
 #### Read-only functions:
 
-* `isAmputee(slave)`:  
-	True if slave has no limbs, neither natural nor prosthetic.
+* `isAmputee(slave)`:
+    True if slave has no limbs, neither natural nor prosthetic.
 
-* `hasAnyNaturalLimbs(slave)`:  
-	True if slave has at least one natural limb.
+* `hasAnyNaturalLimbs(slave)`:
+    True if slave has at least one natural limb.
 
-* `hasAnyProstheticLimbs(slave)`:  
-	True if slave has at least one prosthetic limb.
+* `hasAnyProstheticLimbs(slave)`:
+    True if slave has at least one prosthetic limb.
 
-* `hasAnyLegs(slave)`:  
-	True if slave has at least one leg.
+* `hasAnyLegs(slave)`:
+    True if slave has at least one leg.
 
-* `hasAnyArms(slave)`:  
-	True if slave has at least one arm.
+* `hasAnyArms(slave)`:
+    True if slave has at least one arm.
 
-* `hasAnyNaturalLegs(slave)`:  
-	True if slave has at least one leg that is natural
+* `hasAnyNaturalLegs(slave)`:
+    True if slave has at least one leg that is natural
 
-* `hasAnyNaturalArms(slave)`:  
-	True if slave has at least one arm that is natural
+* `hasAnyNaturalArms(slave)`:
+    True if slave has at least one arm that is natural
 
-* `hasAnyProstheticArms(slave)`:  
-	True if slave has at least one arm that is prosthetic
+* `hasAnyProstheticArms(slave)`:
+    True if slave has at least one arm that is prosthetic
 
-* `hasBothLegs(slave)`:  
-	True if slave has both legs.
+* `hasBothLegs(slave)`:
+    True if slave has both legs.
 
-* `hasBothArms(slave)`:  
-	True if slave has both arms.
+* `hasBothArms(slave)`:
+    True if slave has both arms.
 
-* `hasBothNaturalLegs(slave)`:  
-	True if slave has both legs and they are natural.
+* `hasBothNaturalLegs(slave)`:
+    True if slave has both legs and they are natural.
 
-* `hasBothNaturalArms(slave)`:  
-	True if slave has both arms and they are natural.
+* `hasBothNaturalArms(slave)`:
+    True if slave has both arms and they are natural.
 
-* `hasAllLimbs(slave)`:  
-	True if slave has all limbs.
+* `hasAllLimbs(slave)`:
+    True if slave has all limbs.
 
-* `hasAllNaturalLimbs(slave)`:  
-	True if slave has all limbs and all are natural.
+* `hasAllNaturalLimbs(slave)`:
+    True if slave has all limbs and all are natural.
 
-* `hasLeftArm(slave)`:  
-	True if slave has a left arm.
+* `hasLeftArm(slave)`:
+    True if slave has a left arm.
 
-* `hasRightArm(slave)`:  
-	True if slave has a right arm.
+* `hasRightArm(slave)`:
+    True if slave has a right arm.
 
-* `hasLeftLeg(slave)`:  
-	True if slave has a left leg.
+* `hasLeftLeg(slave)`:
+    True if slave has a left leg.
 
-* `hasRightLeg(slave)`:  
-	True if slave has a right leg.
+* `hasRightLeg(slave)`:
+    True if slave has a right leg.
 
-* `getLeftArmID(slave)`:  
-	Returns limb ID of the left arm.
+* `getLeftArmID(slave)`:
+    Returns limb ID of the left arm.
 
-* `getRightArmID(slave)`:  
-	Returns limb ID of the right arm.
+* `getRightArmID(slave)`:
+    Returns limb ID of the right arm.
 
-* `getLeftLegID(slave)`:  
-	Returns limb ID of the left leg.
+* `getLeftLegID(slave)`:
+    Returns limb ID of the left leg.
 
-* `getRightLegID(slave)`:  
-	Returns limb ID of the right leg.
+* `getRightLegID(slave)`:
+    Returns limb ID of the right leg.
 
-* `getLimbCount(slave, id)`:  
-	Returns count of specified limb ID.
-	Can also be used to check for groups:  
-    101: any limbs that are not amputated  
-    102: prosthetic limbs off all kind  
-    103: sex-prosthetic  
-    104: beauty-prosthetic  
-    105: combat-prosthetic  
+* `getLimbCount(slave, id)`:
+    Returns count of specified limb ID.
+    Can also be used to check for groups:
+    101: any limbs that are not amputated
+    102: prosthetic limbs off all kind
+    103: sex-prosthetic
+    104: beauty-prosthetic
+    105: combat-prosthetic
 
     103-105 mean the sum of 3-5 and 6 respectfully.
 
-* `getLegCount(slave, id)`:  
-	Returns count of legs with specified limb ID.
+* `getLegCount(slave, id)`:
+    Returns count of legs with specified limb ID.
 
-* `getArmCount(slave, id)`:  
-	Returns count of arms with specified limb ID.
+* `getArmCount(slave, id)`:
+    Returns count of arms with specified limb ID.
 
 #### String functions
 
 * `idToDescription(id)`:
-	Returns a very short description of the specified limb ID.  
-    0: "amputated";  
-    1: "healthy";  
-    2: "modern prosthetic";  
-    3: "advanced, sex-focused prosthetic";  
-    4: "advanced, beauty-focused prosthetic";  
-    5: "advanced, combat-focused prosthetic";  
+    Returns a very short description of the specified limb ID.
+    0: "amputated";
+    1: "healthy";
+    2: "modern prosthetic";
+    3: "advanced, sex-focused prosthetic";
+    4: "advanced, beauty-focused prosthetic";
+    5: "advanced, combat-focused prosthetic";
     6: "highly advanced cybernetic";
 
 * `armsAndLegs(slave, arms, arm, legs, leg)`:
-	Returns a string depending on the limbs a slave has. By default this is a
-	variation of `arms and legs`, but this can be changed via parameters.
-	  
-    Examples:  
-    `armsAndLegs(slave, "hands", "hand", "feet", foot)` returns `hands and feet` for a slave with all limbs, 
+    Returns a string depending on the limbs a slave has. By default this is a
+    variation of `arms and legs`, but this can be changed via parameters.
+
+    Examples:
+    `armsAndLegs(slave, "hands", "hand", "feet", foot)` returns `hands and feet` for a slave with all limbs,
     `hand and foot` for a slave with one limb each and `feet` for a slave with two legs, but no arms.
 
-    Expects the slave to have at least one limb. Only the first parameter is mandatory, the rest defaults to the 
+    Expects the slave to have at least one limb. Only the first parameter is mandatory, the rest defaults to the
     equivalent of `armsAndLegs(slave, "arms", "arm", "legs", "leg")`
 
 #### Write-only functions
 
-* `removeLimbs(slave, limb`:  
+* `removeLimbs(slave, limb`:
     Removes a slave's limbs. Allowed values for limb: `"left arm"`, `"right arm"`, `"left leg"`, `"right leg"`, `"all"`.
 
-* `attachLimbs(slave, limb, id)`:    
+* `attachLimbs(slave, limb, id)`:
     Attaches a limb of the specified id. Expects amputated limbs. Will overwrite existing limbs.
     Allowed values for limb: `"left arm"`, `"right arm"`, `"left leg"`, `"right leg"`, `"all"`.
 
-* `configureLimbs(slave, limb, id)`:  
+* `configureLimbs(slave, limb, id)`:
     Sets the slave's limb to the specified id and sets all limb related variables to their correct values.
     Intended for use during slave generation and events.
-    Allowed values for limb: `"left arm"`, `"right arm"`, `"left leg"`, `"right leg"`, `"all"`.
\ No newline at end of file
+    Allowed values for limb: `"left arm"`, `"right arm"`, `"left leg"`, `"right leg"`, `"all"`.
diff --git a/devNotes/standaloneFunctions.md b/devNotes/standaloneFunctions.md
index 4f5ebde20e6e7edc5343e8ab9071c0dd81f15981..778be13a60a117c38f8936adb09a37cfc8febb04 100644
--- a/devNotes/standaloneFunctions.md
+++ b/devNotes/standaloneFunctions.md
@@ -4,31 +4,29 @@ Collection of custom functions without dependencies on FC specific variables/dat
 
 ## utilJS.js
 
-* `arraySwap(array, a , b)`:  
+* `arraySwap(array, a , b)`:
     Swaps two values in an array.
 
-* `capFirstChar(string)`:  
+* `capFirstChar(string)`:
     Capitalizes the first character of `string`.
 
 * `addA(word)`:
     Adds an `an ` if the first character is a vocal, otherwise `a `.
 
-* `ordinalSuffix(i)`:  
+* `ordinalSuffix(i)`:
     Takes a number and appends the appropriate suffix.
     Example: `ordinalSuffix(1)` gives `1st`.
 
-* `ordinalSuffixWords(i)`:  
+* `ordinalSuffixWords(i)`:
     Takes a number and returns the appropriate ordinal.
-    Example: `ordinalSuffix(1)` gives `first`.  
-    For number greater than 19 identical to `ordinalSuffix(i)`  
-    
-* `removeDuplicates(array)`:  
+    Example: `ordinalSuffix(1)` gives `first`.
+    For number greater than 19 identical to `ordinalSuffix(i)`
+
+* `removeDuplicates(array)`:
     Takes an array and returns a new array without duplicate entries.
 
-* `jsDef(x)`:  
+* `jsDef(x)`:
     Returns whether x is undefined. A JS port of SugarCube's def.
 
-* `between(a, low, high)`:  
+* `between(a, low, high)`:
     Returns `true` if `a` is between `low` and `high`, otherwise `false`.
-
-
diff --git a/devNotes/sugarcube stuff/building SugarCube.md b/devNotes/sugarcube stuff/building SugarCube.md
index 6782ed55216f3e783bd438c6f3d8c1a0d37a0660..a6c6b92edc76c95a12d13a1393b9b11cad149531 100644
--- a/devNotes/sugarcube stuff/building SugarCube.md	
+++ b/devNotes/sugarcube stuff/building SugarCube.md	
@@ -18,14 +18,14 @@ the PATH environment variable.
 ## Retrieving SugarCube sources and preparing build environment for it
 
 The SC2 sources are a git submodule.
- 
+
 1. Get the sources: `git submodule update`
 
 2. Download required JavaScript libraries that are used during the build.
     Run the node package manager (npm) in the repository: `npm install` or `npm update`.
     * You need to navigate into `submodules/sugarcube-2` first.
 
-## Building 
+## Building
 
 Run the build.js script. If you use Git bash, you can run the `build.js` file directly, otherwise run
 it as `node build.js`. See `build.js -h` for options, but reasonable sets are the following.
@@ -33,10 +33,10 @@ it as `node build.js`. See `build.js -h` for options, but reasonable sets are th
 * for release version: `node build.js -6 -b 2`
 * for debug version: `node build.js -6 -b 2 -u -d`
 
-Find result files in the `build` directory. After each build you have  to copy the release `format.js` to 
+Find result files in the `build` directory. After each build you have  to copy the release `format.js` to
 `devTools/tweeGo/storyFormats/sugarcube-2`. Do not forget to `git add` the file.
 
-Linux: If you have make installed, `make sugarcube` automatically builds and copies `format.js` to 
+Linux: If you have make installed, `make sugarcube` automatically builds and copies `format.js` to
 `devTools/tweeGo/storyFormats/sugarcube-2` for easy testing.
 
 ## Contributing
@@ -49,12 +49,12 @@ Linux: If you have make installed, `make sugarcube` automatically builds and cop
 4. `git submodule update` leaves you in a detached head state, so checkout fc and pull recent changes
 5. Branch, modify, commit, push as usual.
 6. Build and replace `devTools/tweeGo/storyFormats/sugarcube-2/format.js`
-7. Create a new patch `git diff master <your branch> > sugarcube-fc-changes.patch` and move it to 
+7. Create a new patch `git diff master <your branch> > sugarcube-fc-changes.patch` and move it to
     `devNotes/sugarcube stuff/`.
 8. Commit and push in the main repo.
 9. Open an MR in the SC2 repo **AND** in the main repo. Mark the MR in the main repo as **WIP**.
 10. Once the MR in the SC2 repo is accepted do:
-    *  In the submodule 
+    *  In the submodule
     1. `git checkout fc`
     2. `git pull`
     *  In the main repo
diff --git a/devTools/DL-Loop.sh b/devTools/DL-Loop.sh
index 73bfbe221643f313a341a55e98d12a75a0af8ac2..7bb002154e303a221515720397da287ce0c4d0b1 100755
--- a/devTools/DL-Loop.sh
+++ b/devTools/DL-Loop.sh
@@ -28,8 +28,8 @@ else
 			wget -q -P /tmp/ https://gitgud.io/$varname2/fc-pregmod/raw/$varname3/${!i}
 		elif [[ $varname1 == 1 ]]; then
 			wget -q https://gitgud.io/$varname2/fc-pregmod/raw/$varname3/${!i}
-		else 
+		else
 			curl -s https://gitgud.io/$varname2/fc-pregmod/raw/$varname3/${!i} > ${!i}
-		fi 
+		fi
 	done
-fi 
\ No newline at end of file
+fi
diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index b6df49922f856ad4ac7f9d1a51399cebe8afecd9..8fa068900aa56d666dfddea1e62c7852c98b5de9 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -372,15 +372,8 @@ App.Data.resetOnNGPlus = {
 	boomerangStats: {},
 	FSNonconformist: "",
 	econAdvantage: 0,
-	attackType: "none",
-	attackThisWeek: 0,
-	lastAttackWeeks: 0,
-	lastRebellionWeeks: 0,
-	majorBattle: 0,
-	PCvictoryStreak: 0,
-	PClossStreak: 0,
-	foughtThisWeek: 0,
 
+	foughtThisWeek: 0,
 	/* rebellions */
 	slaveRebellionEventFires: 0,
 	citizenRebellionEventFires: 0,
@@ -391,10 +384,6 @@ App.Data.resetOnNGPlus = {
 	repairTime: 3,
 	arcRepairTime: 0,
 	garrison: {},
-	rebellionsCount: 0,
-	PCrebWon: 0,
-	PCrebLoss: 0,
-
 	/* armed forces stats */
 	militiaFreeManpower: 0,
 	militiaTotalCasualties: 0,
@@ -404,19 +393,20 @@ App.Data.resetOnNGPlus = {
 	createdSlavesUnits: 0,
 	createdMilitiaUnits: 0,
 	createdMercUnits: 0,
-
 	/* battle relevant vars */
+	attackType: "none",
+	attackThisWeek: 0,
+	majorBattle: 0,
+	PCvictoryStreak: 0,
+	PClossStreak: 0,
 	slaveVictories: [],
-	battlesCount: 0,
-	majorBattlesCount: 0,
 	chosenTactic: "none",
 	leadingTroops: "none",
 	attackTroops: 0,
 	attackEquip: 0,
 	battleTerrain: "none",
 	maxTurns: 10,
-	battleResult: 4,
-	/* sets battleResult value outside accepted range (-3,3) to avoid evaluation problems */
+	battleResult: 4, // sets battleResult value outside accepted range (-3,3) to avoid evaluation problems
 	losses: 0,
 	enemyLosses: 0,
 	battleTurns: 0,
@@ -428,25 +418,20 @@ App.Data.resetOnNGPlus = {
 	rebellingID: [],
 	saveValid: 0,
 	lastSelection: [],
-
-	/* units *//** @type {FC.SecExp.PlayerUnitData} */
+	/* units */
+	/** @type {FC.SecExp.PlayerUnitData} */
 	secBots: {},
-
 	/** @type {FC.SecExp.PlayerHumanUnitData[]} */
 	militiaUnits: [],
 	/** @type {FC.SecExp.PlayerHumanUnitData[]} */
 	slaveUnits: [],
 	/** @type {FC.SecExp.PlayerHumanUnitData[]} */
 	mercUnits: [],
-
 	/* SFanon additions */
 	SavedLeader: 0,
 	SavedSFI: 0,
-	sectionInFirebase: 0,
 	/* base vars */
 	SecExp: {},
-	PCvictories: 0,
-	PClosses: 0,
 
 	reminderEntry: "",
 	reminderWeek: "",
diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js
index 1ddf0a3e923ac315c82a4feea71da26efb5bed4c..721057db4a7e81437e43a99035ee93aa241e0b09 100644
--- a/js/003-data/policiesData.js
+++ b/js/003-data/policiesData.js
@@ -1936,7 +1936,7 @@ App.Data.Policies.Selection = {
 						t += ` Societal Elite to bear their children.`;
 					}
 					return t;
-				}, 
+				},
 				get requirements() { return (V.arcologies[0].FSRestartDecoration >= 100 && V.rep >= 5000); },
 				onImplementation: function() {
 					repX(-4000, "policies");
diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js
index bf9c0ae53413fd8293540e272c42cb2f131d3577..7bcd452c066a75b758bade9cb78c15353f133726 100644
--- a/src/002-config/fc-version.js
+++ b/src/002-config/fc-version.js
@@ -2,5 +2,5 @@ App.Version = {
 	base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed.
 	pmod: "3.8.0",
 	commitHash: null,
-	release: 1101 // When gettting close to 2000,  please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
+	release: 1102 // When gettting close to 2000,  please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
 };
diff --git a/src/Mods/SecExp/SecExpBackwardCompatibility.tw b/src/Mods/SecExp/SecExpBackwardCompatibility.tw
index 0a2fcc1cd7aacf6a77f2c73c84ab21e1d360eff2..ceca54865e8d27ed03792c83548179fdacd5943c 100644
--- a/src/Mods/SecExp/SecExpBackwardCompatibility.tw
+++ b/src/Mods/SecExp/SecExpBackwardCompatibility.tw
@@ -1,23 +1,6 @@
 :: SecExpBackwardCompatibility [nobr]
 
 <<set $nextButton = "Continue", $nextLink = "Main", $returnTo = "Main">>
-
-/* base stats */
-<<run App.SecExp.generalBC()>>
-<<set $lastRebellionWeeks = Number($lastRebellionWeeks) || 0>>
-
-/* if we had the old one-time battle flags, make sure the counters are set to at least one */
-<<if $battlesCount == 0 && $hasFoughtOnce == 1>>
-	<<set $battlesCount = 1>>
-<</if>>
-<<if $majorBattlesCount == 0 && $hasFoughtMajorBattleOnce == 1>>
-	<<set $majorBattlesCount = 1>>
-<</if>>
-<<if $rebellionsCount == 0 && $hasRebelledOnce == 1>>
-	<<set $rebellionsCount = 1>>
-<</if>>
-
-/* recalculation widgets */
-<<fixBrokenStats>>
-
+<<run App.SecExp.generalBC()>> /* base stats */
+<<fixBrokenStats>> /* recalculation widgets */
 <br>Missing Security Expansion variables set. All done!
\ No newline at end of file
diff --git a/src/Mods/SecExp/attackGenerator.tw b/src/Mods/SecExp/attackGenerator.tw
index 399ff775a58f7ab125c73192c486a53775729814..980c5d5748079c38d196099ab9af742ef394f712 100644
--- a/src/Mods/SecExp/attackGenerator.tw
+++ b/src/Mods/SecExp/attackGenerator.tw
@@ -2,7 +2,7 @@
 
 /* _attackChance value is the chance out of 100 of an attack happening this week */
 /* attacks are deactivated if the arcology is in the middle of the ocean, security drones are not around yet, there is not a rebellion this week or the last attack/rebellion happened within 3 weeks */
-<<if $terrain == "oceanic" || $arcologyUpgrade.drones != 1 || $lastAttackWeeks <= 3 || $citizenRebellion == 1 || $slaveRebellion == 1 || $lastRebellionWeeks <= 3>>
+<<if $terrain == "oceanic" || $arcologyUpgrade.drones != 1 || $SecExp.battles.lastEncounterWeeks <= 3 || $citizenRebellion == 1 || $slaveRebellion == 1 || $SecExp.rebellions.lastEncounterWeeks <= 3>>
 	<<set _attackChance = 0>>
 <<else>>
 	<<if $week < 30>>
@@ -16,10 +16,10 @@
 	<<else>>
 		<<set _attackChance = 20>>
 	<</if>>
-	<<if $battlesCount > 0>>
+	<<if $SecExp.battles.victories + $SecExp.battles.losses > 0>>
 		<<set _attackChance = 25>>
 	<</if>>
-	<<if $lastAttackWeeks >= 10>>
+	<<if $SecExp.battles.lastEncounterWeeks >= 10>>
 		<<set _attackChance += 5>>
 	<</if>>
 <</if>>
@@ -37,7 +37,7 @@
 /* freedom fighters by high slave/citizen ratio */
 <<if random(1,100) <= _attackChance>>
 	<<set $attackThisWeek = 1>>
-	<<set $lastAttackWeeks = 0>>
+	<<set $SecExp.battles.lastEncounterWeeks = 0>>
 	<<set $leadingTroops = "assistant">>
 	<<set $chosenTactic = either("Bait and Bleed", "Blitzkrieg", "Choke Points", "Defense In Depth", "Guerrilla", "Human Wave", "Interior Lines", "Pincer Maneuver")>>
 	/* _type is the chance out of 100 of an attack of that type happening */
@@ -106,7 +106,7 @@
 		<<set $attackType = "freedom fighters">>
 	<</if>>
 <<else>>
-	<<set $lastAttackWeeks++>>
+	<<set $SecExp.battles.lastEncounterWeeks++>>
 <</if>>
 
 /* if an attack happens */
diff --git a/src/Mods/SecExp/attackHandler.tw b/src/Mods/SecExp/attackHandler.tw
index a2a2007ccddc9c3e0d276a0ca898cd93f0eef5fe..9219ddbf2b6da965264c9f004e27c8ac6151f278 100644
--- a/src/Mods/SecExp/attackHandler.tw
+++ b/src/Mods/SecExp/attackHandler.tw
@@ -7,7 +7,7 @@
 		<<if $battleResult == 1>>Bribery<<else>>Surrender<</if>> chosen
 	<</if>>
 	<<if $battleResult == 1>>
-		<<if $cash >= $bribeCost>>						/* if there's enough cash there's a 10% chance bribery fails. If there isn't there's instead a 50% chance it fails */
+		<<if $cash >= App.SecExp.battle.bribeCost()>> /* if there's enough cash there's a 10% chance bribery fails. If there isn't there's instead a 50% chance it fails */
 			<<if $attackType == "freedom fighters" && random(1,100) <= 50 || random(1,100) <= 10>>
 				<<set $battleResult = 0>>
 			<</if>>
@@ -25,8 +25,8 @@
 	<</if>>
 <<else>>
 	/*Init*/
-	<<if $majorBattle == 0>> 
-		<<set _turns = $maxTurns>> 
+	<<if $majorBattle == 0>>
+		<<set _turns = $maxTurns>>
 	<</if>>
 	<<set _attack = 0>>
 	<<set _defense = 0>>
@@ -1069,7 +1069,7 @@
 		<br>Enemy losses: <<print num(Math.trunc($enemyLosses))>>
 	<</if>>
 
-	<<if $battleResult > 3 || $battleResult < -3>> 
+	<<if $battleResult > 3 || $battleResult < -3>>
 		<br><br>@@.red;Error: failed to determine battle result@@
 	<</if>>
 
@@ -1086,4 +1086,4 @@
 			<<goto "attackReport">>
 		<</if>>
 	<</if>>
-<</if>> /* closes check for bribery */
\ No newline at end of file
+<</if>> /* closes check for bribery */
diff --git a/src/Mods/SecExp/attackOptions.tw b/src/Mods/SecExp/attackOptions.tw
index 1d0c840eec313e349628949f3ec0d38ccff15136..71be491baea94ad06fbb25bb57094161c5ab9de6 100644
--- a/src/Mods/SecExp/attackOptions.tw
+++ b/src/Mods/SecExp/attackOptions.tw
@@ -14,7 +14,7 @@
 <strong> <<if $majorBattle == 1>>Major<</if>> Attack Imminent</strong>
 <hr>
 <<if $majorBattle == 0>>
-	<<if $battlesCount > 0>>
+	<<if $SecExp.battles.victories + $SecExp.battles.losses > 0>>
 		The ominous message dominates the screens of your office, and <<print $assistant.name>> quickly gathers all information available to prepare for battle.
 		<<if $attackType == "raiders">>
 			<<if App.SecExp.battle.recon() >= 1>>
@@ -54,7 +54,7 @@
 		Due to their great wealth, Free Cities inevitably become tasty morsels for anyone able to field armed men. Considering the particular needs of arcologies their supply lines tend to be delicate lifelines, often preyed upon by those who stand to gain from the free city downfall.
 	<</if>>
 <<else>>
-	<<if $majorBattlesCount > 0>>
+	<<if $SecExp.battles.major > 0>>
 		The ominous message dominates the screens of your office, and <<print $assistant.name>> quickly gathers all information available to prepare for the major battle ahead.
 	<<else>>
 		Your assistant interrupted your rest to bring the grim news. You quickly rush to your console, where you can see the satellite images coming in of the force about to crash against your arcology. It's not the first time your armies fought for the survival of your empire, but this time it seems it will be a fight for life or death.
@@ -276,28 +276,14 @@ approximately <strong><<print _estimatedMen>> men</strong> are coming, they seem
 </div>
 
 <<if _leaderFound === 1>>
-	<br>
 	<<if App.SecExp.battle.deployedUnits() > 0>>
-		<<link "Send your orders" "attackHandler">>
-			<<set $battleResult = 4>>						/* sets $battleResult value outside accepted range to avoid evaluation problems */
-			<<set $foughtThisWeek = 1>>
-		<</link>>
+		<br>[[Send your orders|attackHandler][$battleResult = 4, $foughtThisWeek = 1]] /* sets $battleResult value outside accepted range (-3, 3) to avoid evaluation problems */
 	<<else>>
-		You need at least a unit in your roster to proceed to battle.
+		<br>You need at least a unit in your roster to proceed to battle.
 	<</if>>
-	<br>
-	<<link "Surrender" "attackReport">>
-		<<set $battleResult = -1>>
-		<<set $foughtThisWeek = 1>>
-	<</link>>
-	<br>
-	
-	<<set $bribeCost = App.SecExp.battle.bribeCost()>>
-	<<link "Attempt to bribe" "attackHandler">>
-		<<set $battleResult = 1>>
-		<<set $foughtThisWeek = 1>>
-	<</link>>
-	 //Will cost around <<print cashFormat(Math.round($bribeCost * (1 + either(-1,1) * random(2) * 0.1)))>> (estimate).//
+	<br>[[Surrender|attackReport][$battleResult = -1, $foughtThisWeek = 1]]
+	<br>[[Attempt to bribe|attackHandler][$battleResult = 1, $foughtThisWeek = 1]]
+	 //Will cost around <<print cashFormat(Math.round(App.SecExp.battle.bribeCost() * (1 + either(-1,1) * random(2) * 0.1)))>> (estimate).//
 <<else>>
 	Your leader needs to be present to proceed.
 <</if>>
@@ -441,4 +427,4 @@ approximately <strong><<print _estimatedMen>> men</strong> are coming, they seem
 			<<includeDOM App.SecExp.deployUnitMenu($mercUnits[_i], "mercs", _i)>>
 		<</for>>
 	</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/Mods/SecExp/attackReport.tw b/src/Mods/SecExp/attackReport.tw
index 43f197998b9cb66b9505feb74599a0e0e5f570ce..c7187a119f3d842578bdf0a75474484cbfcd1a62 100644
--- a/src/Mods/SecExp/attackReport.tw
+++ b/src/Mods/SecExp/attackReport.tw
@@ -14,38 +14,37 @@
 <<set _loot = 0>>
 
 /* result */
-<<set $battlesCount++>>
 <<if $majorBattle == 0>>
 	<<set _majorBattleMod = 1>>
 <<else>>
 	<<set _majorBattleMod = 2>>
-	<<set $majorBattlesCount++>>
+	<<set $SecExp.battles.major++>>
 <</if>>
 <<if $battleResult == 3>>
 	<strong>Victory!</strong>
 	<<set $PClossStreak = 0>>
 	<<set $PCvictoryStreak += 1>>
-	<<set $PCvictories++>>
+	<<set $SecExp.battles.victories++>>
 <<elseif $battleResult == -3>>
 	<strong>Defeat!</strong>
 	<<set $PClossStreak += 1>>
 	<<set $PCvictoryStreak = 0>>
-	<<set $PClosses++>>
+	<<set $SecExp.battles.losses++>>
 <<elseif $battleResult == 2>>
 	<strong>Partial victory!</strong>
-	<<set $PCvictories++>>
+	<<set $SecExp.battles.victories++>>
 <<elseif $battleResult == -2>>
 	<strong>Partial defeat!</strong>
-	<<set $PClosses++>>
+	<<set $SecExp.battles.losses++>>
 <<elseif $battleResult == -1>>
 	<strong>We surrendered</strong>
-	<<set $PClosses++>>
+	<<set $SecExp.battles.losses++>>
 <<elseif $battleResult == 0>>
 	<strong>Failed bribery!</strong>
-	<<set $PClosses++>>
+	<<set $SecExp.battles.losses++>>
 <<elseif $battleResult == 1>>
 	<strong>Successful bribery!</strong>
-	<<set $PCvictories++>>
+	<<set $SecExp.battles.victories++>>
 <</if>>
 <hr>
 
@@ -668,7 +667,7 @@
 	<<elseif $attackType == "old world">>
 		<<run repX(750 * _majorBattleMod, "war")>>
 	<</if>>
-	<<run cashX(forceNeg($bribeCost), "war")>>
+	<<run cashX(forceNeg(App.SecExp.battle.bribeCost()), "war")>>
 <</if>>
 <<if !Number.isInteger($lowerClass)>>
 	<<if isNaN($lowerClass)>>
@@ -1508,7 +1507,6 @@
 <</if>>
 
 /* resets variables */
-<<run delete $bribeCost>>
 <<set $leaderWounded = 0>>
 <<set $gainedWarfare = 0>>
 <<set $tacticsSuccessful = 0>>
diff --git a/src/Mods/SecExp/authorityReport.tw b/src/Mods/SecExp/authorityReport.tw
index 5c1ebf747b5f8203dd6b98c1e150e11651b6c726..2a03cc223e371c6cd0eab14f9bd877a527d383c9 100644
--- a/src/Mods/SecExp/authorityReport.tw
+++ b/src/Mods/SecExp/authorityReport.tw
@@ -120,11 +120,12 @@ Your authority is
 	<<set _authGrowth += $arcologies[0].FSChattelReligionist>>
 <</if>>
 
+<<set _elite = $arcologies[0].FSNeoImperialistLaw2 == 1 ? 'Barons' : 'Societal Elite'>>
 <<if $arcologies[0].FSRestart >= 90>>
-	The arcology's society is extremely stratified. The reliance on the Societal Elite by the lower classes greatly increases your reputation.
+	The arcology's society is extremely stratified. The reliance on the _elite by the lower classes greatly increases your reputation.
 	<<set _authGrowth += $arcologies[0].FSRestart>>
 <<elseif $arcologies[0].FSRestart >= 50>>
-	The arcology's society is very stratified. The reliance on the Societal Elite by the lower classes increases your reputation.
+	The arcology's society is very stratified. The reliance on the _elite by the lower classes increases your reputation.
 	<<set _authGrowth += $arcologies[0].FSRestart>>
 <</if>>
 
diff --git a/src/Mods/SecExp/buildings/propagandaHub.tw b/src/Mods/SecExp/buildings/propagandaHub.tw
index 4928eebf1649606808012422a2ae1a30ebfe9495..a35f7d7a6b9efe0aec7abc178c4d030822740db1 100644
--- a/src/Mods/SecExp/buildings/propagandaHub.tw
+++ b/src/Mods/SecExp/buildings/propagandaHub.tw
@@ -26,7 +26,7 @@ The propaganda hub is a surprisingly inconspicuous building, dimly lit from the
 			<<set $SecExp.buildings.propHub.recruiterOffice = 0>>
 		<</link>>
 	<</if>>
-	<br>//Providing them with an office will help boost your chosen campaign. This also stacks with the campaign boost edict.// 
+	<br>//Providing them with an office will help boost your chosen campaign. This also stacks with the campaign boost edict.//
 <</if>>
 /* classic propaganda */
 <br><br><<if $SecExp.buildings.propHub.upgrades.campaign == 0>>
@@ -195,4 +195,4 @@ The propaganda hub is a surprisingly inconspicuous building, dimly lit from the
 	<<else>>
 		You have infiltrated the black market and are now in partial control of it. [[Withdraw from the black market|propagandaHub][$SecExp.buildings.propHub.upgrades.marketInfiltration = 0]]
 	<</if>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SecExp/buildings/riotControlCenter.tw b/src/Mods/SecExp/buildings/riotControlCenter.tw
index 7715451ee439c1fa1a1c53e2faf09a085398cf41..7656b81d9b4ffaccd1c75bc83cef45238c082c08 100644
--- a/src/Mods/SecExp/buildings/riotControlCenter.tw
+++ b/src/Mods/SecExp/buildings/riotControlCenter.tw
@@ -196,14 +196,14 @@ The riot control center opens its guarded doors to you. The great chamber inside
 
 <<if $SF.Toggle && $SF.Active >= 1>>
 	<br>
-	<<if $SecExp.edicts.SFSupportLevel >= 4 && $SF.Squad.Armoury >= 8 && !$SecExp.rebellions.sfArmor>> 
+	<<if $SecExp.edicts.SFSupportLevel >= 4 && $SF.Squad.Armoury >= 8 && !$SecExp.rebellions.sfArmor>>
 		<<set _cost = Math.ceil(500000*App.SF.env()*(1.15+($SF.Squad.Armoury/10)))>>
-		 <<link "Give the riot unit access to the combat armor suits of $SF.Lower.""riotControlCenter">> 
+		 <<link "Give the riot unit access to the combat armor suits of $SF.Lower.""riotControlCenter">>
 			<<set $SecExp.rebellions.sfArmor = 1>>
-			<<run cashX((-_cost), "capEx")>> 
+			<<run cashX((-_cost), "capEx")>>
 		<</link>>
 		//Costs <<print cashFormat(_cost)>>
 	<<else>>
 		You have given the riot unit access to the combat armor suits of $SF.Lower.
 	<</if>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SecExp/buildings/secBarracks.tw b/src/Mods/SecExp/buildings/secBarracks.tw
index e1242f9f54953d0dbb00124709f4f7743e777b19..808f8e222d540a6d164aba1af86f989fced06d76 100644
--- a/src/Mods/SecExp/buildings/secBarracks.tw
+++ b/src/Mods/SecExp/buildings/secBarracks.tw
@@ -51,12 +51,12 @@ While this a sore sight for many citizens of $arcologies[0].name, the barracks s
 	<</link>>
 	<br>//Costs <<print cashFormat((5000 * ($SecExp.buildings.barracks.size + 1))*$upgradeMultiplierArcology)>> and will increase the maximum number of units by 2.//
 <<else>>
-	<<if $SF.Toggle && $SF.Active >= 1>> 
+	<<if $SF.Toggle && $SF.Active >= 1>>
 		<<set _capSF = capFirstChar($SF.Lower || "the special force")>>
 		<<set _reasons = [], _cost = Math.ceil((750000*(1.15+(App.SF.upgrades.total()/1000))*(1.15+($SF.Squad.Firebase/10)))*App.SF.env())>>
 		<br> _capSF might be able to provide assistance.
 		<<if $SF.Squad.Firebase > 5 && $SecExp.edicts.SFSupportLevel >= 4 && App.SecExp.battle.maxUnits() === 18 && App.SecExp.battle.deploySpeed() <= 10>>
-			<br>_capSF [[will provide the security force their own section in the Firebase.|secBarracks][$sectionInFirebase = 1, cashX(-_cost, "specialForcesCap")]]
+			<br>_capSF [[will provide the security force their own section in the Firebase.|secBarracks][$SecExp.sectionInFirebase = 1, cashX(-_cost, "specialForcesCap")]]
 			@@.red;<<print cashFormat(_cost)>>@@
 		<</if>>
 		<<if $SF.Squad.Firebase < 5>>
@@ -68,7 +68,7 @@ While this a sore sight for many citizens of $arcologies[0].name, the barracks s
 		<<set _reasons.join(',')>>
 		<<if _reasons.length > 0>><br>The Colonel says that the; _reasons.<</if>>
 	<<else>>
-		You've expanded the barracks to their maximum. 
+		You've expanded the barracks to their maximum.
 	<</if>>
 <</if>>
 <br>
@@ -228,7 +228,7 @@ Your current maximum number of units is <<print App.SecExp.battle.maxUnits()>> (
 			<</link>> |
 		<</if>>
 		<<includeDOM App.SecExp.bulkUpgradeUnit($slaveUnits)>>
-		
+
 		<<set _popCap = menialPopCap()>>
 		<<set _menialPrice = menialSlaveCost()>>
 		<<set _bulkMax = _popCap.value-$menials-$fuckdolls-$menialBioreactors>>
@@ -319,7 +319,7 @@ Your current maximum number of units is <<print App.SecExp.battle.maxUnits()>> (
 			<</link>> |
 		<</if>>
 		<<includeDOM App.SecExp.bulkUpgradeUnit($militiaUnits)>>
-		
+
 		<br>
 		<<set _mL = $militiaUnits.length>>
 		<<for _i = 0; _i < _mL; _i++>>
@@ -433,4 +433,4 @@ Your current maximum number of units is <<print App.SecExp.battle.maxUnits()>> (
 			<</capture>>
 		<</for>>
 	</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/Mods/SecExp/buildings/securityHQ.tw b/src/Mods/SecExp/buildings/securityHQ.tw
index 9764d9da4bbf597786e702d4108f4124891dbfbe..923858dec71c985be142530a20243b979f0a45dc 100644
--- a/src/Mods/SecExp/buildings/securityHQ.tw
+++ b/src/Mods/SecExp/buildings/securityHQ.tw
@@ -215,7 +215,7 @@ Considering the current upgrades the maximum level of crime is <<print App.SecEx
 				<br>You have bought and employed sophisticated crypto analyzing software to accurately track and archive every financial movement or transaction made inside the walls of your arcology.
 			<</if>>
 		<</if>>
-		
+
 		<br><br>Crime<hr>
 		<<if $SecExp.buildings.secHub.upgrades.crime.advForensic == 0>>
 			[[Install advanced forensic equipment|securityHQ][cashX(-Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount*$HackingSkillMultiplier), "capEx"), $SecExp.buildings.secHub.upgrades.crime.advForensic = 1, $PC.skill.hacking += 1]]
@@ -273,7 +273,7 @@ Considering the current upgrades the maximum level of crime is <<print App.SecEx
 			<br>You have installed sophisticated radar equipment.
 		<</if>>
 	<</if>>
-	
+
 	<br><br>Readiness<hr>
 	<<if $SecExp.buildings.secHub.upgrades.readiness.pathways == 0>>
 		[[Build specialized pathways in the arcology|securityHQ][cashX(-Math.trunc(5000*$upgradeMultiplierArcology*_HistoryDiscount), "capEx"), $SecExp.buildings.secHub.upgrades.readiness.pathways = 1]]
@@ -304,4 +304,4 @@ Considering the current upgrades the maximum level of crime is <<print App.SecEx
 		<</if>>
 	<</if>>
 	</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/Mods/SecExp/buildings/weaponsManufacturing.tw b/src/Mods/SecExp/buildings/weaponsManufacturing.tw
index 540ef73511642a682255b533f7317d4ff8682c7f..bb4a3fffd6c8e15d9e9a4ae5254917cbfa4e0266 100644
--- a/src/Mods/SecExp/buildings/weaponsManufacturing.tw
+++ b/src/Mods/SecExp/buildings/weaponsManufacturing.tw
@@ -82,7 +82,7 @@ You own <<print num($menials)>> free menial slaves. This manufacturing complex c
 			<</if>>
 		<</link>>
 	<</if>>
-<<else>>	
+<<else>>
 	The complex does not require more workers.
 <</if>>
 <<if $SecExp.buildings.weapManu.menials > 0>>
@@ -155,7 +155,7 @@ You own <<print num($menials)>> free menial slaves. This manufacturing complex c
 	<<run delete $SecExp.buildings.weapManu.upgrades.queue>>
 <<else>>
 	<<set $SecExp.buildings.weapManu.upgrades.queue = $SecExp.buildings.weapManu.upgrades.queue || []>>
-	
+
 	<<if $SecExp.buildings.weapManu.lab < 3>>
 		<br>Upgrade the research facility further to unlock additional upgrades.
 	<</if>>
@@ -197,7 +197,7 @@ You own <<print num($menials)>> free menial slaves. This manufacturing complex c
 	<</if>>
 	<div> <<includeDOM App.SecExp.weapManuUpgrade.purchase(0)>> </div>
 	<div> <<includeDOM App.SecExp.weapManuUpgrade.purchase(1)>> </div>
-	<<if $SecExp.buildings.weapManu.lab >= 2>>	
+	<<if $SecExp.buildings.weapManu.lab >= 2>>
 		<div> <<includeDOM App.SecExp.weapManuUpgrade.purchase(2)>> </div>
 		<div> <<includeDOM App.SecExp.weapManuUpgrade.purchase(3)>> </div>
 	<</if>>
@@ -216,7 +216,7 @@ You own <<print num($menials)>> free menial slaves. This manufacturing complex c
 			<div> <<includeDOM App.SecExp.weapManuUpgrade.purchase(8)>> </div>
 		<</if>>
 	<</if>>
-	
+
 	<<for _i = 0; _i < $SecExp.buildings.weapManu.upgrades.queue.length; _i++>>
 		<<set _current = App.SecExp.weapManuUpgrade.current($SecExp.buildings.weapManu.upgrades.queue[_i].ID)>>
 		<<if _i === 0>><br>Currently developing<<else>><br><<= ordinalSuffix(_i + 1)>> in queue<</if>>:
@@ -235,4 +235,4 @@ You own <<print num($menials)>> free menial slaves. This manufacturing complex c
 	</p>
 <</if>>
 <<set _cost = Math.trunc(10000*$upgradeMultiplierArcology)>>
-<p>[[Return this sector to standard manufacturing|Main][delete $SecExp.buildings.weapManu, cashX(-_cost), "capEx"), App.Arcology.cellUpgrade($building, App.Arcology.Cell.Manufacturing, "Weapon Manufacturing", "Manufacturing")]] //Costs <<print cashFormat(_cost)>>//</p>
\ No newline at end of file
+<p>[[Return this sector to standard manufacturing|Main][delete $SecExp.buildings.weapManu, cashX(-_cost, "capEx"), App.Arcology.cellUpgrade($building, App.Arcology.Cell.Manufacturing, "Weapon Manufacturing", "Manufacturing")]] //Costs <<print cashFormat(_cost)>>//</p>
diff --git a/src/Mods/SecExp/edicts.tw b/src/Mods/SecExp/edicts.tw
index 9ad6f9596fb3bb565781924981ed1de1165f38df..00ec9797f2cef6b51d0b269e5822abce72390ece 100644
--- a/src/Mods/SecExp/edicts.tw
+++ b/src/Mods/SecExp/edicts.tw
@@ -6,7 +6,7 @@
 <<run App.UI.tabBar.handlePreSelectedTab($tabChoice.edicts)>>
 <br>
 <button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'Society')" id="tab Society">Society</button>
-<<if $battlesCount > 0 || $rebellionsCount > 0 || $mercenaries > 0>>
+<<if $SecExp.battles.victories + $SecExp.battles.losses > 0 || $SecExp.rebellions.victories + $SecExp.rebellions.losses > 0 || $mercenaries > 0>>
 	<button class="tab-links" onclick="App.UI.tabBar.openTab(event, 'Military')" id="tab Military">Military</button>
 <</if>>
 
@@ -164,7 +164,7 @@
 	<<else>>
 		<br>''All weapons allowed:'' residents are allowed to buy, sell and keep all kind of weapons in the arcology.
 	<</if>>
-	
+
 	<<if $SecExp.edicts.weaponsLaw == 3>>
 		<br>''Heavy weaponry forbidden:'' set the range of weapons allowed within the arcology to non-heavy, non-explosive.
 		<<if $SecExp.core.authority >= 1000>>
@@ -212,7 +212,7 @@
 		<</if>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will cost some authority each week, but rebellions will be poorly armed.//
 	<</if>>
-	
+
 	<<if $FSAnnounced>>
 		<br><br>__Future Societies:__
 		<<if $SecExp.edicts.defense.legionTradition === 1>>
@@ -343,7 +343,7 @@
 		<br>''High wages for soldiers:'' wages for soldiers are set to a high level compared to market standards.
 		[[Repeal|edicts][$SecExp.edicts.defense.soldierWages = 1]]
 	<</if>>
-	
+
 	<<if $SecExp.edicts.defense.soldierWages === 0>>
 		<br>''Average wages for soldiers:'' will set the wages paid to the soldiers of the arcology to an average amount.
 		<<if $SecExp.core.authority >= 1000>>
@@ -423,7 +423,7 @@
 			<</if>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will replenish militia manpower slowly and will cap at 2% of the total citizens population.//
 		<</if>>
-		
+
 		<<if $SecExp.edicts.defense.militia === 3>>
 			<br>''Conscription:'' every citizen is required to train in the militia and serve the arcology for a limited amount of time.
 			[[Repeal|edicts][$SecExp.edicts.defense.militia = 2]]
@@ -477,8 +477,8 @@
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will slow down the replenishment of manpower, but will supply cash each week. More profitable with stricter recruitment laws.//
 			<</if>>
 		<</if>>
-		
-		
+
+
 		<<if $SecExp.edicts.defense.lowerRequirements == 1>>
 			<br>''@@.lime;Revised minimum requirements:@@'' you allow citizens outside the normally accepted range to join the militia.
 			[[Repeal|edicts][$SecExp.edicts.defense.lowerRequirements = 0]]
@@ -527,7 +527,7 @@
 			<</if>>
 		<</if>>
 	<</if>>
-	
+
 	<<if $SecExp.edicts.defense.privilege.militiaSoldier === 1>>
 		<br>''Special militia privileges:'' citizens joining the militia are exempt from rent payment.
 		[[Repeal|edicts][$SecExp.edicts.defense.privilege.militiaSoldier = 0]]
@@ -617,7 +617,7 @@
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will help advance degradationism and provide a small amount of exp to units, but will make the slave population slowly decline.//
 		<</if>>
 	<</if>>
-	
+
 	<<if $SF.Toggle && $SF.Active >= 1>>
 		<br><br>__Special Force:__
 		<<set _capSF = capFirstChar($SF.Lower || "the special force")>>
diff --git a/src/Mods/SecExp/js/Unit.js b/src/Mods/SecExp/js/Unit.js
index ab68e5e9e5b074ead7c8d1563c08dd47b69db058..76dc8ad2f350f48e2bd9ebc340b7fee9962ecedb 100644
--- a/src/Mods/SecExp/js/Unit.js
+++ b/src/Mods/SecExp/js/Unit.js
@@ -1,18 +1,18 @@
 /** Creates a bulk upgrade link for the unit that is passed.
  * @param {object} [unit] the unit to be checked.
  */
-App.SecExp.bulkUpgradeUnit = function(unit) {	
+App.SecExp.bulkUpgradeUnit = function(unit) {
 	unit = Array.isArray(unit) ? unit : [unit];
 	// console.log(unit); return;
 	let el = document.createElement("a");
-	
+
 	function upgradeUnit(x) {
 		Object.assign(x, {
 			maxTroops: 50, equip: 3, commissars: 2,
 			cyber: 1, medics: 1, SF: 1
 		});
 	}
-	
+
 	function getCost(x) {
 		let cost = 0;
 		const equipUpgradeCost = 250;
@@ -424,7 +424,7 @@ App.SecExp.trainingValueToBonusFactor = function(value) {
 
 /** Gets the bonus values provided for completing weapon manufacturing upgrades.
  * @param {string} type - unit type to check.
- * @returns {Object} bouns values after checking for completed upgrades.
+ * @returns {object} bouns values after checking for completed upgrades.
  */
 App.SecExp.getAppliedUpgrades = function(type) {
 	let hp = 0, morale = 0, def = 0, attack = 0;
@@ -472,7 +472,9 @@ App.SecExp.getAppliedUpgrades = function(type) {
 			}
 		}
 	}
-	return {attack: attack, defense: def, hp: hp, morale: morale};
+	return {
+		attack: attack, defense: def, hp: hp, morale: morale
+	};
 };
 
 App.SecExp.getEdictUpgradeVal = (function() {
diff --git a/src/Mods/SecExp/js/buildingsJS.js b/src/Mods/SecExp/js/buildingsJS.js
index 32cdf028b416d09007bf27cb4079db6c6f0d8f4c..0f38e300498fd7087a727bbf827ac4bcd465426f 100644
--- a/src/Mods/SecExp/js/buildingsJS.js
+++ b/src/Mods/SecExp/js/buildingsJS.js
@@ -5,12 +5,12 @@ App.SecExp.weapManuUpgrade = (function() {
 		purchase,
 		fully,
 	};
-	
+
 	/** Weeks to completion without any modification.
 	 * @returns {number}
 	 */
 	function baseTime() { return 10; }
-	
+
 	/** Checks the supplied ID value and assigns values.
 	 * @param {number} [x=null] the optional ID value to use instead of the current upgrades ID.
 	 * @returns {Object}
@@ -20,7 +20,7 @@ App.SecExp.weapManuUpgrade = (function() {
 		switch(o.ID) {
 			case -3:
 				Object.assign(o, {
-					dec: "advanced synthetic alloys", type: "hp", unit: "the security drones", 
+					dec: "advanced synthetic alloys", type: "hp", unit: "the security drones",
 					cost: 10000*V.HackingSkillMultiplier,
 				});
 				break;
@@ -137,7 +137,7 @@ App.SecExp.weapManuUpgrade = (function() {
 				}
 				el.append(` and will increase `);
 				if (item.type !== "all") {
-					el.append(`the base ${item.type} value${item.type.contains("and") ? 's' : ''}`);				
+					el.append(`the base ${item.type} value${item.type.contains("and") ? 's' : ''}`);
 				} else {
 					el.append('all base stats');
 				}
@@ -152,7 +152,7 @@ App.SecExp.weapManuUpgrade = (function() {
 		}
 		return el;
 	}
-	
+
 	function fully() {
 		const human = [0, 1, 2, 3, 4, 5] + (V.SF.Toggle && V.SF.Active >= 1 ? [,6, 7, 8] : []);
 		return {
@@ -164,10 +164,10 @@ App.SecExp.weapManuUpgrade = (function() {
 
 App.SecExp.propHub = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC
 	};
-	
+
 	function Init() {
 		V.SecExp.buildings.propHub = {
 			recuriterOffice: 0,
@@ -183,7 +183,7 @@ App.SecExp.propHub = (function() {
 			focus: "social engineering",
 		};
 	}
-	
+
 	function BC() {
 		if (V.SecExp.buildings.pr === null) {
 			delete V.SecExp.buildings.pr;
@@ -202,12 +202,12 @@ App.SecExp.propHub = (function() {
 			V.SecExp.buildings.propHub = V.SecExp.buildings.propHub || {};
 			V.SecExp.buildings.propHub.upgrades = V.SecExp.buildings.propHub.upgrades || {};
 			V.SecExp.buildings.propHub.recruiterOffice = V.SecExp.buildings.propHub.recruiterOffice || V.recuriterOffice || V.RecuriterOffice || 0;
-			
+
 			V.SecExp.buildings.propHub.upgrades.campaign = V.SecExp.buildings.propHub.upgrades.campaign || V.SecExp.buildings.propHub.campaign || V.propCampaign || 0;
 			delete V.SecExp.buildings.propHub.campaign;
 			V.SecExp.buildings.propHub.upgrades.miniTruth = V.SecExp.buildings.propHub.upgrades.miniTruth || V.SecExp.buildings.propHub.miniTruth || V.miniTruth || 0;
 			delete V.SecExp.buildings.propHub.miniTruth;
-			
+
 			V.SecExp.buildings.propHub.upgrades.secretService = V.SecExp.buildings.propHub.upgrades.secretService || V.SecExp.buildings.propHub.secretService || V.SecExp.buildings.propHub.SS || V.secretService || 0;
 			delete V.SecExp.buildings.propHub.secretService;
 			delete V.SecExp.buildings.propHub.SS;
@@ -233,10 +233,10 @@ App.SecExp.propHub = (function() {
 
 App.SecExp.barracks = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC
 	};
-	
+
 	function Init() {
 		V.SecExp.buildings.barracks = {
 			size: 0,
@@ -245,7 +245,7 @@ App.SecExp.barracks = (function() {
 			loyaltyMod: 0
 		};
 	}
-	
+
 	function BC() {
 		if (V.SecExp.buildings.barracks) {
 			delete V.SecExp.buildings.barracks.active;
@@ -265,10 +265,10 @@ App.SecExp.barracks = (function() {
 
 App.SecExp.secHub = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC
 	};
-	
+
 	function Init() {
 		V.SecExp.buildings.secHub = {
 			menials: 0,
@@ -300,7 +300,7 @@ App.SecExp.secHub = (function() {
 			}
 		};
 	}
-	
+
 	function BC() {
 		if (V.secHQ || (V.SecExp.buildings.secHub && Object.entries(V.SecExp.buildings.secHub).length > 0)){
 			V.SecExp.buildings.secHub = V.SecExp.buildings.secHub || {};
@@ -341,10 +341,10 @@ App.SecExp.secHub = (function() {
 
 App.SecExp.riotCenter = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC
 	};
-	
+
 	function Init() {
 		V.SecExp.buildings.riotCenter = {
 			upgrades: {
@@ -363,7 +363,7 @@ App.SecExp.riotCenter = (function() {
 			brainImplantProject: 0,
 		};
 	}
-	
+
 	function BC() {
 		if (V.riotCenter || (V.SecExp.buildings.riotCenter && Object.entries(V.SecExp.buildings.riotCenter).length > 0)) {
 			V.SecExp.buildings.riotCenter = V.SecExp.buildings.riotCenter || {};
@@ -391,8 +391,8 @@ App.SecExp.riotCenter = (function() {
 
 App.SecExp.weapManu = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC,
 	};
 
 	function Init() {
@@ -406,12 +406,10 @@ App.SecExp.weapManu = (function() {
 				oldWorld: 1,
 				FC: 1,
 			},
-			upgrades: {
-				completed: [],
-			}
+			upgrades: {completed: []}
 		};
 	}
-	
+
 	function BC() {
 		if (V.weapManu || (V.SecExp.buildings.weapManu && Object.entries(V.SecExp.buildings.weapManu).length > 0)) {
 			V.SecExp.buildings.weapManu = V.SecExp.buildings.weapManu || {};
@@ -466,7 +464,7 @@ App.SecExp.weapManu = (function() {
 					}
 					V.SecExp.buildings.weapManu.upgrades.queue.push({ID: V.currentUpgrade.ID, time: V.currentUpgrade.time});
 				}
-				
+
 				if (jsDef(V.SecExp.buildings.weapManu.upgrades.current)) {
 					if (V.SecExp.buildings.weapManu.upgrades.current.time > 0) {
 						V.SecExp.buildings.weapManu.upgrades.queue.push(V.SecExp.buildings.weapManu.upgrades.current);
@@ -482,10 +480,10 @@ App.SecExp.weapManu = (function() {
 
 App.SecExp.transportHub = (function() {
 	return {
-		Init:Init,
-		BC:BC
+		Init,
+		BC
 	};
-	
+
 	function Init() {
 		V.SecExp.buildings.transportHub = {
 			airport: 1,
@@ -493,7 +491,7 @@ App.SecExp.transportHub = (function() {
 			surfaceTransport: 1,
 		};
 	}
-	
+
 	function BC() {
 		if (V.transportHub || (V.SecExp.buildings.transportHub && Object.entries(V.SecExp.buildings.transportHub).length > 0)) {
 			V.SecExp.buildings.transportHub = V.SecExp.buildings.transportHub || {};
diff --git a/src/Mods/SecExp/js/secExp.js b/src/Mods/SecExp/js/secExp.js
index 2756eec84966ceb58f626a9dbb1bb39f4585b3a9..8fd76af1053e8beb11c84b8f7b8d5ed3b5957d0a 100644
--- a/src/Mods/SecExp/js/secExp.js
+++ b/src/Mods/SecExp/js/secExp.js
@@ -21,24 +21,23 @@ App.SecExp.generalInit = function(){
 	}
 
 	Object.assign(V.SecExp, {
-		/*
 		battles: {
 			major: 0,
-			slaveVictories : [],
+			// slaveVictories : [],
 			victories: 0,
-			victoryStreak: 0,
+			// victoryStreak: 0,
 			losses: 0,
-			lossStreak: 0,
+			// lossStreak: 0,
 			lastEncounterWeeks: 0,
-			saved: {}
-		}, */
+			// saved: {}
+		},
 		rebellions: {
 			tension: 0,
 			slaveProgress: 0,
 			citizenProgress: 0,
-			// victories: 0,
-			// losses: 0,
-			// lastEncounterWeeks: 0
+			victories: 0,
+			losses: 0,
+			lastEncounterWeeks: 0
 		},
 		core: {
 			trade: 0,
@@ -387,7 +386,7 @@ App.SecExp.battle = (function() {
 				init += 2;
 			}
 		}
-		if (V.SF.Toggle && V.SF.Active >= 1 && V.sectionInFirebase >= 1) {
+		if (V.SF.Toggle && V.SF.Active >= 1 && V.SecExp.sectionInFirebase >= 1) {
 			init += 2;
 		}
 		return init;
diff --git a/src/Mods/SecExp/js/secExpBC.js b/src/Mods/SecExp/js/secExpBC.js
index 4cf9326b5b6484619bfc9afa47dd831295c3e149..3dbb8a9cba87ec11685f908a26a1c41c63de3a4f 100644
--- a/src/Mods/SecExp/js/secExpBC.js
+++ b/src/Mods/SecExp/js/secExpBC.js
@@ -74,7 +74,7 @@ App.SecExp.generalBC = function() {
 		V.SecExp.edicts.defense.privilege.militiaSoldier = V.SecExp.edicts.defense.privilege.militiaSoldier || V.militiaSoldier || 0;
 		V.SecExp.edicts.defense.privilege.slaveSoldier = V.SecExp.edicts.defense.privilege.slaveSoldier || V.slaveSoldier || 0;
 		V.SecExp.edicts.defense.privilege.mercSoldier = V.SecExp.edicts.defense.privilege.mercSoldier || V.mercSoldier || 0;
-		
+
 		V.SecExp.defaultNames = V.SecExp.defaultNames || {};
 		V.SecExp.defaultNames.slaves = V.SecExp.defaultNames.slaves || "slave platoon";
 		V.SecExp.defaultNames.milita = V.SecExp.defaultNames.milita || "citizens' platoon";
@@ -99,15 +99,16 @@ App.SecExp.generalBC = function() {
 		for (let i = 0; i < V.slaveUnits; i++) {
 			App.SecExp.fixBrokenUnit(V.slaveUnits[i]);
 		}
+
 		// V.SecExp.units.milita = V.SecExp.units.milita || {};
 		// V.SecExp.units.milita.created = V.SecExp.units.milita.created || V.createdMilitiaUnits || 0;
 		// V.SecExp.units.milita.free = V.SecExp.units.milita.free || V.militiaFreeManpower || 0;
 		// V.SecExp.units.milita.casualties = V.SecExp.units.milita.casualties || V.militiaTotalCasualties || 0;
 		// V.SecExp.units.milita.sqauds = V.SecExp.units.milita.sqauds || V.militiaUnits || [];
-
 		for (let i = 0; i < V.militiaUnits; i++) {
 			App.SecExp.fixBrokenUnit(V.militiaUnits[i]);
 		}
+
 		// V.SecExp.units.mercs = V.SecExp.units.mercs || {};
 		// V.SecExp.units.mercs.created = V.SecExp.units.mercs.created || V.createdMercUnits || 0;
 		// V.SecExp.units.mercs.free = V.SecExp.units.mercs.free || V.mercFreeManpower || 0;
@@ -149,13 +150,13 @@ App.SecExp.generalBC = function() {
 				V.SecExp.smilingMan.globalCrisisWeeks = V.globalCrisisWeeks;
 			}
 		}
-		
+
 		V.SecExp.core = V.SecExp.core || {};
 		delete V.SecExp.core.crimeCap;
 
 		V.SecExp.core.trade = V.SecExp.core.trade || V.trade || 0;
 		App.SecExp.initTrade();
-		
+
 		V.SecExp.core.authority = V.SecExp.core.authority || V.authority || 0;
 		V.SecExp.core.security = V.SecExp.core.security || V.security || 100;
 		if (jsDef(V.SecExp.security)) {
@@ -172,31 +173,33 @@ App.SecExp.generalBC = function() {
 			V.SecExp.core.crimeLow = V.crime;
 		}
 
-		/*
-		if (V.sectionInFirebase) {
-			V.SecExp.sectionInFirebase = V.sectionInFirebase;
-		}
-
 		V.SecExp.battles = V.SecExp.battles || {};
-		V.SecExp.battles.slaveVictories = V.SecExp.battles.slaveVictories || V.slaveVictories || [];
-		V.SecExp.battles.major = V.SecExp.battles.major || V.majorBattlesCount || 0;
+		// V.SecExp.battles.slaveVictories = V.SecExp.battles.slaveVictories || V.slaveVictories || [];
+		V.SecExp.battles.major = V.SecExp.battles.major || 0;
+		if (jsDef(V.majorBattlesCount)) {
+			if (V.majorBattlesCount === 0 && V.hasFoughtMajorBattleOnce === 1) {
+				V.SecExp.battles.major = 1;
+			} else {
+				V.SecExp.battles.major = V.majorBattlesCount;
+			}
+		}
 		V.SecExp.battles.victories = V.SecExp.battles.victories || V.PCvictories || 0;
-		V.SecExp.battles.victoryStreak = V.SecExp.battles.victoryStreak || V.PCvictoryStreak || 0;
+		// V.SecExp.battles.victoryStreak = V.SecExp.battles.victoryStreak || V.PCvictoryStreak || 0;
 		V.SecExp.battles.losses = V.SecExp.battles.losses || V.PClosses || 0;
-		V.SecExp.battles.lossStreak = V.SecExp.battles.lossStreak || V.PClossStreak || 0;
+		// V.SecExp.battles.lossStreak = V.SecExp.battles.lossStreak || V.PClossStreak || 0;
 		V.SecExp.battles.lastEncounterWeeks = V.SecExp.battles.lastEncounterWeeks || V.lastAttackWeeks || 0;
-		V.SecExp.battles.lastSelection = V.SecExp.battles.lastSelection || V.lastSelection || [];
-		V.SecExp.battles.saved = V.SecExp.battles.saved || {};
-		V.SecExp.battles.saved.commander = V.SecExp.battles.saved.commander || V.SavedLeader || "";
-		V.SecExp.battles.saved.sfSupport = V.SecExp.battles.saved.sfSupport || V.SavedSFI || 0;
-		*/
+		// V.SecExp.battles.lastSelection = V.SecExp.battles.lastSelection || V.lastSelection || [];
+		// V.SecExp.battles.saved = V.SecExp.battles.saved || {};
+		// V.SecExp.battles.saved.commander = V.SecExp.battles.saved.commander || V.SavedLeader || "";
+		// V.SecExp.battles.saved.sfSupport = V.SecExp.battles.saved.sfSupport || V.SavedSFI || 0;
+
 		V.SecExp.rebellions = V.SecExp.rebellions || {};
 		V.SecExp.rebellions.tension = V.SecExp.rebellions.tension || V.tension || 0;
 		V.SecExp.rebellions.slaveProgress = V.SecExp.rebellions.slaveProgress || V.slaveProgress || 0;
 		V.SecExp.rebellions.citizenProgress = V.SecExp.rebellions.citizenProgress || V.citizenProgress || 0;
-		// V.SecExp.rebellions.victories = V.SecExp.rebellions.victories || V.PCrebWon || 0;
-		// V.SecExp.rebellions.losses = V.SecExp.rebellions.losses || V.PCrebLoss || 0;
-		// V.SecExp.rebellions.lastEncounterWeeks = V.SecExp.rebellions.lastEncounterWeeks || V.lastRebellionWeeks || 0;
+		V.SecExp.rebellions.victories = V.SecExp.rebellions.victories || V.PCrebWon || 0;
+		V.SecExp.rebellions.losses = V.SecExp.rebellions.losses || V.PCrebLoss || 0;
+		V.SecExp.rebellions.lastEncounterWeeks = V.SecExp.rebellions.lastEncounterWeeks || V.lastRebellionWeeks || 0;
 		if (V.SFGear) {
 			V.SecExp.rebellions.sfArmor = V.SFGear;
 		}
@@ -224,11 +227,11 @@ App.SecExp.generalBC = function() {
 		if (jsDef(V.forceBattle)) {
 			V.SecExp.settings.battle.force = V.forceBattle;
 		}
-		
-		if (V.readiness && V.readiness === 10) {
+
+		if (V.readiness && V.readiness === 10 || V.sectionInFirebase) {
 			V.SecExp.sectionInFirebase = 1;
 		}
-		
+
 		V.SecExp.settings.unitDescriptions = V.SecExp.settings.unitDescriptions || 0;
 
 		if (!jsDef(V.SecExp.settings.battle.allowSlavePrestige)) {
@@ -279,11 +282,9 @@ App.SecExp.generalBC = function() {
 			V.SecExp.settings.rebellion.speed = V.rebellionSpeed;
 		}
 
-		if (V.SecExp.settings.battle.enabled + V.SecExp.settings.rebellion.enabled > 0) {
-			V.SecExp.settings.showStats = V.SecExp.settings.showStats || 0;
-			if (jsDef(V.showBattleStatistics)) {
-				V.SecExp.settings.showStats = V.showBattleStatistics;
-			}
+		V.SecExp.settings.showStats = V.SecExp.settings.showStats || 0;
+		if (jsDef(V.showBattleStatistics)) {
+			V.SecExp.settings.showStats = V.showBattleStatistics;
 		}
 
 		V.SecExp.buildings = V.SecExp.buildings || {};
@@ -298,10 +299,8 @@ App.SecExp.generalBC = function() {
 		V.SecExp.proclamation.cooldown = V.SecExp.proclamation.cooldown || V.proclamationsCooldown || 0;
 		V.SecExp.proclamation.currency = V.SecExp.proclamation.currency || V.proclamationCurrency || "";
 		V.SecExp.proclamation.type = V.SecExp.proclamation.type || "crime";
-		if (jsDef(V.proclamationType)) {
-			if (V.proclamationType !== "none") {
-				V.SecExp.proclamation.type = V.proclamationType;
-			}
+		if (jsDef(V.proclamationType) && V.proclamationType !== "none") {
+			V.SecExp.proclamation.type = V.proclamationType;
 		}
 		/*
 		V.SecExp.rebellions.repairTime = V.SecExp.rebellions.repairTime || {};
diff --git a/src/Mods/SecExp/widgets/miscSecExpWidgets.tw b/src/Mods/SecExp/miscSecExpWidgets.tw
similarity index 100%
rename from src/Mods/SecExp/widgets/miscSecExpWidgets.tw
rename to src/Mods/SecExp/miscSecExpWidgets.tw
diff --git a/src/Mods/SecExp/potentialToDo.txt b/src/Mods/SecExp/potentialToDo.txt
index af235af81ba72b47e7e7135b91155db4f724938b..3c6cd44d8a6abadd26db7f0d9a91e29b235580a0 100644
--- a/src/Mods/SecExp/potentialToDo.txt
+++ b/src/Mods/SecExp/potentialToDo.txt
@@ -1,5 +1,9 @@
 Hexall90's last merged commit: 52dde0b3
 
+- Remove unit.isDeployed as it is only used in battles and add the IDs to an array.
+	This would require that units have unique IDs (e.g bots: -1 -> 99, milita: 100 -> 199, slaves: 200 -> 299, mercs: 300 - 399, etc).
+	It would also allow for _*RebelledID to potentially be removed.
+
 - While at it something for barracks(general? commissar?) and riot center([Insert player title there]'s Will?? Big Sister? ) too would be nice
 - While at it decoupling of propaganda slave and recruiter when?
 - Would  it be possible to add option for assigning hacker to security HQ that would work similarly to giving office for recruiter in propaganda hub? Preferably with smiling man slave giving extra bonuses there
@@ -32,11 +36,11 @@ Hexall90's last merged commit: 52dde0b3
 - Ability to create more drone squads.
 - Increase base maximum units to 18, 20 with SF.
 - Suggestion - Gradual Battle Frequency - https://gitgud.io/pregmodfan/fc-pregmod/issues/1245#note_82504
-- Option to send slaves into military unit to gain some nice scars and experience wold be nice (with retrieval). 
+- Option to send slaves into military unit to gain some nice scars and experience wold be nice (with retrieval).
 - So would be taking slaves from slave units as personal ones. The slave units would pretty much be menial slaves I'd imagine, not sex slaves.
 - If I think about it having a squad of personal slaves that you equip in whatever gear you want and send out to capture new slaves, raid caravans and cities and shit would be pretty sweet, I would even call it special forces but that's taken, also the combat skill is still a binary thing which makes the whole thing pointless.
 	How about to start off with option to send one or two of your combat trained slaves to assist the merc's when they are on a raid with the possibility of receiving battle wounds.
 - It would be a start if the tactics talking about the size difference of the armies actually took the size difference into account.
 - How about to start off with option to send one or two of your combat trained slaves to assist the merc's when they are on a raid with the possibility of receiving battle wounds.
 - If there are choices, they should be along the lines of "higher risk, higher reward" (defeating the enemy with fewer casualties and damage if it goes right, but suffering higher casualties and damage if it goes wrong), or things like accepting more/less military casualties for better/worse protection of economic assets (costing money/damaging economy) and civilians (costing reputation/damaging population).
-- The ability to send units to the general to increase relationship as an alternative to sending slaves.
\ No newline at end of file
+- The ability to send units to the general to increase relationship as an alternative to sending slaves.
diff --git a/src/Mods/SecExp/rebellionGenerator.tw b/src/Mods/SecExp/rebellionGenerator.tw
index fa202752b828df1688c0d94ca9341ab6afbf1126..43fb8ee501970b0bae5604a550366b031f10916a 100644
--- a/src/Mods/SecExp/rebellionGenerator.tw
+++ b/src/Mods/SecExp/rebellionGenerator.tw
@@ -291,7 +291,7 @@
 /* if a rebellion fires determine amount of rebels and rebelling units */
 <<if $slaveRebellion == 1>>
 	<<set $engageRule = 0>>
-	<<set $lastRebellionWeeks = 0>>
+	<<set $SecExp.rebellions.lastEncounterWeeks = 0>>
 	<<set $leadingTroops = "assistant">>
 	/* calc how many slaves and citizens participate */
 	<<set _authFactor = Math.clamp(1 - ($SecExp.core.authority / 20000),0.4,0.6)>>
@@ -349,7 +349,7 @@
 	<<set $attackEquip = Math.clamp($SecExp.edicts.weaponsLaw + random(-2,1),0,4)>>
 <<elseif $citizenRebellion == 1>>
 	<<set $engageRule = 0>>
-	<<set $lastRebellionWeeks = 0>>
+	<<set $SecExp.rebellions.lastEncounterWeeks = 0>>
 	<<set $leadingTroops = "assistant">>
 	/* calc how many citizens participate */
 	<<set _authFactor = Math.clamp(1 - ($SecExp.core.authority / 20000),0.4,0.6)>>
@@ -406,5 +406,5 @@
 	<</for>>
 	<<set $attackEquip = Math.clamp($SecExp.edicts.weaponsLaw + random(-1,1),0,4)>>
 <<else>>
-	<<set $lastRebellionWeeks++>>
+	<<set $SecExp.rebellions.lastEncounterWeeks++>>
 <</if>>
\ No newline at end of file
diff --git a/src/Mods/SecExp/rebellionHandler.tw b/src/Mods/SecExp/rebellionHandler.tw
index 0af05c3cbf3749deca80c4d24cd21da739d61d47..6bee0a3f1933229e6b4f8ca0b3bc9d50213a6ad2 100644
--- a/src/Mods/SecExp/rebellionHandler.tw
+++ b/src/Mods/SecExp/rebellionHandler.tw
@@ -307,7 +307,7 @@ __Difficulty__:<br>
 	<</if>>
 <</if>>
 
-<<if $battleResult > 3 || $battleResult < -3>> 
+<<if $battleResult > 3 || $battleResult < -3>>
 	<br><br>@@.red;Error: failed to determine battle result@@
 <</if>>
 
@@ -319,8 +319,8 @@ __Difficulty__:<br>
 	<</if>>
 <<else>>
 	<<if $SecExp.settings.rebellion.gameOver == 1 && $battleResult == -3>>
-		<<set $gameover = "Rebellion defeat">> <<goto "Gameover">>	
+		<<set $gameover = "Rebellion defeat">> <<goto "Gameover">>
 	<<else>>
 		<<goto "rebellionReport">>
 	<</if>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SecExp/rebellionOptions.tw b/src/Mods/SecExp/rebellionOptions.tw
index fc9072252652ab2524d2149b6510c4b578ee0539..2beb68f41cfa56f302b4269418567016c0b672ff 100644
--- a/src/Mods/SecExp/rebellionOptions.tw
+++ b/src/Mods/SecExp/rebellionOptions.tw
@@ -151,7 +151,7 @@
 		<</for>>
 		betrayed you and joined the insurrection.
 	<</if>>
-	
+
 	<<set _count = 0>>
 	<<set _loyalUnits = $militiaUnits.length + $slaveUnits.length + $mercUnits.length - $rebellingID.length>>
 	<<if _loyalUnits > 0>>
@@ -278,4 +278,4 @@ In order to preserve the structural integrity of the building and the lives of o
 <br>
 <<link "Surrender" "rebellionReport">>
 	<<set $battleResult = -1, $foughtThisWeek = 1>>
-<</link>>
\ No newline at end of file
+<</link>>
diff --git a/src/Mods/SecExp/rebellionReport.tw b/src/Mods/SecExp/rebellionReport.tw
index 1c00ecdf3401bc896edbe8c63e650c8b2b9c425c..c627294c58f2b2ab368c5afafeb2fd84773e1901 100644
--- a/src/Mods/SecExp/rebellionReport.tw
+++ b/src/Mods/SecExp/rebellionReport.tw
@@ -9,22 +9,21 @@
 <</if>>
 <<set $SecExp.core.totalKills += $enemyLosses>>
 <<set $losses = Math.trunc($losses)>>
-<<set $rebellionsCount++>>
 <<if $battleResult == 3>>
 	<strong>Victory!</strong>
-	<<set $PCrebWon++>>
+	<<set $SecExp.rebellions.victories++>>
 <<elseif $battleResult == -3>>
 	<strong>Defeat!</strong>
-	<<set $PCrebLoss++>>
+	<<set $SecExp.rebellions.losses++>>
 <<elseif $battleResult == 2>>
 	<strong>Partial victory!</strong>
-	<<set $PCrebWon++>>
+	<<set $SecExp.rebellions.victories++>>
 <<elseif $battleResult == -2>>
 	<strong>Partial defeat!</strong>
-	<<set $PCrebLoss++>>
+	<<set $SecExp.rebellions.losses++>>
 <<elseif $battleResult == -1>>
 	<strong>We surrendered</strong>
-	<<set $PCrebLoss++>>
+	<<set $SecExp.rebellions.losses++>>
 <</if>>
 <hr>
 
diff --git a/src/Mods/SecExp/securityReport.tw b/src/Mods/SecExp/securityReport.tw
index 979f04093183cd0c42646063ba8007108a4ad843..cff4bc801b5f379106ee865c24a0b7e5909372c6 100644
--- a/src/Mods/SecExp/securityReport.tw
+++ b/src/Mods/SecExp/securityReport.tw
@@ -18,7 +18,7 @@
 <</if>>
  have the luxury of focusing exclusively on internal matters.<br>
 <<if (def $SecExp.buildings.secHub) && ($SecExp.buildings.secHub.menials > 0)>>
-	<<print num($SecExp.buildings.secHub.menials)>> slaves work to improve the security of your arcology, while your 
+	<<print num($SecExp.buildings.secHub.menials)>> slaves work to improve the security of your arcology, while your
 <<else>>
 	Your
 <</if>>
@@ -142,13 +142,14 @@
 	Your military is the size of a small army. Security is easier to maintain with such forces at your disposal.
 	<<set _secGrowth += 0.5>>
 <</if>>
-<<if $lastAttackWeeks < 3 && $battlesCount > 0>>
+<<set _count = $SecExp.battles.victories + $SecExp.battles.losses>>
+<<if $SecExp.battles.lastEncounterWeeks < 3 && _count > 0>>
 	The recent attack has a negative effect on the security of the arcology.
 	<<set _secGrowth -= 1>>
-<<elseif $lastAttackWeeks < 5 && $battlesCount > 0>>
+<<elseif $SecExp.battles.lastEncounterWeeks < 5 && _count > 0>>
 	While some time has passed, the last attack still has a negative effect on the security of the arcology.
 	<<set _secGrowth -= 0.5>>
-<<elseif $battlesCount > 0>>
+<<elseif _count > 0>>
 	The arcology has not been attacked in a while, which has a positive effect on security.
 	<<set _secGrowth += 0.5>>
 <</if>>
@@ -400,7 +401,7 @@ Due to the deterioration of the old world countries, organized crime focuses mor
 				<<set _recruitLimit -= _adjst>>
 			<</if>>
 		<</if>>
-		
+
 		<<set _recruits = Math.trunc((_recruitLimit * $ACitizens - App.SecExp.Manpower.totalMilitia) / 20 * _recruitsMultiplier)>>
 		<<if _recruits > 0>>
 			<<set $militiaFreeManpower += _recruits>>
@@ -529,4 +530,4 @@ Due to the deterioration of the old world countries, organized crime focuses mor
 			_current.dec for _current.unit. It will enhance their _current.purpose.
 		<</for>>
 	<</if>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SecExp/tradeReport.tw b/src/Mods/SecExp/tradeReport.tw
index 9ae708d0bec6ca5b595b76aeb05b9b244be63744..266aa0a62f78c13f77f0481eabe93f1d4cf25579 100644
--- a/src/Mods/SecExp/tradeReport.tw
+++ b/src/Mods/SecExp/tradeReport.tw
@@ -17,17 +17,19 @@
 <</if>>
 
 <<set _tradeChange = 0>>
-<<if $lastAttackWeeks < 2 && $battlesCount > 0>>
+<<set _countBattles = $SecExp.battles.victories + $SecExp.battles.losses>>
+<<set _countRebellions = $SecExp.rebellions.victories + $SecExp.rebellions.losses>>
+<<if $SecExp.battles.lastEncounterWeeks < 2 && _countBattles > 0>>
 	The recent attack has a negative effect on the trade of the arcology.
 	<<set _tradeChange -= 1>>
-<<elseif $lastAttackWeeks < 4 && $battlesCount > 0>>
+<<elseif $SecExp.battles.lastEncounterWeeks < 4 && _countBattles > 0>>
 	While some time has passed, the last attack still has a negative effect on the commercial activity of the arcology.
 	<<set _tradeChange -= 0.5>>
 <</if>>
-<<if $lastRebellionWeeks < 2 && $rebellionsCount > 0>>
+<<if $SecExp.rebellions.lastEncounterWeeks < 2 && _countRebellions > 0>>
 	The recent rebellion has a negative effect on the trade of the arcology.
 	<<set _tradeChange -= 1>>
-<<elseif $lastRebellionWeeks < 4 && $rebellionsCount > 0>>
+<<elseif $SecExp.rebellions.lastEncounterWeeks < 4 && _countRebellions > 0>>
 	While some time has passed, the last rebellion still has a negative effect on the commercial activity of the arcology.
 	<<set _tradeChange -= 0.5>>
 <</if>>
diff --git a/src/Mods/SecExp/unitsRebellionReport.tw b/src/Mods/SecExp/unitsRebellionReport.tw
index 0c154b5ab55b499e62e0812f9a6177feb4ceb98b..b2549223e94d38e93822f287a34735e9a398a3c8 100644
--- a/src/Mods/SecExp/unitsRebellionReport.tw
+++ b/src/Mods/SecExp/unitsRebellionReport.tw
@@ -356,7 +356,7 @@
 			<br>//Will positively influence the loyalty of the other units, but no manpower will be refunded.//
 		</span>
 	<</if>>
-	
+
 	<br> <<set _slaveRebelledID = [], _slaveManpower = 0>>
 	<<for _j = 0; _j < $slaveUnits.length; _j++>>
 		<<if $slaveUnits[_j].active == 1 && $rebellingID.includes($slaveUnits[_j].ID)>>
@@ -493,4 +493,4 @@
 	<</if>>
 	<<run cashX(forceNeg(1000 * _mercRebelledID.length), "war")>>
 	<<run $mercUnits.deleteWith((u) => _mercRebelledID.includes(u.ID))>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw
index 50660e928918f7f01fb9112a488194d666ef9209..5bdca67f793255bf793cf58f13ed21cfd2ac6c5a 100644
--- a/src/Mods/SpecialForce/Firebase.tw
+++ b/src/Mods/SpecialForce/Firebase.tw
@@ -95,7 +95,7 @@
 					<br>[[Assign a large section of soldiers to work undercover|Firebase][$SF.UC.Assign = 2]]
 				<</switch>>
 			<<else>>
-				<<if $SF.UC.Assign < 1>>''Zero''<<elseif $SF.UC.Assign < 2>>A ''small'' section<<else>>A ''large'' section<</if>> 
+				<<if $SF.UC.Assign < 1>>''Zero''<<elseif $SF.UC.Assign < 2>>A ''small'' section<<else>>A ''large'' section<</if>>
 				of the special force is assigned to undercover work, which will primarily advance your cultural goals while also slightly boosting your reputation. [[Re-allocate the units|Firebase][$SF.UC.Lock = 0]]
 			<</if>>
 			<<= App.SF.Interactions()>>
@@ -106,4 +106,4 @@
 	<div id="FS" class="tab-content">
 		<div class="content"> <<= App.SF.fsIntegration.menu()>> </div>
 	</div>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SpecialForce/FirebaseTour.tw b/src/Mods/SpecialForce/FirebaseTour.tw
index 290e0b0fc311920e6c9979df25391a121b2a9db8..fa6cc268829ad60364954c64bd48b608b3e03eee 100644
--- a/src/Mods/SpecialForce/FirebaseTour.tw
+++ b/src/Mods/SpecialForce/FirebaseTour.tw
@@ -88,7 +88,7 @@ As you approach, The Colonel
 <</if>>
 
 <br>__Current facilities status:__
-<<= App.SF.UnitText('firebase')>> 
+<<= App.SF.UnitText('firebase')>>
 <<= App.SF.UnitText('troop')>>
 	<<= App.SF.fsIntegration.flavourText(30)>>
 	<<= App.SF.fsIntegration.flavourText(80)>>
@@ -126,4 +126,4 @@ As you approach, The Colonel
 <</if>>
 <<if App.SF.unlocked.navalYard()>> <br><br>''Naval Yard:''
 	<<= App.SF.UnitText('AC')>> <<= App.SF.UnitText('Sub')>> <<= App.SF.UnitText('HAT')>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js
index d2cc717111f066aaa83f8768ed98459b1d3703cd..ecc36f9f447a7f74dd0db4c36fe3666b4d56dc9a 100644
--- a/src/Mods/SpecialForce/SpecialForce.js
+++ b/src/Mods/SpecialForce/SpecialForce.js
@@ -41,40 +41,20 @@ App.SF.unlocked = (function() {
 		+ (V.terrain !== "oceanic" ? V.SF.Squad.AV + V.SF.Squad.TV : 0) + V.SF.Squad.AA + V.SF.Squad.TA >= 30;
 	}
 
-	function garage(mode = 'standard') {
-		if (V.SF.Squad.Firebase >= 1 && V.terrain !== "oceanic") {
-			if (V.SF.Squad.AV + V.SF.Squad.TV + V.SF.Squad.PGT >= 0 || mode === 'cheat') {
-				return true;
-			}
-		}
-		return false;
+	function garage() {
+		return (V.SF.Squad.Firebase >= 1 && V.terrain !== "oceanic") ? true : false;
 	}
 
-	function hangar(mode = 'standard') {
-		if (V.SF.Squad.Firebase >= 4) {
-			if (V.SF.Squad.AA + V.SF.Squad.TA + V.SF.Squad.SpacePlane + V.SF.Squad.GunS >= 0 || mode === 'cheat') {
-				return true;
-			}
-		}
-		return false;
+	function hangar() {
+		return V.SF.Squad.Firebase >= 4 ? true : false;
 	}
 
-	function launchBay(mode = 'standard') {
-		if (secondTier()) {
-			if (V.SF.Squad.Satellite + V.SF.Squad.GiantRobot + V.SF.Squad.MissileSilo >= 0 || mode === 'cheat') {
-				return true;
-			}
-		}
-		return false;
+	function launchBay() {
+		return secondTier() ? true : false;
 	}
 
-	function navalYard(mode = 'standard') {
-		if (secondTier() && (V.terrain === "oceanic" || V.terrain === "marine")) {
-			if (V.SF.Squad.AircraftCarrier + V.SF.Squad.Sub + V.SF.Squad.HAT >= 0 || mode === 'cheat') {
-				return true;
-			}
-		}
-		return false;
+	function navalYard() {
+		return (secondTier() && (V.terrain === "oceanic" || V.terrain === "marine")) ? true : false;
 	}
 })();
 
@@ -87,10 +67,7 @@ App.SF.upgrades = (function() {
 	};
 
 	function total() {
-		if (V.SF.Toggle === 0 || V.SF.Active < 1) {
-			return 0;
-		}
-		return Object.values(V.SF.Squad).reduce((a, b) => a+b);
+		return V.SF.Toggle === 1 && V.SF.Active >= 1 ? Object.values(V.SF.Squad).reduce((a, b) => a + b) : 0;
 	}
 
 	function list(completeView = '') {
@@ -208,7 +185,7 @@ App.SF.Init = function() {
 	// V.arcologies[0].SFRaid = 1; V.arcologies[0].SFRaidTarget = -1;
 };
 
-App.SF.fsIntegration = (function() {			
+App.SF.fsIntegration = (function() {
 	return {
 		list,
 		createLink,
@@ -217,31 +194,31 @@ App.SF.fsIntegration = (function() {
 		badOutcome,
 		badOutcome_Firebase
 	};
-	
+
 	function list() {
 		const revivalisms = [
-			'Arabian_Revivalism', 'Aztec_Revivalism', 'Chinese_Revivalism', 
-			'Edo_Revivalism', 'Egyptian_Revivalism', 'Multiculturalism', 
+			'Arabian_Revivalism', 'Aztec_Revivalism', 'Chinese_Revivalism',
+			'Edo_Revivalism', 'Egyptian_Revivalism', 'Multiculturalism',
 			'Roman_Revivalism', 'Neo_Imperialism'
 		];
 		const general = [
-			'Asset_Expansionism', 'Body_Purism', 'Chattel_Religionism', 
-			'Degradationism', 'Eugenics', 'Gender_radicalism', 
-			'Gender_traditionalism', 'Hedonistic_Decadence', 'Maturity_Preferentialism', 
-			'Paternalism', 'Physical_Idealism', 'Repopulation', 
+			'Asset_Expansionism', 'Body_Purism', 'Chattel_Religionism',
+			'Degradationism', 'Eugenics', 'Gender_radicalism',
+			'Gender_traditionalism', 'Hedonistic_Decadence', 'Maturity_Preferentialism',
+			'Paternalism', 'Physical_Idealism', 'Repopulation',
 			'Slave_Pastoralism', 'Slimness_Enthusiasm', 'Transformation_Fetishism',
 			'Youth_Preferentialism'
 		];
 		return {revivalisms: revivalisms, general: general, all: general.concat(revivalisms)};
 	}
-	
+
 	function selectedFSText(x) {
-		let gift, dec, foods, media, 
+		let gift, dec, foods, media,
 		slaves, cages, commonArea,
-		barracks, armory, commandCenter, 
-		drugLab, personalItems, droneBay, 
-		garage, vehicle, hangar, 
-		aircraft, luxuries, perimeter, 
+		barracks, armory, commandCenter,
+		drugLab, personalItems, droneBay,
+		garage, vehicle, hangar,
+		aircraft, luxuries, perimeter,
 		roleplaying, colonel;
 		switch(x) {
 		case 'Repopulation':
@@ -639,9 +616,9 @@ App.SF.fsIntegration = (function() {
 			break;
 		case 'Neo_Imperialism':
 			dec = `Neo-Imperialism: a vision of a syncretic new society, integrating the Imperial structure of the old world with the high technology of the new into your personal fledgling empire.`;
-			gift = `To celebrate your growing Imperial society, you've awarded the Colonel the prestigious title of Baron, and given her her own symbols of office; a heavy steel longsword that dangles at her side, integrated with a holographic projector and fingerprint scanner, along with a noble crest of arms painted on a sturdy steel shield at the helm of her desk. She's chosen a black-and-yellow boar to represent herself on the battlefield, painted on both her shield and armor and her weathered battle helmet has a golden band wrapped around the forehead - the unmistakable symbol of an Imperial Baron.`;
-			foods = `The soldiers have started a tradition of sparring with one another, hosting semi-organized fights and tournaments amongst themselves to prove their in-group superiority.`;
-			media = `They've also begun to host regular communal feasts, bringing in both rare meats and modern delicacies in short explosions of hedonism and drinking before returning to their stoic duties.`;
+			gift = `To celebrate your growing Imperial society, you've awarded the Colonel the prestigious title of Baron, and given her her own symbols of office; a heavy steel longsword that dangles at her side, integrated with a holographic projector and fingerprint scanner, along with a noble crest of arms painted on a sturdy steel shield at the helm of her desk. She's chosen a black-and-yellow boar to represent herself on the battlefield, painted on both her shield and armor and her weathered battle helmet has a golden band wrapped around the forehead - the unmistakable symbol of an Imperial Baron. The soldiers have started a tradition of sparring with one another, hosting semi-organized fights and tournaments amongst themselves to prove their in-group superiority.`;
+			foods = `They've begun to host regular communal feasts, bringing in both rare meats and modern delicacies in short explosions of hedonism and drinking before returning to their stoic duties.`;
+			media = `Troops here regularly and enthusiastically watch the arcology's media playing out on their advanced vidscreens, many of which feature the troops themselves fighting in glorified, romanticized versions of the arcology's typical fighting grounds. Some of them even flip into the lectures you host every so often on the importance of stratification and an Imperial society.`;
 			slaves = `All of the slaves serving here are from outside of your arcology, captured during the many military expeditions staged from the Firebase. The capture of slaves has become a mark of pride.`;
 			cages = `All new slaves are being re-educated to their place in a specially-built Temple, learning the rites of service and subjugation and the complex intricacies of your hierarchical society.`;
 			commonArea = `The common area now looks something between a forum and a sparring hall, with soldiers brusquely wrestling side-by-side with those maintaining high-tech weaponry and slaves all but groveling at their feet. A lengthy row of personalized shields hangs on the wall as decoration.`;
@@ -799,18 +776,18 @@ App.SF.fsIntegration = (function() {
 			colonel = `Multiculturalism: Sometimes when The Colonel is making her rounds in the Firebase, you'll see her wearing a finely tailored business suit, complete with jacket and skirt, much like many wealthy and powerful women these days. Sometimes when she is relaxing or sleeping she'll wear just a simple comfortable bra and panties, like most women around the world do by now too. Her pavilion contains a wide assortment of goods made from countries all over the world, not just this part of it. Her combat battledress now features a simple cloth beret and a collapsible ballistic shield painted to look like the flag of the ${V.SF.Lower}.`;
 			break;
 		}
-		
+
 		return {
-			gift: gift, dec: dec, foods: foods, 
-			media: media, slaves: slaves, cages: cages, 
-			commonArea: commonArea, barracks: barracks, armory: armory, 
-			commandCenter: commandCenter, drugLab: drugLab, personalItems: personalItems, 
-			droneBay: droneBay, garage: garage, vehicle: vehicle, 
-			hangar: hangar, aircraft: aircraft, luxuries: luxuries, 
+			gift: gift, dec: dec, foods: foods,
+			media: media, slaves: slaves, cages: cages,
+			commonArea: commonArea, barracks: barracks, armory: armory,
+			commandCenter: commandCenter, drugLab: drugLab, personalItems: personalItems,
+			droneBay: droneBay, garage: garage, vehicle: vehicle,
+			hangar: hangar, aircraft: aircraft, luxuries: luxuries,
 			perimeter: perimeter, roleplaying: roleplaying, colonel: colonel
-		}	
+		}
 	}
-	
+
 	function validityTester() {
 		let array = [];
 		if (V.SF.FS.Repopulation.lv > V.SF.FS.Eugenics.lv) {
@@ -990,9 +967,9 @@ App.SF.fsIntegration = (function() {
 		}
 		return words;
 	}
-	
+
 	function flavourText(textDisplay) {
-		let words = ``, choice; 
+		let words = ``, choice;
 		const FS_OPTIONS = App.SF.fsIntegration.list().all;
 
 		if (textDisplay === 5) {
@@ -1065,7 +1042,7 @@ App.SF.fsIntegration = (function() {
 		}
 		return words;
 	}
-	
+
 	function badOutcome() {
 		V.arcologies[0].prosperity -= 50;
 		cashX(-V.cash * 0.25, "specialForces");
@@ -1146,7 +1123,7 @@ App.SF.fsIntegration = (function() {
 		V.SF = Obj;
 		return r;
 	}
-	
+
 	function badOutcome_Firebase(){
 		const x = `Visiting the Firebase just takes you to`;
 		switch (V.SF.FS.BadOutcome) {
diff --git a/src/Mods/SpecialForce/SpecialForceBC.js b/src/Mods/SpecialForce/SpecialForceBC.js
index e83bf1ba38d63402f280d6b15ac862d6437c15d1..f749985c71a57446deeab1b843ff7eb3d09d66f7 100644
--- a/src/Mods/SpecialForce/SpecialForceBC.js
+++ b/src/Mods/SpecialForce/SpecialForceBC.js
@@ -203,7 +203,7 @@ App.SF.BC = function() {
 				V.SF.FS[FS_OPTIONS[i]].gift = V.SF.FS[FS_OPTIONS[i]].gift || 0;
 				delete V.SF.FS[FS_OPTIONS[i]].validOption;
 			}
-			
+
 			V.SF.UC = V.SF.UC || {};
 			V.SF.Depravity = V.SF.Depravity || 0;
 			V.SF.Upgrade = V.SF.Upgrade || 0;
diff --git a/src/Mods/SpecialForce/WeeklyChoices.tw b/src/Mods/SpecialForce/WeeklyChoices.tw
index df532a741343108fc9f677d1ad720815e467d76e..f4295fb8b0cbaad016f44122ae056305d5583592 100644
--- a/src/Mods/SpecialForce/WeeklyChoices.tw
+++ b/src/Mods/SpecialForce/WeeklyChoices.tw
@@ -79,7 +79,7 @@
 				<<replace "#result3">>
 				<span id="result4">
 				<<set $SF.Colonel.Fun = 1, $SF.Colonel.Status += 3, $SF.FS.Tension -= _colonelTalkTensionRuction>>
-				<br><br>Where should this fun take place? 
+				<br><br>Where should this fun take place?
 				<<link "Go back" "Firebase">>
 					<<set $SF.Colonel.Fun = 0, $SF.Colonel.Talk = 0,$SF.Colonel.Status -= 3, $SF.FS.Tension += _colonelTalkTensionRuction>>
 				<</link>>
@@ -277,4 +277,4 @@
 		fought off an entire battalion with only a small squad, teaching you how to think tactically in battle.
 		<<= IncreasePCSkills('warfare', 5)>>
 	<</switch>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/Mods/SpecialForce/editSF.tw b/src/Mods/SpecialForce/editSF.tw
index b0797d7bbfa8f1046d9b382c2fa209f18afbb000..6f60ba36bb811aa605e6b9504dacd244bc4421e7 100644
--- a/src/Mods/SpecialForce/editSF.tw
+++ b/src/Mods/SpecialForce/editSF.tw
@@ -21,7 +21,7 @@ __Upgrades__: _size/_max(<<= (_size/_max).toFixed(2)>>%)
 	<<run _options.addOption("''Drones: '' (current max <<= App.SF.upgrades.currentUnitMax('Drones')>>)", "Drones", V.SF.Squad).showTextBox()>>
 <</if>>
 
-<<if App.SF.unlocked.garage('cheat')>>
+<<if App.SF.unlocked.garage()>>
 	<<run _options.addOption("''Garage:''<br>&nbsp;&nbsp;''Attack Vehicles: '' (current max <<= App.SF.upgrades.currentUnitMax('AV')>>)", "AV", V.SF.Squad).showTextBox()>>
 	<<run _options.addOption("&nbsp;&nbsp;''Transport Vehicles: '' (current max <<= App.SF.upgrades.currentUnitMax('TV')>>)", "TV", V.SF.Squad).showTextBox()>>
 	<<if _T1>>
@@ -29,7 +29,7 @@ __Upgrades__: _size/_max(<<= (_size/_max).toFixed(2)>>%)
 	<</if>>
 <</if>>
 
-<<if App.SF.unlocked.hangar('cheat')>>
+<<if App.SF.unlocked.hangar()>>
 	<<run _options.addOption("''Hangar:''<br>&nbsp;&nbsp;''Attack Planes: '' (current max <<= App.SF.upgrades.currentUnitMax('AA')>>)", "AA", V.SF.Squad).showTextBox()>>
 	<<run _options.addOption("&nbsp;&nbsp;''Transport Planes: '' (current max <<= App.SF.upgrades.currentUnitMax('TA')>>)", "TA", V.SF.Squad).showTextBox()>>
 	<<if _T1>>
@@ -38,7 +38,7 @@ __Upgrades__: _size/_max(<<= (_size/_max).toFixed(2)>>%)
 	<</if>>
 <</if>>
 
-<<if App.SF.unlocked.launchBay('cheat')>>
+<<if App.SF.unlocked.launchBay()>>
 	<<run _options.addOption("''Launch Bay:''<br>&nbsp;''Satellite: '' (current max <<= App.SF.upgrades.currentUnitMax('Satellite')>>)", "Satellite", V.SF.Squad).showTextBox()>>
 	<<if $terrain != "oceanic">>
 		<<run _options.addOption("&nbsp;''Giant Robot: '' (current max <<= App.SF.upgrades.currentUnitMax('GiantRobot')>>)", "GiantRobot", V.SF.Squad).showTextBox()>>
@@ -46,7 +46,7 @@ __Upgrades__: _size/_max(<<= (_size/_max).toFixed(2)>>%)
 	<<run _options.addOption("&nbsp;''Cruise Missile: '' (current max <<= App.SF.upgrades.currentUnitMax('MissileSilo')>>)", "MissileSilo", V.SF.Squad).showTextBox()>>
 <</if>>
 
-<<if App.SF.unlocked.navalYard('cheat')>>
+<<if App.SF.unlocked.navalYard()>>
 	<<run _options.addOption("<br><br>''Naval Yard:''<br>&nbsp;''Aircraft Carrier: '' (current max <<= App.SF.upgrades.currentUnitMax('AircraftCarrier')>>)", "AircraftCarrier", V.SF.Squad).showTextBox()>>
 	<<run _options.addOption("&nbsp;''Submarine: '' (current max <<= App.SF.upgrades.currentUnitMax('Sub')>>)", "Sub", V.SF.Squad).showTextBox()>>
 	<<run _options.addOption("&nbsp;''Amphibious Transport: '' (current max <<= App.SF.upgrades.currentUnitMax('HAT')>>)", "HAT", V.SF.Squad).showTextBox()>>
diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 6f56174be5bb74148da64a9336f5c81f4c23b66c..80d97f1db403b1f002ab62d057a299b738d0f5bd 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -744,7 +744,7 @@ App.Update.globalVariables = function(node) {
 				V.arcologies[0].FSNeoImperialist = V.FSNeoImperialist;
 			} else if (typeof V.arcologies[0].FSNeoImperialist === "undefined") {
 				V.arcologies[0].FSNeoImperialist = "unset";
-			}			
+			}
 			if ((typeof V.FSNeoImperialistLaw1 !== "undefined") && V.FSNeoImperialistLaw1 !== 0) {
 				V.arcologies[0].FSNeoImperialistLaw1 = V.FSNeoImperialistLaw1;
 			} else if (typeof V.arcologies[0].FSNeoImperialistLaw1 === "undefined") {
diff --git a/src/descriptions/arcologyDescription.js b/src/descriptions/arcologyDescription.js
index 700dde64f53f2f2e388dfbc738608146c466e067..3be32e4089c21c135d245cc637a8aa4d02a2f168 100644
--- a/src/descriptions/arcologyDescription.js
+++ b/src/descriptions/arcologyDescription.js
@@ -786,7 +786,7 @@ App.Desc.playerArcology = function(lastElement) {
 		} else if (A.FSAztecRevivalistDecoration >= 80) {
 			buffer.push(`The sound of prayer and chanting echoes across the space, briefly accompanied by a sacrifice's ${A.FSPaternalist !== "unset" ? "moaning" : "last scream"} as the rite completes.`);
 		} else if (A.FSNeoImperialistDecoration >= 80) {
-			buffer.push(`The constant noise of trade and revelry echoes across every inch of the crowded plaza, kept under control by stern-looking guards in armor painted your colors, holding holographic halberds and standing at attention.`);	
+			buffer.push(`The constant noise of trade and revelry echoes across every inch of the crowded plaza, kept under control by stern-looking guards in armor painted your colors, holding holographic halberds and standing at attention.`);
 		} else if (A.FSEgyptianRevivalistDecoration >= 80) {
 			buffer.push(`To the side of the plaza is a huge stone entryway heading down: the entrance to the tomb you have prepared for yourself.`);
 		} else if (A.FSEdoRevivalistDecoration >= 80) {
diff --git a/src/endWeek/rulesAssistantReport.js b/src/endWeek/rulesAssistantReport.js
index e64a32c4dcf3092f38e74c5cd5b728257f585cf8..f87b0924bcb2c4e005fa3554328a47e1aa55b38b 100644
--- a/src/endWeek/rulesAssistantReport.js
+++ b/src/endWeek/rulesAssistantReport.js
@@ -2,7 +2,12 @@ App.EndWeek.rulesAssistantReport = function() {
 	const frag = $(document.createDocumentFragment());
 	for (const slave of V.slaves) {
 		if (slave.useRulesAssistant === 1) {
-			frag.append(DefaultRules(slave));
+			try {
+				frag.append(DefaultRules(slave));
+			} catch (e) {
+				console.log("Exception thrown in rule evaluation:", slave, e);
+				frag.append(`<p><span class="error">Exception thrown executing Rules Assistant for ${SlaveFullName(slave)}: "${e.message}". One of your rules is probably broken.</span></p>`);
+			}
 		}
 	}
 	return frag[0];
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index 56fc6597c67d96c580d79ebfa4a50b809ff2d094..592f0142ad90bbb87905326e5c9f92afd589eec2 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -5,7 +5,7 @@ App.SlaveAssignment.choosesOwnClothes = (function() {
 	let r;
 	// eslint-disable-next-line no-unused-vars
 	let he, him, his, himself, He, His;
-	
+
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
diff --git a/src/endWeek/saGuardYou.js b/src/endWeek/saGuardYou.js
index 8de6917f25c89bd7c7032fed8be16bc73705880c..18b96d005fbaf8e78e28d5b654bf26256389c096 100644
--- a/src/endWeek/saGuardYou.js
+++ b/src/endWeek/saGuardYou.js
@@ -312,7 +312,7 @@ App.SlaveAssignment.guardYou = (function() {
 				if (candidate) {
 					if ((slave.intelligence + slave.intelligenceImplant - flawedTrainee) > jsRandom(1, 500)) {
 						r.push(`By the end of the week, ${he} is satisfied that ${candidate.slaveName} <span class="green">has the combat skill</span> to contribute to your defense.`);
-						V.slaves[V.slaveIndices[candidate.ID]].skill.combat = 1;
+						candidate.skill.combat = 1;
 					}
 				} else {
 					r.push(`${He} finds no suitable candidates to serve as ${his} replacement, leaving ${him} stressed over your future safety. The worry is <span class="red">exhausting</span> and <span class="red">bad for ${his} health.</span>`);
diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js
index 942096d0e7c21ab77d050bfd998770da3619aeb5..e60bbc5fbb2967b88a2051f95673079b5b8c5b4b 100644
--- a/src/endWeek/saRecruitGirls.js
+++ b/src/endWeek/saRecruitGirls.js
@@ -10,9 +10,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	let arcology;
 	let targetArcology;
 	let slaveInt;
-	let recruiterRelation;
-	let clubSeed;
-	let masterSuiteAvgEnergy;
 
 	return recruitGirls;
 
@@ -24,10 +21,8 @@ App.SlaveAssignment.recruitGirls = (function() {
 		r = [];
 
 		arcology = V.arcologies[0];
+		targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 		slaveInt = slave.intelligence + slave.intelligenceImplant;
-		recruiterRelation = arcology.FSEgyptianRevivalist !== "unset" ? randomRelatedAvailableSlave(slave) : null;
-		clubSeed = arcology.FSEdoRevivalist !== "unset" ? getClubSeed() : 0;
-		({energy: masterSuiteAvgEnergy} = App.Utils.masterSuiteAverages());
 
 		({
 			// eslint-disable-next-line no-unused-vars
@@ -49,17 +44,20 @@ App.SlaveAssignment.recruitGirls = (function() {
 		return r.join(" ");
 	}
 
-	/** Get club seed for Edo Revivalist bonuses
+	/** Get club ads bonus for Edo Revivalist recruitment
 	 * @returns {number}
 	 */
-	function getClubSeed() {
+	function getClubAdsBonus() {
 		let seed = 0;
-		if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
-			if (V.clubAdsSpending > 0) {
-				seed = (V.clubBonuses + Math.abs(V.clubAdsOld) + Math.abs(V.clubAdsStacked) + Math.abs(V.clubAdsImplanted) + Math.abs(V.clubAdsModded) + Math.abs(V.clubAdsXX));
-			} else {
-				seed = V.clubBonuses;
-				// protip: some FS reduce bonuses available, use ad spending to get counted in that category
+		const sluts = App.Entity.facilities.club.employees();
+		if (V.clubDecoration !== "standard" && sluts.length > 1) {
+			const adMgr = new App.Ads.AdManager("club");
+			sluts.forEach((s) => adMgr.tallySlave(s));
+			for (const cat of App.Ads.getAllCategories()) {
+				// protip: spend money on *accurate* ads, whether or not they match societal preferences
+				if (adMgr.varietyBonus(cat) === 1 || adMgr.slavesMatchAds(cat)) {
+					seed++;
+				}
 			}
 		}
 		return seed;
@@ -140,7 +138,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	function tooTired(slave) {
 		r.push(`uses the week to recover from fatigue and`);
 		if (V.recruiterTarget === "other arcologies") {
-			targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 			if (targetArcology !== undefined) {
 				r.push(`better prepare to manipulate ${targetArcology.name}'s culture.`);
 			} else {
@@ -165,7 +162,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	 */
 	function influenceNeighbor(slave) {
 		let influenced = 0;
-		targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 
 		if (targetArcology !== undefined) {
 			r.push(`acts as a sexual Ambassador to ${targetArcology.name}, which mostly means that ${he} travels there in ${his} official capacity and has culturally influential sex with its leading citizens.`);
@@ -970,18 +966,59 @@ App.SlaveAssignment.recruitGirls = (function() {
 
 		r.push(`${He} uses ${his} extra time and <span class="cash">recruitment allowance</span> this week to tour the arcology and post to your household's social media accounts more actively than usual, <span class="reputation inc">building up your reputation.</span>`);
 
+		/** Conditional push:
+		 *  if V.showEWM is set, is a function that pushes the arguments into r
+		 *  otherwise is a function that just silently consumes the arguments
+		 * @type {function(...string): void}
+		 */
+		const pushEWM = V.showEWM === 1 ? (...str) => r.push(...str) : () => {};
+
 		seed = 10;
-		if (slave.face > 40) {
-			seed += slave.face * slave.skill.entertainment / 30;
+		if (slave.skill.entertainment > 10) {
+			if (slave.face > 40) {
+				if (slave.skill.entertainment >= 100) {
+					pushEWM(`${His} good looks and innate artistry awe the arcology and leave many starstruck.`);
+				} else if (slave.skill.entertainment > 60) {
+					pushEWM(`${His} good looks draw quite an audience; ${he} entertains them reasonably well.`);
+				} else if (slave.skill.entertainment > 30) {
+					pushEWM(`${His} face appeals to a certain crowd, mostly looking for sex tapes rather than quality entertainment.`);
+				}
+				seed += slave.face * slave.skill.entertainment / 30;
+			} else {
+				if (slave.skill.entertainment >= 100) {
+					pushEWM(`All`);
+				} else if (slave.skill.entertainment > 60) {
+					pushEWM(`Many`);
+				} else if (slave.skill.entertainment > 30) {
+					pushEWM(`Some`);
+				} else {
+					pushEWM(`A few`);
+				}
+				pushEWM(`of ${his} wittier lines are liked and re-shared, but ${his} face just doesn't catch many eyes.`);
+				seed += slave.skill.entertainment / 30;
+			}
 		} else {
-			seed += slave.skill.entertainment / 30;
+			pushEWM(`More than a few sign up to watch ${his} feeds, but unsubscribe due to ${his} amateur presentation.`);
 		}
 		if (slaveInt > 15) {
+			pushEWM(`${He} offers thoughtful commentaries on trending topics.`);
 			seed += FSIntMod;
+		} else {
+			pushEWM(`${He} lacks the intelligence to compose thoughtful remarks; a lot the time ${he} merely +1s what others have said.`);
 		}
 		if (V.studio && slave.porn.viewerCount >= 10000 && slave.porn.prestige > 0) {
+			pushEWM(`${His} fan base from arcology porn significantly drives up ${his} followers count.`);
 			seed += slave.porn.prestige * 3;
 		}
+
+		/** @type {string[]} */
+		const FSstrings = [];
+
+		/** Conditional push for FS match strings (which will get concatenated to r AFTER the FS match/defend summary)
+		 * @type {function(...string): void}
+		 */
+		const pushFS = V.showEWM === 1 ? (...str) => FSstrings.push(...str) : () => {};
+
 		if (V.recruiterIOUs > 0) {
 			seed += V.recruiterIOUs;
 			FSdefend += V.recruiterIOUs;
@@ -994,8 +1031,15 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSdefend++;
 				arcology.FSSupremacist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
 				if (slave.race !== arcology.FSSupremacistRace) {
+					pushFS(`${He} patiently explains how ${slave.race} ${girl}s like ${himself} benefit from the firm guidance of their proper ${arcology.FSSupremacistRace} masters.`);
 					arcology.FSSupremacist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} makes the clear case for ${arcology.FSSupremacistRace} superiority, although as an enslaved ${slave.race} ${woman} ${his} words are a bit hollow.`);
 				}
+			} else if (slave.race !== arcology.FSSupremacistRace) {
+				pushFS(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
+			} else {
+				pushFS(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
 			}
 		}
 		if (arcology.FSSubjugationist !== "unset") {
@@ -1004,92 +1048,182 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSdefend++;
 				arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
 				if (slave.race === arcology.FSSubjugationistRace) {
+					pushFS(`It's always a pleasure to hear a ${slave.race} slave admit to all the failings for which ${his} kind need to be taken in hand.`);
 					arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep;
 				}
+			} else if (slave.race !== arcology.FSSupremacistRace) {
+				pushFS(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
+			} else {
+				pushFS(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
 			}
 		}
 		if (arcology.FSGenderRadicalist !== "unset") {
 			if (slave.dick > 0 && (slave.balls < 1 || slave.boobs > 400)) {
 				if (slave.anus > 0 && canDoAnal(slave)) {
+					pushFS(`${His} public demonstrations of just how hard feminized sissies can orgasm with buttsex — at a different interior balcony each day — draw plenty of attention.`);
 					seed += 4;
 				} else {
+					pushFS(`${He} attracts a little attention by gaily showing off ${his}`);
+					if (slave.balls < 1) {
+						pushFS(`soft bitch-clit`);
+					} else {
+						pushFS(`intersex anatomy`);
+					}
+					pushFS(`on the public thoroughfares of your arcology,`);
+					if (!canDoAnal(slave)) {
+						pushFS(`since ${he} can't take it any further.`);
+					} else {
+						pushFS(`being careful not to risk ${his} virgin backdoor.`);
+					}
 					seed += 1;
 				}
 				FSmatch++;
 				arcology.FSGenderRadicalist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} just doesn't have the right combination of body parts to personally demonstrate your utopia of eager, girly-dicked buttsluts.`);
 			}
 		} else if (arcology.FSGenderFundamentalist !== "unset") {
-			if (arcology.FSRestart !== "unset") {
-				if (slave.balls < 1) {
+			if (slave.balls < 1 && slave.dick < 1 && slave.vagina >= 0) {
+				if (arcology.FSRestart !== "unset") {
+					pushFS(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
 					seed += 1;
-				}
-			} else {
-				if (slave.balls < 1 && (slave.bellyPreg >= 1500 || setup.fakeBellies.includes(slave.bellyAccessory))) {
+				} else if (slave.bellyPreg >= 1500 || setup.fakeBellies.includes(slave.bellyAccessory)) {
 					if (slave.bellyPreg >= 1500) {
+						pushFS(`${He} unashamedly live streams an obstetric health check in the nude, promising to broadcast similar footage right up until, and during, the birth.`);
 						seed += 4;
 					} else {
+						pushFS(`With some discreet editing, ${he} uploads fake ultrasounds to match ${his} plastic pregnancy, bringing a little more attention to your fertility campaigns.`);
 						seed += 1;
 					}
-					FSmatch++;
-					arcology.FSGenderFundamentalist += 0.01 * V.FSSingleSlaveRep;
+				} else if (slave.vagina >= 0) {
+					pushFS(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
 				}
+				FSmatch++;
+				arcology.FSGenderFundamentalist += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.balls < 1 && slave.dick < 1) { // null - no vagina and also no dick or balls
+				pushFS(`${He} tries to post photos emphasizing ${his} feminine curves, although ${his} attempts to tastefully conceal ${his} lack of female genitalia are noticed by some viewers.`);
+			} else { // masculine - has dick or balls
+				pushFS(`On the topic of natural female deference to their owners around the house, your recruiter would be more convincing if ${he} didn't keep readjusting ${his} junk.`);
 			}
 		}
 		if (arcology.FSPaternalist !== "unset") {
 			if (slave.devotion + slave.trust > 150 || slave.relationship === -3) {
-				seed += 1;
-				FSdefend++;
 				if (slave.intelligenceImplant >= 15) {
+					pushFS(`All week ${he} shares original poetry in which ${his} love for you shines `);
+					if (slave.health.condition > 40) {
+						pushFS(`through, and ${his} healthy body shines in every live appearance.`);
+						seed += 1;
+					} else {
+						pushFS(`through.`);
+					}
 					seed += 1;
 					arcology.FSPaternalist += 0.02 * V.FSSingleSlaveRep;
 				} else {
+					pushFS(`Even though ${he} clearly adores ${his} ${getWrittenTitle(slave)},`);
+					if (slave.health.condition > 40) {
+						pushFS(`with ${his} perfect health visibly manifesting your care,`);
+						seed += 1;
+					}
+					pushFS(`the uneducated slave struggles to fully and cogently express ${his} affection.`);
 					arcology.FSPaternalist += 0.01 * V.FSSingleSlaveRep;
 				}
-			}
-			if (slave.health.condition > 40) {
 				seed += 1;
+				FSdefend++;
+			} else {
+				pushFS(`${His} praise of your good works lacks the special touch of personal affection, so it doesn't impress much.`);
 			}
 		} else if (arcology.FSDegradationist !== "unset") {
 			if (slaveInt > 50) {
+				pushFS(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName}`);
+				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
+					pushFS(`goes public in all ${his} garish, modded glory to defend the legal right of slaveowners to use their property however they please, ${he}'s earned a brief reprieve.`);
+					seed += 1;
+					FSmatch++;
+					arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`defends the right of owners to use their property however they please, ${he}'s earned some consideration: perhaps you could "reward" ${him} with an extra piercing or a slutty new tat.`);
+				}
 				seed += 1;
 				FSdefend++;
 				arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep*FSIntMod;
-			}
-			if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
-				seed += 1;
-				FSmatch++;
-				arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
+					pushFS(`Just the sight of ${slave.slaveName}'s provocatively decorated body entices ${his} online "friends" to share multiple scenarios for raping ${him}, although the honor is wasted on the dumb fucktoy.`);
+					seed += 1;
+					FSmatch++;
+					arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} isn't smart enough to understand the primal attraction of an arcology where slave holes exist only to be raped, nor is ${his} body sufficiently degraded to advertise it.`);
+				}
 			}
 		}
 		if (arcology.FSIntellectualDependency !== "unset") {
-			if (slave.energy > 95) {
-				if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
+			if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
+				if (slave.energy > 95) {
+					if (slaveInt < -50) {
+						pushFS(`${His} week was spent competing with other bimbos and generally being a delight to onlookers when the competition inevitably turns sexual.`);
+						seed += 3;
+					} else {
+						pushFS(`This week's softcore photo shoot clearly showcases a bimbo, even if it feels like too much thought was put into it.`);
+					}
 					seed += 1;
+					FSmatch++;
+					arcology.FSIntellectualDependency += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`While ${he} may look the part of a bimbo, ${he} lacks the sex drive to back it up.`);
 				}
+				seed += 1;
+			} else if (slave.energy > 95) {
 				if (slaveInt < -50) {
+					pushFS(`${His} week was spent wandering aimlessly throughout the arcology, delighting anyone able to spend time with ${him} with ${his} simple ways.`);
 					seed += 3;
+				} else {
+					pushFS(`${He} exhibits raw lust, but lacks other traits commonly found in bimbos, hindering ${his} efforts.`);
 				}
 				seed += 1;
 				FSmatch++;
 				arcology.FSIntellectualDependency += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} just lacks the energy to party all night long.`);
 			}
 		} else if (arcology.FSSlaveProfessionalism !== "unset") {
-			if (slaveInt > 50 && slave.accent <= 1) {
-				if (slaveInt > 95) {
-					seed += 2;
-					FSdefend++;
-					arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep*FSIntMod;
-				}
-				if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+			if (slave.accent <= 1) {
+				if (slaveInt > 50) {
+					if (slaveInt > 95) {
+						if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+							pushFS(`Each week ${he} hosts ${his} own seminar demonstrating new and exciting sexual techniques, some even of ${his} own creation.`);
+							seed += 1;
+						} else {
+							pushFS(`${He} uses ${his} brilliant mind to show what a slave is truly capable of, but ${he} can only go so far lacking practical skills.`);
+						}
+						seed += 2;
+						FSdefend++;
+						arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep*FSIntMod;
+					} else if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+						pushFS(`${He} participates in a weekly article showcasing skills every slave needs. However, only being able to recite learned information limits ${him}.`);
+						seed += 1;
+					} else {
+						pushFS(`${He} attempts to be a sexual trendsetter, but is neither smart nor skilled enough to achieve anything of interest.`);
+					}
 					seed += 1;
+					FSmatch++;
+					arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} isn't smart enough to explain what a professional slave actually is and how it differs from a trained slave.`);
 				}
-				FSmatch++;
-				seed += 1;
-				arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${His} inability to speak ${V.language} properly makes ${him} a relatively poor spokes${woman} for trained slaves.`);
 			}
 		}
 		if (arcology.FSBodyPurist !== "unset") {
 			if (slave.corsetPiercing === 0 && modScore.piercing < 3 && modScore.tat < 2) {
+				if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
+					pushFS(`${He} exhibits pure sexuality in a lovely, artistic gallery of erotic photos posted this week that displays every natural ${V.showInches === 2 ? `inch` : `centimeter`} of ${his} body.`);
+				} else if (slave.boobsImplant === 0 && slave.buttImplant === 0) {
+					pushFS(`This week's softcore photo shoot delights the eye: only ${his} unnatural waistline mars ${his} beauty, and that can hardly be blamed on the model.`);
+				} else {
+					pushFS(`${His} unblemished skin shines artistically in this week's erotic studio gallery, but the shape of ${his} curves is too obviously artificial.`);
+				}
 				if (slave.boobsImplant === 0) {
 					seed += 1;
 				}
@@ -1102,46 +1236,80 @@ App.SlaveAssignment.recruitGirls = (function() {
 				seed += 1;
 				FSmatch++;
 				arcology.FSBodyPurist += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
+				pushFS(`${His} most recent photo galleries are barely passable: you can hardly see the ${woman} beneath ${his} blatant body art.`);
+			} else {
+				pushFS(`${He} is burdened by the knowledge that ${his} heavy alterations don't fit your ideal of purity, and fails to show at a scheduled photo shoot.`);
 			}
 		} else if (arcology.FSTransformationFetishist !== "unset") {
 			if (slave.boobsImplant > 0 && slave.buttImplant > 0 && slave.lipsImplant > 0) {
 				if (slave.waist < -95 || slave.teeth === "pointy" || slave.teeth === "fangs" || !hasAllNaturalLimbs(slave) || (slave.vagina > -1 && slave.dick > 6)) {
+					pushFS(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on ${his} better-than-natural physiology in each one.`);
 					seed += 4;
 				} else {
+					if (V.seeExtreme === 1) {
+						pushFS(`${His} augmented body certainly has its appeals, yet as you look over this week's publicity recap you begin to wonder if ${he} could be still more extremely <span style="italic">transformed<span>.`);
+					} else if (slave.vagina > -1 && slave.dick > 0) {
+						pushFS(`${His} special body stands out during this week's publicity tour; and if ${his} futa cock were grown beyond a natural size, now that would really advertise ${his} improved state.`);
+					} else if (V.seeDicks > 0) {
+						pushFS(`${He} looks great in this week's publicity events at arcology businesses, always posing to show off ${his} enhancements. Now if only there were something to graft on that would take ${him} beyond implants to genuine <span style="italic">transformation<span>.`);
+					} else {
+						// game settings prohibit greater transformations
+						pushFS(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on the beauty of ${his} implants.`);
+					}
 					seed += 2;
 				}
 				FSmatch++;
 				arcology.FSTransformationFetishist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`"Boobs, butts, and blowjobs": it's the plastic surgeon's mantra, and viewing this week's publicity footage reminds you that you've neglected your recruiter's augmentations.`);
 			}
 		}
 		if (arcology.FSYouthPreferentialist !== "unset") {
 			if (slave.physicalAge < 30) {
+				pushFS(`${His} nightly cam chats sparkle with the energy of youth.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSYouthPreferentialist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`As an older slave, ${he} doesn't have enough energy to cam chat late into the night.`);
 			}
 		} else if (arcology.FSMaturityPreferentialist !== "unset") {
 			if (slave.actualAge >= 30) {
+				pushFS(`${He} video blogs regularly about the financial, medical, and even emotional security of slave life for older ${women}.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSMaturityPreferentialist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} uses too much youthful slang and jumps from topic to topic in ${his} video blogs, making them difficult for ${his} audience to follow.`);
 			}
 		}
 		if (arcology.FSPetiteAdmiration !== "unset") {
 			if (heightPass(slave)) {
+				pushFS(`${He} takes advantage of ${his} short stature to shock and amaze ${his} followers by having sex in unusual places.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSPetiteAdmiration += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`It's hard to play up a difference in height when ${he} stands as tall`);
+				if (slave.height >= 185) {
+					pushFS(`as, or taller than,`);
+				}
+				pushFS(`as most citizens.`);
 			}
 		} else if (arcology.FSStatuesqueGlorification !== "unset") {
 			if (heightPass(slave)) {
+				pushFS(`${His} photoshoots all use a panoramic camera to better capture ${his} height while giving them a unique flare.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSStatuesqueGlorification += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He}'s just too short for the public to pay any mind to.`);
 			}
 		}
 		if (arcology.FSRepopulationFocus !== "unset") {
 			if (slave.preg > slave.pregData.normalBirth / 1.33) {
+				pushFS(`${He} makes a habit of allowing the public to fondle and enjoy the movements within ${his} baby filled belly.`);
 				if (slave.pregType >= 30) {
 					seed += 5;
 				} else if (slave.pregType >= 10) {
@@ -1152,6 +1320,7 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
 			} else if (slave.preg > slave.pregData.normalBirth / 2) {
+				pushFS(`${He} makes a habit of allowing the public to fondle and enjoy ${his} baby rounded belly.`);
 				if (slave.pregType >= 30) {
 					seed += 4;
 				} else if (slave.pregType >= 10) {
@@ -1161,190 +1330,335 @@ App.SlaveAssignment.recruitGirls = (function() {
 				}
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
-			} else if (slave.bellyPreg >= 1500) {
-				if (slave.pregType >= 30) {
-					seed += 3;
-				} else if (slave.pregType >= 10) {
-					seed += 2;
-				} else {
-					seed += 1;
-				}
+			} else if (slave.counter.births > 0) {
+				pushFS(`Any time ${he} stars in an erotic photo shoot, ${he} always makes sure to follow up with a, hopefully positive, pregnancy test. Though ${he} makes sure to hype up ${his} viewers to sign up to be the one to knock ${him} up should it come up negative.`);
+				seed += 1;
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${His} efforts would have more impact if ${his} womb wasn't so empty. Disappointing to any who would want to see ${him} pregnant.`);
 			}
-			if (slave.counter.births > 3 || slaveInt > 50) {
+			if (slaveInt > 50) {
+				pushFS(`${He} is smart enough to not only repeat your repopulationist goals, but to expand upon them.`);
+				FSdefend++;
+				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.counter.births > 3) {
+				pushFS(`${He} uses ${his} experience as a mother as leverage to convince virgin ladies that motherhood is wonderful.`);
 				FSdefend++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`Being both unintelligent and inexperienced, ${his} attempts to emphasize the joys of pregnancy only come off as someone who likes big bellies, no matter their cause.`);
 			}
 		} else if (arcology.FSRestart !== "unset") {
 			if (slave.bellyPreg >= 1500 && slave.breedingMark === 1 && V.propOutcome === 1) {
+				pushFS(`${He} prominently displays ${his} pregnancy and the mark branded upon it signifying the superior child growing within ${him}. ${His} audience is enamored by ${his} distinct status.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
 			} else if (slave.breedingMark === 1 && V.propOutcome === 1) {
+				pushFS(`${He} prominently displays the mark branded over ${his} womb, but without the curve of pregnancy beneath it, it only goes so far.`);
 				seed += 1;
 			} else if (slave.bellyPreg < 100) {
-				if (slave.ovaries === 0 && slave.balls === 0) {
+				if (slave.dick > 0 && slave.balls === 0) {
+					pushFS(`${He} makes sure to wear tight fitting clothes to show off the bulge of ${his} dick and, most notably, the lack of testicles under it, in all ${his} photo shoots.`);
 					seed += 4;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
-				} else if (slave.ovaries === 0 || slave.balls === 0) {
+				} else if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) {
+					pushFS(`${He} frequently livestreams massive orgies involving ${himself} at the center, making sure to always follow up with ${his} negative pregnancy tests.`);
 					seed += 2;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
-				} else if (slave.chastityVagina || slave.chastityPenis || ((slave.ovaries === 1 || slave.mpreg === 1) && slave.preg < -1)) {
+				} else if (slave.chastityVagina || slave.chastityPenis) {
+					pushFS(`In all ${his} public appearances, ${his} choice of clothing is always crotchless, leaving ${his} chastity gear as the only thing protecting ${his} modesty.`);
 					seed += 1;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${His} lack of commitment to sterilization and eugenics drive away potential listeners.`);
 				}
+			} else {
+				pushFS(`No-one cares what bloated trash has to say.`);
 			}
 		}
 		if (arcology.FSSlimnessEnthusiast !== "unset") {
 			if (slave.boobs < 500 && slave.butt < 3 && slave.weight <= 10 && slave.muscles <= 30) {
+				pushFS(`${His} trim body gives ${him} a cute, ${girl}-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSSlimnessEnthusiast += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} shares a lot of selfies of ${his} activities in your penthouse, but ${his} bulging figure tends to hide what's going on.`);
 			}
 		} else if (arcology.FSAssetExpansionist !== "unset") {
 			if (slave.boobs > 2000 || slave.butt > 7 || slave.balls > 4 || slave.dick > 8) {
+				pushFS(`As the saying goes, "shake it if you got it," and no one can doubt ${slave.slaveName} has it after a "citizen" posts an "unauthorized" wristcam video of ${his} humongous anatomy swinging around a stripper pole.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSAssetExpansionist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`Although ${he} tries hard, none of ${his} assets interest the true size fetishist.`);
 			}
 		}
 		if (arcology.FSPastoralist !== "unset") {
-			let DairyL = App.Entity.facilities.dairy.employeesIDs().size;
-			if (V.dairy > 0 && (slave.lactation > 0 || (DairyL > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30)))) {
-				if (DairyL > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
+			if (V.dairy) {
+				if (App.Entity.facilities.dairy.employeesIDs().size > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
+					if (slave.lactation > 0) {
+						pushFS(`${He} schedules VR tours of ${V.dairyName} in order to popularize your free-range practices and quality products: the highlight each time is when ${he} hooks ${his} own teats into a milker and brings ${himself} to orgasm.`);
+						seed += 1;
+						FSmatch++;
+					} else {
+						pushFS(`${He} narrates a virtual reality tour of ${V.dairyName}, explaining how your humane, free-range practices result in a high quality product.`);
+					}
 					seed += 3;
 					FSdefend++;
-				}
-				if (slave.lactation > 0) {
+					arcology.FSPastoralist += 0.01 * V.FSSingleSlaveRep;
+				} else if (slave.lactation > 0) {
+					pushFS(`${His} VR uploads include a short clip of ${him} milking ${himself} in ${V.dairyName}; ${he} squirts directly into an old-fashioned bucket while ignoring the complicated, industrial machines behind ${him}.`);
 					seed += 1;
 					FSmatch++;
+				} else if (V.dairyRestraintsSetting >= 2) {
+					pushFS(`Your dairy is too heavily industrialized to promote socially.`);
+				} else {
+					pushFS(`${He} ignores ${V.dairyName}, since ${he} can't think of any ideas to promote it.`);
 				}
-				arcology.FSPastoralist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} can't really promote Pastoralist ideals when ${his} owner hasn't even committed to building a Dairy.`);
 			}
 		}
 		if (arcology.FSPhysicalIdealist !== "unset") {
-			if ((slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) || (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) || (slave.muscles > 40 && slave.health.condition > 80)) {
+			let pass = false;
+			if (slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) {
+				pushFS(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off ${his} impressive muscle definition, and in certain poses ${he} nearly seems to be making love to the equipment.`);
+				pass = true;
+			} else if (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) {
+				pushFS(`${He} asks another slave to photo-document ${his} time on the track this week: naked, of course, to show off ${his} perfectly toned body in motion.`);
+				pass = true;
+			} else if (slave.muscles > 40 && slave.health.condition > 80) {
+				pushFS(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off how ${he} keeps in such fine shape, and in certain poses ${he} nearly seems to be making love to the equipment.`);
+				pass = true;
+			} else {
+				pushFS(`${He} tries documenting ${his} exercise routine, but it's a snooze fest because ${he} doesn't have the guns to show for it.`);
+			}
+			if (pass) {
 				seed += 4;
 				FSmatch++;
 				arcology.FSPhysicalIdealist += 0.01 * V.FSSingleSlaveRep;
 			}
 		} else if (arcology.FSHedonisticDecadence !== "unset") {
 			if (arcology.FSHedonisticDecadenceResearch === 1 && arcology.FSDegradationist === "unset") {
+				pushFS(`Whenever ${he} meets a prospect, ${he} makes sure to take some of your specialized slave food with ${him} to show them they won't miss much from their prior lives. It rarely fails to make an impact.`);
 				seed += 2;
 				FSmatch++;
 			}
 			if (slave.weight > 95 || (slave.fetishStrength >= 95 && slave.weight > 10)) {
+				pushFS(`${He} frequently`);
+				if (slave.fetishStrength >= 95) {
+					pushFS(`makes public appearances where ${he} demonstrates the strength of ${his} fetishes and invites spectators to aid in satisfying ${his} desires.`);
+				} else {
+					pushFS(`livestreams ${himself} relaxing and masturbating, making sure to draw attention to ${his} lush curves and how comfortable ${his} life is.`);
+				}
 				seed += 2;
 				FSmatch++;
 				arcology.FSHedonisticDecadence += 0.01 * V.FSSingleSlaveRep;
 			}
 			if (slave.weight > 10 && slave.health.condition > 80) {
+				pushFS(`Despite ${his} weight, ${he} practically oozes health and happiness helping to ease potential worries about the excessive lifestyle slaves enjoy under you.`);
 				seed += 2;
 				FSdefend++;
 			}
 		}
 		if (arcology.FSChattelReligionist !== "unset") {
 			if (slaveInt > 15 && (slave.devotion > 95 || slave.trust > 95)) {
+				if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya") {
+					pushFS(`Clad in ${his} holy garb, ${slave.slaveName} preaches to the atrium with a powerful appeal to the new morality, in which ${his} absolute faith in your revelations is unmistakable.`);
+					seed += 1;
+				} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "a tight Imperial bodysuit") {
+					pushFS(`${He} lectures eloquently on the importance of hierarchy and noble lineage in a pseduo-religious fashion, dressed out in ${his} form-fitting bodysuit; most of the listeners' eyes fall on ${his} tightly-outlined chest and how ${his} nipples protrude obviously underneath the cybersuit, your crest emblazoned over the rock-hard nubs doing more of the arguing.`);
+					seed += 1;
+				} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "Imperial Plate") {
+					pushFS(`${He} gives a lengthy speech about the importance of hierarchy and noble lineage in a pseudo-religious fashion, speaking on the divine right of the nobility to rule while dominating the floor in ${his} ultra-heavy Imperial plate.`);
+					seed += 1;
+				} else if (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") {
+					pushFS(`${He} preaches in the atrium, delivering a powerful and faith-filled appeal in support of the new state religion and its Prophet-Emperor, descendant of the gods.`);
+					seed += 1;
+				} else {
+					pushFS(`${He} heads to the atrium to deliver a powerful, faith-based appeal for everyone to join the new moral order, though one cynical onlooker heckles ${him} about ${his} style of dress.`);
+				}
 				seed += 1;
 				FSdefend++;
 				arcology.FSChattelReligionist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
-			}
-			if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya" || (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") || (arcology.FSNeoImperialist !== "unset" && (slave.clothes === "a tight Imperial bodysuit" || slave.clothes === "Imperial Plate"))) {
-				seed += 1;
+			} else if (slaveInt > 15) {
+				pushFS(`${His} lecture on the new religious morality is thorough, and also devastatingly boring: all bullet point scriptures and little emotion that would sway unenlightened hearts.`);
+			} else if (slave.devotion > 95 || slave.trust > 95) {
+				pushFS(`Although ${he} wears ${his} faith in you on ${his} metaphorical sleeve, ${he} can't muster the intellectual arguments to counter the shrill voices of backward old world religions.`);
+			} else {
+				pushFS(`${He} is hapless as a proselytizer for the new religious order because ${his} personal understanding and adherence remains inadequate.`);
 			}
 		} else if (arcology.FSNull !== "unset") {
+			pushFS(`${His} contribution is one voice among many in the open freedom of ${arcology.name}'s media,`);
+			if (slave.skill.entertainment > 10) {
+				pushFS(`but everything that relates to its leadership is usually well-received.`);
+			} else {
+				pushFS(`so ${his} unskilled performances this week hardly cause a ripple.`);
+			}
 			seed += ((slave.skill.entertainment / 30) * arcology.FSNull / 10);
 		}
 		if (arcology.FSRomanRevivalist !== "unset") {
 			if (slave.clothes === "a toga") {
-				seed += 1;
 				if (slave.face > 10 && slave.counter.pitKills > 0) {
+					pushFS(`${He} thrills audiences by recounting tales of ${his} exploits as a beautiful and deadly gladiatrix-<span style="italic">slash</span>-love-slave for the First Citizen of the Eternal City reborn.`);
 					// protip: it doesn't have to be YOUR pit
 					seed += 5;
 					FSmatch++;
 					arcology.FSRomanRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else if (slave.face > 10) {
+					pushFS(`${His} statuesque beauty is a fitting tribute to the glory of the Eternal City reborn, but ${he} still lacks the edge of <span style="italic">bloodthirstiness</span> that makes life here so exciting.`);
+				} else if (slave.counter.pitKills > 0) {
+					pushFS(`Even though ${his} history of gladiatorial combat is noble, when mixed with ${his} homeliness it tends to frighten the squeamish as much as it attracts the sanguinary.`);
+				} else {
+					pushFS(`${He} comes across like a historical tour guide; more worthy citizens would flock to the New Rome if your recruiter appeared as a statuesque, and possibly deadly, inamorata of its ruler.`);
 				}
+				seed += 1;
+			} else {
+				pushFS(`Dressed as ${he} is in the garments of a barbarian, the citizens of the New Rome ignore ${him}.`);
 			}
 		} else if (arcology.FSNeoImperialist !== "unset") {
 			if (slave.clothes === "a tight Imperial bodysuit") {
+				if (slave.face > 10 && slave.skill.entertainment >= 60) {
+					pushFS(`${He} thrills the watching audience with ${his} immense beauty and charm, performing just as a proper Imperial slave ought - obedient, gorgeous, and strikingly attentive.`);
+					seed += 5;
+					FSmatch++;
+					arcology.FSNeoImperialist += 0.02 * V.FSSingleSlaveRep;
+				} else if (slave.face > 10) {
+					pushFS(`${His} beauty captivates the watching audience, although ${he} is somewhat awkward and ungraceful when actually speaking with them.`);
+				} else if (slave.skill.entertainment >= 60) {
+					pushFS(`Even though ${he} acts as a perfect Imperial slave, attentive and obedient, ${his} comely features fail to attract much attention, superficial as it may be.`);
+				} else {
+					pushFS(`${He} comes across as both boring and unattractive; the emblazoned crest on ${his} chest seems more like a mark of mockery upon the stuttering, homely slave.`);
+				}
 				seed += 1;
-				if (slave.face > 10 ) {
+			} else if (slave.clothes === "Imperial Plate") {
+				if (slave.counter.pitKills > 0) {
+					pushFS(`In ${his} ultra-heavy Imperial Plate, ${he} mystifies and captivates the audience with ${his} tales of victory and domination in the arena, coming across as an awe-inspiring and slightly terrifying properly Imperial Knight.`);
 					seed += 5;
 					FSmatch++;
 					arcology.FSNeoImperialist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`The high-tech nature of ${his} Imperial Plate and its incredibly thick plating does more to scare off potential recruits than draw them in, particularly without any real tales of valor to tell to those who do stop to listen.`);
 				}
+				seed += 1;
+			} else {
+				pushFS(`Without clear markings to identify ${him} as an Imperial slave, ${his} attempts have little effect on the promotion of Imperial society.`);
 			}
 		} else if (arcology.FSEgyptianRevivalist !== "unset") {
-			if (recruiterRelation) {
-				// willingness; protip: relationship optional, and actual sex doesn't need to be allowed
-				if ((slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") && (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted")) {
-					seed += 6;
-					FSmatch++;
-					arcology.FSEgyptianRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (totalRelatives(slave) > 0) {
+				const recruiterRelation = arcology.FSEgyptianRevivalist !== "unset" ? randomRelatedAvailableSlave(slave) : null;
+				if (recruiterRelation) {
+					const relationType = relativeTerm(slave, recruiterRelation);
+					if (slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") {
+						if (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted") {
+							pushFS(`${slave.slaveName} and ${his} ${relationType} ${recruiterRelation.slaveName} collaborate on a series of short commercials showing them `);
+							if (canWalk(slave) || canWalk(recruiterRelation)) {
+								pushFS(`walking and`);
+							}
+							pushFS(`playing in your arcology's public spaces. A little `);
+							if (hasAnyArms(slave) || hasAnyArms(recruiterRelation)) {
+								pushFS(`hand on the ass`);
+							} else {
+								pushFS(`cuddling`);
+							}
+							pushFS(`here, a little lips almost touching there, and it's enough to tease your Ancient Egyptian sensibility about incest without running afoul of too many old world censors.`);
+							seed += 6;
+							FSmatch++;
+							arcology.FSEgyptianRevivalist += 0.02 * V.FSSingleSlaveRep;
+						} else if (slave.relationshipTarget === recruiterRelation.ID) {
+							pushFS(`Even though their incestuous relationship is not condemned here, ${his} ${relationType} ${recruiterRelation.slaveName} is too shy to act it out in front of the world.`);
+						} else {
+							pushFS(`The Ancient Egyptian sensibility of your arcology features slave incest, but your recruiter can't convince ${his} shy ${relationType} to play along for publicity.`);
+						}
+					} else if (slave.relationshipTarget === recruiterRelation.ID) {
+						pushFS(`Even though ${he} shares a properly incestuous relationship with ${his} ${relationType}, ${he} is too shy to bring it on camera for the whole world.`);
+					} else {
+						pushFS(`The Ancient Egyptian sensibility of your arcology features slave incest, but ${he}'s too shy even to play-act with ${his} ${relationType} for publicity.`);
+					}
+				} else {
+					pushFS(`One idea that comes up while brainstorming is to act out Ancient Egyptian incest with a family member, but all of them are confined and unavailable.`);
 				}
+			} else {
+				pushFS(`One of the most prominent features of your Egyptian Revival is an open, even expectant, attitude toward slave incest, but ${he} doesn't have any close family living in your household.`);
 			}
 		} else if (arcology.FSEdoRevivalist !== "unset") {
-			if (clubSeed >= 3) {
-				seed += 6;
-				FSmatch++;
-				arcology.FSEdoRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
+				if (getClubAdsBonus() >= 3) {
+					pushFS(`The candid, POV-style videos of ${slave.slaveName} dancing, making out, and giving blowjobs alongside your regular sluts in ${V.clubName}'s ${V.clubDecoration} atmosphere earn a lot of thumbs up.`);
+					seed += 6;
+					FSmatch++;
+					arcology.FSEdoRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} enjoys ${himself} when ${he} films in ${V.clubName}, but the sluts there just don't earn enough attention for the visit to raise your public profile; the club may need broader marketing appeal.`);
+				}
+			} else if (V.club === 0) {
+				pushFS(`${He}'d like to integrate ${his} personal profile with your cultural Revival, but there's no clear place in your arcology to focus ${his} attention.`);
+			} else if (App.Entity.facilities.club.employeesIDs().size <= 1) {
+				pushFS(`${He} travels down to ${V.clubName} for some POV video footage, but ${he} can't get enough reliable dance partners.`);
+			} else {
+				pushFS(`${He} gets some hot POV-style footage when ${he} films in your nightclub, but there's nothing special about its atmosphere to distinguish it from any other bar in any other arcology.`);
 			}
 		} else if (arcology.FSArabianRevivalist !== "unset") {
-			if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && masterSuiteAvgEnergy > 60 && App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
-				seed += 6;
-				FSmatch++;
-				arcology.FSArabianRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && App.Utils.masterSuiteAverages().energy > 60) {
+				if (App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
+					pushFS(`An exposé that "pulls back the curtain" on your elaborate master bedroom goes viral after several harem slaves drag ${him} into`);
+					if (V.masterSuiteUpgradeLuxury === 1) {
+						pushFS(`four-way action with their ${properMaster()}`);
+					} else {
+						pushFS(`a fuckpit daisy chain`);
+					}
+					pushFS(`and another takes over the filming.`);
+					seed += 6;
+					FSmatch++;
+					arcology.FSArabianRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} makes a short video essay about your elaborate master suite, but the empty space unfilled by luscious slave bodies fails to impress.`);
+				}
+			} else if (V.masterSuiteUpgradeLuxury === 0) {
+				// covers if suite is unbuilt as well
+				pushFS(`${He} wants to profile the decadence of your grand bedroom, but the reality is shabby compared to the Revivalist dreams of luxurious harems in the old days.`);
+			} else if (V.masterSuiteDecoration !== "Arabian Revivalist") {
+				pushFS(`${He} thinks that "Pulling Back the Curtain" would make a good title for an exposé of your sumptuous bedroom, but it turns out that the space isn't decorated with Arabian-style curtains.`);
+			} else {
+				pushFS(`${He} makes a short video essay about your elaborate master suite, but there's no sex going on while ${he} films.`);
 			}
 		} else if (arcology.FSChineseRevivalist !== "unset") {
 			if (slaveInt > 15 && V.HeadGirlID !== 0 && V.BodyguardID !== 0 && V.HGSuite > 0) {
+				if ((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige >= 4) {
+					if (S.Bodyguard.prestige >= 1) {
+						pushFS(`${He} deferentially chronicles the administration of your Imperial household by Head Girl ${S.HeadGirl.slaveName} and Bodyguard ${S.Bodyguard.slaveName}. The piece explains points of Chinese Revivalist protocol where new slaves or visitors to the Forbidden Penthouse might inadvertently stumble.`);
+						FSmatch++;
+					} else {
+						pushFS(`${He} interviews your Head Girl about points of protocol and household administration for broadcast to the arcology. Your Bodyguard, ${S.Bodyguard.slaveName}, is not accustomed to fame and prefers to remain off-screen.`);
+					}
+				} else if (S.HeadGirl.intelligenceImplant < 15) {
+					pushFS(`${He} edits a documentary broadcast about the Revivalist protocols that drive your household, and in the process uncovers small but annoying lapses due to the Head Girl's lack of formal education.`);
+				} else {
+					pushFS(`${He} broadcasts a documentary about life inside your Imperial Chinese household, but the Head Girl's segment comes out flat: ${S.HeadGirl.slaveName} needs more experience working in front of a camera.`);
+				}
 				seed += (Math.min(((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige), 4) + Math.min(S.Bodyguard.prestige, 1));
 				FSdefend++;
 				arcology.FSChineseRevivalist += 0.03 * V.FSSingleSlaveRep;
+			} else if (V.HeadGirlID === 0 || V.BodyguardID === 0) {
+				pushFS(`${He} can't document the benefits of your Imperial Chinese administration because of unfilled posts in its leadership.`);
+			} else if (slaveInt <= 15) {
+				pushFS(`Your household is a well-run model for the arcology at large, but your recruiter doesn't completely understand its intricate Revivalist protocols and can't explain it for the masses.`);
+			} else {
+				pushFS(`${He} never considers promoting your household's Revivalist protocols, since you don't value your Head Girl enough to accord ${him} a separate apartment inside your walls.`);
 			}
 		}
-		/* and then there's Aztec revivalist, completely forgotten */
+		/* TODO: and then there's Aztec revivalist, completely forgotten */
 
 		repX(Math.trunc(seed * 5), "futureSocieties", slave);
 
-		if (V.showEWM === 1) {
-			if (slave.skill.entertainment > 10) {
-				if (slave.face > 40) {
-					if (slave.skill.entertainment >= 100) {
-						r.push(`${His} good looks and innate artistry awe the arcology and leave many starstruck.`);
-					} else if (slave.skill.entertainment > 60) {
-						r.push(`${His} good looks draw quite an audience; ${he} entertains them reasonably well.`);
-					} else if (slave.skill.entertainment > 30) {
-						r.push(`${His} face appeals to a certain crowd, mostly looking for sex tapes rather than quality entertainment.`);
-					}
-				} else {
-					if (slave.skill.entertainment >= 100) {
-						r.push(`All`);
-					} else if (slave.skill.entertainment > 60) {
-						r.push(`Many`);
-					} else if (slave.skill.entertainment > 30) {
-						r.push(`Some`);
-					} else {
-						r.push(`A few`);
-					}
-					r.push(`of ${his} wittier lines are liked and re-shared, but ${his} face just doesn't catch many eyes.`);
-				}
-			} else {
-				r.push(`More than a few sign up to watch ${his} feeds, but unsubscribe due to ${his} amateur presentation.`);
-			}
-			if (slaveInt > 15) {
-				r.push(`${He} offers thoughtful commentaries on trending topics.`);
-			} else {
-				r.push(`${He} lacks the intelligence to compose thoughtful remarks; a lot the time ${he} merely +1s what others have said.`);
-			}
-			if (V.studio && slave.porn.viewerCount >= 1000 && slave.porn.prestige > 0) {
-				r.push(`${His} fan base from arcology porn significantly drives up ${his} followers count.`);
-			}
-		}
-		// temp close EWM so next two lines always show
+		// the summary lines always show, regardless of showEWM
 		if (FSmatch > 0) {
 			r.push(`${His} personal appearance fits with your social philosophies, making the future you're building <span class="positive">more popular.</span>`);
 		}
@@ -1363,453 +1677,8 @@ App.SlaveAssignment.recruitGirls = (function() {
 			}
 			r.push(`<span class="positive">confirming your ideals</span> in the minds of some wavering individuals.`);
 		}
-		if (V.showEWM === 1) {
-			if (arcology.FSSupremacist !== "unset") {
-				if (slaveInt > 50) {
-					if (slave.race !== arcology.FSSupremacistRace) {
-						r.push(`${He} patiently explains how ${slave.race} ${girl}s like ${himself} benefit from the firm guidance of their proper ${arcology.FSSupremacistRace} masters.`);
-					} else {
-						r.push(`${He} makes the clear case for ${arcology.FSSupremacistRace} superiority, although as an enslaved ${slave.race} ${woman} ${his} words are a bit hollow.`);
-					}
-				} else if (slave.race !== arcology.FSSupremacistRace) {
-					r.push(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
-				} else {
-					r.push(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
-				}
-			}
-			if (arcology.FSSubjugationist !== "unset") {
-				if (slaveInt > 50) {
-					if (slave.race === arcology.FSSubjugationistRace) {
-						r.push(`It's always a pleasure to hear a ${slave.race} slave admit to all the failings for which ${his} kind need to be taken in hand.`);
-					} else {
-						r.push(`${He} argues intelligently in favor of ${arcology.FSSubjugationistRace} subjugation, a performance undermined only slightly by miscegenationist scum releasing a competing clip of ${his} open-mic comment that ${he}'s glad not to be one of <span style="italic">them<span>.`);
-					}
-				} else if (slave.race === arcology.FSSubjugationistRace) {
-					r.push(`The subhuman idiot's floundering on the race question rather proves your point about ${arcology.FSSubjugationistRace} inferiority, but not in a way that gains any converts.`);
-				} else {
-					r.push(`${His} uninspired presentation on ${arcology.FSSubjugationistRace} failings only links to the educational materials already published in your arcology.`);
-				}
-			}
-			if (arcology.FSRepopulationFocus !== "unset") {
-				if (slave.preg > slave.pregData.normalBirth / 1.33) {
-					r.push(`${He} makes a habit of allowing the public to fondle and enjoy the movements within ${his} baby filled belly.`);
-				} else if (slave.preg > slave.pregData.normalBirth / 2) {
-					r.push(`${He} makes a habit of allowing the public to fondle and enjoy ${his} baby rounded belly.`);
-				} else if (slave.counter.births > 0) {
-					r.push(`Any time ${he} stars in an erotic photo shoot, ${he} always makes sure to follow up with a, hopefully positive, pregnancy test. Though ${he} makes sure to hype up ${his} viewers to sign up to be the one to knock ${him} up should it come up negative.`);
-				} else {
-					r.push(`${His} efforts would have more impact if ${his} womb wasn't so empty. Disappointing to any who would want to see ${him} pregnant.`);
-				}
-				if (slaveInt > 50) {
-					r.push(`${He} is smart enough to not only repeat your repopulationist goals, but to expand upon them.`);
-				} else if (slave.counter.births > 3) {
-					r.push(`${He} uses ${his} experience as a mother as leverage to convince virgin ladies that motherhood is wonderful.`);
-				} else {
-					r.push(`Being both unintelligent and inexperienced, ${his} attempts to emphasize the joys of pregnancy only come off as someone who likes big bellies, no matter their cause.`);
-				}
-			} else if (arcology.FSRestart !== "unset") {
-				if (slave.bellyPreg >= 1500 && slave.breedingMark === 1 && V.propOutcome === 1) {
-					r.push(`${He} prominently displays ${his} pregnancy and the mark branded upon it signifying the superior child growing within ${him}. ${His} audience is enamored by ${his} distinct status.`);
-				} else if (slave.breedingMark === 1 && V.propOutcome === 1) {
-					r.push(`${He} prominently displays the mark branded over ${his} womb, but without the curve of pregnancy beneath it, it only goes so far.`);
-				} else if (slave.bellyPreg < 100) {
-					if (slave.dick > 0 && slave.balls === 0) {
-						r.push(`${He} makes sure to wear tight fitting clothes to show off the bulge of ${his} dick and, most notably, the lack of testicles under it, in all ${his} photo shoots.`);
-					} else if (slave.chastityVagina || slave.chastityPenis) {
-						r.push(`In all ${his} public appearances, ${his} choice of clothing is always crotchless, leaving ${his} chastity gear as the only thing protecting ${his} modesty.`);
-					} else if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) {
-						r.push(`${He} frequently livestreams massive orgies involving ${himself} at the center, making sure to always follow up with ${his} negative pregnancy tests.`);
-					} else {
-						r.push(`${His} lack of commitment to sterilization and eugenics drive away potential listeners.`);
-					}
-				} else {
-					r.push(`No-one cares what bloated trash has to say.`);
-				}
-			}
-			if (arcology.FSGenderRadicalist !== "unset") {
-				if (slave.dick > 0 && (slave.balls < 1 || slave.boobs > 400)) {
-					if (slave.anus > 0 && canDoAnal(slave)) {
-						r.push(`${His} public demonstrations of just how hard feminized sissies can orgasm with buttsex — at a different interior balcony each day — draw plenty of attention.`);
-					} else {
-						r.push(`${He} attracts a little attention by gaily showing off ${his}`);
-						if (slave.balls < 1) {
-							r.push(`soft bitch-clit`);
-						} else {
-							r.push(`intersex anatomy`);
-						}
-						r.push(`on the public thoroughfares of your arcology,`);
-						if (!canDoAnal(slave)) {
-							r.push(`since ${he} can't take it any further.`);
-						} else {
-							r.push(`being careful not to risk ${his} virgin backdoor.`);
-						}
-					}
-				} else {
-					r.push(`${He} just doesn't have the right combination of body parts to personally demonstrate your utopia of eager, girly-dicked buttsluts.`);
-				}
-			} else if (arcology.FSGenderFundamentalist !== "unset") {
-				if (slave.balls < 1) {
-					if (arcology.FSRestart === "unset") {
-						if (slave.bellyPreg >= 1500) {
-							r.push(`${He} unashamedly live streams an obstetric health check in the nude, promising to broadcast similar footage right up until, and during, the birth.`);
-						} else if (setup.fakeBellies.includes(slave.bellyAccessory)) {
-							r.push(`With some discreet editing, ${he} uploads fake ultrasounds to match ${his} plastic pregnancy, bringing a little more attention to your fertility campaigns.`);
-						} else {
-							r.push(`${He} posts plenty of snapshots of gravid mothers-to-be. But with no belly bump of ${his} own to feature, the impact is no different from any preggo porn already floating around the net.`);
-						}
-					} else {
-						r.push(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
-					}
-				} else {
-					r.push(`On the topic of natural female deference to their owners around the house, your recruiter would be more convincing if ${he} didn't keep readjusting ${his} junk.`);
-				}
-			}
-			if (arcology.FSPaternalist !== "unset") {
-				if (slave.devotion + slave.trust > 150 || slave.relationship === -3) {
-					if (slave.intelligenceImplant >= 15) {
-						r.push(`All week ${he} shares original poetry in which ${his} love for you shines `);
-						if (slave.health.condition > 40) {
-							r.push(`through, and ${his} healthy body shines in every live appearance`);
-						} else {
-							r.push(`through.`);
-						}
-					} else {
-						r.push(`Even though ${he} clearly adores ${his} ${getWrittenTitle(slave)}, at times the uneducated slave struggles to fully and cogently express ${his} affection.`);
-					}
-				} else {
-					r.push(`${His} praise of your good works lacks the special touch of personal affection, so it doesn't impress much.`);
-				}
-			} else if (arcology.FSDegradationist !== "unset") {
-				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
-					if (slaveInt > 50) {
-						r.push(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName} goes public in all ${his} garish, modded glory to defend the legal right of slaveowners to use their property however they please, ${he}'s earned a brief reprieve.`);
-					} else {
-						r.push(`Just the sight of ${slave.slaveName}'s provocatively decorated body entices ${his} online "friends" to share multiple scenarios for raping ${him}, although the honor is wasted on the dumb fucktoy.`);
-					}
-				} else if (slaveInt > 50) {
-					r.push(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName} defends the right of owners to use their property however they please, ${he}'s earned some consideration: perhaps you could "reward" ${him} with an extra piercing or a slutty new tat.`);
-				} else {
-					r.push(`${He} isn't smart enough to understand the primal attraction of an arcology where slave holes exist only to be raped, nor is ${his} body sufficiently degraded to advertise it.`);
-				}
-			}
-			if (arcology.FSIntellectualDependency !== "unset") {
-				if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
-					if (slave.energy > 95) {
-						if (slaveInt < -50) {
-							r.push(`${His} week was spent competing with other bimbos and generally being a delight to onlookers when the competition inevitably turns sexual.`);
-						} else {
-							r.push(`This week's softcore photo shoot clearly showcases a bimbo, even if it feels like too much thought was put into it.`);
-						}
-					} else {
-						r.push(`While ${he} may look the part of a bimbo, ${he} lacks the sex drive to back it up.`);
-					}
-				} else if (slave.energy > 95) {
-					if (slaveInt < -50) {
-						r.push(`${His} week was spent wandering aimlessly throughout the arcology, delighting anyone able to spend time with ${him} with ${his} simple ways.`);
-					} else {
-						r.push(`${He} exhibits raw lust, but lacks other traits commonly found in bimbos, hindering ${his} efforts.`);
-					}
-				} else {
-					r.push(`${He}'s just lacks the energy to party all night long.`);
-				}
-			} else if (arcology.FSSlaveProfessionalism !== "unset") {
-				if (slave.accent <= 1) {
-					if (slaveInt > 50) {
-						if (slaveInt > 95) {
-							if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
-								r.push(`Each week ${he} hosts ${his} own seminar demonstrating new and exciting sexual techniques, some even of ${his} own creation.`);
-							} else {
-								r.push(`${He} uses ${his} brilliant mind to show what a slave is truly capable of, but ${he} can only go so far lacking practical skills.`);
-							}
-						} else if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
-							r.push(`${He} participates in a weekly article showcasing skills every slave needs. However, only being able to recite learned information limits ${him}.`);
-						} else {
-							r.push(`${He} attempts to be a sexual trendsetter, but is neither smart nor skilled enough to achieve anything of interest.`);
-						}
-					} else {
-						r.push(`${He} isn't smart enough to explain what a professional slave actually is and how it differs from a trained slave.`);
-					}
-				} else {
-					r.push(`${His} inability to speak ${V.language} properly makes ${him} a relatively poor spokes${woman} for trained slaves.`);
-				}
-			}
-			if (arcology.FSBodyPurist !== "unset") {
-				if (slave.corsetPiercing === 0 && modScore.piercing < 3 && modScore.tat < 2) {
-					if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
-						r.push(`${He} exhibits pure sexuality in a lovely, artistic gallery of erotic photos posted this week that displays every natural `);
-						if (V.showInches === 2) {
-							r.push(`inch`);
-						} else {
-							r.push(`centimeter`);
-						}
-						r.push(`of ${his} body.`);
-					} else if (slave.boobsImplant === 0 && slave.buttImplant === 0) {
-						r.push(`This week's softcore photo shoot delights the eye: only ${his} unnatural waistline mars ${his} beauty, and that can hardly be blamed on the model.`);
-					} else {
-						r.push(`${His} unblemished skin shines artistically in this week's erotic studio gallery, but the shape of ${his} curves is too obviously artificial.`);
-					}
-				} else if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
-					r.push(`${His} most recent photo galleries are barely passable: you can hardly see the ${woman} beneath ${his} blatant body art.`);
-				} else {
-					r.push(`${He} is burdened by the knowledge that ${his} heavy alterations don't fit your ideal of purity, and fails to show at a scheduled photo shoot.`);
-				}
-			} else if (arcology.FSTransformationFetishist !== "unset") {
-				if (slave.boobsImplant > 0 && slave.buttImplant > 0 && slave.lipsImplant > 0) {
-					if (slave.waist < -95 || slave.teeth === "pointy" || slave.teeth === "fangs" || !hasAllNaturalLimbs(slave) || (slave.vagina > -1 && slave.dick > 6)) {
-						r.push(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on ${his} better-than-natural physiology in each one.`);
-					} else if (V.seeExtreme === 1) {
-						r.push(`${His} augmented body certainly has its appeals, yet as you look over this week's publicity recap you begin to wonder if ${he} could be still more extremely <span style="italic">transformed<span>.`);
-					} else if (slave.vagina > -1 && slave.dick > 0) {
-						r.push(`${His} special body stands out during this week's publicity tour; and if ${his} futa cock were grown beyond a natural size, now that would really advertise ${his} improved state.`);
-					} else if (V.seeDicks > 0) {
-						r.push(`${He} looks great in this week's publicity events at arcology businesses, always posing to show off ${his} enhancements. Now if only there were something to graft on that would take ${him} beyond implants to genuine <span style="italic">transformation<span>.`);
-					} else {
-						// game settings prohibit greater transformations
-						r.push(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on the beauty of ${his} implants.`);
-					}
-				} else {
-					r.push(`"Boobs, butts, and blowjobs": it's the plastic surgeon's mantra, and viewing this week's publicity footage reminds you that you've neglected your recruiter's augmentations.`);
-				}
-			}
-			if (arcology.FSYouthPreferentialist !== "unset") {
-				if (slave.physicalAge < 30) {
-					r.push(`${His} nightly cam chats sparkle with the energy of youth.`);
-				} else {
-					r.push(`As an older slave, ${he} doesn't have enough energy to cam chat late into the night.`);
-				}
-			} else if (arcology.FSMaturityPreferentialist !== "unset") {
-				if (slave.actualAge >= 30) {
-					r.push(`${He} video blogs regularly about the financial, medical, and even emotional security of slave life for older ${women}.`);
-				} else {
-					r.push(`${He} uses too much youthful slang and jumps from topic to topic in ${his} video blogs, making them difficult for ${his} audience to follow.`);
-				}
-			}
-			if (arcology.FSPetiteAdmiration !== "unset") {
-				if (heightPass(slave)) {
-					r.push(`${He} takes advantage of ${his} short stature to shock and amaze ${his} followers by having sex in unusual places.`);
-				} else {
-					r.push(`It's hard to play up a difference in height when ${he} stands as tall`);
-					if (slave.height >= 185) {
-						r.push(`as, or taller than,`);
-					}
-					r.push(`as most citizens.`);
-				}
-			} else if (arcology.FSStatuesqueGlorification !== "unset") {
-				if (heightPass(slave)) {
-					r.push(`${His} photoshoots all use a panoramic camera to better capture ${his} height while giving them a unique flare.`);
-				} else {
-					r.push(`${He}'s just too short for the public to pay any mind to.`);
-				}
-			}
-			if (arcology.FSSlimnessEnthusiast !== "unset") {
-				if (slave.boobs < 500 && slave.butt < 3 && slave.weight <= 10 && slave.muscles <= 30) {
-					r.push(`${His} trim body gives ${him} a cute, ${girl}-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.`);
-				} else {
-					r.push(`${He} shares a lot of selfies of ${his} activities in your penthouse, but ${his} bulging figure tends to hide what's going on.`);
-				}
-			} else if (arcology.FSAssetExpansionist !== "unset") {
-				if (slave.boobs > 2000 || slave.butt > 7 || slave.balls > 4 || slave.dick > 8) {
-					r.push(`As the saying goes, "shake it if you got it," and no one can doubt ${slave.slaveName} has it after a "citizen" posts an "unauthorized" wristcam video of ${his} humongous anatomy swinging around a stripper pole.`);
-				} else {
-					r.push(`Although ${he} tries hard, none of ${his} assets interest the true size fetishist.`);
-				}
-			}
-			if (arcology.FSPastoralist !== "unset") {
-				if (V.dairy) {
-					if (App.Entity.facilities.dairy.employeesIDs().size > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
-						if (slave.lactation > 0) {
-							r.push(`${He} schedules VR tours of ${V.dairyName} in order to popularize your free-range practices and quality products: the highlight each time is when ${he} hooks ${his} own teats into a milker and brings ${himself} to orgasm.`);
-						} else {
-							r.push(`${He} narrates a virtual reality tour of ${V.dairyName}, explaining how your humane, free-range practices result in a high quality product.`);
-						}
-					} else if (slave.lactation > 0) {
-						r.push(`${His} VR uploads include a short clip of ${him} milking ${himself} in ${V.dairyName}; ${he} squirts directly into an old-fashioned bucket while ignoring the complicated, industrial machines behind ${him}.`);
-					} else if (V.dairyRestraintsSetting >= 2) {
-						r.push(`Your dairy is too heavily industrialized to promote socially.`);
-					} else {
-						r.push(`${He} ignores ${V.dairyName}, since ${he} can't think of any ideas to promote it.`);
-					}
-				} else {
-					r.push(`${He} can't really promote Pastoralist ideals when ${his} owner hasn't even committed to building a Dairy.`);
-				}
-			}
-			if (arcology.FSPhysicalIdealist !== "unset") {
-				if (slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) {
-					r.push(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off ${his} impressive muscle definition, and in certain poses ${he} nearly seems to be making love to the equipment.`);
-				} else if (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) {
-					r.push(`${He} asks another slave to photo-document ${his} time on the track this week: naked, of course, to show off how perfectly toned body in motion.`);
-				} else if (slave.muscles > 40 && slave.health.condition > 80) {
-					r.push(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off how ${he} keeps in such fine shape, and in certain poses ${he} nearly seems to be making love to the equipment.`);
-				} else {
-					r.push(`${He} tries documenting ${his} exercise routine, but it's a snooze fest because ${he} doesn't have the guns to show for it.`);
-				}
-			} else if (arcology.FSHedonisticDecadence !== "unset") {
-				if (slave.weight > 95 || (slave.fetishStrength >= 95 && slave.weight > 10)) {
-					r.push(`${He} frequently`);
-					if (slave.fetishStrength >= 95) {
-						r.push(`makes public appearances where ${he} demonstrates the strength of ${his} fetishes and invites spectators to aid in satisfying ${his} desires.`);
-					} else {
-						r.push(`livestreams ${himself} relaxing and masturbating, making sure to draw attention to ${his} lush curves and how comfortable ${his} life is.`);
-					}
-				}
-				if (slave.weight > 10 && slave.health.condition > 80) {
-					r.push(`Despite ${his} weight, ${he} practically oozes health and happiness helping to ease potential worries about the excessive lifestyle slaves enjoy under you.`);
-				}
-				if (arcology.FSHedonisticDecadenceResearch === 1 && arcology.FSDegradationist === "unset") {
-					r.push(`Whenever ${he} meets a prospect, ${he} makes sure to take some of your specialized slave food with ${him} to show them they won't miss much from their prior lives. It rarely fails to make an impact.`);
-				}
-			}
-			if (arcology.FSChattelReligionist !== "unset") {
-				if (slaveInt > 15 && (slave.devotion > 95 || slave.trust > 95)) {
-					if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya") {
-						r.push(`Clad in ${his} holy garb, ${slave.slaveName} preaches to the atrium with a powerful appeal to the new morality, in which ${his} absolute faith in your revelations is unmistakable.`);
-					} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "a tight Imperial bodysuit") {
-						r.push(`${He} lectures eloquently on the importance of hierarchy and noble lineage in a pseduo-religious fashion, dressed out in ${his} form-fitting bodysuit; most of the listeners' eyes fall on ${his} tightly-outlined chest and how ${his} nipples protrude obviously underneath the cybersuit, your crest emblazoned over the rock-hard nubs doing more of the arguing.`);
-					} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "Imperial Plate") {
-						r.push(`${He} gives a lengthy speech about the importance of hierarchy and noble lineage in a pseudo-religious fashion, speaking on the divine right of the nobility to rule while dominating the floor in ${his} ultra-heavy Imperial plate.`);
-					} else if (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") {
-						r.push(`${He} preaches in the atrium, delivering a powerful and faith-filled appeal in support of the new state religion and its Prophet-Emperor, descendant of the gods.`);
-					} else {
-						r.push(`${He} heads to the atrium to deliver a powerful, faith-based appeal for everyone to join the new moral order, though one cynical onlooker heckles ${him} about ${his} style of dress.`);
-					}
-				} else if (slaveInt > 15) {
-					r.push(`${His} lecture on the new religious morality is thorough, and also devastatingly boring: all bullet point scriptures and little emotion that would sway unenlightened hearts.`);
-				} else if (slave.devotion > 95 || slave.trust > 95) {
-					r.push(`Although ${he} wears ${his} faith in you on ${his} metaphorical sleeve, ${he} can't muster the intellectual arguments to counter the shrill voices of backward old world religions.`);
-				} else {
-					r.push(`${He} is hapless as a proselytizer for the new religious order because ${his} personal understanding and adherence remains inadequate.`);
-				}
-			} else if (arcology.FSNull !== "unset") {
-				r.push(`${His} contribution is one voice among many in the open freedom of ${arcology.name}'s media,`);
-				if (slave.skill.entertainment > 10) {
-					r.push(`but everything that relates to its leadership is usually well-received.`);
-				} else {
-					r.push(`so ${his} unskilled performances this week hardly cause a ripple.`);
-				}
-			}
-			if (arcology.FSRomanRevivalist !== "unset") {
-				if (slave.clothes === "a toga") {
-					if (slave.face > 10 && slave.counter.pitKills > 0) {
-						r.push(`${He} thrills audiences by recounting tales of ${his} exploits as a beautiful and deadly gladiatrix-<span style="italic">slash</span>-love-slave for the First Citizen of the Eternal City reborn.`);
-					} else if (slave.face > 10) {
-						r.push(`${His} statuesque beauty is a fitting tribute to the glory of the Eternal City reborn, but ${he} still lacks the edge of <span style="italic">bloodthirstiness</span> that makes life here so exciting.`);
-					} else if (slave.counter.pitKills > 0) {
-						r.push(`Even though ${his} history of gladiatorial combat is noble, when mixed with ${his} homeliness it tends to frighten the squeamish as much as it attracts the sanguinary.`);
-					} else {
-						r.push(`${He} comes across like a historical tour guide; more worthy citizens would flock to the New Rome if your recruiter appeared as a statuesque, and possibly deadly, inamorata of its ruler.`);
-					}
-				} else {
-					r.push(`Dressed as ${he} is in the garments of a barbarian, the citizens of the New Rome ignore ${him}.`);
-				}
-			} else if (arcology.FSNeoImperialist !== "unset") {
-				if (slave.clothes === "a tight Imperial bodysuit") {
-					if (slave.face > 10 && slave.skill.entertainment >= 60) {
-						r.push(`${He} thrills the watching audience with ${his} immense beauty and charm, performing just as a proper Imperial slave ought - obedient, gorgeous, and strikingly attentive.`);
-					} else if (slave.face > 10) {
-						r.push(`${His} beauty captivates the watching audience, although ${he} is somewhat awkward and ungraceful when actually speaking with them.`);
-					} else if (slave.skill.entertainment >= 60) {
-						r.push(`Even though ${he} acts as a perfect Imperial slave, attentive and obedient, ${his} comely features fail to attract much attention, superficial as it may be.`);
-					} else {
-						r.push(`${He} comes across as both boring and unattractive; the emblazoned crest on ${his} chest seems more like a mark of mockery upon the stuttering, homely slave.`);
-					}
-				} else if (slave.clothes === "Imperial Plate") {
-					if (slave.counter.pitKills > 0) {
-						r.push(`In ${his} ultra-heavy Imperial Plate, ${he} mystifies and captivates the audience with ${his} tales of victory and domination in the arena, coming across as an awe-inspiring and slightly terrifying properly Imperial Knight.`);
-					} else {
-						r.push(`The high-tech nature of ${his} Imperial Plate and its incredibly thick plating does more to scare off potential recruits than draw them in, particularly without any real tales of valor to tell to those who do stop to listen.`);
-					}
-				} else {
-					r.push(`Without clear markings to identify ${him} as an Imperial slave, ${his} attempts have little effect on the promotion of Imperial society.`);
-				}
-			} else if (arcology.FSEgyptianRevivalist !== "unset") {
-				if (totalRelatives(slave) > 0) {
-					if (recruiterRelation) {
-						const relationType = relativeTerm(slave, recruiterRelation);
-						if (slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") {
-							if (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted") {
-								r.push(`${slave.slaveName} and ${his} ${relationType} ${recruiterRelation.slaveName} collaborate on a series of short commercials showing them `);
-								if (canWalk(slave) || canWalk(recruiterRelation)) {
-									r.push(`walking and`);
-								}
-								r.push(`playing in your arcology's public spaces. A little `);
-								if (hasAnyArms(slave) || hasAnyArms(recruiterRelation)) {
-									r.push(`hand on the ass`);
-								} else {
-									r.push(`cuddling`);
-								}
-								r.push(`here, a little lips almost touching there, and it's enough to tease your Ancient Egyptian sensibility about incest without running afoul of too many old world censors.`);
-							} else if (slave.relationshipTarget === recruiterRelation.ID) {
-								r.push(`Even though their incestuous relationship is not condemned here, ${his} ${relationType} ${recruiterRelation.slaveName} is too shy to act it out in front of the world.`);
-							} else {
-								r.push(`The Ancient Egyptian sensibility of your arcology features slave incest, but your recruiter can't convince ${his} shy ${relationType} to play along for publicity.`);
-							}
-						} else if (slave.relationshipTarget === recruiterRelation.ID) {
-							r.push(`Even though ${he} shares a properly incestuous relationship with ${his} ${relationType}, ${he} is too shy to bring it on camera for the whole world.`);
-						} else {
-							r.push(`The Ancient Egyptian sensibility of your arcology features slave incest, but ${he}'s too shy even to play-act with ${his} ${relationType} for publicity.`);
-						}
-					} else {
-						r.push(`One idea that comes up while brainstorming is to act out Ancient Egyptian incest with a family member, but all of them are confined and unavailable.`);
-					}
-				} else {
-					r.push(`One of the most prominent features of your Egyptian Revival is an open, even expectant, attitude toward slave incest, but ${he} doesn't have any close family living in your household.`);
-				}
-			} else if (arcology.FSEdoRevivalist !== "unset") {
-				if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
-					if (clubSeed >= 3) {
-						r.push(`The candid, POV-style videos of ${slave.slaveName} dancing, making out, and giving blowjobs alongside your regular sluts in ${V.clubName}'s V.clubDecoration atmosphere earn a lot of thumbs up.`);
-					} else {
-						r.push(`${He} enjoys ${himself} when ${he} films in ${V.clubName}, but the sluts there just don't earn enough attention for the visit to raise your public profile; the club may need broader marketing appeal.`);
-					}
-				} else if (V.club === 0) {
-					r.push(`${He}'d like to integrate ${his} personal profile with your cultural Revival, but there's no clear place in your arcology to focus ${his} attention.`);
-				} else if (App.Entity.facilities.club.employeesIDs().size <= 1) {
-					r.push(`${He} travels down to ${V.clubName} for some POV video footage, but ${he} can't get enough reliable dance partners.`);
-				} else {
-					r.push(`${He} gets some hot POV-style footage when ${he} films in your nightclub, but there's nothing special about its atmosphere to distinguish it from any other bar in any other arcology.`);
-				}
-			} else if (arcology.FSArabianRevivalist !== "unset") {
-				if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && masterSuiteAvgEnergy > 60) {
-					if (App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
-						r.push(`An exposé that "pulls back the curtain" on your elaborate master bedroom goes viral after several harem slaves drag ${him} into`);
-						if (V.masterSuiteUpgradeLuxury === 1) {
-							r.push(`four-way action with their ${properMaster()}`);
-						} else {
-							r.push(`a fuckpit daisy chain`);
-						}
-						r.push(`and another takes over the filming.`);
-					} else {
-						r.push(`${He} makes a short video essay about your elaborate master suite, but the empty space unfilled by luscious slave bodies fails to impress.`);
-					}
-				} else if (V.masterSuiteUpgradeLuxury === 0) {
-					// covers if suite is unbuilt as well
-					r.push(`${He} wants to profile the decadence of your grand bedroom, but the reality is shabby compared to the Revivalist dreams of luxurious harems in the old days.`);
-				} else if (V.masterSuiteDecoration !== "Arabian Revivalist") {
-					r.push(`${He} thinks that "Pulling Back the Curtain" would make a good title for an exposé of your sumptuous bedroom, but it turns out that the space isn't decorated with Arabian-style curtains.`);
-				} else {
-					r.push(`${He} makes a short video essay about your elaborate master suite, but there's no sex going on while ${he} films.`);
-				}
-			} else if (arcology.FSChineseRevivalist !== "unset") {
-				if (slaveInt > 50 && V.HeadGirlID !== 0 && V.BodyguardID !== 0 && V.HGSuite > 0) {
-					if ((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige >= 4) {
-						if (S.Bodyguard.prestige >= 1) {
-							r.push(`${He} deferentially chronicles the administration of your Imperial household by Head Girl ${S.HeadGirl.slaveName} and Bodyguard S.Bodyguard.slaveName. The piece explains points of Chinese Revivalist protocol where new slaves or visitors to the Forbidden Penthouse might inadvertently stumble.`);
-						} else {
-							r.push(`${He} interviews your Head Girl about points of protocol and household administration for broadcast to the arcology. Your Bodyguard, ${S.Bodyguard.slaveName}, is not accustomed to fame and prefers to remain off-screen.`);
-						}
-					} else if (S.HeadGirl.intelligenceImplant < 15) {
-						r.push(`${He} edits a documentary broadcast about the Revivalist protocols that drive your household, and in the process uncovers small but annoying lapses due to the Head Girl's lack of formal education.`);
-					} else {
-						r.push(`${He} broadcasts a documentary about life inside your Imperial Chinese household, but the Head Girl's segment comes out flat: ${S.HeadGirl.slaveName} needs more experience working in front of a camera.`);
-					}
-				} else if (V.HeadGirlID === 0 || V.BodyguardID === 0) {
-					r.push(`${He} can't document the benefits of your Imperial Chinese administration because of unfilled posts in its leadership.`);
-				} else if (slaveInt <= 15) {
-					r.push(`Your household is a well-run model for the arcology at large, but your recruiter doesn't completely understand its intricate Revivalist protocols and can't explain it for the masses.`);
-				} else {
-					r.push(`${He} never considers promoting your household's Revivalist protocols, since you don't value your Head Girl enough to accord ${him} a separate apartment inside your walls.`);
-				}
-			}
-		}
+
+		// concatenate the FS match/defend strings *after* the summary
+		r = r.concat(FSstrings);
 	}
 })();
diff --git a/src/events/eventUtils.js b/src/events/eventUtils.js
index f00e3442ad90106344c7ddbb210a2da57995fa24..f0c3ca72d929b1f2e85fd6bbd58de26d234e4e2a 100644
--- a/src/events/eventUtils.js
+++ b/src/events/eventUtils.js
@@ -143,6 +143,17 @@ App.Events.addParagraph = function(node, sentences) {
 	node.appendChild(para);
 };
 
+/** assemble an element from an array of DOM nodes, sentences or sentence fragments (which may contain HTML)
+ * @param {Node} node
+ * @param {Array<string|HTMLElement|DocumentFragment|Node>} sentences
+ * @param {string} [element]
+ */
+App.Events.addNode = function(node, sentences, element) {
+	const el = (element) ? document.createElement(element) : new DocumentFragment();
+	$(el).append(...App.Events.spaceSentences(sentences));
+	node.appendChild(el);
+};
+
 /** result handler callback - process the result and return an array of mixed strings and DOM nodes, or a single string or DOM node
  * @callback resultHandler
  * @returns {Array<string|HTMLElement|DocumentFragment>|string|HTMLElement|DocumentFragment}
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index c1fd959fa84bec048d9fda77f78e57bf822b7e94..2af73205becd252b81c53ba5ab8586bbaa9976af 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -343,12 +343,12 @@ You may review your settings before clicking "Continue" to begin.<br>
 
 	<<run _options.addOption("The Special Force Mod is", "Toggle", $SF)
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
-	.addComment("<div>This mod is initially from anon1888 but expanded by SFanon offers a lategame special (started out as security but changed to special in order to try and reduce confusion with CrimeAnon's separate Security Expansion (SecExp) mod) force, that is triggered after week 72.</div> 
+	.addComment("<div>This mod is initially from anon1888 but expanded by SFanon offers a lategame special (started out as security but changed to special in order to try and reduce confusion with CrimeAnon's separate Security Expansion (SecExp) mod) force, that is triggered after week 72.</div>
 	<div>It is non-canon where it conflicts with canonical updates to the base game.</div>")>>
 
 	<<run _options.addOption("The Security Expansion Mod is", "secExpEnabled")
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
-	.addComment("<div>This mod introduces security and crime in the arcology, as well as attacks and battles.</div> 
+	.addComment("<div>This mod introduces security and crime in the arcology, as well as attacks and battles.</div>
 	<div>The mod can be activated in any moment, but it may result in unbalanced gameplay if activated very late in the game.</div>")>>
 
 	<<includeDOM _options.render()>>
diff --git a/src/events/scheduled/assholeKnight.tw b/src/events/scheduled/assholeKnight.tw
index 9c10209da569f03288030f6312509e50ba724899..f76c0c5357865e1aa75cf3120b64ac59dc379afd 100644
--- a/src/events/scheduled/assholeKnight.tw
+++ b/src/events/scheduled/assholeKnight.tw
@@ -15,21 +15,17 @@ This singular Knight has apparently been using their position to extort and bull
 	<<replace "#result">>
 	You have the insolent Knight's plate armor confiscated, his apartment seized and his right to bear a coat of arms redacted. The knight is nothing short of utterly furious, but puts up no fight as your guards seize his advanced weaponry; to do so would be suicidal. While he swears revenge against you for taking away his "noble rights", you receive a letter from a relieved merchant @@.green;thanking you@@ for putting the jumped-up bandit down.
     <<run repX(2500, "event")>>
-	<</replace>> 
+	<</replace>>
 <</link>>
 <br>&nbsp;&nbsp;&nbsp;&nbsp;<<link "Have him publicly flogged, then enslaved">>
 	<<replace "#result">>
 	You have the insolent Knight's gear and weapons confiscated, then publicly flog him in the plaza and annouce that he's to be enslaved for crimes against the people of $arcologies[0].name. Although the watching peasants are clearly @@.green;relieved@@ that the cruel bully is off the streets, some of them, those who did not feel the fist of the howling man on their own neck, @@.red;recoil@@ somewhat at the sudden brutality against a class that most of them idolize and romanticize.
     <<run repX(1000, "event")>>
-    <<set $activeSlave = GenerateNewSlave()>>
-    <<run newSlave($activeSlave)>>
     <<set $activeSlaveOneTimeMinAge = 22>>
     <<set $activeSlaveOneTimeMaxAge = 34>>
-	<<set $activeSlave.actualAge = $activeSlave.actualAge+1>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<set $activeSlave.ovaryAge = $activeSlave.actualAge>>
-	<<set $activeSlave.genes = "XY">>
+	<<set $oneTimeDisableDisability = 1>>
+	<<set $activeSlave = GenerateNewSlave("XY")>>
+	<<run newSlave($activeSlave)>>
 	<<set $activeSlave.origin = "$He used to be a prestigious Knight in your arcology, until you had $him enslaved for cruelly abusing citizens beneath $his stature.">>
 	<<set $activeSlave.career = "spec ops">>
     <<set $activeSlave.devotion = random(-80,-60)>>
diff --git a/src/events/scheduled/newBaron.tw b/src/events/scheduled/newBaron.tw
index bf17cda0fd85f8887bb0d23dbfb7ce139ccce76e..03b98b6e9b739008d1c8bf16a55496b998d9e94d 100644
--- a/src/events/scheduled/newBaron.tw
+++ b/src/events/scheduled/newBaron.tw
@@ -16,9 +16,9 @@ The hunger for such security among your upper class leaves you in an intersting
 	You select one of your loyal executives, an ultra-wealthy trader within the arcology who made a fortune in the sale of human bodies, for the new Barony. The man, a portly and unintimidating man that hides a razor-sharp mind behind his fat and an exepensive suit, smiles full of teeth as you annouce your decision to a waiting crowd of elites. After you go through the formalities and hand him the golden band that'll represent his symbol of office, he shakes your hand vigorously, still smiling devilishly. The next day, the newly-appointed Baron sends you a platter of expensive gifts and foreign candies, complimented with a @@.green;massive direct deposit to your bank account.@@ You can't help but feel that such a crafty fox might use his new power to @@.red;corner the market@@ in his barony, though.
 	<<run cashX(5000, "Baron gift")>>
     <<run $arcologies[0].prosperity -= 1>>
-	<</replace>> 
+	<</replace>>
 <</link>>
-<br>&nbsp;&nbsp;&nbsp;&nbsp;<<link "Appoint a competent bureaucrat">> 
+<br>&nbsp;&nbsp;&nbsp;&nbsp;<<link "Appoint a competent bureaucrat">>
 	<<replace "#result">>
 	You select an unimportant but accomplished bureaucrat within the lower ranks of your administration, one of the cornerstone accountants that keeps the trains running on time. The rail-thin woman is clearly surprised that you'd choose her over a wealthier, more influential elite, but nevertheless accepts the golden band with overflowing joy. Although she may not turn any eyebrows, you can tell without a fact that she'll @@.green;keep your arcology efficient and prosperous@@ - after all, if it collapses, then her 'guaranteed' barony vanishes too.
     <<run $arcologies[0].prosperity += 3>>
diff --git a/src/events/scheduled/poorKnight.tw b/src/events/scheduled/poorKnight.tw
index af5e98896af0688e99d4cf2dfa332b0240a26708..25eafbd50cf717e1f42693270d0d0e86ca03aaa6 100644
--- a/src/events/scheduled/poorKnight.tw
+++ b/src/events/scheduled/poorKnight.tw
@@ -2,7 +2,7 @@
 
 <<set $nextButton = "Continue", $nextLink = "Scheduled Event">>
 
-Word reaches your ears through the idle gossip of your well-to-do Barons of a particular citizen whose name has been on everyone's lips the last few days. During the visit of a wealthy trader from a neighboring arcology, the merchant, supposedly at the prompting of one particularly pompous Knight of yours who referred to the peasantry as "little more than mindless toys", had his guards beat some of your lower-class citizens for amusement, molesting a young girl and treating them generally as slaves. 
+Word reaches your ears through the idle gossip of your well-to-do Barons of a particular citizen whose name has been on everyone's lips the last few days. During the visit of a wealthy trader from a neighboring arcology, the merchant, supposedly at the prompting of one particularly pompous Knight of yours who referred to the peasantry as "little more than mindless toys", had his guards beat some of your lower-class citizens for amusement, molesting a young girl and treating them generally as slaves.
 <br><br>
 The cruel rambunciousness of this trader and your own Knights continued for a few hours, with nearby guards both pretending not to notice and not reporting their activities to you, until a factory-working peasant by the name of Valentin approached them in the marketplace and demanded they stop. When the merchant's guards attempted to apprehend him, although you aren't clear on the exact details, it seems he managed to somehow strike down all five, despite being both unarmed and unarmored. The present Knight promptly challenged him to fight, out-of-armor and one-on-one, and was then knocked flat by the peasant in front of the watching marketplace as well.
 <br><br>
@@ -10,13 +10,13 @@ This 'Valentin', a quiet man built like a mountain, has very rapidly become a lo
 <br><br>
 <span id="result">
 <<if $cash >= 5000>>
-<br>&nbsp;&nbsp;&nbsp;&nbsp;<<link "Knight him in a Grand Festival">> 
+<br>&nbsp;&nbsp;&nbsp;&nbsp;<<link "Knight him in a Grand Festival">>
 	<<replace "#result">>
 	You make your stance on the issue known with a large public ceremony, awarding Valentin with his own private apartment, coat of arms, and a set of Imperial Plate in the very marketplace where he bested a group of brutish foreign thugs and an overly-cocky Knight. A swarm of peasantry surround every inch of the ceremony, @@.green;cheering your name@@ and 'Sir' Valentin's as you demonstrate that skill and courage is more important than social station. The furious foreign merchant sends you a message a few days later swearing to @@.red;never return to your arcology,@@ and the Barons grumble about the wildly dancing and celebrating peasants @@.red;undermining your authority.@@
 	<<run cashX(-5000, "knighting")>>
     <<run $arcologies[0].prosperity -= 2>>
     <<run repX(5000, "event")>>
-	<</replace>> 
+	<</replace>>
 <</link>>
 costing <<print cashFormat(5000)>>.
 <</if>>
diff --git a/src/facilities/ads.js b/src/facilities/ads.js
index 53c9888767d872f0e20bafbed97fdde308bfd637..54b79c0e21a8159938c1bb8bbd3b2c22a52cd3cd 100644
--- a/src/facilities/ads.js
+++ b/src/facilities/ads.js
@@ -361,7 +361,6 @@ App.Ads.report = function(building, preview) {
 				V.facility[building].adsIncome += adsIncome;
 				cashX(adsIncome, (building + "Ads"));
 			} else if (building === "club") {
-				V.clubBonuses++;
 				repX(DL*random(5, 10), (building + "Ads"));
 			}
 		}
@@ -374,7 +373,6 @@ App.Ads.report = function(building, preview) {
 				V.facility[building].adsIncome += adsIncome;
 				cashX(adsIncome, (building + "Ads"));
 			} else if (building === "club") {
-				V.clubBonuses++;
 				repX(DL*random(5, 10), (building + "Ads"));
 			}
 		}
diff --git a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
index e70b895cd5c9344b3a39a9593b6a84c02c1aca08..063005146a616a9974aa06f5072690bdc7c5d98a 100644
--- a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
+++ b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
@@ -335,7 +335,7 @@ TERRAIN TYPES
 /**********
 FUTURE SOCIETIES
 **********/
-<<case "Arabian Revivalism" "Asset Expansionism" "Aztec Revivalism" "Body Purism" "Chattel Religionism" "Chinese Revivalism" "Degradationism" "Edo Revivalism" "Egyptian Revivalism" "Ethnic Subjugationism" "Ethnic Supremacy" "Eugenics Focus" "Future Societies" "Gender Fundamentalism" "Gender Radicalism" "Hedonistic Decadence" "Intellectual Dependency" "Maturity Preferentialism" "Multiculturalism" "Pastoralism" "Paternalism" "Petite Admiration" "Physical Idealism" "Repopulationism" "Roman Revivalism" "Slave Professionalism" "Slimness Enthusiasm" "Statuesque Glorification" "Transformation Fetishism" "Youth Preferentialism">>
+<<case "Arabian Revivalism" "Asset Expansionism" "Aztec Revivalism" "Body Purism" "Chattel Religionism" "Chinese Revivalism" "Degradationism" "Edo Revivalism" "Egyptian Revivalism" "Ethnic Subjugationism" "Ethnic Supremacy" "Eugenics Focus" "Future Societies" "Gender Fundamentalism" "Gender Radicalism" "Hedonistic Decadence" "Intellectual Dependency" "Maturity Preferentialism" "Multiculturalism" "Pastoralism" "Paternalism" "Petite Admiration" "Physical Idealism" "Repopulationism" "Roman Revivalism" "Slave Professionalism" "Slimness Enthusiasm" "Statuesque Glorification" "Transformation Fetishism" "Youth Preferentialism" "Neo-Imperialism">>
 	//Vanilla Future Societies://
 	<<= App.Encyclopedia.Dialog.linkSC("Ethnic Supremacy", "Ethnic Supremacy")>>
 	| <<= App.Encyclopedia.Dialog.linkSC("Ethnic Subjugationism", "Ethnic Subjugationism")>>
@@ -369,6 +369,7 @@ FUTURE SOCIETIES
 	| <<= App.Encyclopedia.Dialog.linkSC("Statuesque Glorification", "Statuesque Glorification")>>
 	| <<= App.Encyclopedia.Dialog.linkSC("Hedonistic Decadence", "Hedonistic Decadence")>>
 	| <<= App.Encyclopedia.Dialog.linkSC("Aztec Revivalism", "Aztec Revivalism")>>
+ 	| <<= App.Encyclopedia.Dialog.linkSC("Neo-Imperialism", "Neo-Imperialism")>>
 
 /**********
 LORE: THE FREE CITIES TODAY
diff --git a/src/gui/storyCaption.js b/src/gui/storyCaption.js
index 256e24250ccf5f1cc91a50fea37ed63b3ac84d6a..04b939705aa9aa1e13a9f6e201d58089abf0070d 100644
--- a/src/gui/storyCaption.js
+++ b/src/gui/storyCaption.js
@@ -241,7 +241,7 @@ App.UI.storyCaption = function() {
 		} else {
 			div.append(pops);
 		}
-		div.append(`/${V.rooms}`);
+		div.append(`/${cap}`);
 		return div;
 	}
 
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 22b5ec08c947b122808a0aed96dc38f0dbb964d3..8992d75d5edc8fc856401db684e6a3f7fb9f9b26 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1812,7 +1812,7 @@ globalThis.DefaultRules = (function() {
 			} else if (rule.pregSpeed === "suppress" && slave.preg >= slave.pregData.minLiveBirth && slave.health.condition > -50) {
 				slave.pregControl = "labor suppressors";
 				r += `<br>${slave.slaveName} is ready to birth, so ${he} has been put on labor suppressing agents.`;
-			} else if (rule.pregSpeed === "stimulate" && slave.preg > slave.pregData.minLiveBirth && slave.health.condition > -50) {
+			} else if (rule.pregSpeed === "stimulate" && slave.preg > slave.pregData.normalBirth - 2 && slave.preg > slave.pregData.minLiveBirth && slave.health.condition > -50) {
 				slave.labor = 1;
 				slave.induce = 1;
 				V.birthee = 1;
diff --git a/src/js/birth.js b/src/js/birth.js
deleted file mode 100644
index 2d7666b525bf062b92606397e95476b465866a8c..0000000000000000000000000000000000000000
--- a/src/js/birth.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Sends newborns to incubator or nursery
- * @param {App.Entity.SlaveState} mom
- */
-globalThis.sendNewbornsToFacility = function(mom) {
-	let curBabies = mom.curBabies.length;
-	for (let cb = 0; cb < curBabies; cb++) {
-		// if there is no reserved children, code in loop will not trigger
-		if (mom.curBabies[cb].reserve === "incubator") {
-			if (V.tanks.length < V.incubator) {
-				App.Facilities.Incubator.newChild(generateChild(mom, mom.curBabies[cb], true));
-			}
-			mom.curBabies.splice(mom.curBabies[cb], 1);
-			cb--;
-			curBabies--;
-		} else if (mom.curBabies[cb].reserve === "nursery") {
-			if (V.cribs.length < V.nursery) {
-				App.Facilities.Nursery.newChild(generateChild(mom, mom.curBabies[cb]));
-			}
-			mom.curBabies.splice(mom.curBabies[cb], 1);
-			cb--;
-			curBabies--;
-		}
-	}
-};
diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbb44285758b27dbdd469a6e62134bbb40c9a908
--- /dev/null
+++ b/src/js/birth/birth.js
@@ -0,0 +1,1976 @@
+globalThis.allBirths = function() {
+	const el = new DocumentFragment();
+	for (const slave of V.slaves) {
+		if (slave.labor === 1) {
+			el.append(birth(slave));
+		}
+	}
+	V.reservedChildren = FetusGlobalReserveCount("incubator");
+	V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+	V.birthee = 0;
+
+	return el;
+
+
+	function birth(slave) {
+		const el = document.createElement("p");
+		let p;
+		let humiliation = 0;
+		let suddenBirth = 1;
+		let cSection = 0;
+		let slaveDead = 0;
+		let birthDamage = 0;
+		let newMother = 0;
+		let diffSize;
+		let curBabies;
+		const babies = (slave.pregType > 1) ? `babies` : `baby`;
+		const children = (slave.pregType > 1) ? `children` : `child`;
+		const childrenAre = (slave.pregType > 1) ? `children are` : `child is`;
+		const societalElite = V.arcologies[0].FSNeoImperialistLaw2 === 1 ? "Barons" : "Societal Elite";
+		const dispositionId = _.uniqueId('babyDisposition-');
+		const {
+			He, His,
+			he, his, him, himself
+		} = getPronouns(slave);
+		if (V.legendaryWombID !== 0) {
+			V.legendaryWombID = 0;
+		}
+		if (!slave.counter.laborCount) {
+			slave.counter.laborCount = 0;
+			if (slave.counter.birthsTotal > 0 && slave.counter.laborCount === 0) {
+				slave.counter.laborCount = slave.counter.birthsTotal; // we do not have a way to know multiples birth count for backward compatibility code. :(
+			}
+		}
+		const title = document.createElement("div");
+		title.append(`Birth report: `);
+		App.UI.DOM.appendNewElement("span", title, SlaveFullName(slave), "coral");
+		el.append(title);
+		prebirthCheck();
+		el.append(preBirthScene());
+		if (slaveDead !== 1) {
+			birthCalc();
+			el.append(birthMainScene());
+			el.append(birthBabies());
+			el.append(birthPostpartum());
+			slave.counter.laborCount++;
+			el.append(birthCritical());
+		} else {
+			removeSlave(slave);
+			slaveDead = 0;
+		}
+		const line = document.createElement("hr");
+		line.style.margin = "0";
+		el.append(line);
+
+		return el;
+
+		/**
+		 * birth complications calcs
+		 */
+		function prebirthCheck() {
+			if (slave.counter.laborCount === 0 && slave.counter.birthsTotal === 0) {
+				birthDamage += 2;
+				newMother = 1;
+			}
+			if (slave.mpreg === 1) {
+				if (slave.anus < 2) {
+					birthDamage += 3;
+				}
+			} else {
+				if (slave.vagina < 2) {
+					birthDamage += 3;
+				}
+				if (slave.vaginaLube === 0) {
+					birthDamage += 1;
+				}
+			}
+			if (slave.hips < 0) {
+				birthDamage += (2 - slave.hips);
+			}
+			if (slave.weight <= -95) {
+				birthDamage += 7;
+			} else if (slave.weight <= -30) {
+				birthDamage += 5;
+			}
+			if (slave.health.condition < -20) {
+				birthDamage += (4 - (slave.health.condition / 10));
+			}
+			if (slave.health.illness >= 3) {
+				birthDamage += slave.health.illness;
+			}
+			if (slave.physicalAge < 6) {
+				birthDamage += 5;
+			} else if (slave.physicalAge < 9) {
+				birthDamage += 3;
+			} else if (slave.physicalAge < 13) {
+				birthDamage += 1;
+			}
+			if (slave.health.tired > 80) {
+				birthDamage += 20;
+			} else if (slave.health.tired > 50) {
+				birthDamage += 2;
+			}
+			if (slave.muscles < -95) {
+				birthDamage += 30;
+			} else if (slave.muscles < -30) {
+				birthDamage += 4;
+			} else if (slave.muscles < -5) {
+				birthDamage += 2;
+			}
+			if (slave.preg >= slave.pregData.normalBirth * 1.5) { // better get her a c-sec
+				if (slave.physicalAge < 6) {
+					birthDamage += 50;
+				} else if (slave.physicalAge < 9) {
+					birthDamage += 30;
+				} else if (slave.physicalAge < 13) {
+					birthDamage += 20;
+				}
+				if (slave.hips < 0) {
+					birthDamage += (20 - slave.hips);
+				}
+			} else if (slave.preg > slave.pregData.normalBirth * 1.25) {
+				if (slave.physicalAge < 6) {
+					birthDamage += 10;
+				} else if (slave.physicalAge < 9) {
+					birthDamage += 6;
+				} else {
+					birthDamage += 2;
+				}
+				if (slave.hips < 0) {
+					birthDamage += (2 - slave.hips);
+				}
+			}
+			if (slave.wombImplant === "restraint") {
+				birthDamage += 2;
+			}
+			if (slave.mpreg !== 1) {
+				if (slave.vaginaLube > 0) {
+					birthDamage -= slave.vaginaLube;
+				}
+			}
+			if (slave.counter.laborCount > 0 || slave.counter.birthsTotal !== 0) {
+				birthDamage -= 3;
+			}
+			if (slave.hips > 0) {
+				birthDamage -= slave.hips;
+			}
+			if (slave.pregAdaptation >= 1000) {
+				birthDamage -= 10;
+			} else if (slave.pregAdaptation >= 500) {
+				birthDamage -= 3;
+			} else if (slave.pregAdaptation >= 100) {
+				birthDamage -= 1;
+			}
+			if (slave.curatives > 0) {
+				birthDamage -= 3;
+			}
+			if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+				birthDamage -= 5;
+			}
+			if (App.Data.misc.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) {
+				birthDamage = 0;
+			} else if (slave.intelligenceImplant >= 15) {
+				birthDamage -= 2;
+			}
+			/* early birth calcs */
+			if (slave.induce === 1) {
+				suddenBirth += 20;
+			}
+			if (!canMove(slave)) {
+				suddenBirth += 10;
+			} else if (!canWalk(slave)) {
+				if (slave.rules.mobility === "permissive") {
+					suddenBirth += 3;
+				} else {
+					suddenBirth += 5;
+				}
+			}
+			if (slave.fetish === "mindbroken") {
+				suddenBirth += 18;
+			}
+			if (slave.fetish === "humiliation") {
+				suddenBirth += 1 + slave.fetishStrength / 25;
+			}
+			if (slave.weight > 190) {
+				suddenBirth += 10;
+			} else if (slave.weight > 160) {
+				suddenBirth += 4;
+			} else if (slave.weight > 130) {
+				suddenBirth += 2;
+			} else if (slave.weight > 95) {
+				suddenBirth += 1;
+			}
+			if (slave.muscles < -95) {
+				suddenBirth += 20;
+			} else if (slave.muscles < -30) {
+				suddenBirth += 4;
+			} else if (slave.muscles < -5) {
+				suddenBirth += 1;
+			}
+			if (slave.pregAdaptation >= 1000) {
+				suddenBirth += 20;
+				// baby's ready, giving birth right now
+			} else if (slave.pregAdaptation >= 500) {
+				suddenBirth += 3;
+			} else if (slave.pregAdaptation >= 100) {
+				suddenBirth += 1;
+			}
+			if (slave.health.condition < 0) {
+				suddenBirth += 2;
+			}
+			if (slave.heels === 1) {
+				suddenBirth += 3;
+			}
+			if (slave.boobs > 40000) {
+				suddenBirth += 3;
+			} else if (slave.boobs > 20000) {
+				suddenBirth += 1;
+			}
+			if (slave.butt > 6) {
+				suddenBirth += 1;
+			}
+			if (slave.dick >= 6) {
+				suddenBirth += 1;
+			}
+			if (slave.balls >= 6) {
+				suddenBirth += 1;
+			}
+			if (slave.shoes === "extreme heels") {
+				suddenBirth += 2;
+			}
+			if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+				suddenBirth += 1 * slave.counter.birthsTotal;
+			}
+			if (slave.mpreg !== 1) {
+				if (slave.vagina > 2) {
+					suddenBirth += 2;
+				}
+				if (slave.vaginalAccessory !== "none" || slave.chastityVagina === 1) {
+					suddenBirth -= 20;
+				}
+			}
+			suddenBirth -= Math.trunc((slave.intelligence + slave.intelligenceImplant) / 10);
+			/* end calcs */
+		}
+		function preBirthScene() {
+			const el = new DocumentFragment();
+			const r = [];
+			if (V.seeImages && V.seeReportImages) {
+				App.UI.DOM.appendNewElement("div", el, App.Art.SlaveArtElement(slave, 0, 0), ["imageRef", "medImg"]);
+			}
+			if (slave.fuckdoll === 0) {
+				if (slave.broodmother === 0 || slave.broodmotherCountDown === 1) {
+					if (slave.assignment !== "work in the dairy") {
+						if (V.universalRulesCSec === 1 || (slave.mpreg === 0 && slave.vagina < 0)) {
+							r.push(birthDescription(slave));
+						} else {
+							if (hasAnyLegs(slave)) { // legless slaves are always carried in time
+								if ((random(1, 20) > suddenBirth) || (V.universalRulesBirthing === 1)) {
+									// did she make it to her birthing area?
+									r.push(`Feeling childbirth approaching,`);
+									if (!canWalk(slave)) {
+										r.push(`${slave.slaveName} is helped`);
+									} else {
+										r.push(`${slave.slaveName} makes ${his} way`);
+									}
+									r.push(`to ${his} prepared birthing area.`);
+									r.push(birthDescription(slave));
+								} else { // did not make it to birthing area
+									if (((birthDamage > 15 && random(1, 100) > 50) || (birthDamage > 20)) && (slave.assignment !== "be the Nurse" && slave.assignment !== "get treatment in the clinic")) {
+										r.push(deadlyBirthScene(slave, curBabies));
+									} else {
+										r.push(suddenBirthScene(slave));
+									} // closes deadly birth
+								} // closes reg birth
+							} else { // made it to birthing area
+								r.push(`With childbirth approaching, ${slave.slaveName} is carried to ${his} prepared birthing area.`);
+								r.push(ampBirth(slave));
+							} // close amp birth
+						} // close always c-sec
+					} else {
+						if (V.dairyRestraintsSetting > 1 && slave.career === "a bioreactor") {
+							r.push(`As ${slave.slaveName}'s water breaks, a mechanical basket is extended under ${his} laboring`);
+							if (slave.mpreg === 1) {
+								r.push(`ass.`);
+							} else {
+								r.push(`cunt.`);
+							}
+							r.push(`Once the ${childrenAre} secure, the basket retracts allowing access to ${his}`);
+							if (slave.mpreg === 1) {
+								r.push(`rear.`);
+							} else {
+								r.push(`vagina.`);
+							}
+							if (V.dairyPregSetting > 0) {
+								r.push(`The impregnation tube is promptly reinserted, bloating ${his} empty womb with fresh cum, where it will remain until ${he} is pregnant once more.`);
+							}
+							r.push(`All these events are meaningless to ${him}, as ${his} consciousness has long since been snuffed out.`);
+						} else if (V.dairyRestraintsSetting > 1) {
+							if (slave.fetish === "mindbroken") {
+								r.push(`As ${slave.slaveName}'s water breaks, a mechanical basket is extended under ${his} laboring`);
+								if (slave.mpreg === 1) {
+									r.push(`ass.`);
+								} else {
+									r.push(`cunt.`);
+								}
+								r.push(`Once the ${childrenAre} secure, the basket retracts allowing access to ${his}`);
+								if (slave.mpreg === 1) {
+									r.push(`rear.`);
+								} else {
+									r.push(`vagina.`);
+								}
+								if (V.dairyPregSetting > 0) {
+									r.push(`The impregnation tube is promptly reinserted, bloating ${his} empty womb with fresh cum, where it will remain until ${he} is pregnant once more.`);
+								}
+								r.push(`${He} doesn't care about any of this, as the only thoughts left in ${his} empty mind revolve around the sensations in ${his} crotch and breasts.`);
+							} else {
+								r.push(`As ${slave.slaveName}'s water breaks, a mechanical basket is extended under ${his} laboring`);
+								if (slave.mpreg === 1) {
+									r.push(`ass.`);
+								} else {
+									r.push(`cunt.`);
+								}
+								r.push(`${He} struggles in ${his} bindings, attempting to break free in order to birth ${his} coming child, but ${his} efforts are pointless.`);
+								if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+									r.push(`Soon ${he} is convulsing with powerful orgasms while giving birth, restrained, into the waiting holder.`);
+								} else {
+									r.push(`${He} is forced to give birth, restrained, into the waiting holder.`);
+								}
+								r.push(`Once the ${childrenAre} secure, the basket retracts allowing access to ${his} vagina.`);
+								if (V.dairyPregSetting > 0) {
+									r.push(`The impregnation tube is promptly reinserted, bloating ${his} empty womb with fresh cum, where it will remain until ${he} is pregnant once more. ${slave.slaveName} moans, partially with pleasure and partially with defeat, under the growing pressure within ${his} body. Tears stream down ${his} face as`);
+									if (slave.counter.births > 0) {
+										r.push(`${he} is forcibly impregnated once more.`);
+									} else {
+										r.push(`${he} attempts to shift in ${his} restraints to peek around ${his} swollen breasts, but ${he} is too well secured. ${He}'ll realize what is happening when ${his} belly grows large enough to brush against ${his} udders as the milker sucks from them${(slave.dick > 0) ? ` or ${his} dick begins rubbing its underside` : ``}.`);
+									}
+								}
+								r.push(`${His} mind slips slightly more as ${he} focuses on ${his} fate as nothing more than an animal destined to be milked and bare offspring until ${his} body gives out.`);
+								slave.trust -= 10;
+								slave.devotion -= 10;
+							}
+						} else {
+							if (slave.fetish === "mindbroken") {
+								r.push(`While getting milked, ${slave.slaveName}'s water breaks. ${He} shows little interest and continues kneading ${his} breasts. Instinctively ${he} begins to push out ${his} ${babies}. ${He} pays no heed to ${his} ${children} being removed from the milking stall, instead focusing entirely on draining ${his} breasts.`);
+							} else if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+								r.push(`While getting milked, ${slave.slaveName}'s water breaks, a moment she anxiously waited for${(slave.counter.birthsTotal > 0) ? `no matter how many times it happened before` : ``}. ${He} begins to push out ${his} ${babies} orgasming during the whole process. By the time ${he} regains ${his} senses ${his} ${children} have already been removed from the milking stall.`);
+							} else {
+								r.push(`While getting milked, ${slave.slaveName}'s water breaks,`);
+								if (V.dairyPregSetting > 0) {
+									r.push(`this is a regular occurrence to ${him} now so`);
+								} else {
+									r.push(`but`);
+								}
+								r.push(`${he} continues enjoying ${his} milking. ${He} begins to push out ${his} ${babies}. ${He} catches`);
+								if (canSee(slave)) {
+									r.push(`a glimpse`);
+								} else if (canHear(slave)) {
+									r.push(`the sound`);
+								} else {
+									r.push(`the feeling`);
+								}
+								r.push(`of ${his} ${children} being removed from the milking stall before returning ${his} focus to draining ${his} breasts.`);
+							}
+						}
+					} // close cow birth
+				} else {
+					if (!hasAnyLegs(slave)) {
+						r.push(`With childbirth approaching, ${slave.slaveName} is carried to ${his} prepared birthing area.`);
+						r.push(ampBirth(slave));
+					} else if (slave.broodmother === 1) {
+						r.push(broodmotherBirth(slave));
+					} else {
+						r.push(hyperBroodmotherBirth(slave));
+					}
+				} // close broodmother birth
+			} else {
+				// Fuckdoll birth
+				if (V.universalRulesCSec === 1 || (slave.mpreg === 0 && slave.vagina < 0)) {
+					cSection = 1;
+					r.push(`${slave.slaveName}'s suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its ${children} extracted and for it to be cleaned up.`);
+				} else if (V.universalRulesBirthing === 1) {
+					r.push(`${slave.slaveName}'s suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its ${children} extracted and for it to be cleaned up.`);
+				} else if (birthDamage > 10) {
+					cSection = 1;
+					r.push(`${slave.slaveName}'s suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its ${children} extracted and to be cleaned up.`);
+				} else {
+					r.push(`${slave.slaveName}'s suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its ${children} into the world and sit back to enjoy yourself as its`);
+					if (slave.pregType > 1) {
+						r.push(`first`);
+					}
+					r.push(`baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning.`);
+				}
+				r.push(`It barely comprehends what has happened, nor will it realize when another child is conceived in it.`);
+			} // close Fuckdoll birth
+
+			App.Events.addNode(el, r);
+			return el;
+		}
+		function birthCalc() {
+			slave.pregControl = "none";
+			const beforeSize = WombGetVolume(slave);
+
+			// TODO: slave.curBabies and "curBabies" (really slave.curBabies.length) are too confusing.  Detach curBabies from the slave object. We're in the loop here already. -LCD
+			if (slave.broodmother > 0) {
+				slave.curBabies = WombBirth(slave, 37); // broodmothers - give birth for all 37+ week fetuses.
+			} else if (slave.prematureBirth === 1) {
+				slave.curBabies = WombBirth(slave, slave.pregData.minLiveBirth / 1.5); // around 22 weeks for human
+			} else {
+				slave.curBabies = WombBirth(slave, slave.pregData.minLiveBirth); // Normal human pregnancy - 34 week is minimal gestation time for live birth.
+			}
+			slave.curStillBirth = 0;
+			curBabies = slave.curBabies.length; // just to improve speed and usability here.
+			slave.counter.births += curBabies;
+			slave.counter.birthsTotal += curBabies;
+			V.birthsTotal += curBabies;
+			for (const baby of slave.curBabies) {
+				if (baby.fatherID === -1) {
+					V.PC.counter.slavesFathered++;
+				} else if (baby.fatherID > 0) {
+					const babyDaddy = findFather(baby.fatherID);
+					if (babyDaddy) {
+						const adjust = babyDaddy.counter.slavesFathered++;
+						adjustFatherProperty(babyDaddy, "slavesFathered", adjust);
+					}
+				}
+			}
+			// Here support for partial birth cases but if slaves still NOT have broodmother implant. Right now remaining babies will be lost, need to add research option for selective births. It should control labor and stop it after ready to birth babies out. Should be Repopulation FS research before broodmothers (their implant obviously have it as a part of functional). */
+			if (slave.broodmother === 0) {
+				if (slave.prematureBirth === 1) {
+					// emergency birth, anything less than 23 weeks of age is not making it through this
+					slave.curStillBirth = slave.womb.length;
+					WombFlush(slave);
+				} else if (V.surgeryUpgrade === 1) {
+					// if true - need nothing, birthed babies already in slave.curBabies, stillbirth is 0.
+				} else {
+					slave.curStillBirth = slave.womb.length;
+					WombFlush(slave);
+					// cleaning rest of superfetation pregnancy if no tech for safe partial birth
+				}
+			}
+			diffSize = beforeSize / (1 + WombGetVolume(slave)); // 1 used to avoid divide by zero error.
+		}
+		function birthMainScene() {
+			const el = new DocumentFragment();
+			let compoundCondition;
+			let r = [];
+			const curStill = slave.curStillBirth;
+			/* -------- cow birth variant ---------------------------------------------------------------------*/
+			/*
+			diffSize used for check result of partial birth size changes - if it = 2 then womb lost half of it's original size after partial birth, if it = 1 - no size lost. (We get this value as result of dividing of original womb size by after birth size)
+			This descriptions can be expanded with more outcomes later. But it's not practical to check values above 5-10 - it become too affected by actual value of womb size.
+			*/
+			if (slave.assignment === "work in the dairy" && V.dairyPregSetting > 0) {
+				r.push(`As a human cow, ${he}`);
+				r.push(App.UI.DOM.makeElement("span", `gave birth`, "orange"));
+				if (slave.prematureBirth === 1) {
+					r.push(App.UI.DOM.makeElement("span", `prematurely`, "red"));
+				}
+				if (diffSize < 1.15) {
+					r.push(`but ${his} overfilled womb barely lost any size. ${His} body gave life`);
+				} else if (diffSize < 1.3) {
+					r.push(`but ${his} stomach barely shrank at all. ${His} body gave life`);
+				}
+				if (curBabies < 1) {
+					r.push(`to nothing, as it was a stillbirth.`); // TODO:  syntax wise this has problems. Will likely need to be reworked.
+				} else if (curBabies === 1) {
+					r.push(`to a single calf.`);
+				} else if (curBabies >= 40) {
+					r.push(`to a massive brood of ${curBabies} calves.`);
+				} else if (curBabies >= 20) {
+					r.push(`to a brood of ${curBabies} calves.`);
+				} else if (curBabies >= 10) {
+					r.push(`to a squirming pile of ${curBabies} calves.`);
+				} else {
+					r.push(`to calf ${pregNumberName(curBabies, 2)}.`);
+				}
+				if (curStill > 0 && curBabies > 0) {
+					r.push(`An additional ${curStill}`);
+					if (curStill === 1) {
+						r.push(`was`);
+					} else {
+						r.push(`were`);
+					}
+					r.push(`unfortunately stillborn.`);
+				}
+			} else {
+				/* ---------- normal birth variant. -------------------------------------------------------------*/
+				const fathers = [];
+				for (const baby of slave.curBabies) {
+					if (baby.fatherID === 0) {
+						fathers.push("an unknown father");
+					} else if (baby.fatherID === -1) {
+						if (V.PC.dick !== 0) {
+							fathers.push("your magnificent dick");
+						} else {
+							fathers.push("your powerful sperm");
+						}
+					} else if (baby.fatherID === -2) {
+						fathers.push("your arcology's eager citizens");
+					} else if (baby.fatherID === -3) {
+						fathers.push("your former Master's potent seed");
+					} else if (baby.fatherID === -4) {
+						fathers.push("another arcology owner");
+					} else if (baby.fatherID === -5) {
+						fathers.push("one of your clientele");
+					} else if (baby.fatherID === -6) {
+						fathers.push(`the ${societalElite}`);
+					} else if (baby.fatherID === -7) {
+						fathers.push("your own design");
+					} else if (baby.fatherID === -8) {
+						fathers.push("one of your animals");
+					} else if (baby.fatherID === -9) {
+						fathers.push("a Futanari Sister");
+					} else {
+						const babyDaddy = findFather(baby.fatherID);
+						if (babyDaddy) {
+							if (babyDaddy.ID === slave.ID) {
+								fathers.push(`${his} own sperm`);
+							} else if (babyDaddy.dick === 0) {
+								fathers.push(`${babyDaddy.slaveName}'s potent seed`);
+							} else {
+								fathers.push(`${babyDaddy.slaveName}'s virile cock and balls`);
+							}
+						} else {
+							fathers.push("an unknown father");
+						}
+					}
+				}
+				const fathersReduced = removeDuplicates(fathers);
+				if (cSection === 1) {
+					r.push(`${He} was given`);
+					r.push(App.UI.DOM.makeElement("span", `a cesarean section`, "orange"));
+					r.push(`due to health concerns.`);
+					App.Events.addNode(el, r, "p"); // New paragraph
+					r = [];
+					r.push(`From ${his} womb,`);
+				} else {
+					r.push(`${He}`);
+					r.push(App.UI.DOM.makeElement("span", `gave birth`, "orange"));
+					if (slave.prematureBirth === 1) {
+						r.push(App.UI.DOM.makeElement("span", `prematurely`, "red"));
+					}
+					if (diffSize < 1.15) {
+						r.push(`but ${his} stomach barely shrank at all. ${His} body gave life to`);
+					} else if (diffSize < 1.3) {
+						r.push(`but ${his} overfilled womb barely lost any size. ${His} body gave life to`);
+					} else {
+						r.push(`to`);
+					}
+				}
+				if (curBabies < 1) {
+					r.push(`nothing, as it was a stillbirth.`);
+				} else if (curBabies === 1) {
+					r.push(`a single baby,`);
+				} else if (curBabies >= 40) {
+					r.push(`a massive brood of ${curBabies} babies,`);
+				} else if (curBabies >= 20) {
+					r.push(`a brood of ${curBabies} babies,`);
+				} else if (curBabies >= 10) {
+					r.push(`a squirming pile of ${curBabies} babies,`);
+				} else {
+					r.push(`${pregNumberName(curBabies, 2)},`);
+				}
+				if (curBabies > 0) {
+					r.push(`created by ${arrayToSentence(fathersReduced)}${(cSection === 1) ? ', entered the world' : ''}.`);
+				}
+				if (curStill > 0 && curBabies > 0) {
+					r.push(`An additional ${curStill}`);
+					if (curStill === 1) {
+						r.push(`was`);
+					} else {
+						r.push(`were`);
+					}
+					r.push(`unfortunately stillborn.`);
+				}
+				if (cSection === 1 && slave.wombImplant === "restraint") {
+					r.push(`The uterine support mesh built into ${his} womb was irreversibly damaged and had to be carefully extracted. Such an invasive surgery carried`);
+					r.push(App.UI.DOM.makeElement("span", `major health complications.`, "red"));
+					slave.wombImplant = "none";
+					healthDamage(slave, 30);
+				}
+			}
+			App.Events.addNode(el, r, "p");
+			/* ---- Postbirth reactions, body -------------------------------------------------------------------------------------------*/
+			if (cSection !== 1) { // all this block only if no c'section used.
+				r = [];
+				if (slave.broodmother > 0 || slave.womb.length > 0) { /* Now this block shown only for broodmothers or partial birth. They birth only ready children, so curBabies is effective to see how many birthed this time.*/
+					if (diffSize > 1.5 && curBabies >= 80) { // only show if belly lost at least 1/4 of original size.
+						r.push(`After an entire day of labor and birth, ${his} belly sags heavily.`);
+					} else if (diffSize > 1.5 && curBabies >= 40) {
+						r.push(`After half a day of labor and birth, ${his} belly sags softly.`);
+					} else if (diffSize > 1.5 && curBabies >= 20) {
+						r.push(`After several hours of labor and birth, ${his} belly sags softly.`);
+					} else if (diffSize > 1.5 && curBabies >= 10) {
+						r.push(`After few hours of labor and birth, ${his} belly sags softly.`);
+					} else if (diffSize > 1.5) {
+						r.push(`After labor and birth, ${his} belly sags softly.`);
+					}
+				} else { // this was intended for normal birth to draw attention to how long it takes to pass that many children as well as how deflated she'll be after the fact.
+					if (slave.pregType >= 80) {
+						r.push(`After an entire day of labor and birth, ${his} belly sags heavily.`);
+					} else if (slave.pregType >= 40) {
+						r.push(`After half a day of labor and birth, ${his} belly sags emptily.`);
+					} else if (slave.pregType >= 20) {
+						r.push(`After several hours of labor and birth, ${his} belly sags softly.`);
+					}
+				}
+				App.Events.addNode(el, r, "p");
+				if (
+					(slave.mpreg === 0 && slave.vagina === 0) ||
+					(slave.mpreg === 1 && slave.anus === 0)
+				) {
+					r = [];
+					r.push(`Since ${he} was a virgin, giving birth was a`);
+					r.push(App.UI.DOM.makeElement("span", `terribly painful`, "red"));
+					r.push(`experience.`);
+					if (slave.fetish !== "mindbroken") {
+						if (slave.fetish === "masochist") {
+							if (slave.fetishKnown === 0) {
+								r.push(`${He} seems to have orgasmed several times during the experience and appears to`);
+								r.push(App.UI.DOM.makeElement("span", `really like pain.`, "lightcoral"));
+								slave.fetishKnown = 1;
+							} else {
+								r.push(`However, due to ${his} masochistic streak, ${he}`);
+								r.push(App.UI.DOM.makeElement("span", `greatly enjoyed`, "hotpink"));
+								r.push(`said experience.`);
+							}
+							slave.devotion += 2;
+						} else if (slave.devotion > 70) {
+							r.push(`Being allowed to give birth in such a state`);
+							r.push(App.UI.DOM.makeElement("span", `tests ${his} devotion`, "mediumorchid"));
+							r.push(`and`);
+							r.push(App.UI.DOM.makeElement("span", `devastates ${his} trust`, "gold"));
+							r.push(`in you.`);
+							slave.devotion -= 10;
+							slave.trust -= 25;
+						} else {
+							r.push(`${He}`);
+							r.push(App.UI.DOM.makeElement("span", `despises`, "mediumorchid"));
+							r.push(`you for taking ${his} virginity in such a`);
+							r.push(App.UI.DOM.makeElement("span", `horrifying`, "gold"));
+							r.push(`way.`);
+							slave.devotion -= 25;
+							slave.trust -= 25;
+						}
+					}
+					healthDamage(slave, 10);
+					App.Events.addNode(el, r, "p");
+				}
+				if (slave.hips < -1) {
+					r = [];
+					r.push(`${He} had exceedingly narrow hips, completely unsuitable for childbirth. As ${he} struggled on ${his}`);
+					if (curBabies > 1) {
+						r.push(`first`);
+					}
+					r.push(`child, ${his} pelvic bone strained under the pressure until it could no longer hold together and`);
+					r.push(App.UI.DOM.makeElement("span", `agonizingly snapped.`, "red"));
+					if (slave.fetish !== "mindbroken") {
+						if (slave.fetish === "masochist") {
+							if (slave.fetishKnown === 0) {
+								r.push(`What would have made most girls blackout from pain sent ${him} into the lewdest orgasm you've seen today. ${He}`);
+								r.push(App.UI.DOM.makeElement("span", `must get off to pain.`, "lightcoral"));
+								slave.fetishKnown = 1;
+							} else {
+								r.push(`${He} claims to have never climaxed so hard and`);
+								r.push(App.UI.DOM.makeElement("span", `wishes ${his} hips could have stayed that narrow for next time.`, "hotpink"));
+							}
+							slave.devotion += 5;
+						} else if (slave.devotion > 70) {
+							r.push(`When ${he} finally comes to after blacking out, ${his} pelvis has already been patched up. ${He} is just glad that ${he} managed to finish giving birth despite the hindrance.`);
+						} else {
+							r.push(`When ${he} finally comes to after blacking out, ${his} pelvis has already been patched up. ${He}`);
+							r.push(App.UI.DOM.makeElement("span", `loathes you`, "mediumorchid"));
+							r.push(`for forcing ${his} body to undergo such a painful experience and`);
+							r.push(App.UI.DOM.makeElement("span", `fears`, "gold"));
+							r.push(`what horror you have planned next.`);
+							slave.devotion -= 25;
+							slave.trust -= 25;
+						}
+					} else {
+						r.push(`It only hurt for an instant and a second later was promptly forgotten. To ${him}, ${his} hips were always this wide.`);
+					}
+					r.push(`${His} pelvis has been forced into a`);
+					r.push(App.UI.DOM.makeElement("span", `more feminine`, "lime"));
+					r.push(`shape.`);
+					if (slave.hipsImplant > 0) {
+						r.push(`This has also undone any surgical narrowing ${he} has undergone.`);
+					}
+					healthDamage(slave, 20);
+					slave.hips = 0;
+					slave.hipsImplant = 0;
+					App.Events.addNode(el, r, "p");
+				}
+				r = [];
+				if (slave.mpreg === 1) {
+					if (slave.anus < 0) { // you somehow got a pregnant slave with no vagina catch
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `has torn ${him} a gaping anus.`, "lime"));
+					} else if (slave.anus === 0) { // please stop selling me pregnant virgins, neighbor gender fundamentalist arcology
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `ruined ${his} virgin ass.`, "lime"));
+					} else if (slave.anus === 1) {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `greatly stretched out ${his} ass.`, "lime"));
+					} else if (slave.anus === 2) {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `stretched out ${his} ass.`, "lime"));
+					} else if (slave.anus === 3) {
+						r.push(`${His} ass was loose enough to not be stretched by childbirth.`);
+					} else if (slave.anus < 6) {
+						r.push(`Childbirth stood no chance of stretching ${his} gaping ass.`);
+					} else if (slave.anus >= 10) {
+						r.push(`${His} child could barely stretch ${his} cavernous ass.`);
+					} else {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `stretched out ${his} ass.`, "lime"));
+					}
+				} else {
+					if (slave.vagina < 0) { // you somehow got a pregnant slave with no vagina catch
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `has torn ${him} a gaping vagina.`, "lime"));
+					} else if (slave.vagina === 0) { // please stop selling me pregnant virgins, neighbor gender fundamentalist arcology (or maybe it's just surgery?)
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `ruined ${his} virgin vagina.`, "lime"));
+					} else if (slave.vagina === 1) {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `greatly stretched out ${his} vagina.`, "lime"));
+					} else if (slave.vagina === 2) {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `stretched out ${his} vagina.`, "lime"));
+					} else if (slave.vagina === 3) {
+						r.push(`${His} vagina was loose enough to not be stretched by childbirth.`);
+					} else if (slave.vagina < 6) {
+						r.push(`Childbirth stood no chance of stretching ${his} gaping vagina.`);
+					} else if (slave.vagina >= 10) {
+						r.push(`${His} child could barely stretch ${his} cavernous vagina.`);
+					} else {
+						r.push(`Childbirth has`);
+						r.push(App.UI.DOM.makeElement("span", `stretched out ${his} vagina.`, "lime"));
+					}
+				}
+				App.Events.addNode(el, r, "p");
+				if (slave.mpreg === 1) {
+					/*
+					r.push(`Childbirth has`)
+					r.push(App.UI.DOM.makeElement("span", `stretched out ${his} anus.`, "lime"));
+					//no need for description now
+					*/
+					if ((V.dairyPregSetting > 1) && (slave.anus < 4)) {
+						slave.anus += 1;
+					} else if (slave.anus < 3) {
+						slave.anus += 1;
+					}
+				} else {
+					/*
+					r.push(`Childbirth has`)
+					r.push(App.UI.DOM.makeElement("span", `stretched out ${his} vagina.`, "lime"));
+					//no need for description now
+					*/
+					if ((V.dairyPregSetting > 1) && (slave.vagina < 4)) {
+						slave.vagina += 1;
+					} else if (slave.vagina < 3) {
+						slave.vagina += 1;
+					}
+				}
+			} else {
+				r = [];
+				r.push(`Since ${his}`);
+				if (slave.mpreg === 1) {
+					r.push(`ass`);
+				} else {
+					r.push(`vagina`);
+				}
+				r.push(`was spared from childbirth,`);
+				r.push(App.UI.DOM.makeElement("span", `it retained its tightness.`, "lime"));
+				App.Events.addNode(el, r, "p");
+			}
+			/* ------ Post birth reactions, mother experience ------------------ */
+			/* I think all this reactions should be showed only if no c'section used too. Setting it up for just in case: */
+			if (cSection === 0 && slave.assignment !== "work in the dairy") { // if not desired, this check can be easily removed or deactivated with condition set to true.
+				p = document.createElement("p");
+				if (newMother === 1) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} inexperience`,
+							App.UI.DOM.makeElement("span", `complicated ${his} first birth.`, "red")
+						],
+						"div"
+					);
+					compoundCondition = 1;
+				}
+				r = [];
+				if (slave.mpreg === 1) {
+					if (slave.anus < 2) {
+						r.push(`${His} tight ass`);
+						r.push(App.UI.DOM.makeElement("span", `hindered ${his} ${(curBabies > 1) ? `babies` : `baby's`} birth.`, "red"));
+					}
+				} else {
+					if (slave.vagina < 2) {
+						r.push(`${His} tight vagina`);
+						r.push(App.UI.DOM.makeElement("span", `hindered ${his} ${(curBabies > 1) ? `babies` : `baby's`} birth.`, "red"));
+					}
+					if (slave.vaginaLube === 0) {
+						r.push(`${His} dry vagina made pushing ${his} ${children} out`);
+						r.push(App.UI.DOM.makeElement("span", `painful.`, "red"));
+					}
+				}
+				App.Events.addNode(p, r, "div");
+				if (slave.hips < 0) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} narrow hips made birth`,
+							App.UI.DOM.makeElement("span", `troublesome.`, "red")
+						],
+						"div"
+					);
+				}
+				if (slave.weight < -95) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} very thin body`,
+							App.UI.DOM.makeElement("span", `was nearly incapable of birthing ${his} ${children}.`, "red")
+						],
+						"div"
+					);
+					compoundCondition = 1;
+				} else if (slave.weight <= -30) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} thin body was`,
+							App.UI.DOM.makeElement("span", `ill-suited to ${his} childbirth.`, "red")
+						],
+						"div"
+					);
+				}
+				if (slave.health.condition < -20) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} poor health made laboring`,
+							App.UI.DOM.makeElement("span", `exhausting.`, "red")
+						],
+						"div"
+					);
+					compoundCondition = 1;
+				}
+				if (slave.health.illness >= 3) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} ongoing illness`,
+							App.UI.DOM.makeElement("span", `already sapped most of ${his} strength.`, "red")
+						],
+						"div"
+					);
+					compoundCondition = 1;
+				}
+				r = [];
+				if (slave.physicalAge < 6) {
+					r.push(`${His} very young body was`);
+					r.push(App.UI.DOM.makeElement("span", `not designed to be able pass a baby.`, "red"));
+				} else if (slave.physicalAge < 9) {
+					r.push(`${His} young body had`);
+					r.push(App.UI.DOM.makeElement("span", `a lot of trouble`, "red"));
+					r.push(`birthing ${his} ${babies}.`);
+				} else if (slave.physicalAge < 13) {
+					r.push(`${His} young body had`);
+					r.push(App.UI.DOM.makeElement("span", `trouble birthing`, "red"));
+					r.push(`birthing ${his} ${babies}.`);
+					compoundCondition = 1;
+				}
+				App.Events.addNode(p, r, "div");
+				r = [];
+				if (slave.health.tired > 80) {
+					r.push(`${He} was thoroughly exhausted to begin with; ${he}`);
+					r.push(App.UI.DOM.makeElement("span", `lacked the energy to push at all.`, "red"));
+					compoundCondition = 1;
+				} else if (slave.health.tired > 50) {
+					r.push(`${He} was so tired, ${he}`);
+					r.push(App.UI.DOM.makeElement("span", `lacked the energy to effectively push.`, "red"));
+					compoundCondition = 1;
+				}
+				App.Events.addNode(p, r, "div");
+				r = [];
+				if (slave.muscles < -95) {
+					r.push(`${He} tried and tried but ${his} frail body`);
+					r.push(App.UI.DOM.makeElement("span", `could not push ${his} ${children} out.`, "red"));
+					compoundCondition = 1;
+				} else if (slave.muscles < -30) {
+					r.push(`${His} very weak body`);
+					r.push(App.UI.DOM.makeElement("span", `barely managed to push`, "red"));
+					r.push(`out ${his} ${children}`);
+					compoundCondition = 1;
+				} else if (slave.muscles < -5) {
+					r.push(`${His} weak body`);
+					r.push(App.UI.DOM.makeElement("span", `struggled to push`, "red"));
+					r.push(`out ${his} ${children}.`);
+				}
+				App.Events.addNode(p, r, "div");
+				if (slave.preg > slave.pregData.normalBirth * 1.25) {
+					App.Events.addNode(
+						p,
+						[
+							`${His} ${children} had extra time to grow`,
+							App.UI.DOM.makeElement("span", `greatly complicating childbirth.`, "red")
+						],
+						"div"
+					);
+					compoundCondition = 1;
+				}
+				if (slave.wombImplant === "restraint") {
+					App.Events.addNode(
+						p,
+						[
+							`${His} support implant`,
+							App.UI.DOM.makeElement("span", `weakens ${his} contractions`, "red"),
+							`and inhibits ${his} womb's ability to give birth.`
+						],
+						"div"
+					);
+				}
+				el.append(p);
+				if (
+					(
+						(slave.vagina >= 2 || slave.vaginaLube > 0) && slave.mpreg === 1) ||
+					newMother === 0 ||
+					slave.hips > 0 ||
+					(App.Data.misc.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) ||
+					slave.intelligenceImplant >= 15 ||
+					slave.pregAdaptation >= 100
+				) {
+					p = document.createElement("p");
+					App.UI.DOM.appendNewElement("div", p, `However:`);
+
+					if (slave.mpreg === 1) {
+						if (slave.anus >= 2) {
+							App.Events.addNode(
+								p,
+								[
+									`${His}`,
+									App.UI.DOM.makeElement("span", `loose ass`, "green"),
+									`made birthing ${his} ${children} easier.`
+								],
+								"div"
+							);
+						}
+					} else {
+						if (slave.vagina >= 2) {
+							App.Events.addNode(
+								p,
+								[
+									`${His}`,
+									App.UI.DOM.makeElement("span", `loose vagina`, "green"),
+									`made birthing ${his} ${children} easier.`
+								],
+								"div"
+							);
+						}
+						if (slave.vaginaLube > 0) {
+							App.Events.addNode(
+								p,
+								[
+									`${His}`,
+									App.UI.DOM.makeElement("span", `moist vagina`, "green"),
+									`hastened ${his} ${children}'s birth.`
+								],
+								"div"
+							);
+						}
+					}
+
+					if (newMother === 0) {
+						App.Events.addNode(
+							p,
+							[
+								`${He} has`,
+								App.UI.DOM.makeElement("span", `given birth before,`, "green"),
+								`so ${he} knows just what to do.`
+							],
+							"div"
+						);
+					}
+					if (slave.hips > 0) {
+						App.Events.addNode(
+							p,
+							[
+								`${His} `,
+								App.UI.DOM.makeElement("span", `wide hips`, "green"),
+								`greatly aided childbirth.`
+							],
+							"div"
+						);
+					}
+					r = [];
+					if (slave.pregAdaptation >= 1000) {
+						r.push(`${His} body has`);
+						r.push(App.UI.DOM.makeElement("span", `completely adapted to pregnancy;`, "green"));
+						r.push(`when it is time to give birth, that baby is coming out fast.`);
+					} else if (slave.pregAdaptation >= 500) {
+						r.push(`${His} body is`);
+						r.push(App.UI.DOM.makeElement("span", `highly adapted to bearing life`, "green"));
+						r.push(`and birth is no small part of that.`);
+					} else if (slave.pregAdaptation >= 100) {
+						r.push(`${His} body has`);
+						r.push(App.UI.DOM.makeElement("span", `become quite adept at bearing children,`, "green"));
+						r.push(`birth included.`);
+					}
+					App.Events.addNode(p, r, "div");
+					if (App.Data.misc.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) {
+						r.push(`Thanks to ${his}`);
+						r.push(App.UI.DOM.makeElement("span", `previous career,`, "green"));
+						r.push(`childbirth went smoothly.`);
+					} else if (slave.intelligenceImplant >= 15) {
+						r.push(`${He} was`);
+						r.push(App.UI.DOM.makeElement("span", `taught how to handle birth`, "green"));
+						r.push(`in class.`);
+					}
+					App.Events.addNode(p, r, "div");
+					if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+						r = [];
+						if (V.geneticMappingUpgrade >= 1) {
+							r.push(`${His} hypersensitive uterus made birth`);
+							r.push(App.UI.DOM.makeElement("span", `a very pleasant experience,`, "green"));
+							r.push(`distracting from the pain.`);
+						} else {
+							r.push(`${He} oddly climaxed multiple times during birth,`);
+							r.push(App.UI.DOM.makeElement("span", `keeping ${his} mind off the pain.`, "green"));
+						}
+						App.Events.addNode(p, r, "div");
+					}
+					el.append(p);
+				}
+			}
+			/* ----- Body/mother resume -------------------------*/
+			p = document.createElement("p");
+			if (slave.assignment !== "work in the dairy" && cSection === 0) {
+				/* && ${slave.broodmother} === 0 // removed - broodmother have sensations too */
+				r = [];
+				r.push(`All in all,`);
+				if (birthDamage > 15) {
+					r.push(`childbirth was`);
+					r.push(App.UI.DOM.makeElement("span", `horrifically difficult for ${him} and nearly claimed ${his} life.`, "red"));
+				} else if (birthDamage > 10) {
+					r.push(`childbirth was extremely difficult for ${him} and`);
+					r.push(App.UI.DOM.makeElement("span", `greatly damaged ${his} health.`, "red"));
+				} else if (birthDamage > 5) {
+					r.push(`childbirth was difficult for ${him} and`);
+					r.push(App.UI.DOM.makeElement("span", `damaged ${his} health.`, "red"));
+				} else if (birthDamage > 0) {
+					r.push(`childbirth was painful for ${him}, though not abnormally so, and`);
+					r.push(App.UI.DOM.makeElement("span", `damaged ${his} health.`, "red"));
+				} else {
+					r.push(`childbirth was`);
+					r.push(App.UI.DOM.makeElement("span", `no problem`, "green"));
+					r.push(`for ${him}.`);
+				}
+				if (birthDamage > 0) {
+					healthDamage(slave, Math.round(birthDamage / 2) * 10);
+					slave.health.tired += Math.round((birthDamage / 2) * 10);
+					if (birthDamage > 5 && compoundCondition === 1 && curBabies > 1) {
+						r.push(`Or it would have been, were ${he} only having one. With each additional child that needed to be birthed,`);
+						r.push(App.UI.DOM.makeElement("span", `the damage to ${his} health was compounded.`, "red"));
+						healthDamage(slave, curBabies);
+						slave.health.tired += curBabies * 5;
+					}
+					slave.health.tired = Math.clamp(slave.health.tired, 0, 100);
+				} else {
+					slave.health.tired = Math.clamp(slave.health.tired + 10, 0, 100);
+				}
+				if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+					r.push(`Not only that, but`);
+					r.push(App.UI.DOM.makeElement("span", `the entire process was extremely pleasurable for ${him}`, "green"));
+					r.push(`${(curBabies > 1) ? `, with orgasms growing more powerful with each baby ${he} brought to the world` : ``}. ${He} can't wait to be impregnated and give birth again,`);
+					if (birthDamage > 10) {
+						r.push(`despite the complications,`);
+					}
+					slave.energy += curBabies;
+					slave.need -= curBabies;
+					if (slave.sexualFlaw === "breeder") {
+						r.push(`since for ${him} it is the pinnacle of ${his} existence.`);
+					} else {
+						if (slave.fetish === "pregnancy") {
+							r.push(`having had ${his}`);
+							if (slave.fetishStrength <= 60) {
+								r.push(App.UI.DOM.makeElement("span", `pregnancy fetish deepen from the experience.`, "lightcoral"));
+								slave.fetishStrength += curBabies;
+							} else {
+								r.push(App.UI.DOM.makeElement("span", `pregnancy fetish deepen into obsession.`, "lightcoral"));
+								slave.sexualFlaw = "breeder";
+								slave.fetishStrength = 100;
+							}
+						} else if (slave.fetish === "none" || slave.fetishStrength <= 60) {
+							r.push(App.UI.DOM.makeElement("span", `having found true pleasure in reproduction.`, "lightcoral"));
+							slave.fetish = "pregnancy";
+						}
+					}
+				}
+				App.Events.addNode(p, r, "div");
+			}
+			/* this needs a tally of how many babies were lost due to underdevelopment instead of relying off a check */
+			if (V.surgeryUpgrade !== 1 && slave.curStillBirth > 0) {
+				App.UI.DOM.appendNewElement("div", p, `It's possible that`);
+				r.push(App.UI.DOM.makeElement("span", `having advanced equipment`, "red"));
+				r.push(`in the remote surgery could have prevented the loss of ${his} ${slave.curStillBirth} unborn ${(slave.curStillBirth > 1) ? `children` : `child`}.`);
+			}
+			el.append(p);
+			/* ----- Postbirth reactions, mind ------------------------------- */
+			if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
+				r = [];
+				if (curStill > 0) { // TODO: Here should be descriptions of reactions from losing some of babies, need tweak, only draft for now
+					if (slave.sexualFlaw === "breeder") {
+						r.push(`${He} is`);
+						r.push(App.UI.DOM.makeElement("span", `filled with violent, all-consuming hatred`, "mediumorchid"));
+						r.push(`at ${himself} for failing ${his} unborn and you for allowing this to happen.`);
+						if (curStill > 4) {
+							r.push(`The loss of so many children at once`);
+							r.push(App.UI.DOM.makeElement("span", `shatters the distraught breeder's mind.`, "red"));
+							slave.fetish = "mindbroken";
+							slave.behavioralQuirk = "none";
+							slave.behavioralFlaw = "none";
+							slave.sexualQuirk = "none";
+							slave.sexualFlaw = "none";
+							slave.devotion = 0;
+							slave.trust = 0;
+						} else {
+							r.push(`${He} cares little for what punishment awaits ${his} actions.`);
+							slave.devotion -= 25 * curStill;
+						}
+					} else if (slave.devotion > 80) {
+						r.push(`${He}`);
+						r.push(App.UI.DOM.makeElement("span", `accepts with grief`, "mediumorchid"));
+						r.push(`your right to use ${his} body as you see fit, even if it allow ${his} unborn to die in the process.`);
+						slave.devotion -= 10;
+					} else if (slave.devotion > 20) {
+						r.push(`${He}`);
+						r.push(App.UI.DOM.makeElement("span", `hates`, "mediumorchid"));
+						r.push(`you for using ${his} body to bear children to the extent that it cost some their lives.`);
+						slave.devotion -= 20;
+					} else {
+						r.push(`${He}`);
+						r.push(App.UI.DOM.makeElement("span", `curses`, "mediumorchid"));
+						r.push(`you for using ${him} as a breeder toy and forcing ${him} to go through such a doomed pregnancy.`);
+						slave.devotion -= 30;
+					}
+				} else {
+					if ((slave.devotion < 20) && (V.week - slave.weekAcquired - slave.pregWeek > 0)) {
+						App.Events.addParagraph(el, r);
+						r = [];
+						r.push(`${He}`);
+						r.push(App.UI.DOM.makeElement("span", `despises`, "mediumorchid"));
+						r.push(`you for using ${him} as a breeder.`);
+						slave.devotion -= 10;
+					}
+					if (slave.pregSource === -1) {
+						if (slave.devotion <= 20 && slave.weekAcquired > 0) {
+							r.push(`${He}`);
+							r.push(App.UI.DOM.makeElement("span", `hates`, "mediumorchid"));
+							r.push(`you for using ${his} body to bear your children.`);
+							slave.devotion -= 10;
+						} else if (slave.devotion > 50) {
+							r.push(`${He}'s`);
+							r.push(App.UI.DOM.makeElement("span", `so proud`, "hotpink"));
+							r.push(`to have successfully carried children for you.`);
+							slave.devotion += 3;
+						}
+					}
+					if (humiliation === 1) {
+						App.Events.addParagraph(el, r);
+						r = [];
+						r.push(`Giving birth in such a manner was completely humiliating,`);
+						if (slave.fetish === "humiliation") {
+							r.push(`and a complete turn on to ${him}. ${His} humiliation fetish`);
+							r.push(App.UI.DOM.makeElement("span", `strengthens`, "lightcoral"));
+							r.push(`as ${he} eagerly fantasizes about giving birth in public again.`);
+							slave.fetishStrength += 4;
+						} else if (slave.fetish === "none" || slave.fetishStrength <= 60) {
+							r.push(`and a curious experience to ${him}.`);
+							if (random(1, 5) === 1) {
+								r.push(App.UI.DOM.makeElement("span", `${He} has developed a humiliation fetish.`, "lightcoral"));
+								slave.fetish = "humiliation";
+							} else {
+								r.push(`${He} hopes to never repeat it.`);
+							}
+						} else if (slave.devotion <= 20) {
+							r.push(`and completely devastating to ${his} image of ${himself}. The experience`);
+							r.push(App.UI.DOM.makeElement("span", `habituates ${him}`, "hotpink"));
+							r.push(`to cruelties of slavery.`);
+							slave.devotion += 5;
+						} else {
+							r.push(`and ${he} hopes to never undergo it again.`);
+						}
+					}
+				}
+				App.Events.addParagraph(el, r);
+				/* ------ Social reactions--------------- */
+				if (V.arcologies[0].FSRestart !== "unset") {
+					p = document.createElement("p");
+					if (slave.breedingMark === 1 && V.propOutcome === 1 && (slave.pregSource === -1 || slave.pregSource === -6)) {
+						p.append(`The ${societalElite}`);
+						App.UI.DOM.appendNewElement("span", p, `are pleased`, "green");
+						p.append(`at the new additions to their class.`);
+						V.failedElite -= (2 * curBabies);
+					} else if (V.eugenicsFullControl !== 1) {
+						p.append(`The ${societalElite}`);
+						App.UI.DOM.appendNewElement("span", p, `are disappointed`, "red");
+						p.append(`that you would allow subhuman filth to dirty the arcology under your watch. Society`);
+						App.UI.DOM.appendNewElement("span", p, `frowns`, "red");
+						p.append(`on the unwelcome addition of more subhumans into the world.`);
+						V.failedElite += (5 * curBabies);
+						repX(forceNeg(10 * curBabies), "birth", slave);
+					}
+					el.append(p);
+				}
+			}
+			return el;
+		}
+		function birthBabies() {
+			const el = document.createElement("p");
+			let r;
+			let cToIncubator = 0;
+			let cToNursery = 0;
+			let babyCost;
+			let choices;
+			let choice;
+			for (const baby of slave.curBabies) {
+				if (baby.reserve === "incubator") {
+					cToIncubator++;
+				} else if (baby.reserve === "nursery") {
+					cToNursery++;
+				}
+			}
+			/* ----------------------- incubator/nursery adding subsection. There is support for broodmothers too. */
+			if ((cToIncubator + cToNursery > 0) && curBabies > 0) {
+				// TODO: Do we need keep child checks?
+				r = [];
+				if (curBabies > 1) {
+					r.push(`Of ${his} ${curBabies} ${children},`);
+				} else {
+					r.push(`${His} child`);
+				}
+				if (cToIncubator > 0) {
+					if (curBabies > 1) {
+						r.push(`${cToIncubator}`);
+					}
+					if (cToIncubator === 1) {
+						r.push(`was`);
+					} else {
+						r.push(`were`);
+					}
+					r.push(`taken to ${V.incubatorName}`);
+					if (cToNursery > 0) {
+						r.push(`and`);
+					}
+				}
+				if (cToNursery > 0) {
+					if (curBabies > 1) {
+						r.push(`${cToNursery}`);
+					}
+					if (cToNursery === 1) {
+						r.push(`was`);
+					} else {
+						r.push(`were`);
+					}
+					r.push(`taken to ${V.nurseryName}`);
+				}
+				r.push(r.pop() + `.`);
+				if (cToIncubator + cToNursery > 0) {
+					sendNewbornsToFacility(slave);
+				}
+				curBabies = slave.curBabies.length;
+				// <br><br>
+				if (curBabies > 0) {
+					r.push(`After sending ${his} reserved ${children} to`);
+					if (cToIncubator > 0 && cToNursery > 0) {
+						r.push(`${V.incubatorName} and V.nurseryName,`);
+					} else if (cToIncubator > 0) {
+						r.push(`${V.incubatorName},`);
+					} else {
+						r.push(`${V.nurseryName},`);
+					}
+					r.push(`it's time to decide the fate of the ${(curBabies > 0) ? `others` : `other`}.`);
+				}
+				App.Events.addParagraph(el, r);
+			}
+			/* ------------------------ Fate of other babies ---------------------------------------*/
+			if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0 && curBabies > 0) {
+				r = [];
+				choices = document.createElement("p");
+				choices.id = dispositionId;
+				if (V.arcologies[0].FSRestart !== "unset" && slave.breedingMark === 1 && V.propOutcome === 1 && (slave.pregSource === -1 || slave.pregSource === -6)) {
+					r.push(`${His} ${childrenAre} collected by the ${societalElite} to be raised into upstanding members of the new society.`);
+				} else if (slave.breedingMark === 1 && V.propOutcome === 1 && (slave.pregSource === -1 || slave.pregSource === -6) && V.DefaultBirthDestination === "the market") {
+					babyCost = random(2000, 4500);
+					r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} purchased by the ${societalElite} for`);
+					r.push(
+						App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (babyCost))}.`, "yellowgreen")
+					);
+					cashX((curBabies * (babyCost)), "babyTransfer");
+				} else if (slave.pregSource === -9 && V.DefaultBirthDestination === "the market") {
+					babyCost = random(1000, 2500);
+					r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} purchased by the Futanari Sisters for `);
+					r.push(
+						App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (babyCost))}.`, "yellowgreen")
+					);
+					cashX((curBabies * (babyCost)), "babyTransfer");
+				} else if (V.DefaultBirthDestination === "individually decided fates") {
+					V.slaveOrphanageTotal += curBabies;
+					r.push(`Unless you provide otherwise, the ${children} will be remanded to one of ${V.arcologies[0].name}'s slave orphanages. ${slave.slaveName}`);
+					if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+						r.push(`shows no indication of an opinion on the matter.`);
+					} else if (slave.devotion > 95) {
+						r.push(`worships you so completely that ${he} will not resent this.`);
+					} else if (slave.devotion > 50) {
+						r.push(`is devoted to you, but ${he} will`);
+						r.push(App.UI.DOM.makeElement("span", `struggle to accept this.`, "mediumorchid"));
+						slave.devotion -= 2;
+					} else if (slave.devotion > 20) {
+						r.push(`has accepted being a sex slave, but ${he} will`);
+						r.push(App.UI.DOM.makeElement("span", `resent this intensely.`, "mediumorchid"));
+						slave.devotion -= 3;
+					} else {
+						r.push(`will of course`);
+						r.push(App.UI.DOM.makeElement("span", `hate you for this.`, "mediumorchid"));
+						slave.devotion -= 4;
+					}
+					App.Events.addParagraph(choices, r);
+					if (V.arcologies[0].FSRepopulationFocus > 40) {
+						choice = document.createElement("div");
+						choice.append(
+							App.UI.DOM.link(
+								"Send them to a breeder school",
+								() => {
+									const r = [];
+									const el = new DocumentFragment();
+									r.push(`The ${childrenAre} sent to one of ${V.arcologies[0].name}'s future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. ${slave.slaveName}`);
+									if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+										r.push(`has few thoughts about the matter.`);
+									} else if (slave.sexualFlaw === "breeder") {
+										r.push(App.UI.DOM.makeElement("span", `almost orgasms`, "hotpink"));
+										r.push(`when ${he} imagines ${his} ${children} being raised into`);
+										if (curBabies === 1) {
+											r.push(`a`);
+										}
+										r.push(`breeding-obsessed baby-factory, just like ${himself}.`);
+										slave.devotion += 5;
+									} else if (slave.devotion > 95) {
+										r.push(`loves you already, but ${he}'ll`);
+										r.push(App.UI.DOM.makeElement("span", `love you even more`, "hotpink"));
+										r.push(`for this. ${He} can't wait to see ${his} ${children} proudly furthering your cause.`);
+										slave.devotion += 4;
+									} else if (slave.devotion > 50) {
+										r.push(`heard about these and will be`);
+										r.push(App.UI.DOM.makeElement("span", `happy that ${his} ${children} will have a purpose in your society other than slavery.`, "hotpink"));
+										r.push(`${He} will miss ${his} ${children}, but ${he} expected that.`);
+										slave.devotion += 4;
+									} else if (slave.devotion > 20) {
+										r.push(`will naturally miss ${his} ${children}, but will is broken enough to hope that ${his} offspring will have a better life, or at least an enjoyable one.`);
+									} else {
+										r.push(`will of course`);
+										r.push(App.UI.DOM.makeElement("span", `hate you for this.`, "mediumorchid"));
+										r.push(`The mere thought of ${his}`);
+										if (V.minimumSlaveAge > V.fertilityAge) {
+											r.push(`${V.minimumSlaveAge}`);
+										} else {
+											r.push(`${V.fertilityAge}`);
+										}
+										r.push(`year old ${(curBabies > 1) ? `daughters` : `daughter`} swollen with life, and proud of it, fills ${him} with`);
+										r.push(App.UI.DOM.makeElement("span", `disdain.`, "gold"));
+										slave.devotion -= 4;
+										slave.trust -= 4;
+									}
+									V.breederOrphanageTotal += curBabies;
+									V.slaveOrphanageTotal -= curBabies;
+									App.Events.addNode(el, r);
+									jQuery(`#${dispositionId}`).empty().append(el);
+								}
+							)
+						);
+						App.UI.DOM.appendNewElement("span", choice, ` Will cost a one-time ${cashFormat(50)}`, "note");
+						choices.append(choice);
+					}
+					choice = document.createElement("div");
+					choice.append(
+						App.UI.DOM.link(
+							"Send them to a citizen school",
+							() => {
+								const r = [];
+								const el = new DocumentFragment();
+								r.push(`The ${childrenAre} sent to one of ${V.arcologies[0].name}'s citizen schools, to be brought up coequal with the arcology's other young people. ${slave.slaveName}`);
+								if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+									r.push(`fails to acknowledge this.`);
+								} else if (slave.devotion > 95) {
+									r.push(`loves you already, but ${he}'ll`);
+									r.push(App.UI.DOM.makeElement("span", `love you even more`, "hotpink"));
+									r.push(`for this.`);
+									slave.devotion += 4;
+								} else if (slave.devotion > 50) {
+									r.push(`knows about these and will be`);
+									r.push(App.UI.DOM.makeElement("span", `overjoyed.`, "hotpink"));
+									r.push(`${He} will miss ${his} ${children}, but ${he} expected that.`);
+									slave.devotion += 4;
+								} else if (slave.devotion > 20) {
+									r.push(`will naturally miss ${his} ${children}, but will`);
+									r.push(App.UI.DOM.makeElement("span", `take comfort`, "hotpink"));
+									r.push(`in the hope that ${his} offspring will have a better life.`);
+									slave.devotion += 4;
+								} else {
+									r.push(`will naturally retain some resentment over being separated from ${his} ${children}, but this should be balanced by hope that ${his} offspring will have a better life.`);
+									slave.devotion += 4;
+								}
+								V.citizenOrphanageTotal += curBabies;
+								V.slaveOrphanageTotal -= curBabies;
+								App.Events.addNode(el, r);
+								jQuery(`#${dispositionId}`).empty().append(el);
+							}
+						)
+					);
+					App.UI.DOM.appendNewElement("span", choice, ` Will cost ${cashFormat(100)} weekly`, "note");
+					choices.append(choice);
+					if (slave.breedingMark === 1 && (slave.pregSource === -1 || slave.pregSource === -6) && V.propOutcome === 1) {
+						choice = document.createElement("div");
+						choice.append(
+							App.UI.DOM.link(
+								`Give them to the ${societalElite}`,
+								() => {
+									const r = [];
+									const el = new DocumentFragment();
+									r.push(`The ${childrenAre} sent to be raised by the ${societalElite}, to be brought up as`);
+									if (curBabies > 1) {
+										r.push(`future members`);
+									} else {
+										r.push(`a future member`);
+									}
+									r.push(`of their vision of the world. ${slave.slaveName}`);
+									if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+										r.push(`does not give any hint of a response.`);
+									} else if (slave.devotion > 95) {
+										r.push(`will`);
+										r.push(App.UI.DOM.makeElement("span", `worship you utterly`, "hotpink"));
+										r.push(`for this.`);
+										slave.devotion += 6;
+									} else if (slave.devotion > 50) {
+										r.push(`understands that this is the best possible outcome for the offspring of a slave, and will be`);
+										r.push(App.UI.DOM.makeElement("span", `overjoyed.`, "hotpink"));
+										slave.devotion += 6;
+									} else if (slave.devotion > 20) {
+										r.push(`will miss ${his} ${children}, but will be`);
+										r.push(App.UI.DOM.makeElement("span", `very grateful,`, "hotpink"));
+										r.push(`since ${he}'ll understand this is the best possible outcome for a slave mother.`);
+										slave.devotion += 6;
+									} else {
+										r.push(`will resent being separated from ${his} ${children}, but`);
+										r.push(App.UI.DOM.makeElement("span", `should understand and be grateful`, "hotpink"));
+										r.push(`that this is the best possible outcome here.`);
+										slave.devotion += 6;
+									}
+									V.nextButton = "Back";
+									App.Utils.updateUserButton();
+									App.Events.addNode(el, r);
+									jQuery(`#${dispositionId}`).empty().append(el);
+								}
+							)
+						);
+						choices.append(choice);
+					}
+					if (slave.pregSource === -9) {
+						choice = document.createElement("div");
+						choice.append(
+							App.UI.DOM.link(
+								"Give them to the Futanari Sisters",
+								() => {
+									const r = [];
+									const el = new DocumentFragment();
+									r.push(`The ${childrenAre} handed off to be raised by their father, the Futanari Sisters. ${slave.slaveName}`);
+									if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+										r.push(`has few thoughts about the matter.`);
+									} else {
+										r.push(`is overjoyed that ${his} ${children} will follow in`);
+										if (curBabies > 1) {
+											r.push(`their`);
+										} else {
+											r.push(`its`);
+										}
+										r.push(`parent's footsteps.`);
+										slave.devotion += 4;
+									}
+									V.slaveOrphanageTotal -= curBabies;
+									App.Events.addNode(el, r);
+									jQuery(`#${dispositionId}`).empty().append(el);
+								}
+							)
+						);
+						choices.append(choice);
+					}
+					choice = document.createElement("div");
+					choice.append(
+						App.UI.DOM.link(
+							"Have them raised privately",
+							() => {
+								const r = [];
+								const el = new DocumentFragment();
+								r.push(`The ${childrenAre} sent to be privately raised, to be brought up as`);
+								if (curBabies > 1) {
+									r.push(`future high class citizens.`);
+								} else {
+									r.push(`a future high class citizen.`);
+								}
+								r.push(slave.slaveName);
+								if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+									r.push(`does not give any hint of a response.`);
+								} else if (slave.devotion > 95) {
+									r.push(`will`);
+									r.push(App.UI.DOM.makeElement("span", `worship you utterly`, "hotpink"));
+									r.push(`for this.`);
+									slave.devotion += 6;
+								} else if (slave.devotion > 50) {
+									r.push(`understands that this is the best possible outcome for the offspring of slave, and will be`);
+									r.push(App.UI.DOM.makeElement("span", `overjoyed.`, "hotpink"));
+									slave.devotion += 6;
+								} else if (slave.devotion > 20) {
+									r.push(`will miss ${his} ${children}, but will be`);
+									r.push(App.UI.DOM.makeElement("span", `very grateful,`, "hotpink"));
+									r.push(`since ${he}'ll understand this is the best possible outcome for a slave mother.`);
+									slave.devotion += 6;
+								} else {
+									r.push(`will resent being separated from ${his} ${children}, but`);
+									r.push(App.UI.DOM.makeElement("span", `should understand and be grateful`, "hotpink"));
+									r.push(`that this is the best possible outcome here.`);
+									slave.devotion += 6;
+								}
+								r.push(`The ${children} will be raised privately, with expert care and tutoring, an expensive proposition.`);
+								V.privateOrphanageTotal += curBabies;
+								V.slaveOrphanageTotal -= curBabies;
+								App.Events.addNode(el, r);
+								jQuery(`#${dispositionId}`).empty().append(el);
+							}
+						)
+					);
+					App.UI.DOM.appendNewElement("span", choice, ` Will cost ${cashFormat(500)} weekly`, "note");
+					choices.append(choice);
+					if (V.policies.cash4Babies === 1) {
+						if (slave.prestige > 1 || slave.porn.prestige > 2) {
+							choice = document.createElement("div");
+							choice.append(
+								App.UI.DOM.link(
+									"Send them to auction",
+									() => {
+										const r = [];
+										const el = new DocumentFragment();
+										babyCost = random(-12, 100);
+										if (slave.prematureBirth === 1) {
+											babyCost = random(-32, 40);
+										}
+										r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} sold for`);
+										if (curBabies > 1) {
+											r.push(`a total of`);
+										}
+										if (slave.prematureBirth === 1) {
+											r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))},`, "yellowgreen"));
+											r.push(`a low price, due to the added costs of caring for them.`);
+										} else {
+											r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))}.`, "yellowgreen"));
+										}
+										if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+											r.push(`${slave.slaveName} lacks the capacity to understand what you've done.`);
+										} else if (slave.devotion > 95) {
+											r.push(`${slave.slaveName} adheres to your thoughts so strongly that even though you backed out of caring for ${his} ${children}, ${he} still truly believes you are doing ${him} an honor.`);
+										} else if (slave.devotion > 50) {
+											r.push(`${slave.slaveName} is`);
+											r.push(App.UI.DOM.makeElement("span", `deeply hurt`, "mediumorchid"));
+											r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+											if (curBabies > 1) {
+												r.push(`them`);
+											} else {
+												r.push(`it`);
+											}
+											r.push(`cared for. ${His} trust in your words`);
+											r.push(App.UI.DOM.makeElement("span", `wavers`, "gold"));
+											r.push(`as ${he} thinks of ${his} ${children}'s future.`);
+											slave.trust -= 5;
+											slave.devotion -= 5;
+										} else if (slave.devotion > 20) {
+											r.push(`${slave.slaveName} is`);
+											r.push(App.UI.DOM.makeElement("span", `devastated`, "mediumorchid"));
+											r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+											if (curBabies > 1) {
+												r.push(`them`);
+											} else {
+												r.push(`it`);
+											}
+											r.push(`cared for. ${His} mind struggles to comprehend`);
+											r.push(App.UI.DOM.makeElement("span", `such betrayal.`, "gold"));
+											slave.trust -= 10;
+											slave.devotion -= 10;
+										} else {
+											r.push(`For a moment, ${slave.slaveName} thought ${he} saw a glimmer of good in you;`);
+											r.push(App.UI.DOM.makeElement("span", `${he} was clearly wrong.`, "mediumorchid"));
+											r.push(`${His} mind struggles to comprehend`);
+											r.push(App.UI.DOM.makeElement("span", `why ${he} could ever even think of trusting such a person.`, "gold"));
+											slave.trust -= 30;
+											slave.devotion -= 30;
+										}
+										V.slaveOrphanageTotal -= curBabies;
+										cashX((curBabies * (50 + babyCost)), "babyTransfer");
+										App.Events.addNode(el, r);
+										jQuery(`#${dispositionId}`).empty().append(el);
+									}
+								)
+							);
+							choices.append(choice);
+						} else {
+							choice = document.createElement("div");
+							choice.append(
+								App.UI.DOM.link(
+									"Sell them anyway",
+									() => {
+										const r = [];
+										const el = new DocumentFragment();
+										babyCost = random(-12, 12);
+										if (slave.prematureBirth === 1) {
+											babyCost = -45;
+										}
+										r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} sold for`);
+										if (curBabies > 1) {
+											r.push(`a total of`);
+										}
+										if (slave.prematureBirth === 1) {
+											r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))},`, "yellowgreen"));
+											r.push(`a low price, due to the added costs of caring for them.`);
+										} else {
+											r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))}/`, "yellowgreen"));
+										}
+										if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+											r.push(`${slave.slaveName} lacks the capacity to understand what you've done.`);
+										} else if (slave.devotion > 95) {
+											r.push(`${slave.slaveName} adheres to your thoughts so strongly that even though you backed out of caring for ${his} ${children}, ${he} still truly believes you are doing ${him} an honor.`);
+										} else if (slave.devotion > 50) {
+											r.push(`${slave.slaveName} is`);
+											r.push(App.UI.DOM.makeElement("span", `deeply hurt`, "mediumorchid"));
+											r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+											if (curBabies > 1) {
+												r.push(`them`);
+											} else {
+												r.push(`it`);
+											}
+											r.push(`cared for. ${His} trust in your words`);
+											r.push(App.UI.DOM.makeElement("span", `wavers`, "gold"));
+											r.push(`as ${he} thinks of ${his} ${children}'s future.`);
+											slave.trust -= 5;
+											slave.devotion -= 5;
+										} else if (slave.devotion > 20) {
+											r.push(`${slave.slaveName} is`);
+											r.push(App.UI.DOM.makeElement("span", `devastated`, "mediumorchid"));
+											r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+											if (curBabies > 1) {
+												r.push(`them`);
+											} else {
+												r.push(`it`);
+											}
+											r.push(`cared for. ${His} mind struggles to comprehend`);
+											r.push(App.UI.DOM.makeElement("span", `such betrayal.`, "gold"));
+											slave.trust -= 10;
+											slave.devotion -= 10;
+										} else {
+											r.push(`For a moment, ${slave.slaveName} thought ${he} saw a glimmer of good in you;`);
+											r.push(App.UI.DOM.makeElement("span", `${he} was clearly wrong.`, "mediumorchid"));
+											r.push(`${His} mind struggles to comprehend`);
+											r.push(App.UI.DOM.makeElement("span", `why ${he} could ever even thing of trusting such a person.`, "gold"));
+											slave.trust -= 30;
+											slave.devotion -= 30;
+										}
+										V.slaveOrphanageTotal -= curBabies;
+										cashX((curBabies * (50 + babyCost)), "babyTransfer");
+										App.Events.addNode(el, r);
+										jQuery(`#${dispositionId}`).empty().append(el);
+									}
+								)
+							);
+							choices.append(choice);
+						}
+					}
+				} else {
+					r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} sent to ${V.DefaultBirthDestination}.`);
+					switch (V.DefaultBirthDestination) {
+						case "an orphanage":
+							r.push(`${slave.slaveName}`);
+							if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+								r.push(`shows no indication of an opinion on the matter.`);
+							} else if (slave.devotion > 95) {
+								r.push(`worships you so completely that ${he} will not resent this.`);
+							} else if (slave.devotion > 50) {
+								r.push(`is devoted to you, but ${he} will`);
+								r.push(App.UI.DOM.makeElement("span", `struggle to accept this.`, "mediumorchid"));
+								slave.devotion -= 2;
+							} else if (slave.devotion > 20) {
+								r.push(`has accepted being a sex slave, but ${he} will`);
+								r.push(App.UI.DOM.makeElement("span", `resent this intensely.`, "mediumorchid"));
+								slave.devotion -= 3;
+							} else {
+								r.push(`will of course`);
+								r.push(App.UI.DOM.makeElement("span", `hate you for this.`, "mediumorchid"));
+								slave.devotion -= 4;
+							}
+							V.slaveOrphanageTotal += curBabies;
+							break;
+						case "a citizen school":
+							r.push(`${slave.slaveName}`);
+							if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+								r.push(`fails to acknowledge this.`);
+							} else if (slave.devotion > 95) {
+								r.push(`loves you already, but ${he}'ll`);
+								r.push(App.UI.DOM.makeElement("span", `love you even more`, "hotpink"));
+								r.push(`for this.`);
+								slave.devotion += 4;
+							} else if (slave.devotion > 50) {
+								r.push(`knows about these and will be`);
+								r.push(App.UI.DOM.makeElement("span", `overjoyed.`, "hotpink"));
+								r.push(`${He} will miss ${his} ${children}, but ${he} expected that.`);
+								slave.devotion += 4;
+							} else if (slave.devotion > 20) {
+								r.push(`will naturally miss ${his} ${children}, but will`);
+								r.push(App.UI.DOM.makeElement("span", `take comfort`, "hotpink"));
+								r.push(`in the hope that ${his} offspring will have a better life.`);
+								slave.devotion += 4;
+							} else {
+								r.push(`will naturally retain some resentment over being separated from ${his} ${children}, but this should be balanced by hope that ${his} offspring will have a better life.`);
+								slave.devotion += 4;
+							}
+							V.citizenOrphanageTotal += curBabies;
+							break;
+						case "a private school":
+							r.push(`${slave.slaveName}`);
+							if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+								r.push(`does not give any hint of a response.`);
+							} else if (slave.devotion > 95) {
+								r.push(`will`);
+								r.push(App.UI.DOM.makeElement("span", `worship you utterly`, "hotpink"));
+								r.push(`for this.`);
+								slave.devotion += 6;
+							} else if (slave.devotion > 50) {
+								r.push(`understands that this is the best possible outcome for the offspring of a slave, and will be`);
+								r.push(App.UI.DOM.makeElement("span", `overjoyed.`, "hotpink"));
+								slave.devotion += 6;
+							} else if (slave.devotion > 20) {
+								r.push(`will miss ${his} ${children}, but will be`);
+								r.push(App.UI.DOM.makeElement("span", `very grateful,`, "hotpink"));
+								r.push(`since ${he}'ll understand this is the best possible outcome for a slave mother.`);
+								slave.devotion += 6;
+							} else {
+								r.push(`will resent being separated from ${his} ${children}, but`);
+								r.push(App.UI.DOM.makeElement("span", `should understand and be grateful`, "hotpink"));
+								r.push(`that this is the best possible outcome here.`);
+								slave.devotion += 6;
+							}
+							r.push(`The ${children} will be raised privately, with expert care and tutoring, an expensive proposition.`);
+							V.privateOrphanageTotal += curBabies;
+							break;
+						case "breeder schools":
+							r.push(`${slave.slaveName}`);
+							if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+								r.push(`has few thoughts about the matter.`);
+							} else if (slave.sexualFlaw === "breeder") {
+								r.push(App.UI.DOM.makeElement("span", `almost orgasms`, "hotpink"));
+								r.push(`when ${he} imagines ${his} ${children} being raised into`);
+								if (curBabies === 1) {
+									r.push(`a`);
+								}
+								r.push(`breeding-obsessed baby-factory, just like ${himself}.`);
+								slave.devotion += 5;
+							} else if (slave.devotion > 95) {
+								r.push(`loves you already, but ${he}'ll`);
+								r.push(App.UI.DOM.makeElement("span", `love you even more`, "hotpink"));
+								r.push(`for this. ${He} can't wait to see ${his} ${children} proudly furthering your cause.`);
+								slave.devotion += 4;
+							} else if (slave.devotion > 50) {
+								r.push(`heard about these and will be`);
+								r.push(App.UI.DOM.makeElement("span", `happy that ${his} ${children} will have a purpose in your society other than slavery.`, "hotpink"));
+								r.push(`${He} will miss ${his} ${children}, but ${he} expected that.`);
+								slave.devotion += 4;
+							} else if (slave.devotion > 20) {
+								r.push(`will naturally miss ${his} ${children}, but will is broken enough to hope that ${his} offspring will have a better life, or at least an enjoyable one.`);
+							} else {
+								r.push(`will of course`);
+								r.push(App.UI.DOM.makeElement("span", `hate you for this.`, "mediumorchid"));
+								r.push(`The mere thought of ${his}`);
+								if (V.minimumSlaveAge > V.fertilityAge) {
+									r.push(`${V.minimumSlaveAge}`);
+								} else {
+									r.push(`${V.fertilityAge}`);
+								}
+								r.push(`year old ${(curBabies > 1)?`daughters`:`daughter`} swollen with life, and proud of it, fills ${him} with`);
+								r.push(App.UI.DOM.makeElement("span", `disdain.`, "gold"));
+								slave.devotion -= 4;
+								slave.trust -= 4;
+							}
+							V.breederOrphanageTotal += curBabies;
+							break;
+						case "the market":
+							if (slave.prestige > 1 || slave.porn.prestige > 2) {
+								babyCost = random(-12, 100);
+								if (slave.prematureBirth > 0) {
+									babyCost = random(-32, 40);
+								}
+							} else {
+								babyCost = random(-12, 12);
+								if (slave.prematureBirth > 0) {
+									babyCost = -45;
+								}
+							}
+							r.push(`${His} ${(curBabies > 1) ? `babies were` : `baby was`} sold for`);
+							if (curBabies > 1) {
+								r.push(`a total of`);
+							}
+							if (slave.prematureBirth === 1) {
+								r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))},`, "yellowgreen"));
+								r.push(`a low price, due to the added costs of caring for them.`);
+							} else {
+								r.push(App.UI.DOM.makeElement("span", `${cashFormat(curBabies * (50 + babyCost))}.`, "yellowgreen"));
+							}
+							if (slave.fetish === "mindbroken" || slave.fuckdoll > 0) {
+								r.push(`${slave.slaveName} lacks the capacity to understand what you've done.`);
+							} else if (slave.devotion > 95) {
+								r.push(`${slave.slaveName} adheres to your thoughts so strongly that even though you backed out of caring for ${his} ${children}, ${he} still truly believes you are doing ${him} an honor.`);
+							} else if (slave.devotion > 50) {
+								r.push(`${slave.slaveName} is`);
+								r.push(App.UI.DOM.makeElement("span", `deeply hurt`, "mediumorchid"));
+								r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+								if (curBabies > 1) {
+									r.push(`them`);
+								} else {
+									r.push(`it`);
+								}
+								r.push(`cared for. ${His} trust in your words`);
+								r.push(App.UI.DOM.makeElement("span", `wavers`, "gold"));
+								r.push(`as ${he} thinks of ${his} ${children}'s future.`);
+								slave.trust -= 5;
+								slave.devotion -= 5;
+							} else if (slave.devotion > 20) {
+								r.push(`${slave.slaveName} is`);
+								r.push(App.UI.DOM.makeElement("span", `devastated`, "mediumorchid"));
+								r.push(`by your sudden decision to sell ${his} ${children} instead of having`);
+								if (curBabies > 1) {
+									r.push(`them`);
+								} else {
+									r.push(`it`);
+								}
+								r.push(`cared for. ${His} mind struggles to comprehend`);
+								r.push(App.UI.DOM.makeElement("span", `such betrayal.`, "gold"));
+								slave.trust -= 10;
+								slave.devotion -= 10;
+							} else {
+								r.push(`For a moment, ${slave.slaveName} thought ${he} saw a glimmer of good in you;`);
+								r.push(App.UI.DOM.makeElement("span", `${he} was clearly wrong.`, "mediumorchid"));
+								r.push(`${His} mind struggles to comprehend`);
+								r.push(App.UI.DOM.makeElement("span", `why ${he} could ever even thing of trusting such a person.`, "gold"));
+								slave.trust -= 30;
+								slave.devotion -= 30;
+							}
+							cashX(curBabies * (50 + babyCost), "babyTransfer");
+					}
+					App.Events.addNode(choices, r);
+				}
+				el.append(choices);
+			}
+			return el;
+		}
+		function birthPostpartum() {
+			const el = document.createElement("p");
+			curBabies = slave.curBabies.length;
+			if (slave.broodmother > 0) {
+				slave.preg = WombMaxPreg(slave);
+				if (slave.broodmotherCountDown > 0 && slave.womb.length > 0) { // TODO: do we really finished?
+					slave.broodmotherCountDown = 38 - WombMinPreg(slave); // age of most new (small) fetus used to correct guessing of remained time.
+					slave.preg = 0.1;
+					slave.pregType = 0;
+				}
+			} else if (slave.womb.length > 0) { // Not broodmother, but still has babies, partial birth case.
+				slave.preg = WombMaxPreg(slave); // now we use most advanced remained fetus as base.
+				slave.pregSource = slave.womb[0].fatherID; // in such case it's good chance that there is different father also.
+			} else {
+				const tmp = lastPregRule(slave, V.defaultRules);
+				if ((!assignmentVisible(slave)) && (tmp !== null)) {
+					slave.preg = -1;
+				} else {
+					slave.preg = 0;
+				}
+				slave.pregType = 0;
+				slave.pregSource = 0;
+				slave.pregKnown = 0;
+				if (slave.geneticQuirks.fertility + slave.geneticQuirks.hyperFertility >= 4) {
+					slave.pregWeek = -2;
+				} else if (slave.geneticQuirks.hyperFertility > 1) {
+					slave.pregWeek = -3;
+				} else {
+					slave.pregWeek = -4;
+				}
+			}
+			cSection = 0;
+			SetBellySize(slave);
+			if (slave.birthsTat > -1) {
+				slave.birthsTat++;
+				el.append(`The temporary tattoo of a child has been replaced with ${his} ${ordinalSuffix(slave.birthsTat)} permanent infant.`);
+				cashX(forceNeg(V.modCost), "slaveMod", slave);
+			}
+			return el;
+		}
+		function birthCritical() {
+			const el = document.createElement("p");
+			const r = [];
+			curBabies = slave.curBabies.length;
+			if (slave.health.health <= -100) {
+				r.push(`While attempting to recover, ${slave.slaveName}`);
+				r.push(App.UI.DOM.makeElement("span", `passes away`, "red"));
+				r.push(`from complications. ${His} body was fatally damaged during childbirth.`);
+				if (curBabies > 0) { // this needs to include ALL children born fom this batch, incubated ones included.
+					r.push(`But ${his} offspring`);
+					if (curBabies > 1) {
+						r.push(`are`);
+					} else {
+						r.push(`is`);
+					}
+					r.push(`healthy, so ${his} legacy will carry on.`);
+				}
+				App.Events.addNode(el, r);
+				removeSlave(slave);
+				slaveDead = 1;
+			}
+			if (slaveDead !== 1) {
+				slave.labor = 0;
+				slave.induce = 0;
+			} else {
+				slaveDead = 0;
+			}
+			return el;
+		}
+	}
+};
+/**
+ * Sends newborns to incubator or nursery
+ * @param {App.Entity.SlaveState} mom
+ */
+globalThis.sendNewbornsToFacility = function(mom) {
+	let curBabies = mom.curBabies.length;
+	for (let cb = 0; cb < curBabies; cb++) {
+		// if there is no reserved children, code in loop will not trigger
+		if (mom.curBabies[cb].reserve === "incubator") {
+			if (V.tanks.length < V.incubator) {
+				App.Facilities.Incubator.newChild(generateChild(mom, mom.curBabies[cb], true));
+			}
+			mom.curBabies.splice(mom.curBabies[cb], 1);
+			cb--;
+			curBabies--;
+		} else if (mom.curBabies[cb].reserve === "nursery") {
+			if (V.cribs.length < V.nursery) {
+				App.Facilities.Nursery.newChild(generateChild(mom, mom.curBabies[cb]));
+			}
+			mom.curBabies.splice(mom.curBabies[cb], 1);
+			cb--;
+			curBabies--;
+		}
+	}
+};
diff --git a/js/birth.js b/src/js/birth/birthDescriptions.js
similarity index 99%
rename from js/birth.js
rename to src/js/birth/birthDescriptions.js
index e5d227e201e3768c1774ac55da9ce6d7e5c1657a..a7fa2425b432247fa47ee59731f76e70216285d4 100644
--- a/js/birth.js
+++ b/src/js/birth/birthDescriptions.js
@@ -4,7 +4,7 @@
  * @returns {Node}
  */
 
-globalThis.birth = function(slave) {
+globalThis.birthDescription = function(slave) {
 	const el = document.createElement("p");
 	const {
 		He, His,
@@ -1127,7 +1127,7 @@ globalThis.ampBirth = function(slave) { // "AmpBirth"
  * @param {App.Entity.SlaveState} slave
  * @returns {Node}
  */
-globalThis.suddenBirth = function(slave) { // "SuddenBirth"
+globalThis.suddenBirthScene = function(slave) { // "SuddenBirth"
 	const el = document.createElement("p");
 	const {
 		He, His,
@@ -1993,7 +1993,7 @@ globalThis.suddenBirth = function(slave) { // "SuddenBirth"
  * @param {number} curBabies
  * @returns {Node}
  */
-globalThis.deadlyBirth = function(slave, curBabies) { // "DeadlyBirth">>
+globalThis.deadlyBirthScene = function(slave, curBabies) { // "DeadlyBirth">>
 	const el = document.createElement("p");
 	const {
 		He, His,
@@ -2055,7 +2055,7 @@ globalThis.deadlyBirth = function(slave, curBabies) { // "DeadlyBirth">>
 	App.Events.addParagraph(el, r);
 	if (V.arcologies[0].FSRestart !== "unset" && slave.breedingMark === 1 && V.propOutcome === 1 && (slave.pregSource === -1 || slave.pregSource === -6) && V.eugenicsFullControl !== 1) {
 		const div = document.createElement("div");
-		div.append(`The Societal Elite `);
+		div.append(`The ${V.arcologies[0].FSNeoImperialistLaw2 === 1 ? "Barons" : "Societal Elite"} `);
 		App.UI.DOM.appendNewElement("span", div, `are furious `, "red");
 		div.append(` you would allow an Elite child to perish under your watch`);
 		if (curBabies > 1) {
diff --git a/src/js/utilsFC.js b/src/js/utilsFC.js
index a67d023fe6844e30508fb39a9751b91b72987530..80080401ce90d1da6fbcc6ed4fc3ea341e76ed31 100644
--- a/src/js/utilsFC.js
+++ b/src/js/utilsFC.js
@@ -2344,7 +2344,7 @@ globalThis.slaveSkillIncrease = function(targetSkill, slave, skillIncrease = 1)
 			}
 		}
 	}
-	
+
 	if (isleadershipRole() && slave.skill[targetSkill] + skillIncrease >= 100) {
 		V.tutorGraduate.push(slave.ID);
 		V.slaveTutor[capFirstChar(targetSkill)].delete(slave.ID);
@@ -3021,8 +3021,8 @@ App.Utils.masterSuiteAverages = (function() {
 			cum: _.mean(msSlaves.map(s => canAchieveErection(s) ? s.balls : 0)),
 			dick: _.mean(msSlaves.map(s => canAchieveErection(s) ? s.dick : 0)),
 			preg: _.mean(msSlaves.map(s => s.preg)),
-			sadism: _.mean(msSlaves.map(s => fetishMapOrZero(s, sadismMap))),
-			dom: _.mean(msSlaves.map(s => fetishMapOrZero(s, domMap)))
+			sadism: _.mean(msSlaves.map(s => (s.fetishStrength * fetishMapOrZero(s, sadismMap)))),
+			dom: _.mean(msSlaves.map(s => (s.fetishStrength * fetishMapOrZero(s, domMap))))
 		};
 	};
 })();
diff --git a/src/npc/descriptions/belly/belly.js b/src/npc/descriptions/belly/belly.js
index ac064db3ac5d2a8470264a47c863b644bf6632b6..78b40541bda43b61e4e37cbc9ee208f5a7842cc8 100644
--- a/src/npc/descriptions/belly/belly.js
+++ b/src/npc/descriptions/belly/belly.js
@@ -7420,11 +7420,11 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			case "Imperial Plate":
 				if (slave.belly >= 1000000) {
 					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
-						r.push(`Traditional battle armor would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen, ${slave.inflationType}-filled belly. Instead, ${he} wears armor more suited to protecting an industrial tanker truck rather than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized ${slave.inflationType} and special hookups to optimize the value of mobility aids.`);
+						r.push(`Regular Imperial Plate would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen, ${slave.inflationType}-filled belly. Instead, ${he} wears armor more suited to protecting an industrial vehicle than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized ${slave.inflationType} and special hookups to optimize the value of mobility aids.`);
 					} else if (slave.bellyImplant > 0) {
-						r.push(`Traditional battle armor would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen, implant-filled belly. Instead, ${he} wears armor more suited to protecting an industrial tanker truck rather than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized implant and special hookups to optimize the value of mobility aids.`);
+						r.push(`Regular Imperial Plate would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen, implant-filled belly. Instead, ${he} wears armor more suited to protecting an industrial vehicle than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized implant and special hookups to optimize the value of mobility aids.`);
 					} else {
-						r.push(`Traditional battle armor would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen pregnant belly. Instead, ${he} wears armor more suited to protecting an industrial tanker truck rather than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized womb and innumerable brood of squirming children, as well as special hookups to optimize the value of mobility aids.`);
+						r.push(`Regular Imperial Plate would be useless on ${slave.slaveName}'s unfathomable, hyper-swollen pregnant belly. Instead, ${he} wears armor more suited to protecting an industrial vehicle than a human being, complete with an internal mechanical frame designed to draw the shock of physical blows away from ${his} dangerously pressurized womb and innumerable brood of squirming children, as well as special hookups to optimize the value of mobility aids.`);
 					}
 				} else if (slave.belly >= 750000) {
 					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
@@ -7523,7 +7523,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						r.push(`${slave.slaveName}'s armor just barely shows a hint of ${his} growing belly.`);
 					}
 				} else if (slave.weight > 30) {
-					r.push(`${slave.slaveName}'s ultray-heavy armor just barely indicates ${his} chubby belly underneath.`);
+					r.push(`${slave.slaveName}'s ultra-heavy armor just barely indicates ${his} chubby belly underneath.`);
 				} else if (slave.bellyPreg >= 100 || slave.bellyImplant >= 100) {
 					r.push(`${slave.slaveName}'s ultra-heavy armor just barely indicates the swell of ${his} belly underneath the heavy plate.`);
 				} else if (slave.muscles > 30) {
@@ -12173,7 +12173,13 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 				break;
 			case "a tight Imperial bodysuit":
 				if (slave.belly >= 1000000) {
-					// WIP//
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit stretches out obscenely on ${his} unfathomable, hyper-swollen, ${slave.inflationType}-filled belly, distending obscenely into a gargantuan, imposing mass of stretched-out flesh under skintight suit.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit stretches out obscenely on ${his} unfathomable, hyper-swollen, implant-filled belly, distending obscenely into a gargantuan, enormously swollen mass of stretched-out flesh under skintight suit.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit stretches out obscenely on ${his} unfathomable, hyper-swollen pregnant belly, distending obscenely into a gargantuan, bulging mass of stretched-out flesh under skintight suit.`);
+					}
 				} else if (slave.belly >= 750000) {
 					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
 						r.push(`${slave.slaveName}'s bodysuit somehow manages to barely stretch over ${his} monolithic, ${slave.inflationType}-filled belly, pulled smooth over ${his} pressure flattened navel.`);
@@ -12182,50 +12188,100 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					} else {
 						r.push(`${slave.slaveName}'s bodysuit somehow manages to barely stretch over ${his} monolithic pregnant belly, pulled smooth over ${his} pressure flattened navel and all the movement of ${his} many squirming children.`);
 					}
-				} else if (slave.bellyPreg >= 600000) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} titanic bulging pregnant belly, displaying ${his} popped navel and all the movement ${his} squirming babies make.`);
-				} else if (slave.bellyPreg >= 300000) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massive pregnant belly, displaying ${his} popped navel and any movement ${his} babies make.`);
+				} else if (slave.belly >= 600000) {
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} titanic ${slave.inflationType}-filled belly underneath the bodysuit, displaying ${his} popped navel through the skintight material.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} titanic implant-filled belly underneath the bodysuit, displaying ${his} popped navel through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} titanic bulging pregnant belly, displaying ${his} popped navel and all the movement ${his} squirming babies make.`);
+					}
+				} else if (slave.belly >= 450000) {
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massively gravid stomach. It clearly displays ${his} gigantic ${slave.inflationType}-filled belly through the skintight material.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massively gravid stomach. It clearly displays ${his} gigantic implant-filled belly through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massively gravid stomach. It clearly displays ${his} gigantic pregnant belly through the skintight material.`);
+					}
+				} else if (slave.belly >= 300000) {
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely gravid stomach. It clearly displays ${his} massive ${slave.inflationType}-filled belly through the skintight material.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely gravid stomach. It clearly displays ${his} massive implant-filled belly through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massive pregnant belly, displaying ${his} popped navel and any movement ${his} babies make.`);
+					}
+				} else if (slave.belly >= 120000) {
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely gravid stomach. It clearly displays ${his} giant ${slave.inflationType}-filled belly through the skintight material.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely gravid stomach. It clearly displays ${his} giant implant-filled belly through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely gravid stomach. It clearly displays${his} giant pregnant belly through the skintight material.`);
+					}
+				} else if (slave.belly >= 30000) {
+					if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} gravid stomach. It clearly displays ${his} huge ${slave.inflationType}-filled belly through the skintight material.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} gravid stomach. It clearly displays ${his} huge implant-filled belly through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} gravid stomach. It clearly displays ${his} huge pregnant belly through the skintight material.`);
+					}
 				} else if (slave.weight > 190) {
 					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} massively fat belly, displaying every fold, roll and motion in it.`);
-				} else if (slave.bellyPreg >= 10000 || (slave.bellyAccessory === "a huge empathy belly") || (slave.bellyAccessory === "a large empathy belly")) {
-					if (slave.bellyAccessory === "a large empathy belly" || slave.bellyAccessory === "a huge empathy belly") {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} big pregnant belly, displaying ${his} popped navel.`);
+				} else if (slave.belly >= 15000 || (slave.bellyAccessory === "a huge empathy belly")) {
+					if (slave.bellyAccessory === "a huge empathy belly") {
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} huge pregnant belly through the skintight material.`);
 					} else if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely swollen belly, displaying ${his} bloated figure and every jiggle of ${his} full stomach.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} huge ${slave.inflationType}-filled belly through the skintight material.`);
 					} else if (slave.bellyImplant > 0) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} big implant-filled belly, prominently displaying ${his} popped navel.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} huge implant-filled belly through the skintight material.`);
+					} else {
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} huge pregnant belly through the skintight material.`);
+					}
+				} else if (slave.belly >= 10000 || (slave.bellyAccessory === "a large empathy belly")) {
+					if (slave.bellyAccessory === "a large empathy belly") {
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} big pregnant belly, leaving it looking much shorter than it really is.`);
+					} else if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
+						r.push(`${slave.slaveName}'s bodysuit barely clings to ${his} hugely swollen belly, leaving it looking much shorter than it really is.`);
+					} else if (slave.bellyImplant > 0) {
+						r.push(`${slave.slaveName}'s bodysuit barely clings to ${his} huge implant-filled belly, leaving it looking much shorter than it really is.`);
 					} else {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} big pregnant belly, displaying ${his} popped navel and any movement ${his} babies make.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} big pregnant belly, leaving it looking much shorter than it really is.`);
 					}
 				} else if (slave.weight > 160) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} hugely fat belly, displaying every fold, roll and motion in it.`);
+					r.push(`${slave.slaveName}'s bodysuit barely clings to ${his} hugely fat belly, clearly showing all ${his} folds and rolls through the skintight material.`);
 				} else if (slave.weight > 130) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} big fat belly, displaying every fold and roll in it.`);
+					r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} big fat belly, clearly showing all ${his} folds and roll through the skintight material.`);
 				} else if (slave.belly >= 5000 || (slave.bellyAccessory === "a medium empathy belly")) {
 					if (slave.bellyAccessory === "a medium empathy belly") {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} pregnant belly, displaying ${his} popped navel.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} pregnant belly.`);
 					} else if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} jiggling ${slave.inflationType}-filled belly, displaying ${his} bloating and every motion ${his} contents make.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} jiggling ${slave.inflationType}-filled belly through the skintight material.`);
 					} else if (slave.bellyImplant > 0) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} implant-filled belly, prominently displaying ${his} flattening navel.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} implant-filled belly through the skintight material.`);
 					} else {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} pregnant belly, displaying ${his} flattening navel and any movement ${his} babies make.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} pregnant belly through the skintight material.`);
 					}
 				} else if (slave.weight > 95) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} fat belly, displaying every fold and roll in it.`);
+					r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} fat belly, clearly showing every fold and roll through the skintight material.`);
 				} else if (slave.belly >= 1500 || slave.bellyAccessory === "a small empathy belly") {
 					if (slave.bellyAccessory === "a small empathy belly") {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} small pregnant belly, displaying ${his} ripening body.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays${his} small pregnant belly through the skintight material.`);
 					} else if (slave.bellyFluid >= slave.bellyPreg && slave.bellyFluid >= slave.bellyImplant) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} ${slave.inflationType}-swollen belly, displaying ${his} bloated body.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays${his} ${slave.inflationType}-swollen belly.`);
 					} else if (slave.bellyImplant > 0) {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} implant-rounded belly, displaying ${his} swollen body.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays${his} implant-rounded belly through the skintight material.`);
 					} else {
-						r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} growing belly, displaying ${his} ripening body.`);
+						r.push(`${slave.slaveName}'s bodysuit clearly displays${his} growing belly through the skintight material.`);
 					}
 				} else if (slave.weight > 30) {
-					r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} chubby belly, displaying every fold and roll in it.`);
+					r.push(`${slave.slaveName}'s bodysuit clearly displays ${his} chubby belly underneath the skintight material.`);
+				} else if (slave.bellyPreg >= 100 || slave.bellyImplant >= 100) {
+					r.push(`${slave.slaveName}'s bodysuit just barely clearly displays the swell of ${his} belly through the skintight material.`);
+				} else if (slave.muscles > 30) {
+					r.push(`${slave.slaveName}'s bodysuit clearly displays every last line of ${his} powerful core, displaying a gorgeously outlined six-pack through the skintight material.`);
 				}
 				break;
 			case "a chattel habit":
diff --git a/src/npc/descriptions/belly/bellyImplant.js b/src/npc/descriptions/belly/bellyImplant.js
index db0c04639a6528965b136e53eade2a07f4cd72ec..01ff82c8a759e1e4eeaf4ce4e123b00874adfb2b 100644
--- a/src/npc/descriptions/belly/bellyImplant.js
+++ b/src/npc/descriptions/belly/bellyImplant.js
@@ -927,7 +927,7 @@ App.Desc.bellyImplant = function(slave, {market, eventDescription} = {}) {
 							break;
 						case "Imperial Plate":
 							r.push(`${slave.slaveName}'s armor tightly clings to ${his} huge implant-filled belly.`);
-							break;							
+							break;
 						case "a mounty outfit":
 							r.push(`${slave.slaveName}'s tunic tightly clings to ${his} huge implant-filled belly.`);
 							break;
@@ -1265,7 +1265,7 @@ App.Desc.bellyImplant = function(slave, {market, eventDescription} = {}) {
 							break;
 						case "Imperial Plate":
 							r.push(`${slave.slaveName}'s armor tightly clings to ${his} implant-filled belly.`);
-							break;							
+							break;
 						case "a mounty outfit":
 							r.push(`${slave.slaveName}'s tunic tightly clings to ${his} implant-filled belly.`);
 							break;
diff --git a/src/npc/descriptions/describeTattoos.js b/src/npc/descriptions/describeTattoos.js
index ec11cfd59b6ef00518e7ae6824d6f03281fe130e..31be28fb299484947585494885e9e98c3886ee95 100644
--- a/src/npc/descriptions/describeTattoos.js
+++ b/src/npc/descriptions/describeTattoos.js
@@ -7,7 +7,7 @@ App.Desc.tattoo = function(slave, surface) {
 	let r = [];
 	/* eslint-disable no-unused-vars*/
 	const {
-		he, him, his, He, His
+		he, him, his, He, His, hers
 	} = getPronouns(slave);
 	/* eslint-enable */
 	if (V.showBodyMods !== 1) {
diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js
index e7c084582e791ca86dab3fbb15d3e71fa5bf4eab..1c09fb399c48b4447b5d87bafb9b75e64c026846 100644
--- a/src/npc/generate/newSlaveIntro.js
+++ b/src/npc/generate/newSlaveIntro.js
@@ -3802,7 +3802,7 @@ App.UI.newSlaveIntro = function(slave, slave2 = V.eventSlave) {
 								} else {
 									r.push(S.HeadGirl.slaveName);
 								}
-								r.push(`to get ${slave.slaveName} set up in ${V.dairyName}. The new slave does not know what V.dairyName is, not really, and ${he} doesn't know what being set up there means, either. If ${he} knew that you are able to send ${him} there so blithely only because it is equipped with a special preparatory raper that will seize ${him},`);
+								r.push(`to get ${slave.slaveName} set up in ${V.dairyName}. The new slave does not know what ${V.dairyName} is, not really, and ${he} doesn't know what being set up there means, either. If ${he} knew that you are able to send ${him} there so blithely only because it is equipped with a special preparatory raper that will seize ${him},`);
 								if (slave.vagina > -1) {
 									r.push(`mercilessly fuck ${his} pussy and ass until both are gaped,`);
 								} else {
@@ -4077,7 +4077,7 @@ App.UI.newSlaveIntro = function(slave, slave2 = V.eventSlave) {
 							} else {
 								r.push(S.HeadGirl.slaveName);
 							}
-							r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what V.arcadeName is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of V.arcadeName, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,` : ``} or presses against ${his} poor anus.`);
+							r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what ${V.arcadeName} is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of ${V.arcadeName}, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,` : ``} or presses against ${his} poor anus.`);
 							if (V.arcade <= App.Entity.facilities.arcade.employeesIDs().size) {
 								r.push(`Mere`);
 								if (V.showInches === 2) {
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index ce271de02cb61a6681550d196909a7f6d6a31bac..0a576fede0a4da0f0b30478b4927a94882448658 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -855,7 +855,7 @@
 	<<elseif $activeSlave.hears === 0>>
 		<<set $activeSlave.hears = 2>>
 	<</if>>
-	
+
 
 	<<if $seeExtreme == 1>>
 		<<run _options.addOption("Smell ability", "smells", $activeSlave)
diff --git a/src/personalAssistant/assistantAppearance.js b/src/personalAssistant/assistantAppearance.js
index eec80955491a740ff35f4ae8648e1667eab62ee8..1328101091730a25e9b0756208a4c6f1c93df580 100644
--- a/src/personalAssistant/assistantAppearance.js
+++ b/src/personalAssistant/assistantAppearance.js
@@ -145,7 +145,7 @@ globalThis.PersonalAssistantAppearance = function() {
 			} else if (paSeed === 7 && V.assistant.market) {
 				r.push(`${HeA}'s accompanied by your market assistant's tribes ${womanM} avatar.`);
 				if (V.assistant.market.relationship === "cute") {
-					r.push(`They're chatting companionably as ${V.assistant.name} stretches and the market assistant's avatar does a complex calculation on ${hisM} fingers. V.assistant.name is telling a long story, and the market assistant is listening kindly.`);
+					r.push(`They're chatting companionably as ${V.assistant.name} stretches and the market assistant's avatar does a complex calculation on ${hisM} fingers. ${V.assistant.name} is telling a long story, and the market assistant is listening kindly.`);
 				} else if (V.assistant.market.relationship === "nonconsensual") {
 					r.push(`${V.assistant.name} is taking ${hisA} tribal slave from behind. It's technically tribbing, since all ${heA}'s doing is grinding ${hisA} cunt against the market assistant's, but the poor little tribes ${womanM} is being fucked hard regardless.`);
 				} else if (V.assistant.market.relationship === "incestuous") {
@@ -277,7 +277,7 @@ globalThis.PersonalAssistantAppearance = function() {
 				} else if (V.assistant.market.relationship === "incestuous") {
 					r.push(`They're making faces at each other and giggling, but as you watch them, this degenerates rapidly into clumsy kissing, groping of each others' breasts, and finally some enthusiastic tribbing.`);
 				} else {
-					r.push(`${V.assistant.name} is giving the market assistant's avatar oral, and to go by the bespectacled ${girlM}'s gasping, is doing a good job. V.assistant.name finishes and leans back, wiping ${hisA} mouth and grinning as ${hisA} lover bends over to return the favor.`);
+					r.push(`${V.assistant.name} is giving the market assistant's avatar oral, and to go by the bespectacled ${girlM}'s gasping, is doing a good job. ${V.assistant.name} finishes and leans back, wiping ${hisA} mouth and grinning as ${hisA} lover bends over to return the favor.`);
 				}
 			} else {
 				r.push(`${HeA}'s watching you attentively, waiting for a chance to be helpful. When ${heA} sees your glance, ${HeA} smiles hopefully, sticks out ${hisA} chest a little, and turns from side to side to show off.`);
@@ -315,13 +315,13 @@ globalThis.PersonalAssistantAppearance = function() {
 				} else if (V.assistant.market.relationship === "nonconsensual") {
 					r.push(`${V.assistant.name} casts a spell on the junior avatar as you watch. The market assistant's avatar's flat belly gurgles slightly before it begins quickly swelling, not stopping until it has pinned the hapless demigoddess to the floor. ${V.assistant.name} waddles over ${hisA} immobilized partner and plants ${hisA} pregnant pussy on ${hisM} face. ${V.assistant.name} laughs powerfully at the forced oral assault from ${hisA} bursting plaything.`);
 				} else if (V.assistant.market.relationship === "incestuous") {
-					r.push(`${V.assistant.name} is especially pregnant today, and is gently tribbing with ${hisA} flat stomached ${sisterM} goddess. As they near simultaneous orgasm, ${V.assistant.name} begins rapidly transferring babies into ${hisA} ${sisterM}'s womb, giggling as ${hisA} hapless ${sisterM} swells more and more gravid. When ${heA} finishes, V.assistant.name, the smaller of the two`);
+					r.push(`${V.assistant.name} is especially pregnant today, and is gently tribbing with ${hisA} flat stomached ${sisterM} goddess. As they near simultaneous orgasm, ${V.assistant.name} begins rapidly transferring babies into ${hisA} ${sisterM}'s womb, giggling as ${hisA} hapless ${sisterM} swells more and more gravid. When ${heA} finishes, ${V.assistant.name}, the smaller of the two`);
 					if (sisterA === sisterM) {
-						r.push(`${sisterA}`);
+						r.push(`${sisterA}s,`);
 					} else {
-						r.push(`sibling`);
+						r.push(`siblings,`);
 					}
-					r.push(`s, aids ${hisA} fecund sibling to ${hisM} feet and into ${hisA} waiting arms.`);
+					r.push(`aids ${hisA} fecund sibling to ${hisM} feet and into ${hisA} waiting arms.`);
 				} else {
 					r.push(`They're making heavenly love, kissing deeply and fingering each other voluptuously. They somehow make mutual masturbation look like a deeply sacred act, occasionally breaking their kiss to look into each others' eyes.`);
 				}
@@ -436,11 +436,11 @@ globalThis.PersonalAssistantAppearance = function() {
 				} else if (V.assistant.market.relationship === "incestuous") {
 					r.push(`The fairy`);
 					if (sisterA === sisterM) {
-						r.push(`${sisterA}`);
+						r.push(`${sisterA}s`);
 					} else {
-						r.push(`sibling`);
+						r.push(`siblings`);
 					}
-					r.push(`s are lying down, each embracing the other as they languidly make out. ${V.assistant.name} slips one leg in between ${hisA} ${sisterM}'s, and the two begin rocking against one another. The two grow more and more passionate as they make love together.`);
+					r.push(`are lying down, each embracing the other as they languidly make out. ${V.assistant.name} slips one leg in between ${hisA} ${sisterM}'s, and the two begin rocking against one another. The two grow more and more passionate as they make love together.`);
 				} else {
 					r.push(`The two fairies are sitting on top of a virtual flower, finishing up their work. With that out of the way, they strip down and each take a stamen and give them a thorough licking. Once coated, they line their stamen up to the other fairy's pussy. They take a moment to hold each other's hand as they slowly slide down the stamen. The two bottom out with a moan, and pull each other into a warm embrace. The market assistant starts buzzing ${hisM} wings, the vibration causing both of them to yelp. ${V.assistant.name} grins at this new source of pleasure, locking lips with the market assistant as the two beat their wings to a rhythm only they can hear.`);
 				}
diff --git a/src/pregmod/artificialInsemination.tw b/src/pregmod/artificialInsemination.tw
index 8c33d8b0c4512331db5b198129c0b9a6189dbb89..60a5deba4c6ebaf830cffa0a5445ebd37b806816 100644
--- a/src/pregmod/artificialInsemination.tw
+++ b/src/pregmod/artificialInsemination.tw
@@ -2,7 +2,7 @@
 
 <<set $nextButton = "Back", $nextLink = "Remote Surgery", $impregnatrix = 0, _eligibility = 0, _eligibilityI = 0>>
 
-//getSlave($AS).slaveName is prepped for fertilization; now you must select a target to harvest sperm from.//
+//<<= getSlave($AS).slaveName>> is prepped for fertilization; now you must select a target to harvest sperm from.//
 
 <br><br>
 
@@ -49,4 +49,4 @@ __Select an eligible slave to serve as the semen donatrix:__
 	<br>
 	[[Use a vial of your own|Surgery Degradation][$impregnatrix = $PC, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "insemination", $PC.storedCum--]]
 	//You have enough sperm stored away to inseminate $PC.storedCum more slave<<if $PC.storedCum > 1>>s<</if>>.//
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/pregmod/eliteTakeOver.tw b/src/pregmod/eliteTakeOver.tw
index 21f3b5aa98a5bdc31a006b08ca9369252020d978..e9760094422dfc1ae160bd028a0b96eec6470ff2 100644
--- a/src/pregmod/eliteTakeOver.tw
+++ b/src/pregmod/eliteTakeOver.tw
@@ -4,7 +4,7 @@
 
 <<set _pregSurrender = 0>>
 /* preg/lobotomization check */
-You knew this day would come. Surrounding yourself with powerful people has its boons, but also poses a distinct threat. You've heard them murmuring when you enter the room, you've seen them excuse themselves from your presence, and lately they've been overtly hostile. The Societal Elite have turned on you.
+You knew this day would come. Surrounding yourself with powerful people has its boons, but also poses a distinct threat. You've heard them murmuring when you enter the room, you've seen them excuse themselves from your presence, and lately they've been overtly hostile. The Societal Elite<<if $arcologies[0].FSNeoImperialistLaw2 == 1>>, likely with the support of your ever-plotting Barons,<</if>> have turned on you.
 <br>
 You look up from your desk as the locked door to your office unseals, and a dozen individuals brazenly walk into your view.<<if _S.Bodyguard>><<setLocalPronouns _S.Bodyguard>> _S.Bodyguard.slaveName stands between you and them. A single glare from the leader of the bunch and $he backs off, eyes to the ground.<</if>>
 <br>
diff --git a/src/pregmod/geneLab.tw b/src/pregmod/geneLab.tw
index 29da4c3b1fc10ea00695940a4adc9405e2752613..cac1980a1928b9449f507dc1adbe5d21a0f5c60f 100644
--- a/src/pregmod/geneLab.tw
+++ b/src/pregmod/geneLab.tw
@@ -37,7 +37,7 @@ Genetic Modification
 		The fabricator is capable of producing treatments to permanently reverse aging.
 		<br>
 	<<elseif $cash >= 50000000>>
-		[Fund the immortality project|Gene Lab][cashX(forceNeg(50000000), "capEx"), $immortalityFormula = 1]]
+		[[Fund the immortality project|Gene Lab][cashX(forceNeg(50000000), "capEx"), $immortalityFormula = 1]]
 		//Costs <<print cashFormat(50000000)>>//
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will keep a slave at their prime physical age//
 		<br>
@@ -75,4 +75,4 @@ Genetic Harvesting
 <<elseif ($cloningSystem > 0)>>
 	The gene lab is capable of implanting a slave's genetic sequence into a blank embryo to produce a basic clone. [[Make a clone|Cloning Workaround][$donatrix = "Undecided", $receptrix = "Undecided"]]
 	<br>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/src/pregmod/personalNotes.tw b/src/pregmod/personalNotes.tw
index a85d783fc333b209572ffef62d41e2e1e4cbe5ea..7c052ef6aa571f72082c5a23608cd0ae7e8d23bc 100644
--- a/src/pregmod/personalNotes.tw
+++ b/src/pregmod/personalNotes.tw
@@ -273,7 +273,7 @@
 		<<if $dangerousPregnancy == 1 && $PC.labor != 1>>
 			<<if $PC.pregAdaptation < 500>>
 				<<set _miscarriageChance = -10>>
-				<<set _miscarriageChance += (($PC.bellyPreg/1000)-$PC.pregAdaptation)>> // this could use to not be linear 
+				<<set _miscarriageChance += (($PC.bellyPreg/1000)-$PC.pregAdaptation)>> // this could use to not be linear
 				<<if $PC.inflation > 0>>
 					<<set _miscarriageChance += 10>>
 				<</if>>
@@ -356,11 +356,11 @@
 				<</if>>
 			<</if>>
 			<<if $seeExtreme == 1>>
-				<<if _miscarriage != 1 && $PC.bellyPreg >= 100000 && $PC.geneMods.rapidCellGrowth != 1>> // If $he can't relieve the pressure that way, will $he hold? 
+				<<if _miscarriage != 1 && $PC.bellyPreg >= 100000 && $PC.geneMods.rapidCellGrowth != 1>> // If $he can't relieve the pressure that way, will $he hold?
 					<<if $PC.bellyPreg >= 500000 || $PC.wombImplant != "restraint">>
 						<<if (($PC.belly > ($PC.pregAdaptation*3200)) || $PC.bellyPreg >= 500000)>>
 							<<set _burstChance = -80>>
-							<<set _burstChance += (($PC.belly/1000)-$PC.pregAdaptation)>> // this could use to not be linear 
+							<<set _burstChance += (($PC.belly/1000)-$PC.pregAdaptation)>> // this could use to not be linear
 							<<if $PC.health.health < -20>>
 								<<set _burstChance -= ($PC.health.health)>>
 							<<elseif $PC.health.health > 80>>
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
deleted file mode 100644
index 1fd091c6899123a7e12bae52342f49276df7393d..0000000000000000000000000000000000000000
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ /dev/null
@@ -1,1285 +0,0 @@
-:: seBirthWidgets [widget nobr]
-
-<<widget "seBirthPreCheck">>
-
-<<setLocalPronouns $slaves[$i]>>
-
-<<set $humiliation = 0>>
-<<set $suddenBirth = 1>>
-<<set $seed = random(1,100)>>
-<<set $csec = 0>>
-<<set $slaveDead = 0>>
-<<set $birthed = 1>>
-<<set $birthDamage = 0>>
-<<set _newMother = 0>>
-
-/* birth complications calcs */
-<<if $slaves[$i].counter.laborCount == 0 && $slaves[$i].counter.birthsTotal == 0>>
-	<<set $birthDamage += 2>>
-	<<set _newMother = 1>>
-<</if>>
-<<if $slaves[$i].mpreg == 1>>
-	<<if $slaves[$i].anus < 2>>
-		<<set $birthDamage += 3>>
-	<</if>>
-<<else>>
-	<<if $slaves[$i].vagina < 2>>
-		<<set $birthDamage += 3>>
-	<</if>>
-	<<if $slaves[$i].vaginaLube == 0>>
-		<<set $birthDamage += 1>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].hips < 0>>
-	<<set $birthDamage += (2-$slaves[$i].hips)>>
-<</if>>
-<<if $slaves[$i].weight <= -95>>
-	<<set $birthDamage += 7>>
-<<elseif $slaves[$i].weight <= -30>>
-	<<set $birthDamage += 5>>
-<</if>>
-<<if $slaves[$i].health.condition < -20>>
-	<<set $birthDamage += (4-($slaves[$i].health.condition/10))>>
-<</if>>
-<<if $slaves[$i].health.illness >= 3>>
-	<<set $birthDamage += $slaves[$i].health.illness>>
-<</if>>
-<<if $slaves[$i].physicalAge < 6>>
-	<<set $birthDamage += 5>>
-<<elseif $slaves[$i].physicalAge < 9>>
-	<<set $birthDamage += 3>>
-<<elseif $slaves[$i].physicalAge < 13>>
-	<<set $birthDamage += 1>>
-<</if>>
-<<if $slaves[$i].health.tired > 80>>
-	<<set $birthDamage += 20>>
-<<elseif $slaves[$i].health.tired > 50>>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].muscles < -95>>
-	<<set $birthDamage += 30>>
-<<elseif $slaves[$i].muscles < -30>>
-	<<set $birthDamage += 4>>
-<<elseif $slaves[$i].muscles < -5>>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].preg >= $slaves[$i].pregData.normalBirth*1.5>> /* better get her a c-sec*/
-	<<if $slaves[$i].physicalAge < 6>>
-		<<set $birthDamage += 50>>
-	<<elseif $slaves[$i].physicalAge < 9>>
-		<<set $birthDamage += 30>>
-	<<elseif $slaves[$i].physicalAge < 13>>
-		<<set $birthDamage += 20>>
-	<</if>>
-	<<if $slaves[$i].hips < 0>>
-		<<set $birthDamage += (20-$slaves[$i].hips)>>
-	<</if>>
-<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth*1.25>>
-	<<if $slaves[$i].physicalAge < 6>>
-		<<set $birthDamage += 10>>
-	<<elseif $slaves[$i].physicalAge < 9>>
-		<<set $birthDamage += 6>>
-	<<else>>
-		<<set $birthDamage += 2>>
-	<</if>>
-	<<if $slaves[$i].hips < 0>>
-		<<set $birthDamage += (2-$slaves[$i].hips)>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].wombImplant == "restraint">>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-	<<if $slaves[$i].vaginaLube > 0>>
-		<<set $birthDamage -= $slaves[$i].vaginaLube>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].counter.laborCount > 0 || $slaves[$i].counter.birthsTotal != 0>>
-	<<set $birthDamage -= 3>>
-<</if>>
-<<if $slaves[$i].hips > 0>>
-	<<set $birthDamage -= $slaves[$i].hips>>
-<</if>>
-<<if $slaves[$i].pregAdaptation >= 1000>>
-	<<set $birthDamage -= 10>>
-<<elseif $slaves[$i].pregAdaptation >= 500>>
-	<<set $birthDamage -= 3>>
-<<elseif $slaves[$i].pregAdaptation >= 100>>
-	<<set $birthDamage -= 1>>
-<</if>>
-<<if $slaves[$i].curatives > 0>>
-	<<set $birthDamage -= 3>>
-<</if>>
-<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-	<<set $birthDamage -= 5>>
-<</if>>
-<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
-	<<set $birthDamage = 0>>
-<<elseif $slaves[$i].intelligenceImplant >= 15>>
-	<<set $birthDamage -= 2>>
-<</if>>
-
-/* early birth calcs */
-<<if $slaves[$i].induce == 1>>
-	<<set $suddenBirth += 20>>
-<</if>>
-<<if !canMove($slaves[$i])>>
-	<<set $suddenBirth += 10>>
-<<elseif !canWalk($slaves[$i])>>
-	<<if $slaves[$i].rules.mobility == "permissive">>
-		<<set $suddenBirth += 3>>
-	<<else>>
-		<<set $suddenBirth += 5>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].fetish == "mindbroken">>
-	<<set $suddenBirth += 18>>
-<</if>>
-<<if $slaves[$i].fetish == "humiliation">>
-	<<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>>
-<</if>>
-<<if $slaves[$i].weight > 190>>
-	<<set $suddenBirth += 10>>
-<<elseif $slaves[$i].weight > 160>>
-	<<set $suddenBirth += 4>>
-<<elseif $slaves[$i].weight > 130>>
-	<<set $suddenBirth += 2>>
-<<elseif $slaves[$i].weight > 95>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].muscles < -95>>
-	<<set $suddenBirth += 20>>
-<<elseif $slaves[$i].muscles < -30>>
-	<<set $suddenBirth += 4>>
-<<elseif $slaves[$i].muscles < -5>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].pregAdaptation >= 1000>>
-	<<set $suddenBirth += 20>> /* baby's ready, giving birth right now */
-<<elseif $slaves[$i].pregAdaptation >= 500>>
-	<<set $suddenBirth += 3>>
-<<elseif $slaves[$i].pregAdaptation >= 100>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].health.condition < 0>>
-	<<set $suddenBirth += 2>>
-<</if>>
-<<if $slaves[$i].heels == 1>>
-	<<set $suddenBirth += 3>>
-<</if>>
-<<if $slaves[$i].boobs > 40000>>
-	<<set $suddenBirth += 3>>
-<<elseif $slaves[$i].boobs > 20000>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].butt > 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].dick >= 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].balls >= 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].shoes == "extreme heels">>
-	<<set $suddenBirth += 2>>
-<</if>>
-<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-	<<set $suddenBirth += 1*$slaves[$i].counter.birthsTotal>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-	<<if $slaves[$i].vagina > 2>>
-		<<set $suddenBirth += 2>>
-	<</if>>
-	<<if $slaves[$i].vaginalAccessory != "none" || $slaves[$i].chastityVagina == 1>>
-		<<set $suddenBirth -= 20>>
-	<</if>>
-<</if>>
-<<set $suddenBirth -= Math.trunc(($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)/10)>>
-/* end calcs */
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthPreScene">>
-
-/* 000-250-006 */
-<<if $seeImages && $seeReportImages>>
-<div class="imageRef medImg">
-	<<= SlaveArt($slaves[$i], 0, 0)>>
-</div>
-<</if>>
-/* 000-250-006 */
-<<if $slaves[$i].fuckdoll == 0>>
-	<<if $slaves[$i].broodmother == 0 || $slaves[$i].broodmotherCountDown == 1>>
-		<<if $slaves[$i].assignment != "work in the dairy">>
-			<<if $universalRulesCSec == 1 || ($slaves[$i].mpreg == 0 && $slaves[$i].vagina < 0)>>
-				<<includeDOM birth($slaves[$i])>>
-			<<else>>
-				<<if hasAnyLegs($slaves[$i])>> /* legless slaves are always carried in time */
-					<<if (random(1,20) > $suddenBirth) || ($universalRulesBirthing == 1)>> /* did she make it to her birthing area? */
-						Feeling childbirth approaching, <<if !canWalk($slaves[$i])>>$slaves[$i].slaveName is helped<<else>>$slaves[$i].slaveName makes $his way<</if>> to $his prepared birthing area.
-						<<includeDOM birth($slaves[$i])>>
-					<<else>> /* did not make it to birthing area */
-						<<if (($birthDamage > 15 && random(1,100) > 50) || ($birthDamage > 20)) && ($slaves[$i].assignment != "be the Nurse" && $slaves[$i].assignment != "get treatment in the clinic")>>
-							<<includeDOM deadlyBirth($slaves[$i], _curBabies)>>
-						<<else>>
-							<<includeDOM suddenBirth($slaves[$i])>>
-						<</if>> /* closes deadly birth */
-					<</if>> /* closes reg birth */
-				<<else>> /* made it to birthing area */
-					With childbirth approaching, $slaves[$i].slaveName is carried to $his prepared birthing area.
-					<<includeDOM ampBirth($slaves[$i])>>
-				<</if>> /* close amp birth */
-			<</if>> /* close always c-sec */
-		<<else>>
-			<br>
-			<<if $dairyRestraintsSetting > 1 && $slaves[$i].career == "a bioreactor">>
-				As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $his laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $his <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $his empty womb with fresh cum, where it will remain until $he is pregnant once more.<</if>> All these events are meaningless to $him, as $his consciousness has long since been snuffed out.
-			<<elseif $dairyRestraintsSetting > 1>>
-				<<if $slaves[$i].fetish == "mindbroken">>
-					As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $his laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $his <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $his empty womb with fresh cum, where it will remain until $he is pregnant once more.<</if>> $He doesn't care about any of this, as the only thoughts left in $his empty mind revolve around the sensations in $his crotch and breasts.
-				<<else>>
-					As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $his laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $He struggles in $his bindings, attempting to break free in order to birth $his coming child, but $his efforts are pointless. <<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>Soon $he is convulsing with powerful orgasms while giving birth, restrained, into the waiting holder.<<else>>$He is forced to give birth, restrained, into the waiting holder.<</if>> Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $his vagina.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $his empty womb with fresh cum, where it will remain until $he is pregnant once more. $slaves[$i].slaveName moans, partially with pleasure and partially with defeat, under the growing pressure within $his body. Tears stream down $his face as <<if $slaves[$i].counter.births > 0>>$he is forcibly impregnated once more<<else>>$he attempts to shift in $his restraints to peek around $his swollen breasts, but $he is too well secured. $He'll realize what is happening when $his belly grows large enough to brush against $his udders as the milker sucks from them<<if $slaves[$i].dick > 0>> or $his dick begins rubbing its underside<</if>><</if>>.<</if>> $His mind slips slightly more as $he focuses on $his fate as nothing more than an animal destined to be milked and bare offspring until $his body gives out.
-					<<set $slaves[$i].trust -= 10>>
-					<<set $slaves[$i].devotion -= 10>>
-				<</if>>
-			<<else>>
-				<<if $slaves[$i].fetish == "mindbroken">>
-					While getting milked, $slaves[$i].slaveName's water breaks. $He shows little interest and continues kneading $his breasts. Instinctively $he begins to push out $his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $He pays no heed to $his child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall, instead focusing entirely on draining $his breasts.
-				<<elseif $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-					While getting milked, $slaves[$i].slaveName's water breaks, a moment she anxiously waited for<<if $slaves[$i].counter.birthsTotal > 0>> no matter how many times it happened before.<</if>> $He begins to push out $his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>> orgasming during the whole process. By the time $he regains $his senses $his child<<if $slaves[$i].pregType > 1>>ren<</if>> have already been removed from the milking stall.
-				<<else>>
-					While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $him now so<<else>> but<</if>> $he continues enjoying $his milking. $He begins to push out $his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $He catches <<if canSee($slaves[$i])>>a glimpse<<elseif canHear($slaves[$i])>>the sound<<else>>the feeling<</if>> of $his child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall before returning $his focus to draining $his breasts.
-				<</if>>
-			<</if>>
-		<</if>> /* close cow birth */
-	<<else>>
-		<<if !hasAnyLegs($slaves[$i])>>
-			With childbirth approaching, $slaves[$i].slaveName is carried to $his prepared birthing area.
-			<<includeDOM ampBirth($slaves[$i])>>
-		<<elseif $slaves[$i].broodmother == 1>>
-			<<includeDOM broodmotherBirth($slaves[$i])>>
-		<<else>>
-			<<includeDOM hyperBroodmotherBirth($slaves[$i])>>
-		<</if>>
-	<</if>> /* close broodmother birth */
-<<else>> /* Fuckdoll birth */
-	<<if $universalRulesCSec == 1 || ($slaves[$i].mpreg == 0 && $slaves[$i].vagina < 0)>>
-		<<set $csec = 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
-	<<elseif $universalRulesBirthing == 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
-	<<elseif $birthDamage > 10>>
-		<<set $csec = 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and to be cleaned up.
-	<<else>>
-		$slaves[$i].slaveName's suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its child<<if $slaves[$i].pregType > 1>>ren<</if>> into the world and sit back to enjoy yourself as its <<if $slaves[$i].pregType > 1>>first<</if>> baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning.
-	<</if>>
-	It barely comprehends what has happened, nor will it realize when another child is conceived in it.
-<</if>> /* close Fuckdoll birth */
-
-/* end of 2.*/
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthCalc">>
-
-<<set $slaves[$i].pregControl = "none">>
-<<set _beforeSize = WombGetVolume($slaves[$i])>>
-<<if $slaves[$i].broodmother > 0>>
-	<<set $slaves[$i].curBabies = WombBirth($slaves[$i], 37)>> /*broodmothers - give birth for all 37+ week fetuses.*/
-<<elseif $slaves[$i].prematureBirth == 1>>
-	<<set $slaves[$i].curBabies = WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth/1.5)>> /*around 22 weeks for human*/
-<<else>>
-	<<set $slaves[$i].curBabies = WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth)>> /*Normal human pregnancy - 34 week is minimal gestation time for live birth.*/
-<</if>>
-<<set $slaves[$i].curStillBirth = 0 >>
-
-<<set _curBabies = $slaves[$i].curBabies.length>> /*just to improve speed and usability here.*/
-/*<br>TEST curBabies: _curBabies<br>*/
-
-<<set $slaves[$i].counter.births += _curBabies>>
-<<set $slaves[$i].counter.birthsTotal += _curBabies>>
-<<set $birthsTotal += _curBabies>>
-
-<<for _cb = 0; _cb < $slaves[$i].curBabies.length; _cb++>>
-	<<if $slaves[$i].curBabies[_cb].fatherID == -1>>
-		<<set $PC.counter.slavesFathered++>>
-	<<elseif $slaves[$i].curBabies[_cb].fatherID > 0>>
-		<<set _babyDaddy = findFather($slaves[$i].curBabies[_cb].fatherID)>>
-		<<if def _babyDaddy>>
-			<<set _adjust = _babyDaddy.counter.slavesFathered++>>
-			<<set adjustFatherProperty(_babyDaddy, "slavesFathered", _adjust)>>
-		<</if>>
-	<</if>>
-<</for>>
-
-/* Here support for partial birth cases but if slaves still NOT have broodmother implant. Right now remaining babies will be lost, need to add research option for selective births. It should control labor and stop it after ready to birth babies out. Should be Repopulation FS research before broodmothers (their implant obviously have it as a part of functional). */
-<<if $slaves[$i].broodmother == 0>>
-	<<if $slaves[$i].prematureBirth == 1>> /* emergency birth, anything less than 23 weeks of age is not making it through this */
-		<<set $slaves[$i].curStillBirth = $slaves[$i].womb.length>>
-		<<set WombFlush($slaves[$i])>>
-	<<elseif $surgeryUpgrade == 1>>
-		/* if true - need nothing, birthed babies already in $slaves[$i].curBabies, stillbirth is 0.*/
-	<<else>>
-		<<set $slaves[$i].curStillBirth = $slaves[$i].womb.length>>
-		<<set WombFlush($slaves[$i])>> /* cleaning rest of superfetation pregnancy if no tech for safe partial birth */
-	<</if>>
-<</if>>
-
-<<set _afterSize = WombGetVolume($slaves[$i])>>
-<<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid divide by zero error.*/
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthMainScene">>
-<<set _curBabies = $slaves[$i].curBabies.length>>
-<<set _curStill = $slaves[$i].curStillBirth>>
-/* -------- cow birth variant ---------------------------------------------------------------------*/
-<br>
-<br>
-/* diffSize used for check result of partial birth size changes - if it = 2 then womb lost half of it's original size after partial birth, if it = 1 - no size lost. (We get this value as result of dividing of original womb size by after birth size)
-This descriptions can be expanded with more outcomes later. But it's not practical to check values above 5-10 - it become too affected by actual value of womb size.
-*/
-<<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting > 0>>
-	As a human cow, $he @@.orange;gave birth@@ <<if $slaves[$i].prematureBirth == 1>>@@.red;prematurely@@<</if>>
-	<<if $diffSize < 1.15>>
-		but $his overfilled womb barely lost any size. $His body gave life
-	<<elseif $diffSize < 1.3>>
-		but $his stomach barely shrank at all. $His body gave life
-	<</if>>
-
-	<<if _curBabies < 1>>
-		to nothing, as it was a stillbirth. /* syntax wise this has problems. Will likely need to be reworked. */
-	<<elseif _curBabies == 1>>
-		to a single calf.
-	<<elseif _curBabies >= 40>>
-		to a massive brood of _curBabies calves.
-	<<elseif _curBabies >= 20>>
-		to a brood of _curBabies calves.
-	<<elseif _curBabies >= 10>>
-		to a squirming pile of _curBabies calves.
-	<<else>>
-		to calf <<print pregNumberName(_curBabies, 2)>>.
-	<</if>>
-	<<if _curStill > 0 && _curBabies > 0>>
-		An additional _curStill <<if _curStill == 1>> was<<else>>were<</if>> unfortunately stillborn.
-	<</if>>
-
-<<else>> /* ---------- normal birth variant. -------------------------------------------------------------*/
-
-	<<set _fathers = []>>
-	<<for _seb = 0; _seb < $slaves[$i].curBabies.length; _seb++>>
-		<<if $slaves[$i].curBabies[_seb].fatherID == 0>>
-			<<set _fathers.push("an unknown father")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -1>>
-			<<if $PC.dick != 0>>
-				<<set _fathers.push("your magnificent dick")>>
-			<<else>>
-				<<set _fathers.push("your powerful sperm")>>
-			<</if>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -2>>
-			<<set _fathers.push("your arcology's eager citizens")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -3>>
-			<<set _fathers.push("your former Master's potent seed")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -4>>
-			<<set _fathers.push("another arcology owner")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -5>>
-			<<set _fathers.push("one of your clientele")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -6>>
-			<<set _fathers.push("the Societal Elite")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -7>>
-			<<set _fathers.push("your own design")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -8>>
-			<<set _fathers.push("one of your animals")>>
-		<<elseif $slaves[$i].curBabies[_seb].fatherID == -9>>
-			<<set _fathers.push("a Futanari Sister")>>
-		<<else>>
-			<<set _babyDaddy = findFather($slaves[$i].curBabies[_seb].fatherID)>>
-			<<if def _babyDaddy>>
-				<<if _babyDaddy.ID == $slaves[$i].ID>>
-					<<set _fathers.push(String($his + " own sperm"))>>
-				<<elseif _babyDaddy.dick == 0>>
-					<<set _fathers.push(String(_babyDaddy.slaveName+ "'s potent seed"))>>
-				<<else>>
-					<<set _fathers.push(String(_babyDaddy.slaveName+ "'s virile cock and balls"))>>
-				<</if>>
-			<<else>>
-				<<set _fathers.push("an unknown father")>>
-			<</if>>
-		<</if>>
-	<</for>>
-	<<set _fathersReduced = removeDuplicates(_fathers)>>
-
-	<<if $csec == 1>>
-		$He was given @@.orange;a cesarean section@@ due to health concerns.<br><br>
-		From $his womb,
-	<<else>>
-		$He @@.orange;gave birth@@<<if $slaves[$i].prematureBirth == 1>> @@.red;prematurely@@<</if>>
-		<<if $diffSize < 1.15>>
-			but $his stomach barely shrank at all. $His body gave life to
-		<<elseif $diffSize < 1.3>>
-			but $his overfilled womb barely lost any size. $His body gave life to
-		<<else>>
-			to
-		<</if>>
-	<</if>>
-
-	<<if _curBabies < 1>>
-		nothing, as it was a stillbirth.
-	<<elseif _curBabies == 1>>
-		a single baby,
-	<<elseif _curBabies >= 40>>
-		a massive brood of _curBabies babies,
-	<<elseif _curBabies >= 20>>
-		a brood of _curBabies babies,
-	<<elseif _curBabies >= 10>>
-		a squirming pile of _curBabies babies,
-	<<else>>
-		<<print pregNumberName(_curBabies, 2)>>,
-	<</if>>
-	<<if _curBabies > 0>>
-		created by
-		<<if _fathersReduced.length > 2>>
-			<<for _seb = 0; _seb < _fathersReduced.length; _seb++>>
-				<<if _seb < _fathersReduced.length-1>>
-					_fathersReduced[_seb],
-				<<else>>
-					and _fathersReduced[_seb]<<if $csec == 1>>, entered the world<</if>>.
-				<</if>>
-			<</for>>
-		<<elseif _fathersReduced.length > 1>>
-			_fathersReduced[0] and _fathersReduced[1]<<if $csec == 1>>, entered the world<</if>>.
-		<<else>>
-			_fathersReduced[0]<<if $csec == 1>>, entered the world<</if>>.
-		<</if>>
-	<</if>>
-	<<if _curStill > 0 && _curBabies > 0>>
-		An additional _curStill <<if _curStill == 1>> was<<else>>were<</if>> unfortunately stillborn.
-	<</if>>
-	<<if $csec == 1 && $slaves[$i].wombImplant == "restraint">>
-		The uterine support mesh built into $his womb was irreversibly damaged and had to be carefully extracted. Such an invasive surgery carried @@.red;major health complications.@@
-		<<set $slaves[$i].wombImplant = "none">>
-		<<run healthDamage($slaves[$i], 30)>>
-	<</if>>
-
-<</if>>
-
-/* ---- Postbirth reactions, body -------------------------------------------------------------------------------------------*/
-
-<<if $csec != 1>> /*all this block only if no c'section used.*/
-
-	<<if $slaves[$i].broodmother > 0 || $slaves[$i].womb.length > 0>> /*Now this block shown only for broodmothers or partial birth. They birth only ready children, so _curBabies is effective to see how many birthed this time.*/
-		<br>
-		<<if $diffSize > 1.5 && _curBabies >= 80 >> /*only show if belly lost at least 1/4 of original size.*/
-			<br>
-			After an entire day of labor and birth, $his belly sags heavily.
-		<<elseif $diffSize > 1.5 && _curBabies >= 40>>
-			<br>
-			After half a day of labor and birth, $his belly sags softly.
-		<<elseif $diffSize > 1.5 && _curBabies >= 20>>
-			<br>
-			After several hours of labor and birth, $his belly sags softly.
-		<<elseif $diffSize > 1.5 && _curBabies >= 10>>
-			<br>
-			After few hours of labor and birth, $his belly sags softly.
-		<<elseif $diffSize > 1.5>>
-			<br>
-			After labor and birth, $his belly sags softly.
-		<</if>>
-	<<else>> /* this was intended for normal birth to draw attention to how long it takes to pass that many children as well as how deflated she'll be after the fact. */
-		<<if $slaves[$i].pregType >= 80>>
-			After an entire day of labor and birth, $his belly sags heavily.
-		<<elseif $slaves[$i].pregType >= 40>>
-			After half a day of labor and birth, $his belly sags emptily.
-		<<elseif $slaves[$i].pregType >= 20>>
-			After several hours of labor and birth, $his belly sags softly.
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].mpreg == 0 && $slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>>
-		Since $he was a virgin, giving birth was a @@.red;terribly painful@@ experience.
-		<<if $slaves[$i].fetish != "mindbroken">>
-			<br><br>
-			<<if ($slaves[$i].fetish == "masochist")>>
-				<<if $slaves[$i].fetishKnown == 0>>
-					$He seems to have orgasmed several times during the experience and appears to @@.lightcoral;really like pain.@@
-					<<set $slaves[$i].fetishKnown = 1>>
-				<<else>>
-					However, due to $his masochistic streak, $he @@.hotpink;greatly enjoyed@@ said experience.
-				<</if>>
-				<<set $slaves[$i].devotion += 2>>
-			<<elseif $slaves[$i].devotion > 70>>
-				Being allowed to give birth in such a state @@.mediumorchid;tests $his devotion@@ and @@.gold;devastates $his trust@@ in you.
-				<<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 25>>
-			<<else>>
-				$He @@.mediumorchid;despises@@ you for taking $his virginity in such a @@.gold;horrifying@@ way.
-				<<set $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>>
-			<</if>>
-		<</if>>
-		<<run healthDamage($slaves[$i], 10)>>
-	<</if>>
-	<<if ($slaves[$i].hips < -1)>>
-		<br><br>
-		$He had exceedingly narrow hips, completely unsuitable for childbirth. As $he struggled on $his <<if _curBabies > 1>>first<</if>> child, $his pelvic bone strained under the pressure until it could no longer hold together and @@.red;agonizingly snapped.@@
-		<<if $slaves[$i].fetish != "mindbroken">>
-			<<if ($slaves[$i].fetish == "masochist")>>
-				<<if $slaves[$i].fetishKnown == 0>>What would have made most girls blackout from pain sent $him into the lewdest orgasm you've seen today. $He @@.lightcoral;must get off to pain.@@.<<set $slaves[$i].fetishKnown = 1>><<else>> $He claims to have never climaxed so hard and @@.hotpink;wishes $his hips could have stayed that narrow for next time.@@<</if>>
-				<<set $slaves[$i].devotion += 5>>
-			<<elseif $slaves[$i].devotion > 70>>
-				When $he finally comes to after blacking out, $his pelvis has already been patched up. $He is just glad that $he managed to finish giving birth despite the hindrance.
-			<<else>>
-				When $he finally comes to after blacking out, $his pelvis has already been patched up. $He @@.mediumorchid;loathes you@@ for forcing $his body to undergo such a painful experience and @@.gold;fears@@ what horror you have planned next.
-				<<set $slaves[$i].devotion -= 25, $slaves[$i].trust -= 25>>
-			<</if>>
-		<<else>>
-			It only hurt for an instant and a second later was promptly forgotten. To $him, $his hips were always this wide.
-		<</if>>
-		$His pelvis has been forced into a @@.lime;more feminine@@ shape.<<if $slaves[$i].hipsImplant > 0>> This has also undone any surgical narrowing $he has undergone.<</if>>
-		<<run healthDamage($slaves[$i], 20)>>
-		<<set $slaves[$i].hips = 0, $slaves[$i].hipsImplant = 0>>
-	<</if>>
-	<br><br>
-	<<if $slaves[$i].mpreg == 1>>
-		<<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */
-			Childbirth has @@.lime;has torn $him a gaping anus.@@
-		<<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */
-			Childbirth has @@.lime;ruined $his virgin ass.@@
-		<<elseif ($slaves[$i].anus == 1)>>
-			Childbirth has @@.lime;greatly stretched out $his ass.@@
-		<<elseif ($slaves[$i].anus == 2)>>
-			Childbirth has @@.lime;stretched out $his ass.@@
-		<<elseif ($slaves[$i].anus == 3)>>
-			$His ass was loose enough to not be stretched by childbirth.
-		<<elseif ($slaves[$i].anus < 6)>>
-			Childbirth stood no chance of stretching $his gaping ass.
-		<<elseif ($slaves[$i].anus >= 10)>>
-			$His child could barely stretch $his cavernous ass.
-		<<else>>
-			Childbirth has @@.lime;stretched out $his ass.@@
-		<</if>>
-	<<else>>
-		<<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */
-			Childbirth has @@.lime;has torn $him a gaping vagina.@@
-		<<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology (or maybe it's just surgery?) */
-			Childbirth has @@.lime;ruined $his virgin vagina.@@
-		<<elseif ($slaves[$i].vagina == 1)>>
-			Childbirth has @@.lime;greatly stretched out $his vagina.@@
-		<<elseif ($slaves[$i].vagina == 2)>>
-			Childbirth has @@.lime;stretched out $his vagina.@@
-		<<elseif ($slaves[$i].vagina == 3)>>
-			$His vagina was loose enough to not be stretched by childbirth.
-		<<elseif ($slaves[$i].vagina < 6)>>
-			Childbirth stood no chance of stretching $his gaping vagina.
-		<<elseif ($slaves[$i].vagina >= 10)>>
-			$His child could barely stretch $his cavernous vagina.
-		<<else>>
-			Childbirth has @@.lime;stretched out $his vagina.@@
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].mpreg == 1>>
-			/* Childbirth has @@.lime;stretched out $his anus.@@ //no need for description now */
-		<<if ($dairyPregSetting > 1) && ($slaves[$i].anus < 4)>>
-			<<set $slaves[$i].anus += 1>>
-		<<elseif ($slaves[$i].anus < 3)>>
-			<<set $slaves[$i].anus += 1>>
-		<</if>>
-	<<else>>
-			/* Childbirth has @@.lime;stretched out $his vagina.@@ //no need for description now */
-		<<if ($dairyPregSetting > 1) && ($slaves[$i].vagina < 4)>>
-			<<set $slaves[$i].vagina += 1>>
-		<<elseif ($slaves[$i].vagina < 3)>>
-			<<set $slaves[$i].vagina += 1>>
-		<</if>>
-	<</if>>
-
-<<else>>
-	<br><br>
-	Since $his <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@.lime;it retained its tightness.@@
-<</if>>
-
-/* ------ Postbirth reactions, mother experience ----------------------------------------------------------------------------- */
-
-	/* I think all this reactions should be showed only if no c'section used too. Setting it up for just in case: */
-<<if $csec == 0 && $slaves[$i].assignment != "work in the dairy">> /*if not desired, this check can be easily removed or deactivated with condition set to true.*/
-	<br>
-	<<if _newMother == 1>>
-		<br>
-		$His inexperience @@.red;complicated $his first birth.@@
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].mpreg == 1>>
-		<<if $slaves[$i].anus < 2>>
-			<br>
-			$His tight ass @@.red;hindered $his <<if _curBabies > 1>>babies<<else>>baby's<</if>> birth.@@
-		<</if>>
-	<<else>>
-		<<if $slaves[$i].vagina < 2>>
-			<br>
-			$His tight vagina @@.red;hindered $his <<if _curBabies > 1>>babies<<else>>baby's<</if>> birth.@@
-		<</if>>
-		<<if $slaves[$i].vaginaLube == 0>>
-			<br>
-			$His dry vagina made pushing $his <<if _curBabies > 1>>children<<else>>child<</if>> out @@.red;painful.@@
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].hips < 0>>
-		<br>
-		$His narrow hips made birth @@.red;troublesome.@@
-	<</if>>
-	<<if $slaves[$i].weight < -95>>
-		<br>
-		$His very thin body @@.red;was nearly incapable of birthing $his <<if _curBabies > 1>>children<<else>>child<</if>>.@@
-		<<set _compoundCondition = 1>>
-	<<elseif $slaves[$i].weight <= -30>>
-		<br>
-		$His thin body was @@.red;ill-suited $his childbirth.@@
-	<</if>>
-	<<if $slaves[$i].health.condition < -20>>
-		<br>
-		$His poor health made laboring @@.red;exhausting.@@
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].health.illness >= 3>>
-		$His ongoing illness @@.red;already sapped most of $his strength.@@
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].physicalAge < 6>>
-		<br>
-		$His very young body was @@.red;not designed to be able pass a baby.@@
-	<<elseif $slaves[$i].physicalAge < 9>>
-		<br>
-		$His young body had @@.red;a lot of trouble@@ birthing $his <<if _curBabies > 1>>babies<<else>>baby<</if>>.
-	<<elseif $slaves[$i].physicalAge < 13>>
-		<br>
-		$His young body had @@.red;trouble birthing@@ $his <<if _curBabies > 1>>babies<<else>>baby<</if>>.
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].health.tired > 80>>
-		<br>
-		$He was thoroughly exhausted to begin with; $he @@.red;lacked the energy to push at all.@@
-		<<set _compoundCondition = 1>>
-	<<elseif $slaves[$i].health.tired > 50>>
-		<br>
-		$He was so tired, $he @@.red;lacked the energy to effectively push.@@
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].muscles < -95>>
-		<br>
-		$He tried and tried but $his frail body @@.red;could not push $his <<if _curBabies > 1>>children<<else>>child<</if>> out.@@
-		<<set _compoundCondition = 1>>
-	<<elseif $slaves[$i].muscles < -30>>
-		<br>
-		$His very weak body @@.red;barely managed to push@@ out $his <<if _curBabies > 1>>children<<else>>child<</if>>.
-		<<set _compoundCondition = 1>>
-	<<elseif $slaves[$i].muscles < -5>>
-		<br>
-		$His weak body @@.red;struggled to push@@ out $his <<if _curBabies > 1>>children<<else>>child<</if>>.
-	<</if>>
-	<<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth*1.25>>
-		<br>
-		$His <<if _curBabies > 1>>children<<else>>child<</if>> had extra time to grow @@.red;greatly complicating childbirth.@@
-		<<set _compoundCondition = 1>>
-	<</if>>
-	<<if $slaves[$i].wombImplant == "restraint">>
-		$His support implant @@.red;weakens $his contractions@@ and inhibits $his womb's ability to give birth.
-	<</if>>
-	<<if (($slaves[$i].vagina >= 2 || $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) || _newMother == 0 || $slaves[$i].hips > 0 || (setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95) || $slaves[$i].intelligenceImplant >= 15 || $slaves[$i].pregAdaptation >= 100>>
-		<br>However:
-		<<if $slaves[$i].mpreg == 1>>
-			<<if $slaves[$i].anus >= 2>>
-				<br>
-				$His @@.green;loose ass@@ made birthing $his <<if _curBabies > 1>>children<<else>>child<</if>> easier.
-			<</if>>
-		<<else>>
-			<<if $slaves[$i].vagina >= 2>>
-				<br>
-				$His @@.green;loose vagina@@ made birthing $his <<if _curBabies > 1>>children<<else>>child<</if>> easier.
-			<</if>>
-			<<if $slaves[$i].vaginaLube > 0>>
-				<br>
-				$His @@.green;moist vagina@@ hastened $his <<if _curBabies > 1>>children's<<else>>child's<</if>> birth.
-			<</if>>
-		<</if>>
-		<<if _newMother == 0>>
-			<br>
-			$He has @@.green;given birth before,@@ so $he knows just what to do.
-		<</if>>
-		<<if $slaves[$i].hips > 0>>
-			<br>
-			$His @@.green;wide hips@@ greatly aided childbirth.
-		<</if>>
-		<<if $slaves[$i].pregAdaptation >= 1000>>
-			<br>
-			$His body has @@.green;completely adapted to pregnancy;@@ when it is time to give birth, that baby is coming out fast.
-		<<elseif $slaves[$i].pregAdaptation >= 500>>
-			<br>
-			$His body is @@.green;highly adapted to bearing life@@ and birth is no small part of that.
-		<<elseif $slaves[$i].pregAdaptation >= 100>>
-			<br>
-			$His body has @@.green;become quite adept at bearing children,@@ birth included.
-		<</if>>
-		<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
-			<br>
-			Thanks to $his @@.green;previous career,@@ childbirth went smoothly.
-		<<elseif $slaves[$i].intelligenceImplant >= 15>>
-			<br>
-			$He was @@.green;taught how to handle birth@@ in class.
-		<</if>>
-		<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-			<br>
-			<<if $geneticMappingUpgrade >= 1>>
-				$His hypersensitive uterus made birth @@.green;a very pleasant experience,@@ distracting from the pain.
-			<<else>>
-				$He oddly climaxed multiple times during birth, @@.green;keeping $his mind off the pain.@@
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-/*----- Body/mother resume -------------------------*/
-<br>
-<br>
-<<if $slaves[$i].assignment != "work in the dairy" && $csec == 0>> /* && $slaves[$i].broodmother == 0 // removed - broodmother have sensations too */
-All in all,
-	<<if $birthDamage > 15>>
-		childbirth was @@.red;horrifically difficult for $him and nearly claimed $his life.@@
-	<<elseif $birthDamage > 10>>
-		childbirth was extremely difficult for $him and @@.red;greatly damaged $his health.@@
-	<<elseif $birthDamage > 5>>
-		childbirth was difficult for $him and @@.red;damaged $his health.@@
-	<<elseif $birthDamage > 0>>
-		childbirth was painful for $him, though not abnormally so, and @@.red;damaged $his health.@@
-	<<else>>
-		childbirth was @@.green;no problem@@ for $him.
-	<</if>>
-	<<if $birthDamage > 0>>
-		<<run healthDamage($slaves[$i], Math.round(($birthDamage/2)*10))>>
-		<<set $slaves[$i].health.tired += Math.round(($birthDamage/2)*10)>>
-		<<if $birthDamage > 5 && _compoundCondition == 1 && _curBabies > 1>>
-			Or it would have been, were $he only having one. With each additional child that needed to be birthed, @@.red;the damage to $his health was compounded.@@
-			<<run healthDamage($slaves[$i], _curBabies)>>
-			<<set $slaves[$i].health.tired += _curBabies * 5>>
-		<</if>>
-		<<set $slaves[$i].health.tired = Math.clamp($slaves[$i].health.tired, 0, 100)>>
-	<<else>>
-		<<set $slaves[$i].health.tired = Math.clamp($slaves[$i].health.tired + 10, 0, 100)>>
-	<</if>>
-	<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-		Not only that, but @@.green;the entire process was extremely pleasurable for $him@@<<if _curBabies > 1>>, with orgasms growing more powerful with each baby $he brought to the world<</if>>. $He can't wait to be impregnated and give birth again<<if $birthDamage > 10>>, despite the complications<</if>>,
-		<<set $slaves[$i].energy += _curBabies>>
-		<<set $slaves[$i].need -= _curBabies>>
-		<<if $slaves[$i].sexualFlaw == "breeder">>
-			since for $him it is the pinnacle of $his existence.
-		<<else>>
-			<<if $slaves[$i].fetish == "pregnancy">>
-				<<if $slaves[$i].fetishStrength <= 60>>
-					having had $his @@.lightcoral;pregnancy fetish deepen from the experience.@@
-					<<set $slaves[$i].fetishStrength += _curBabies>>
-				<<else>>
-					having had @@.lightcoral;$his pregnancy fetish deepen into obsession.@@
-					<<set $slaves[$i].sexualFlaw = "breeder">>
-					<<set $slaves[$i].fetishStrength = 100>>
-				<</if>>
-			<<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>>
-				@@.lightcoral;having found true pleasure in reproduction.@@
-				<<set $slaves[$i].fetish = "pregnancy">>
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-/* this needs a tally of how many babies where lost due to underdevelopment instead of relying off a check */
-<<if $surgeryUpgrade != 1 && $slaves[$i].curStillBirth > 0>>
-	<br>
-	It's possible that @@.red;having advanced equipment@@ in the remote surgery could have prevented the loss of $his $slaves[$i].curStillBirth unborn child<<if $slaves[$i].curStillBirth > 1>>ren<</if>>.
-	<br>
-<</if>>
-
-/* ----- Postbirth reactions, mind ------------------------------------------------------------------------------------------- */
-
-<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-	<<if _curStill > 0>>
-		<br><br>
-		/*Here should be descriptions of reactions from losing some of babies, need tweak, only draft for now*/
-		<<if $slaves[$i].sexualFlaw == "breeder">>
-			$He is @@.mediumorchid;filled with violent, all-consuming hatred@@ at $himself for failing $his unborn and you for allowing this to happen.
-			<<if _curStill > 4>>
-				The loss of so many children at once @@.red;shatters the distraught breeder's mind.@@
-				<<set $slaves[$i].fetish = "mindbroken", $slaves[$i].behavioralQuirk = "none", $slaves[$i].behavioralFlaw = "none", $slaves[$i].sexualQuirk = "none", $slaves[$i].sexualFlaw = "none", $slaves[$i].devotion = 0, $slaves[$i].trust = 0>>
-			<<else>>
-				$He cares little for what punishment awaits $his actions.
-				<<set $slaves[$i].devotion -= 25*_curStill>>
-			<</if>>
-		<<elseif $slaves[$i].devotion > 80>>
-			$He @@.mediumorchid;accepts with grief@@ your right to use $his body as you see fit, even if it allow $his unborn to die in the process.
-			<<set $slaves[$i].devotion -= 10>>
-		<<elseif $slaves[$i].devotion > 20>>
-			$He @@.mediumorchid;hates@@ you for using $his body to bear children to the extent that it cost some their lives.
-			<<set $slaves[$i].devotion -= 20>>
-		<<else>>
-			$He @@.mediumorchid;curses@@ you for using $him as a breeder toy and forcing $him to go through such a doomed pregnancy.
-			<<set $slaves[$i].devotion -= 30>>
-		<</if>>
-	<<else>>
-		<<if ($slaves[$i].devotion) < 20 && (($week-$slaves[$i].weekAcquired-$slaves[$i].pregWeek) > 0)>>
-			<br><br>
-			$He @@.mediumorchid;despises@@ you for using $him as a breeder.
-			<<set $slaves[$i].devotion -= 10>>
-		<</if>>
-		<<if $slaves[$i].pregSource == -1>>
-			<<if $slaves[$i].devotion <= 20 && $slaves[$i].weekAcquired > 0>>
-				<br>
-				$He @@.mediumorchid;hates@@ you for using $his body to bear your children.
-				<<set $slaves[$i].devotion -= 10>>
-			<<elseif $slaves[$i].devotion > 50>>
-				<br>
-				<<print $He>>'s @@.hotpink;so proud@@ to have successfully carried children for you.
-				<<set $slaves[$i].devotion += 3>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if $humiliation == 1>>
-		<br><br>
-		Giving birth in such a manner was completely humiliating,
-		<<if $slaves[$i].fetish == "humiliation">>
-			and a complete turn on to $him. $His humiliation fetish @@.lightcoral;strengthens@@ as $he eagerly fantasizes about giving birth in public again.
-			<<set $slaves[$i].fetishStrength += 4>>
-		<<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>>
-			and a curious experience to $him. <<if random(1,5) == 1>>@@.lightcoral;$He has developed a humiliation fetish.@@<<set $slaves[$i].fetish = "humiliation">><<else>>$He hopes to never repeat it.<</if>>
-		<<elseif $slaves[$i].devotion <= 20>>
-			and completely devastating to $his image of $himself. The experience @@.hotpink;habituates $him@@ to cruelties of slavery.
-			<<set $slaves[$i].devotion += 5>>
-		<<else>>
-			and $he hopes to never undergo it again.
-		<</if>>
-	<</if>>
-<</if>>
-
-/* ------ Social reactions--------------- */
-<<if $arcologies[0].FSRestart != "unset">>
-	<<if $slaves[$i].breedingMark == 1 && $propOutcome == 1 && ($slaves[$i].pregSource == -1 || $slaves[$i].pregSource == -6)>>
-		<br><br>
-		The Societal Elite @@.green;are pleased@@ at the new additions to their class.
-		<<set $failedElite -= (2 * _curBabies)>>
-	<<elseif $eugenicsFullControl != 1>>
-		<br><br>
-		The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty the arcology under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world.
-		<<set $failedElite += (5 * _curBabies)>>
-		<<run repX(forceNeg(10 * _curBabies), "birth", $slaves[$i])>>
-	<</if>>
-<</if>>
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthBabies">>
-<<set _curBabies = $slaves[$i].curBabies.length, _cToIncub = 0, _cToNursery = 0>>
-<<for _sebw = 0; _sebw < _curBabies; _sebw++>>
-	<<if $slaves[$i].curBabies[_sebw].reserve === "incubator">>
-		<<set _cToIncub++>>
-	<<elseif $slaves[$i].curBabies[_sebw].reserve === "nursery">>
-		<<set _cToNursery++>>
-	<</if>>
-<</for>>
-
-/* ----------------------- incubator/nursery adding subsection. There is support for broodmothers too. */
-
-<<if (_cToIncub + _cToNursery > 0) && _curBabies > 0>> /*Do we need keep child checks?*/
-	<br><br>
-	<<if _curBabies > 1>>Of $his _curBabies child<<if _curBabies > 1>>ren<</if>>,<<else>>$His child<</if>> <<if _cToIncub > 0>><<if _curBabies > 1>>_cToIncub <</if>><<if _cToIncub === 1>>was<<else>>were<</if>> taken to $incubatorName<<if _cToNursery > 0>> and <</if>><</if>><<if _cToNursery > 0>><<if _curBabies > 1>>_cToNursery <</if>><<if _cToNursery === 1>>was<<else>>were<</if>> taken to $nurseryName<</if>>.
-	<<if _cToIncub + _cToNursery > 0>>
-		<<run sendNewbornsToFacility($slaves[$i])>>
-	<</if>>
-
-	<<set _curBabies = $slaves[$i].curBabies.length>>
-	<br><br>
-	<<if _curBabies > 0>>
-		After sending $his reserved child<<if _cToIncub+_cToNursery > 1>>ren<</if>> to
-		<<if _cToIncub > 0 && _cToNursery > 0>>
-			$incubatorName and $nurseryName,
-		<<elseif _cToIncub > 0>>
-			$incubatorName,
-		<<else>>
-			$nurseryName,
-		<</if>>
-		it's time to decide the fate of the other<<if _curBabies > 0>>s<</if>>.
-	<</if>>
-<</if>>
-
-/*------------------------ Fate of other babies ---------------------------------------*/
-
-<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0 && _curBabies > 0>>
-	<br><br>
-	<<span $dispositionId>>
-	<<if $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $propOutcome == 1 && ($slaves[$i].pregSource == -1 || $slaves[$i].pregSource == -6)>>
-		$His child<<if _curBabies > 1>>ren are<<else>> is<</if>> collected by the Societal Elite to be raised into upstanding members of the new society.
-	<<elseif $slaves[$i].breedingMark == 1 && $propOutcome == 1 && ($slaves[$i].pregSource == -1 || $slaves[$i].pregSource == -6) && $DefaultBirthDestination == "the market">>
-		<<set _babyCost = random(2000,4500)>>
-		$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> purchased by the Societal Elite for @@.yellowgreen;<<print cashFormat(_curBabies*(_babyCost))>>.@@
-		<<run cashX((_curBabies*(_babyCost)), "babyTransfer")>>
-	<<elseif $slaves[$i].pregSource == -9 && $DefaultBirthDestination == "the market">>
-		<<set _babyCost = random(1000,2500)>>
-		$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> purchased by the Futanari Sisters for @@.yellowgreen;<<print cashFormat(_curBabies*(_babyCost))>>.@@
-		<<run cashX((_curBabies*(_babyCost)), "babyTransfer")>>
-	<<elseif $DefaultBirthDestination == "individually decided fates">>
-		<<set $slaveOrphanageTotal += _curBabies>>
-		Unless you provide otherwise, the child<<if _curBabies > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName
-		<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-			shows no indication of an opinion on the matter.
-		<<elseif $slaves[$i].devotion > 95>>
-			worships you so completely that $he will not resent this.
-		<<elseif $slaves[$i].devotion > 50>>
-			is devoted to you, but $he will @@.mediumorchid;struggle to accept this.@@
-			<<set $slaves[$i].devotion -= 2>>
-		<<elseif $slaves[$i].devotion > 20>>
-			has accepted being a sex slave, but $he will @@.mediumorchid;resent this intensely.@@
-			<<set $slaves[$i].devotion -= 3>>
-		<<else>>
-			will of course @@.mediumorchid;hate you for this.@@
-			<<set $slaves[$i].devotion -= 4>>
-		<</if>>
-		<<capture $i, $dispositionId, _curBabies>>
-		<br>
-		<<if $arcologies[0].FSRepopulationFocus > 40>>
-			<br><<link "Send them to a breeder school">>
-				<<replace `"#" + $dispositionId`>>
-					The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName
-					<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-						has few thoughts about the matter.
-					<<elseif $slaves[$i].sexualFlaw == "breeder">>
-						@@.hotpink;almost orgasms@@ when $he imagines $his child<<if _curBabies > 1>>ren being raised into breeding-obsessed baby-factories<<else>> being raised into a breeding-obsessed baby-factory<</if>>, just like $himself.
-						<<set $slaves[$i].devotion += 5>>
-					<<elseif $slaves[$i].devotion > 95>>
-						loves you already, but $he'll @@.hotpink;love you even more@@ for this. $He can't wait to see $his child<<if _curBabies > 1>>ren<</if>> proudly furthering your cause.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 50>>
-						heard about these and will be @@.hotpink;happy that $his child<<if _curBabies > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $He will miss $his child<<if _curBabies > 1>>ren<</if>>, but $he expected that.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 20>>
-						will naturally miss $his child<<if _curBabies > 1>>ren<</if>>, but will is broken enough to hope that $his offspring will have a better life, or at least an enjoyable one.
-					<<else>>
-						will of course @@.mediumorchid;hate you for this.@@ The mere thought of $his <<if $minimumSlaveAge > $fertilityAge>>$minimumSlaveAge<<else>>$fertilityAge<</if>> year old daughter<<if _curBabies > 1>>s<</if>> swollen with life, and proud of it, fills $him with @@.gold;disdain.@@
-						<<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>>
-					<</if>>
-					<<set $breederOrphanageTotal += _curBabies, $slaveOrphanageTotal -= _curBabies>>
-				<</replace>>
-			<</link>>
-			//Will cost a one-time <<print cashFormat(50)>>//
-		<</if>>
-		<br><<link "Send them to a citizen school">>
-			<<replace `"#" + $dispositionId`>>
-				The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					fails to acknowledge this.
-				<<elseif $slaves[$i].devotion > 95>>
-					loves you already, but $he'll @@.hotpink;love you even more@@ for this.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 50>>
-					knows about these and will be @@.hotpink;overjoyed.@@ $He will miss $his child<<if _curBabies > 1>>ren<</if>>, but $he expected that.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 20>>
-					will naturally miss $his child<<if _curBabies > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $his offspring will have a better life.
-					<<set $slaves[$i].devotion += 4>>
-				<<else>>
-					will naturally retain some resentment over being separated from $his child<<if _curBabies > 1>>ren<</if>>, but this should be balanced by hope that $his offspring will have a better life.
-					<<set $slaves[$i].devotion += 4>>
-				<</if>>
-				<<set $citizenOrphanageTotal += _curBabies, $slaveOrphanageTotal -= _curBabies>>
-			<</replace>>
-		<</link>>
-		//Will cost <<print cashFormat(100)>> weekly//
-		<<if $activeSlave.breedingMark == 1 && ($activeSlave.pregSource == -1 || $activeSlave.pregSource == -6) && $propOutcome == 1>>
-			<br><<link "Give them to the Societal Elite.">>
-				<<replace #_disposition>>
-					The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to be raised by the Societal Elite, to be brought up as <<if _curBabies > 1>>future members<<else>>a future member<</if>> of their vision of the world. $activeSlave.slaveName
-					<<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>>
-						does not give any hint of a response.
-					<<elseif $activeSlave.devotion > 95>>
-						will @@.hotpink;worship you utterly@@ for this.
-						<<set $activeSlave.devotion += 6>>
-					<<elseif $activeSlave.devotion > 50>>
-						understands that this is the best possible outcome for the offspring of a slave, and will be @@.hotpink;overjoyed.@@
-						<<set $activeSlave.devotion += 6>>
-					<<elseif $activeSlave.devotion > 20>>
-						will miss $his child<<if _curBabies > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since $he'll understand this is the best possible outcome for a slave mother.
-						<<set $activeSlave.devotion += 6>>
-					<<else>>
-						will resent being separated from $his child<<if _curBabies > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
-						<<set $activeSlave.devotion += 6>>
-					<</if>>
-				<</replace>>
-				<<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */
-			<</link>>
-		<</if>>
-		<<if $slaves[$i].pregSource == -9>>
-			<br><<link "Give them to the Futanari Sisters">>
-				<<replace `"#" + $dispositionId`>>
-					The child<<if _curBabies > 1>>ren are<<else>> is<</if>> handed off to be raised by their father, the Futanari Sisters. $slaves[$i].slaveName
-					<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-						has few thoughts about the matter.
-					<<else>>
-						is overjoyed that $his child<<if _curBabies > 1>>ren<</if>> will follow in <<if _curBabies > 1>>their<<else>>its<</if>> parent's footsteps.
-						<<set $slaves[$i].devotion += 4>>
-					<</if>>
-					<<set $slaveOrphanageTotal -= _curBabies>>
-				<</replace>>
-			<</link>>
-		<</if>>
-		<br><<link "Have them raised privately">>
-			<<replace `"#" + $dispositionId`>>
-				The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as <<if _curBabies > 1>>future high class citizens<<else>>a future high class citizen<</if>>. $slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					does not give any hint of a response.
-				<<elseif $slaves[$i].devotion > 95>>
-					will @@.hotpink;worship you utterly@@ for this.
-					<<set $slaves[$i].devotion += 6>>
-				<<elseif $slaves[$i].devotion > 50>>
-					understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@
-					<<set $slaves[$i].devotion += 6>>
-				<<elseif $slaves[$i].devotion > 20>>
-					will miss $his child<<if _curBabies > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since $he'll understand this is the best possible outcome for a slave mother.
-					<<set $slaves[$i].devotion += 6>>
-				<<else>>
-					will resent being separated from $his child<<if _curBabies > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
-					<<set $slaves[$i].devotion += 6>>
-				<</if>>
-				The child<<if _curBabies > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
-				<<set $privateOrphanageTotal += _curBabies, $slaveOrphanageTotal -= _curBabies>>
-			<</replace>>
-		<</link>>
-		//Will cost <<print cashFormat(500)>> weekly//
-		<<if $policies.cash4Babies == 1>>
-			<<if $slaves[$i].prestige > 1 || $slaves[$i].porn.prestige > 2>>
-				<br><<link "Send them to auction">>
-					<<replace `"#" + $dispositionId`>>
-						<<set _babyCost = random(-12,100)>>
-						<<if $slaves[$i].prematureBirth == 1>><<set _babyCost = random(-32,40)>><</if>>
-						$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> sold for <<if _curBabies > 1>>a total of <</if>><<if $slaves[$i].prematureBirth == 1>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>,@@ a low price, due to the added costs of caring for them.<<else>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@<</if>>
-						<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-							$slaves[$i].slaveName lacks the capacity to understand what you've done.
-						<<elseif $slaves[$i].devotion > 95>>
-							$slaves[$i].slaveName adheres to your thoughts so strongly that even though you backed out of caring for $his child<<if _curBabies > 1>>ren<</if>>, $he still truly believes you are doing $him an honor.
-						<<elseif $slaves[$i].devotion > 50>>
-							$slaves[$i].slaveName is @@.mediumorchid;deeply hurt@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His trust in your words @@.gold;wavers@@ as $he thinks of $his child<<if _curBabies > 1>>ren<</if>>'s future.
-							<<set $slaves[$i].trust -= 5, $slaves[$i].devotion -= 5>>
-						<<elseif $slaves[$i].devotion > 20>>
-							$slaves[$i].slaveName is @@.mediumorchid;devastated@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His mind struggles to comprehend @@.gold;such betrayal.@@
-							<<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>>
-						<<else>>
-							For a moment, $slaves[$i].slaveName thought $he saw a glimmer of good in you; @@.mediumorchid;$he was clearly wrong.@@ $His mind struggles to comprehend @@.gold;why $he could ever even think of trusting such a person.@@
-							<<set $slaves[$i].trust -= 30, $slaves[$i].devotion -= 30>>
-						<</if>>
-						<<set $slaveOrphanageTotal -= _curBabies>>
-						<<run cashX((_curBabies*(50+_babyCost)), "babyTransfer")>>
-					<</replace>>
-				<</link>>
-			<<else>>
-				| <<link "Sell them anyway">>
-					<<replace `"#" + $dispositionId`>>
-						<<set _babyCost = random(-12,12)>>
-						<<if $slaves[$i].prematureBirth == 1>><<set _babyCost = -45>><</if>>
-						$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> sold for <<if _curBabies > 1>>a total of <</if>><<if $slaves[$i].prematureBirth == 1>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>,@@ a low price, due to the added costs of caring for them.<<else>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@<</if>>
-						<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-							$slaves[$i].slaveName lacks the capacity to understand what you've done.
-						<<elseif $slaves[$i].devotion > 95>>
-							$slaves[$i].slaveName adheres to your thoughts so strongly that even though you backed out of caring for $his child<<if _curBabies > 1>>ren<</if>>, $he still truly believes you are doing $him an honor.
-						<<elseif $slaves[$i].devotion > 50>>
-							$slaves[$i].slaveName is @@.mediumorchid;deeply hurt@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His trust in your words @@.gold;wavers@@ as $he thinks of $his child<<if _curBabies > 1>>ren<</if>>'s future.
-							<<set $slaves[$i].trust -= 5, $slaves[$i].devotion -= 5>>
-						<<elseif $slaves[$i].devotion > 20>>
-							$slaves[$i].slaveName is @@.mediumorchid;devastated@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His mind struggles to comprehend @@.gold;such betrayal.@@
-							<<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>>
-						<<else>>
-							For a moment, $slaves[$i].slaveName thought $he saw a glimmer of good in you; @@.mediumorchid;$he was clearly wrong.@@ $His mind struggles to comprehend @@.gold;why $he could ever even thing of trusting such a person.@@
-							<<set $slaves[$i].trust -= 30, $slaves[$i].devotion -= 30>>
-						<</if>>
-						<<set $slaveOrphanageTotal -= _curBabies>>
-						<<run cashX((_curBabies*(50+_babyCost)), "babyTransfer")>>
-					<</replace>>
-				<</link>>
-			<</if>>
-		<</if>>
-		<</capture>>
-	<<else>>
-		$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> sent to $DefaultBirthDestination.
-		<<switch $DefaultBirthDestination>>
-			<<case "an orphanage">>
-				$slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					shows no indication of an opinion on the matter.
-				<<elseif $slaves[$i].devotion > 95>>
-					worships you so completely that $he will not resent this.
-				<<elseif $slaves[$i].devotion > 50>>
-					is devoted to you, but $he will @@.mediumorchid;struggle to accept this.@@
-					<<set $slaves[$i].devotion -= 2>>
-				<<elseif $slaves[$i].devotion > 20>>
-					has accepted being a sex slave, but $he will @@.mediumorchid;resent this intensely.@@
-					<<set $slaves[$i].devotion -= 3>>
-				<<else>>
-					will of course @@.mediumorchid;hate you for this.@@
-					<<set $slaves[$i].devotion -= 4>>
-				<</if>>
-				<<set $slaveOrphanageTotal += _curBabies>>
-			<<case "a citizen school">>
-				$slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					fails to acknowledge this.
-				<<elseif $slaves[$i].devotion > 95>>
-					loves you already, but $he'll @@.hotpink;love you even more@@ for this.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 50>>
-					knows about these and will be @@.hotpink;overjoyed.@@ $He will miss $his child<<if _curBabies > 1>>ren<</if>>, but $he expected that.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 20>>
-					will naturally miss $his child<<if _curBabies > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $his offspring will have a better life.
-					<<set $slaves[$i].devotion += 4>>
-				<<else>>
-					will naturally retain some resentment over being separated from $his child<<if _curBabies > 1>>ren<</if>>, but this should be balanced by hope that $his offspring will have a better life.
-					<<set $slaves[$i].devotion += 4>>
-				<</if>>
-				<<set $citizenOrphanageTotal += _curBabies>>
-			<<case "a private school">>
-				$slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					does not give any hint of a response.
-				<<elseif $slaves[$i].devotion > 95>>
-					will @@.hotpink;worship you utterly@@ for this.
-					<<set $slaves[$i].devotion += 6>>
-				<<elseif $slaves[$i].devotion > 50>>
-					understands that this is the best possible outcome for the offspring of a slave, and will be @@.hotpink;overjoyed.@@
-					<<set $slaves[$i].devotion += 6>>
-				<<elseif $slaves[$i].devotion > 20>>
-					will miss $his child<<if _curBabies > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $he>>'ll understand this is the best possible outcome for a slave mother.
-					<<set $slaves[$i].devotion += 6>>
-				<<else>>
-					will resent being separated from $his child<<if _curBabies > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
-					<<set $slaves[$i].devotion += 6>>
-				<</if>>
-				The child<<if _curBabies > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
-				<<set $privateOrphanageTotal += _curBabies>>
-			<<case "breeder schools">>
-				$slaves[$i].slaveName
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					has few thoughts about the matter.
-				<<elseif $slaves[$i].sexualFlaw == "breeder">>
-					@@.hotpink;almost orgasms@@ when $he imagines $his child<<if _curBabies > 1>>ren being raised into breeding-obsessed baby-factories<<else>> being raised into a breeding-obsessed baby-factory<</if>>, just like $himself.
-					<<set $slaves[$i].devotion += 5>>
-				<<elseif $slaves[$i].devotion > 95>>
-					loves you already, but $he'll @@.hotpink;love you even more@@ for this. $He can't wait to see $his child<<if _curBabies > 1>>ren<</if>> proudly furthering your cause.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 50>>
-					heard about these and will be @@.hotpink;happy that $his child<<if $slaves[$i].pregType > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $He will miss $his child<<if $slaves[$i].pregType > 1>>ren<</if>>, but $he expected that.
-					<<set $slaves[$i].devotion += 4>>
-				<<elseif $slaves[$i].devotion > 20>>
-					will naturally miss $his child<<if _curBabies > 1>>ren<</if>>, but will is broken enough to hope that $his offspring will have a better life, or at least an enjoyable one.
-				<<else>>
-					will of course @@.mediumorchid;hate you for this.@@ The mere thought of $his <<if $minimumSlaveAge > $fertilityAge>>$minimumSlaveAge<<else>>$fertilityAge<</if>> year old daughter<<if _curBabies > 1>>s<</if>> swollen with life, and proud of it, fills $him with @@.gold;disdain.@@
-					<<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>>
-				<</if>>
-				<<set $breederOrphanageTotal += _curBabies>>
-			<<case "the market">>
-				<<if $slaves[$i].prestige > 1 || $slaves[$i].porn.prestige > 2>>
-					<<set _babyCost = random(-12,100)>>
-					<<if $slaves[$i].prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
-				<<else>>
-					<<set _babyCost = random(-12,12)>>
-					<<if $slaves[$i].prematureBirth > 0>><<set _babyCost = -45>><</if>>
-				<</if>>
-				$His <<if _curBabies > 1>>babies were<<else>>baby was<</if>> sold for <<if _curBabies > 1>>a total of <</if>><<if $slaves[$i].prematureBirth == 1>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>,@@ a low price, due to the added costs of caring for them.<<else>>@@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@<</if>>
-				<<if $slaves[$i].fetish == "mindbroken" || $slaves[$i].fuckdoll > 0>>
-					$slaves[$i].slaveName lacks the capacity to understand what you've done.
-				<<elseif $slaves[$i].devotion > 95>>
-					$slaves[$i].slaveName adheres to your thoughts so strongly that even though you backed out of caring for $his child<<if _curBabies > 1>>ren<</if>>, $he still truly believes you are doing $him an honor.
-				<<elseif $slaves[$i].devotion > 50>>
-					$slaves[$i].slaveName is @@.mediumorchid;deeply hurt@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His trust in your words @@.gold;wavers@@ as $he thinks of $his child<<if _curBabies > 1>>ren<</if>>'s future.
-					<<set $slaves[$i].trust -= 5, $slaves[$i].devotion -= 5>>
-				<<elseif $slaves[$i].devotion > 20>>
-					$slaves[$i].slaveName is @@.mediumorchid;devastated@@ by your sudden decision to sell $his child<<if _curBabies > 1>>ren<</if>> instead of having <<if _curBabies > 1>>them<<else>>it<</if>> cared for. $His mind struggles to comprehend @@.gold;such betrayal.@@
-					<<set $slaves[$i].trust -= 10, $slaves[$i].devotion -= 10>>
-				<<else>>
-					For a moment, $slaves[$i].slaveName thought $he saw a glimmer of good in you; @@.mediumorchid;$he was clearly wrong.@@ $His mind struggles to comprehend @@.gold;why $he could ever even thing of trusting such a person.@@
-					<<set $slaves[$i].trust -= 30, $slaves[$i].devotion -= 30>>
-				<</if>>
-				<<run cashX(_curBabies*(50+_babyCost), "babyTransfer")>>
-		<</switch>>
-	<</if>>
-	<</span>>
-<</if>>
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthPostpartum">>
-<<set _curBabies = $slaves[$i].curBabies.length>>
-
-<<if $slaves[$i].broodmother > 0 >>
-	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>>
-	<<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/
-		<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/
-		<<set $slaves[$i].preg = 0.1>>
-		<<set $slaves[$i].pregType = 0>>
-	<</if>>
-<<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/
-	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/
-	<<set $slaves[$i].pregSource = $slaves[$i].womb[0].fatherID>> /*in such case it's good chance that there is different father also.*/
-<<else>>
-	<<set _tmp = lastPregRule($slaves[$i], $defaultRules)>>
-	<<if (!assignmentVisible($slaves[$i])) && (_tmp != null)>>
-		<<set $slaves[$i].preg = -1>>
-	<<else>>
-		<<set $slaves[$i].preg = 0>>
-	<</if>>
-	<<set $slaves[$i].pregType = 0>>
-	<<set $slaves[$i].pregSource = 0>>
-	<<set $slaves[$i].pregKnown = 0>>
-	<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
-		<<set $slaves[$i].pregWeek = -2>>
-	<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
-		<<set $slaves[$i].pregWeek = -3>>
-	<<else>>
-		<<set $slaves[$i].pregWeek = -4>>
-	<</if>>
-<</if>>
-<<set $csec = 0>>
-
-<<run SetBellySize($slaves[$i])>>
-
-<<if $slaves[$i].birthsTat > -1>>
-	<br><br>
-	<<set $slaves[$i].birthsTat++>>
-	The temporary tattoo of a child has been replaced with $his <<= ordinalSuffix($slaves[$i].birthsTat)>> permanent infant.
-	<<run cashX(forceNeg($modCost), "slaveMod", $slaves[$i])>>
-<</if>>
-
-<</widget>>
-
-/*===============================================================================================*/
-
-<<widget "seBirthCritical">>
-<<set _curBabies = $slaves[$i].curBabies.length>>
-
-<<if $slaves[$i].health.health <= -100>>
-	<br><br>
-	While attempting to recover, $slaves[$i].slaveName @@.red;passes away@@ from complications. $His body was fatally damaged during childbirth.
-	<<if _curBabies > 0>> /* this needs to include ALL children born fom this batch, incubated ones included. */
-		But $his offspring <<if _curBabies > 1>>are<<else>>is<</if>> healthy, so $his legacy will carry on.
-	<</if>>
-	<<= removeSlave($slaves[$i])>>
-	<<set $slaveDead = 1>>
-<</if>>
-
-<<if $slaveDead != 1>>
-	<<set $slaves[$i].labor = 0>>
-	<<set $slaves[$i].induce = 0>>
-<<else>>
-	<<set $slaveDead = 0>>
-<</if>>
-
-<</widget>>
diff --git a/src/uncategorized/REFS.tw b/src/uncategorized/REFS.tw
index da6b47ea7d7711c7b6bc567f58cb4393ebb72e29..e6b50a7463bab68673662409b121d33ef13f6e5d 100644
--- a/src/uncategorized/REFS.tw
+++ b/src/uncategorized/REFS.tw
@@ -110,6 +110,136 @@
 	<<set $activeSlave.hStyle = "bun">>
 	<<set $activeSlave.clothes = "conservative clothing">>
 
+<<case "knightly duel">>
+    <<set $activeSlaveOneTimeMinAge = 22>>
+    <<set $activeSlaveOneTimeMaxAge = 34>>
+	<<set $activeSlave = GenerateNewSlave("XY")>>
+	<<set $activeSlave.origin = "$He is a knight. If you have acquired this slave, something has gone wrong.">>
+	<<set $activeSlave.career = "spec ops">>
+    <<set $activeSlave.devotion = random(-80,-60)>>
+    <<set $activeSlave.muscles = random(50,75)>>
+    <<set $activeSlave.skill.combat = 1>>
+    <<set $activeSlave.behavioralFlaw = "malicious", $activeSlave.behavioralQuirk = "none">>
+	<<set $activeSlave.trust = random(-30,-20)>>
+	<<set $activeSlave.boobs = 150>>
+	<<set $activeSlave.butt = random(0,1)>>
+	<<set $activeSlave.vagina = -1>>
+	<<set $activeSlave.clit = 0>>
+	<<set $activeSlave.labia = 0>>
+	<<set $activeSlave.ovaries = 0>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.dick = random(3,5)>>
+	<<set $activeSlave.balls = random(2,4)>>
+	<<set $activeSlave.scrotum = $activeSlave.balls>>
+	<<set $activeSlave.prostate = 1>>
+
+<<case "feast">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 23>>
+	<<set $oneTimeDisableDisability = 1>>
+	<<set $activeSlave = GenerateNewSlave("XX")>>
+	<<set $activeSlave.career = "a maid">>
+	<<set $activeSlave.devotion = random(-20,20)>>
+	<<set $activeSlave.trust = random(-30,20)>>
+	<<set $activeSlave.face = random(25,100)>>
+	<<set $activeSlave.boobs = either(100, 200, 300)>>
+	<<set $activeSlave.vagina = 0>>
+	<<set $activeSlave.ovaries = 1>>
+	<<set $activeSlave.preg = -1>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.underArmHStyle = "waxed">>
+	<<set $activeSlave.hips = 0>>
+	<<set $activeSlave.butt = random(1,2)>>
+	<<set $activeSlave.dick = 0>>
+	<<set $activeSlave.foreskin = 0>>
+	<<set $activeSlave.balls = 0>>
+	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.weight = 0>>
+	<<set $activeSlave.intelligence = random(15,100)>>
+	<<set $activeSlave.skill.entertainment = 45>>
+	<<set $activeSlave.skill.anal = 0>>
+	<<set $activeSlave.skill.oral = 0>>
+	<<set $activeSlave.skill.whoring = 0>>
+	<<set $activeSlave.canRecruit = 0>>
+	<<run setHealth($activeSlave, jsRandom(30, 60), 0, 0, 0, 0)>>
+
+<<case "warhound">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 24>>
+	<<set $oneTimeDisableDisability = 1>>
+	<<set $activeSlave = GenerateNewSlave("")>>
+	<<set $activeSlave.origin = "You don't know what $he was before $he was abducted by Imperial merchants, transformed into a cybernetic, mindbroken hound of war, and sold to you. Now $he only recieves positive stimuli directly to $his brain when being loyal and obedient to you, and a barrage of violent imagery when you order $him to attack.">>
+	<<set $activeSlave.career = "a child soldier">>
+	<<set $activeSlave.devotion = 100>>
+	<<set $activeSlave.trust = 100>>
+    <<set $activeSlave.muscles = random(50,75)>>
+	<<set $activeSlave.fetish = "mindbroken">>
+	<<set $activeSlave.fetishKnown = 1>>
+    <<set $activeSlave.skill.combat = 1>>
+	<<run configureLimbs($activeSlave, "all", 6)>>
+	<<set $activeSlave.teeth = "pointy">>
+	<<set $activeSlave.earT = "inu">>
+	<<set $activeSlave.tailShape = "inu">>
+	<<set $activeSlave.tailColor = $activeSlave.hColor>>
+	<<set $activeSlave.face = random(-25,50)>>
+	<<set $activeSlave.preg = -1>>
+	<<set $activeSlave.intelligence = -100>>
+	<<set $activeSlave.intelligenceImplant = 0>>
+	<<set $activeSlave.skill.entertainment = 0>>
+	<<set $activeSlave.skill.anal = 0>>
+	<<set $activeSlave.skill.oral = 0>>
+	<<set $activeSlave.collar = "tight steel">>
+	<<set $activeSlave.skill.whoring = 0>>
+	<<set $activeSlave.canRecruit = 0>>
+	<<set $activeSlave.custom.tattoo = "$He has the Imperial symbol of your arcology tattooed on $his neck above a barcode.">>
+	<<run setHealth($activeSlave, jsRandom(30, 60), 0, 0, 0, 0)>>
+
+<<case "dead baron">>
+    <<set $activeSlaveOneTimeMinAge = 22>>
+    <<set $activeSlaveOneTimeMaxAge = 34>>
+	<<set $activeSlave = GenerateNewSlave("XY")>>
+	<<set $activeSlave.origin = "$He is a knight. If you have acquired this slave, something has gone wrong.">>
+	<<set $activeSlave.career = "spec ops">>
+    <<set $activeSlave.devotion = random(-80,-60)>>
+    <<set $activeSlave.muscles = random(50,75)>>
+    <<set $activeSlave.skill.combat = 1>>
+    <<set $activeSlave.behavioralFlaw = "malicious", $activeSlave.behavioralQuirk = "none">>
+	<<set $activeSlave.trust = random(-30,-20)>>
+	<<set $activeSlave.boobs = 150>>
+	<<set $activeSlave.butt = random(0,1)>>
+	<<set $activeSlave.vagina = -1>>
+	<<set $activeSlave.clit = 0>>
+	<<set $activeSlave.labia = 0>>
+	<<set $activeSlave.ovaries = 0>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.dick = random(3,5)>>
+	<<set $activeSlave.balls = random(2,4)>>
+	<<set $activeSlave.scrotum = $activeSlave.balls>>
+	<<set $activeSlave.prostate = 1>>
+
+<<case "baron demand">>
+    <<set $activeSlaveOneTimeMinAge = 22>>
+    <<set $activeSlaveOneTimeMaxAge = 34>>
+	<<set $activeSlave = GenerateNewSlave("XY")>>
+	<<set $activeSlave.origin = "$He is a knight. If you have acquired this slave, something has gone wrong.">>
+	<<set $activeSlave.career = "spec ops">>
+    <<set $activeSlave.devotion = random(-80,-60)>>
+    <<set $activeSlave.muscles = random(50,75)>>
+    <<set $activeSlave.skill.combat = 1>>
+    <<set $activeSlave.behavioralFlaw = "malicious", $activeSlave.behavioralQuirk = "none">>
+	<<set $activeSlave.trust = random(-30,-20)>>
+	<<set $activeSlave.boobs = 150>>
+	<<set $activeSlave.butt = random(0,1)>>
+	<<set $activeSlave.vagina = -1>>
+	<<set $activeSlave.clit = 0>>
+	<<set $activeSlave.labia = 0>>
+	<<set $activeSlave.ovaries = 0>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.dick = random(3,5)>>
+	<<set $activeSlave.balls = random(2,4)>>
+	<<set $activeSlave.scrotum = $activeSlave.balls>>
+	<<set $activeSlave.prostate = 1>>
+
 <<case "transformation fetishism encounter">>
 	<<set $activeSlaveOneTimeMaxAge = 22>>
 	<<set $oneTimeDisableDisability = 1>>
@@ -242,20 +372,32 @@
 	<br><br>
 	On one particular outing, you come across an elderly male citizen holding the hand of his young slave, seemingly on a date at one of the arcology's prominent promenades. From the ring on the $girl's finger and the modest neckline on $his clothing, it is clear that $his owner is treating $him as if $he is his $wife. His obscene treatment of his slave has already drawn a large crowd of shocked onlookers.
 
-
 <<case "knightly duel">>
 
 	After the rise of $arcologies[0].name's new Imperial society, Knights have become a cornerstone of the new social order. Proud, noble, and chivalrous, they're seen as heroic, even legendary figures to the general public, and play an essential role in securing your arcology against violent threats with their larger-than-life personalities. However, the proud and individual nature of your Knights occasionally causes problems.
 	<br><br>
 	Most recently, two of your Knights have begun to feud with one another. After some slight neither can remember, they've been publicly exchanging insults for the last few weeks, and more recently their associated guardsmen have gotten into a few street fights against one another. Tired of the gang-like behavior, both Knights have come to you and asked for your permission for a formal duel to the death to settle their differences, once and for all.
 
-
 <<case "dead baron">>
 
 	Although the lives of the uber-wealthy last for so long with the heights of modern medicine that some whisper that you are immortal, no one lives forever. Recently, one of your Imperial Barons has passed away, supposedly from natural causes, although it's always possible that the shadowy and underhanded elites a step lower in the hierarchy might have hastened their passing - if that's the case, your Knights will learn of the culprits soon enough. Regardless of the reason, you now have an opening in your noble hierarchy, and as always, there is no shortage of hungry, ambitious elites looking to fill the slot.
 	<br><br>
 	Typically, the position is hereditary; the adult children of a Baron, those had legitimately and not with slaves, expect to inherit the title in an order of seniority. However, this is only precedent, and not the actual legal code; the laws, as you've written them, allow you to assign the title to whoever you please upon the death of the former Baron. You could, undoubtedly, choose to award it to someone else instead of the Baron's children... although doing so would, no doubt, infuriate the influential Baronets, who expect their family to continue to hold its prestigious position.
 
+<<case "feast">>
+
+	Although you regularly host casual parties in $arcologies[0].name, the demands of the elite nobility, those chosen few who stand above even your millionaires and societal elites, can be truly extravagant. Every once in a while, instead of a simple, classy party, they clamor for something more - a proper feast. As the Emperor of the arcology, it falls to you to organize such an event, and plan it to satisfy even the ravenous appetites of your ever-hungry Barons.
+	<br><br>
+	Planning a genuine feast is no small task. Unlike your typical parties, which can be as simple as preparing food and drinks served by your own slavegirls, this celebration almost by necessity must be an enormous blowout. The Barons will come expecting delicacies from around the world, enough alcohol to get all of them drunk ten times over, foreign slaves and entertainment for the night, and a truly decadcent level of indulgence, one befitting of an assembly of rulers. The greatest celebrations can go on for full days at a time, stopped only to sleep before returning to the festivities. Although such lavishness can be crushingly expensive, the best feasts are more than just the best time anyone can have in the Free Cities - they're also calendar events remembered for years to come.
+
+<<case "warhound">>
+
+	The Imperial marketplace is a loud and lively place, no matter the day or hour, permeated by the constant noise of face-to-face trade even in the dead of night. As you walk down the marketplace today a dozen different curiosities catch your eye, nose, and ear alike, distracted by the smell of roasting meat and the glimmer of a shiny new old-world fashion on display in some packed-in corner store. But one particularly unusual merchant and his wares catch your attention immediately, standing out from the trifles and trivialities always for sale - a fat, smiling man holding a colorful open-air stand, and holding in one hand a leash attached to a tight steel collar, keeping an obviously cybrernetically-enhanced $girl on all fours at his side.
+	<br><br>
+	As you approach, the fat merchant bows deeply, still holding the leash. "Ah, your Highness!" The trader says in a high-pitched, silky voice, his pudgy face coming up to look you in the eyes. "I had not expected such a royal calibre of visitor to my humble stall, but you shall nevertheless profit much from my wares." You gesture to the $girl on the leash, who, upon closer inspection, seems to be some kind of cybernetic dog-$girl, and ask what $he is.
+	<br><br>
+	"$He is a warhound, your Imperial majesty. A common criminal, some gutter trash waste of oxygen from the old world, given fresh purpose in life by the wonders of our new technologies. Now, what was once a street rat recieves pleasure in life only from obeying the will of $his masters - you and I - courtesy of an implant in $his brain that dulls all function but the pleasure of servitude, flooding $him with serotonin and other such chemicals when $he obeys." The pudgy merchant harshly tugs on the leash, and the 'warhound' yelps, then rolls over on $his back to submissively display $his pristine, naked genitals. "Do not be decieved by $his submissive appearance towards you, my lord. Simply gesture at your foes and whisper an order, and $he will tear a thousand soldiers apart with teeth and claw to protect you. And $he can be yours for the criminally low price of merely twenty thousand credits, special for the undisputed master of $arcologies[0].name!"
+
 <<case "baron demand">>
 
 	One of your Barons has approached you with an elegantly-worded but rather entitled letter demanding that you increase his already extraordinarily generous stipend and allow for more individual freedom in the management of his arcology district. The petition appears to be supported by a number of other powerful Barons, who have tacked their name on in asking for similar advantages.
@@ -398,7 +540,7 @@
 					<<run cashX(3000, "televised a duel")>>
 					<<run repX(-2500, "event")>>
 				<</replace>>
-			<</link>> 
+			<</link>>
 		<br><<link "Punish both and force them to make up">>
 			<<replace "#result">>
 				You launch into a tirade at both of the feuding Knights about their public image and the utter childishness of their petty feud; after only a few minutes of yelling into their faces, both enormous men shirk like disciplined schoolboys under your gaze, their scarred faces pushing back into their heavy Imperial plate as if for protection. Even as you annouce you'll be having both of them flogged for daring to request a duel to the death for such a trivial matter, they simply mutter apologies, red-faced at the humiliation. Some days later, after having beaten both of their hides raw in the marketplace, you see the two Knights, out of armor, sharing beers at a local bar and laughing with one another. It seems they've forgotten their blood feud as soon as they started it, and both they and the arcology are @@.green;pleased@@ to have such an ugly matter off their hands.
@@ -424,7 +566,7 @@
 					<<run cashX(-2000, "Costs of Administrative Change")>>
 					<<run repX(-2000, "event")>>
 				<</replace>>
-			<</link>> 
+			<</link>>
 		<br><<link "Appoint a competent bureaucrat instead">>
 			<<replace "#result">>
 				You select an unimportant but accomplished bureaucrat within the lower ranks of your administration, one of the cornerstone accountants that keeps the trains running on time. The rail-thin woman is clearly surprised that you'd choose her over a wealthier, more influential elite, but nevertheless accepts the golden band with overflowing joy. The furious baronets, robbed of their title, do their best to obstruct the ceremony, and the decision to take the title from their family causes @@.red;fear and concern@@ amongst Barons now insecure of their family's future. Although she may not turn any eyebrows, you can tell without a fact that she'll @@.green;keep your arcology efficient and prosperous@@ - after all, if it collapses, then her 'guaranteed' barony vanishes too.
@@ -444,7 +586,6 @@
 		<</link>>
 	</span>
 
-
 <<case "baron demand">>
 
 	<span id="result">
@@ -459,11 +600,11 @@
 	<</if>>
 			<br><<link "Flat out refuse them">>
 				<<replace "#result">>
-					You laugh at the Baron's petition and inform them that nothing will be changing, and they had best think twice before coming to you with any similar nonsense. The Barons proceed to sulk and grumble for the next month, @@.red;half-assedly managing@@ their districts and @@.red;spreading nasty gossip@@ about your supposedly 'tyrannical' mistreatment of your ever-so-loyal vassals. 
+					You laugh at the Baron's petition and inform them that nothing will be changing, and they had best think twice before coming to you with any similar nonsense. The Barons proceed to sulk and grumble for the next month, @@.red;half-assedly managing@@ their districts and @@.red;spreading nasty gossip@@ about your supposedly 'tyrannical' mistreatment of your ever-so-loyal vassals.
 					<<run $arcologies[0].prosperity -= 3>>
 					<<run repX(-2000, "event")>>
 				<</replace>>
-			<</link>> 
+			<</link>>
 		<<if $cash >= 2000>>
 		<br><<link "Refuse their demands, but placate them with gifts and ceremonies">><<print cashFormat(2000)>>
 			<<replace "#result">>
@@ -473,6 +614,57 @@
 		<</link>>
 		<</if>>
 	</span>
+	<<case "baron demand">>
+
+<<case "feast">>
+
+	<span id="result">
+	<<if $cash >= 20000>>
+		<<link "Plan an absolutely enormous celebration">><<print cashFormat(20000)>>
+			<<replace "#result">>
+				The feast you organize would put Norse raiders and ancient Kings alike to shame; you @@.red;spend more money@@ in the first few days of planning than most of them would have ever seen in their lives. The Barons arrive at your penthouse on time and are immediately mystified by the overwhelming variety of foods put out on your eloquent tables, served by stunning girls in thin silks that barely conceal their perfect bodies. Entertainers of every stripe lead around flaming swords and well-trained lions, transforming your penthouse into a temporary circus of debauchery and hedonism; there are so many that you can't even remember all those you hired, and every room contains a new wonder or waiting beauty. You deliver a short speech to the Barons, Knights, and other elite you've granted the honor of attending, welcoming the lot to your home; one of your Barons claps loudly the moment you finish and @@.green;shouts your name@@ in celebration, which is quickly taken up by the rest of the room. From then on, the next few days are an absolute blur of sex, drink, drugs and food, casting aside all worries and indulging alongside the wealthiest of your arcology in a true display of ultra-hedonism. The hours blend into days of the endless celebration you've organized, until, finally, the Barons and Knights begin to shuffle out in a drunken, exhausted haze, leaving behind a trail of bones and knocked-up slavegirls. No one, yourself included, seems to be able to remember exactly what happened during those days of wild celebration, but everyone agrees that it was @@.green;one of the greatest parties ever held in the Free Cities.@@
+			<<run repX(7000, "event")>>
+			<<run $arcologies[0].prosperity -= 1>>
+			<<run cashX(-20000, "Feasting")>>
+			<</replace>>
+		<</link>>
+	<</if>>
+		<<if $cash >= 5000>>
+			<br><<link "Plan a moderate feast">><<print cashFormat(5000)>>
+				<<replace "#result">>
+					There's no special cause for celebration this time around, but that doesn't mean you can't have a great time. You lay out platters of expensive food and drink, served by gorgeous maids, for the arriving Barons and Knights, who seem universally pleased to have an oppurtunity to forget the troubles of rulership and power for a day - not that that's particularly difficult in the Free Cities, anyway. Among the roaring company of $arcologies[0].name's wealthiest and most influential citizens, you tear into fresh-cooked meats and the rounded asses of the servants alike, in a glorious celebration where nothing and no one is off-limits. At the end of the evening, when the crowd has finally had their fill and you've fucked and drank enough that you can barely stand to wave them goodbye, nearly each and every Baron leaves the celebration with a @@.green;stupid, drunken smile across their face.@@
+					<<run cashX(-5000, "Feasting")>>
+					<<run repX(2000, "event")>>
+				<</replace>>
+			<</link>>
+		<</if>>
+		<br><<link "No feast this year">>
+			<<replace "#result">>
+				You somberly annouce that there'll be no feast this time around, despite the mutterings of your Barons. Unsurprisngly, the pompous nobles are @@.red;deeply frustrated@@ with the lack of a feast, and spend the next few weeks snarkily reminding you about your failure to provide a celebration worthy of your title. At least your treasury isn't forced to bear the burden of another feast for now.
+				<<run repX(-2000, "event")>>
+			<</replace>>
+		<</link>>
+	</span>
+
+<<case "warhound">>
+
+	<span id="result">
+	<<if $cash >= 20000>>
+		<<link "Buy the Warhound">><<print cashFormat(20000)>>
+			<<replace "#result">>
+				You nod once to the merchant and electronically transfer the money to him without a second thought. The pudgy man clasps his hands together gleefully and then hands you the leash, smiling like a snake. "Oh, and we have not yet assigned $him a name, my liege - please feel free to call $him whatever you wish. Enjoy your new hound!"
+			<<run cashX(-20000, "Bought a Warhound")>>
+			<<run newSlave($activeSlave)>>
+			<</replace>>
+		<</link>>
+	<</if>>
+		<br><<link "Decline the merchant's offer">>
+			<<replace "#result">>
+				The merchant shrugs his fat shoulders nonchalantly, his smile not wavering for even a second. "Ah, your loss, my liege. These hounds are very popular, and I doubt $he will still be here by the end of the day. But perhaps another time, no? There is always more gutter trash to capture..."
+			<</replace>>
+		<</link>>
+	</span>
+
 
 <<case "physical idealist encounter">>
 
diff --git a/src/uncategorized/cellblock.tw b/src/uncategorized/cellblock.tw
index 8572b8d14c83eaf2ed2ef5306a67e2b204585be7..c8735ddd82a94eb262982cba29d46967f42d5abf 100644
--- a/src/uncategorized/cellblock.tw
+++ b/src/uncategorized/cellblock.tw
@@ -9,7 +9,7 @@
 		<<case "Roman Revivalist">>
 			is designed to resemble the holding pens beneath the old Coliseum. Whenever there's a fight in the arcology, screens in each cell helpfully keep inmates informed of what awaits (otherwise) useless slaves.
 		<<case "Neo Imperialist">>
-			is designed as an ultra high-tech cellblock. Holographic shackles keep slaves locked to rough black cells, kept totally isolated from one another through the complete silence of thick metal walls.			
+			is designed as an ultra high-tech cellblock. Holographic shackles keep slaves locked to rough black cells, kept totally isolated from one another through the complete silence of thick metal walls.
 		<<case "Aztec Revivalist">>
 			is designed to frighten the prisoners to submission. All the cells look to the center of the facility, where a sacrificial altar stands, adorned with ceremonial <<if $arcologies[0].FSPaternalist != "unset">>ropes and penetrators<<else>>knives, ropes and blunt instruments<</if>>.
 		<<case "Egyptian Revivalist">>
diff --git a/src/uncategorized/clinic.tw b/src/uncategorized/clinic.tw
index 289d9c39aec32e332dec6de8d2cf52017f1dd77a..f1111886dd89a019a405c872f4a8eba8bcf170ce 100644
--- a/src/uncategorized/clinic.tw
+++ b/src/uncategorized/clinic.tw
@@ -9,7 +9,7 @@
 		<<case "Roman Revivalist">>
 			is open and airy; a breeze wafts through the space, and Roman theories on natural cleanliness are very much on display.
 		<<case "Neo Imperialist">>
-			is white and sterile, filled with so many high-tech machines that you cannot discern the purpose of them all. The space reminds you of a laboratory, kept painstakingly clean at all time by small robotic drones.	
+			is white and sterile, filled with so many high-tech machines that you cannot discern the purpose of them all. The space reminds you of a laboratory, kept painstakingly clean at all time by small robotic drones.
 		<<case "Aztec Revivalist">>
 			is open and airy; a light hint of herbs and natural oil permeates the air. Everything is incredibly sterile, especially the blood management equipment.
 		<<case "Egyptian Revivalist">>
diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw
index 070d3b369294634b59d33c01357922b152421262..6bc9c1b6cc86b92ed3fe4322475ac58ce46a04ea 100644
--- a/src/uncategorized/clubReport.tw
+++ b/src/uncategorized/clubReport.tw
@@ -3,7 +3,7 @@
 <span id="club-stats"></span>
 
 <<set _slaves = App.Utils.sortedEmployees(App.Entity.facilities.club)>>
-<<set _DL = _slaves.length, _SL = $slaves.length, $clubBonuses = 0, $legendaryEntertainerID = 0, _FLsFetish = 0>>
+<<set _DL = _slaves.length, _SL = $slaves.length, $legendaryEntertainerID = 0, _FLsFetish = 0>>
 <<set $legendaryWombID = 0>>
 <<set _minBonus = 50, _maxBonus = 150>>
 
diff --git a/src/uncategorized/discardConfirm.tw b/src/uncategorized/discardConfirm.tw
index 5bf56b2317340321600bfd0b6c457a1f23dd68a9..1ae9c54e64e057e2974f2e06d5c428f61fd3d69f 100644
--- a/src/uncategorized/discardConfirm.tw
+++ b/src/uncategorized/discardConfirm.tw
@@ -1,6 +1,6 @@
 :: Discard Confirm [nobr]
 
-This will permanently remove getSlave($AS).slaveName from the game, and you will not receive any money for $him. This is primarily intended as a way to rid yourself of bugged slaves. Are you certain?
+This will permanently remove <<= getSlave($AS).slaveName>> from the game, and you will not receive any money for $him. This is primarily intended as a way to rid yourself of bugged slaves. Are you certain?
 
 <br><br>
 
diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw
index c26de129b229e8bda97bdb6167259dc2f3e66ac0..52e94fa66944f1873fd7207d206740f663e1bcea 100644
--- a/src/uncategorized/futureSociety.tw
+++ b/src/uncategorized/futureSociety.tw
@@ -438,7 +438,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 <<if $arcologies[0].FSChattelReligionist != "unset"
 	|| $arcologies[0].FSPastoralist != "unset"
 	|| $arcologies[0].FSRomanRevivalist != "unset"
-	|| $arcologies[0].FSNeoImperialist != "unset"	
+	|| $arcologies[0].FSNeoImperialist != "unset"
 	|| $arcologies[0].FSAztecRevivalist != "unset"
 	|| $arcologies[0].FSEgyptianRevivalist != "unset"
 	|| $arcologies[0].FSEdoRevivalist != "unset"
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 1c5ce20a3b0827c38969ecaf5828d76bdd1fda15..7dd1b11b4f6c236bbb8d4b12a237fa7e9f2e7e14 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -530,29 +530,29 @@
 	</p>
 <</if>>
 
-<<if $secExpEnabled > 0 && $SecExp.settings.battle.enabled == 1>>
+<<if $secExpEnabled > 0>>
+	<<set _countBattles = $SecExp.battles.victories + $SecExp.battles.losses>>
+	<<set _countRebellions = $SecExp.rebellions.victories + $SecExp.rebellions.losses>>
 	<p>
 	<<if $SF.Toggle === 0||$SF.Active === 0>>
 		Your army counts <<print num(App.SecExp.Manpower.employedOverall)>> total soldiers.
 	<<elseif $SF.Toggle && $SF.Active >= 1>>
 		Your army counts <<print num(App.SecExp.Manpower.employedOverall + $SF.ArmySize)>> total soldiers of which <<print num($SF.ArmySize)>> under the special force command and the rest under your direct control.
 	<</if>>
-	<<if $battlesCount > 0>>
-		Your troops were involved in <<print num($battlesCount)>> battles of which <<print num($majorBattlesCount)>> were major engagements. You won
-		<<if $battlesCount == $PCvictories>>
-			all of them.
-		<<elseif $battlesCount == $PClosses>>
-			none of them.
+	<<if $SecExp.settings.battle.enabled === 1 && _countBattles > 0>>
+		Your troops were involved in <<print num(_countBattles)>> battles of which <<print num($SecExp.battles.major)>> were major engagements.
+		<<if _countBattles === $SecExp.battles.victories>>
+			You won all of them.
+		<<elseif _countBattles === $SecExp.battles.losses>>
+			You won none of them.
 		<<else>>
-			<<print num($PCvictories)>> of them, while the enemy managed to gain the upper hand in the other <<print num($PClosses)>>.
+			You won <<print num($SecExp.battles.victories)>> of them, while the enemy managed to gain the upper hand in the other <<print num($SecExp.battles.losses)>>.
 		<</if>>
+		During all battles you lost a total of <<print num($militiaTotalCasualties + $slavesTotalCasualties + $mercTotalCasualties)>> men, while scoring a total of <<print num($SecExp.core.totalKills)>> kills.
 	<</if>>
-
-	<<if $rebellionsCount >= 1>>
-		Your arcology was involved in <<print num($rebellionsCount)>> rebellions. You won <<print num($PCrebWon)>> of them, while the rebels defeated your forces in <<print num($PCrebLoss)>>.
+	<<if $SecExp.settings.rebellion.enabled === 1 && _countRebellions > 0>>
+		Your arcology was involved in <<print num(_countRebellions)>> rebellions. You won <<print num($SecExp.rebellions.victories)>> of them, while the rebels defeated your forces in <<print num($SecExp.rebellions.losses)>>.
 	<</if>>
-
-	During all battles you lost a total of <<print num($militiaTotalCasualties + $slavesTotalCasualties + $mercTotalCasualties)>> men, while scoring a total of <<print num($totalKills)>> kills.
 	</p>
 <</if>>
 
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index 6bf4b7278f836215685cd279b85631e7a72d78d5..4ed7e461e3f2f4a3943f20092b886cf3e9f9e291 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -241,7 +241,7 @@
 						@@.lightcoral;acquires a pregnancy fetish,@@ since many of $his sexual partners in the fuckpit are heavily pregnant.
 						<<set _slave.fetish = "pregnancy", _slave.fetishStrength = 65>>
 					<</if>>
-				<<elseif (_msAvg.dom < 50) && (_fetishChangeChance > random(0,50))>>
+				<<elseif (_msAvg.dom < -25) && (_fetishChangeChance > random(0,50))>>
 					$He
 					<<if _slave.fetish == "dom">>
 						@@.lightcoral;becomes more dominant,@@ since there are so many subs in the fuckpit who beg $him to fuck them hard.
@@ -250,7 +250,7 @@
 						@@.lightcoral;becomes sexually dominant@@ after having fun satisfying the many submissive fucktoys in the fuckpit who beg $him to top them.
 						<<set _slave.fetish = "dom", _slave.fetishStrength = 65>>
 					<</if>>
-				<<elseif (_msAvg.dom > 50) && (_fetishChangeChance > random(0,50))>>
+				<<elseif (_msAvg.dom > 25) && (_fetishChangeChance > random(0,50))>>
 					$He
 					<<if _slave.fetish == "submissive">>
 						@@.lightcoral;becomes even more submissive,@@ since there are so many doms in the fuckpit that $he's often used by more than one at once.
@@ -259,7 +259,7 @@
 						@@.lightcoral;becomes sexually submissive@@ after the many dominant slaves in the fuckpit hold $him down and use $him for their pleasure.
 						<<set _slave.fetish = "submissive", _slave.fetishStrength = 65>>
 					<</if>>
-				<<elseif (_msAvg.sadism < 50) && (_fetishChangeChance > random(0,50))>>
+				<<elseif (_msAvg.sadism < -25) && (_fetishChangeChance > random(0,50))>>
 					$He
 					<<if _slave.fetish == "sadist">>
 						@@.lightcoral;becomes more sadistic,@@ since there are so many sluts in the fuckpit who will do anything for $him if $he'll only spank them.
@@ -268,7 +268,7 @@
 						@@.lightcoral;becomes a bit of a sadist@@ after $he notices that so many of $his fellow fucktoys cum harder if $he gives them a good slap.
 						<<set _slave.fetish = "sadist", _slave.fetishStrength = 65>>
 					<</if>>
-				<<elseif (_msAvg.sadism > 50) && (_fetishChangeChance > random(0,50))>>
+				<<elseif (_msAvg.sadism > 25) && (_fetishChangeChance > random(0,50))>>
 					<<if _slave.fetish == "masochist">>
 						<<if $verboseDescriptions == 1>>$His<<else>>_slave.slaveName's<</if>> @@.lightcoral;pain addiction deepens,@@ since the fuckpit is full of ladies happy to fuck $him while $he screams.
 						<<set _slave.fetishStrength += 4>>
diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw
index 16a66c6be1619849d61a40da56f95311892ee926..16caaf6cb4bed4282262091aebc1d485c5d9a603 100644
--- a/src/uncategorized/multiImplant.tw
+++ b/src/uncategorized/multiImplant.tw
@@ -17,7 +17,7 @@ that are ready be sent down.
 <h1>Implant Organs</h1>
 
 <<set _F = App.Medicine.OrganFarm>>
-<<for _i = 0; _i < $slaves.length; _i++>>	
+<<for _i = 0; _i < $slaves.length; _i++>>
 	<<set $AS = $slaves[_i].ID>>
 	<<set _sortedOrgans = _F.getSortedOrgans(getSlave($AS))>>
 	<<if _sortedOrgans.length === 0>><<continue>><</if>>
@@ -77,7 +77,7 @@ that are ready be sent down.
 	*/
 	<<if getSlave($AS).health.health - (_prostheticCount * 20) < -75>>
 		<br><hr>
-		@@.red;Estimated health impact too great; getSlave($AS).slaveName skipped.@@
+		@@.red;Estimated health impact too great; <<= getSlave($AS).slaveName>> skipped.@@
 		<<continue>>
 	<</if>>
 
diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw
index 98790d401330b909306ca2940c1ea58ff12614ad..14a66c7a6a5a0bc526bfaae77235c878f0ffb517 100644
--- a/src/uncategorized/neighborsDevelopment.tw
+++ b/src/uncategorized/neighborsDevelopment.tw
@@ -1207,7 +1207,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(_prosperity)>><<if $sh
 			<</if>>
 		<</if>>
 	<</if>>
-	
+
 <<elseif $arcologies[$i].FSNeoImperialist != "unset">>
 	<<= _passive.output("FSNeoImperialist")>>
 	<<if $arcologies[$i].direction != 0>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index e905da642c203c3de79ba4b595b63181aece6622..542fece06e4b911b01f0faecbe37f17d10d52100 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -1398,6 +1398,12 @@
 	<<if $arcologies[0].FSNeoImperialist > (random(25,100) || $cheatMode+24) && $arcologies[0].FSNeoImperialistLaw2 == 1>>
 		<<set $REFSevent.push("baron demand")>>
 	<</if>>
+	<<if $arcologies[0].FSNeoImperialist > (random(25,100) || $cheatMode+24) && $arcologies[0].FSNeoImperialistLaw2 == 1  && $arcologies[0].FSNeoImperialistLaw1 == 1 && $policies.regularParties == 1>>
+		<<set $REFSevent.push("feast")>>
+	<</if>>
+	<<if $arcologies[0].FSNeoImperialist > (random(25,100) || $cheatMode+24)>>
+		<<set $REFSevent.push("warhound")>>
+	<</if>>
 
 	/* EVENT RANDOMIZATION */
 
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 953b433830bec2184f66c4846cfef88ea5ed0d38..68ad09fe52c4478ee56c6e0a773f864ef6686c32 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -268,7 +268,7 @@
 						<</if>>
 					</div>
 				<</if>>
-				
+
 				/* Fix eyes */
 				<<set _n = 0>>
 				<div>
diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw
index f929fe48ef5111e30072d1a112d22a13e21c6c18..6efbccb22778ead709dd9ee448a43e26b0dbfa19 100644
--- a/src/uncategorized/scheduledEvent.tw
+++ b/src/uncategorized/scheduledEvent.tw
@@ -20,12 +20,6 @@
 <</if>>
 <<set $retired = 0>>
 
-/* birth scheduled event */
-<<if $birthed == 1>>
-	<<set $birthee = 1>>
-<</if>>
-<<set $birthed = 0>>
-
 /* burst scheduled event */
 <<if $burst == 1>>
 	<<set $burstee = 1>>
@@ -86,10 +80,8 @@
 	<<set $fcnn.push("...evidence of a planned slave uprising, executed all of their arcology's several thousand...")>>
 <</if>>
 
-<<if $secExpEnabled > 0>>
-	<<if $SecExp.settings.battle.enabled > 0>>
-		<<include "attackGenerator">>
-	<</if>>
+<<if $secExpEnabled > 0 && $SecExp.settings.battle.enabled > 0>>
+	<<include "attackGenerator">>
 <</if>>
 
 <<if $rivalOwner == -1>>
@@ -128,7 +120,6 @@
 	<<set $slaveDeath = 0>>
 	<<goto "SE Death">>
 <<elseif ($birthee != 0)>>
-	<<set $birthed = 0>>
 	<<goto "SE Birth">>
 <<elseif $FCTV.receiver > 0 && $FCTV.pcViewership.frequency != -1 && $FCTV.pcViewership.count == 0>>
 	<<if $week > 50 && $FCTV.remote < 2>> <<goto "SE FCTV Remote">>
diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw
index 38dab9ef52e1db79bb42890dc04e6edebe307361..ad8e39fce25d28e8d32e36d87f2121abceef402b 100644
--- a/src/uncategorized/seBirth.tw
+++ b/src/uncategorized/seBirth.tw
@@ -1,56 +1,6 @@
 :: SE Birth [nobr]
 
-/*
-Refactoring this passage. Main idea for structure:
-
-1. Making all checks about where and how slave give birth (health too).
-2. Showing scene (widget with preparations)
-3. Make calculation of birth process. All live babies will be added to slave property .curBabies as array. They will be in it as long as slave not give next birth. Enough time for any processing.
-4. Showing scene of birth based on calculation (broodmother and normal is merged in one scene, just with variations).
-5. Dealing with babies — they are in separate array, no need to mess with mother .pregType or .preg now.
-6. Setting up postpartum
-7. Dealing with mother critical states.
-
-I need to break single passage to several widgets, as it's been overcomplicated monster with too many nested if's — true horror for me. :) At least for testing and bugfixing time, later it can be merged back, if needed for processing speed up.
-
-*/
 <<set $nextButton = "Continue">>
 <<set $nextLink = "Scheduled Event">>
 
-<<if $legendaryWombID != 0>>
-	<<set $legendaryWombID = 0>>
-<</if>>
-
-<<for $i = 0; $i < $slaves.length; $i++>>
-	<<if $slaves[$i].labor == 1>>
-		<<if ndef $slaves[$i].counter.laborCount>>
-			<<set $slaves[$i].counter.laborCount = 0>>
-			<<if $slaves[$i].counter.birthsTotal > 0 && $slaves[$i].counter.laborCount == 0>>
-				<<set $slaves[$i].counter.laborCount = $slaves[$i].counter.birthsTotal>> /*we do not have a way to know multiples birth count for backward compatibility code. :( */
-			<</if>>
-		<</if>>
-		<<set $dispositionId = _.uniqueId('babyDisposition-')>>
-		Birth report: @@.coral;<<= SlaveFullName($slaves[$i])>>@@
-		<br>
-		<<seBirthPreCheck>>
-		<<seBirthPreScene>>
-		<<if $slaveDead != 1>>
-			<<seBirthCalc>>
-			<<seBirthMainScene>>
-			<<seBirthBabies>>
-			<<seBirthPostpartum>>
-			<<set $slaves[$i].counter.laborCount++>>
-			<<seBirthCritical>>
-		<<else>>
-			<<= removeSlave($slaves[$i])>>
-			<<set $slaveDead = 0>>
-		<</if>>
-		<br><br><hr style="margin:0"><br>
-	<</if>>
-<</for>>
-
-<<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
-<<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
-
-<<set $birthee = 0>>
-<<set $birthed = 0>>
+<<includeDOM allBirths()>>
diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw
index 4d80f2fca65596394df55428c6ca02cfd6d54f75..b4fcd301522a993f4cbd0e02ce5f126d2c3af6f7 100644
--- a/src/uncategorized/seIndependenceDay.tw
+++ b/src/uncategorized/seIndependenceDay.tw
@@ -385,7 +385,7 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve
 <</link>> //Costs @@.yellowgreen;<<print cashFormat(Math.trunc(10000*$upgradeMultiplierTrade))>>@@// </span>
 
 <span id="result3">
-<<if $SF.Toggle && $SF.Active >= 1>> 
+<<if $SF.Toggle && $SF.Active >= 1>>
 <br><<link "Host a parade">>
 	<<replace "#result3">><br><br>
 	<<if $SF.ArmySize < 100>>
@@ -461,7 +461,7 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve
 	<</if>>
 	/* Maybe a random chance attack by the Daughters of Liberty if they haven't been already defeated or if they have a cell that managed to survive. The size of the attack could depend the time since their last encounter. The amount of damage inflicted would depend primarily on whether hacker's support was acquired, $bodyguard's combat skill, the player's combat skill, SF upgrades and finally some RNG. If a low amount of damage is inflicted then there will be a low hit to rep and some criminals can be acquired or dealt with in the usual manner. Higher amounts of damage leads to higher hits to rep and a chance that fewer attackers will survive. Without a bodyguard there is a chance that PC may die or be held hostage with a chance of being killed if the rescue attempt is botched. */
 	/* I was thinking providing an option (potentially #result3) of giving a speech with it being a duplicate of the above speech just for completeness' sake however it would be redundant except for a line or two about the outcome of attack if it fired (i.e. listing the number of dead/captured attackers (potentially #result4) and dead soldiers with a couple of potential options (potentially #result5); to erect a statute or such acknowledge them and if one is already present to add them on to it, to provide support for their families. Also the amount of monetary damage, did $bodyguard die or just get wounded and if so how severely. Finally a closing message with how the PC wishes to react to it (potentially #result6); e.g. be vigilant, it's a one-off, act of war, 'we will not give into terrorist attacks', etc. */
-	<</replace>> 
-<</link>> 
+	<</replace>>
+<</link>>
 <</if>>
-</span> 
\ No newline at end of file
+</span>
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index 945965762a44581242a8a56f2890a510751c78f3..7f46eea2e2bd97e55f2014c539f088cee3fc5bda 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -1797,7 +1797,7 @@ __Bids Received__
 	<<if getSlave($AS).devotion <= 20>>
 		<<if getSlave($AS).trust < 20>>
 			<<if random(1,100) > 70>>
-				<br>''<<print cashFormat(500*Math.trunc((_slaveCost*1.25)/500))>>'' from a fellow arcology owner with a strongly held belief that getSlave($AS).race people should not be slaves. He devotes as much of his resources as he can to manumission of such <<= $girl>>s, concentrating on the downtrodden.
+				<br>''<<print cashFormat(500*Math.trunc((_slaveCost*1.25)/500))>>'' from a fellow arcology owner with a strongly held belief that <<= getSlave($AS).race>> people should not be slaves. He devotes as much of his resources as he can to manumission of such <<= $girl>>s, concentrating on the downtrodden.
 				<<link "Accept bid" "Slave Sold">>
 					<<set _Price = 500*Math.trunc((_slaveCost*1.25)/500)>>
 					<<run cashX(_Price, "slaveTransfer", getSlave($AS))>>
@@ -1813,7 +1813,7 @@ __Bids Received__
 		<<if getSlave($AS).intelligence+getSlave($AS).intelligenceImplant < -50>>
 			<<if getSlave($AS).ovaries == 1>>
 				<<if random(1,100) > 70>>
-					<br>''<<print cashFormat(500*Math.trunc((_slaveCost*1.25)/500))>>'' from a fellow arcology owner working on a project to breed a race of getSlave($AS).race people with natural, unquestioning obedience. He clearly considers $him good stock for the project.
+					<br>''<<print cashFormat(500*Math.trunc((_slaveCost*1.25)/500))>>'' from a fellow arcology owner working on a project to breed a race of <<= getSlave($AS).race>> people with natural, unquestioning obedience. He clearly considers $him good stock for the project.
 					<<link "Accept bid" "Slave Sold">>
 						<<set _Price = 500*Math.trunc((_slaveCost*1.25)/500)>>
 						<<run cashX(_Price, "slaveTransfer", getSlave($AS))>>
diff --git a/src/uncategorized/servantsQuarters.tw b/src/uncategorized/servantsQuarters.tw
index 9cc06b6a7e1df4530b802afccc6edcb22ebbf954..ae0516d2d5665be364753df1acb2711e4e1221c4 100644
--- a/src/uncategorized/servantsQuarters.tw
+++ b/src/uncategorized/servantsQuarters.tw
@@ -9,7 +9,7 @@
 		<<case "Roman Revivalist">>
 			are spartan, yet functional. At one end of the long dormitory there is an alcove with a shrine to the Roman goddess of domesticity.
 		<<case "Neo Imperialist">>
-			are surprisingly luxurious for mere servant's quarters. They're a large, public dormitory, but the barracks-like beds are soft, clean, high-tech pods stacked two to a row, separated by banners emblazoned with your family crest. A few small tapestries decorate the walls, mostly showing happy-looking servants cleaning and cooking. 
+			are surprisingly luxurious for mere servant's quarters. They're a large, public dormitory, but the barracks-like beds are soft, clean, high-tech pods stacked two to a row, separated by banners emblazoned with your family crest. A few small tapestries decorate the walls, mostly showing happy-looking servants cleaning and cooking.
 		<<case "Aztec Revivalist">>
 			are simple, yet grandiose. In every corner stands a monument to a god, and as the sun peeks through, all the obsidian ornaments glisten with light.
 		<<case "Egyptian Revivalist">>
diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw
index 25bd4500ced8df930964aa6a0dcb1b637789ac7c..9bae324a86f6bd1c23329ce8a8cdb1dd36048db7 100644
--- a/src/uncategorized/slaveSold.tw
+++ b/src/uncategorized/slaveSold.tw
@@ -147,7 +147,7 @@
 <<switch $buyer>>
 
 <<case "housekeeper">>
-	getSlave($AS).slaveName settles into $his new life in a humbler part of $arcologies[0].name, and can occasionally be seen accompanying $his master in public.
+	<<= getSlave($AS).slaveName>> settles into $his new life in a humbler part of $arcologies[0].name, and can occasionally be seen accompanying $his master in public.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].trust >= -20)>>
 			<<if ($slaves[_ss].physicalAge > 30)>>
@@ -161,7 +161,7 @@
 	<</if>>
 
 <<case "buttbreaker">>
-	In short order, getSlave($AS).slaveName is heard out on the promenade, sobbing and screaming as $his new owner breaks in $his virgin butt in public.
+	In short order, <<= getSlave($AS).slaveName>> is heard out on the promenade, sobbing and screaming as $his new owner breaks in $his virgin butt in public.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].anus == 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -173,7 +173,7 @@
 	<</if>>
 
 <<case "cheap brothel">>
-	getSlave($AS).slaveName is soon seen on shift outside a seedy establishment in the lower arcology, mechanically offering $his holes to passersby and flinching whenever $his superiors come out to check on $him.
+	<<= getSlave($AS).slaveName>> is soon seen on shift outside a seedy establishment in the lower arcology, mechanically offering $his holes to passersby and flinching whenever $his superiors come out to check on $him.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].assignment == "whore") || ($slaves[_ss].assignment == "work in the brothel")>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -185,7 +185,7 @@
 	<</if>>
 
 <<case "nice brothel">>
-	getSlave($AS).slaveName disappears for a time as $his training is perfected, but $he reappears in the refined brothel, wearing classy clothes and flirting gracefully with patrons of $his body.
+	<<= getSlave($AS).slaveName>> disappears for a time as $his training is perfected, but $he reappears in the refined brothel, wearing classy clothes and flirting gracefully with patrons of $his body.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].assignment == "whore") || ($slaves[_ss].assignment == "work in the brothel")>>
 			<<set $slaves[_ss].trust += 1>>
@@ -197,7 +197,7 @@
 	<</if>>
 
 <<case "factory farm">>
-	getSlave($AS).slaveName is never again seen in public, but $his fate is obvious: $he's chained to a milking rack somewhere in a cavernous factory farm, with milk draining from $his tits<<if getSlave($AS).balls > 0>> and an electroshock stimulator up $his butt to force $him to cum<<elseif getSlave($AS).ovaries > 0>> and a new baby in $his belly every ten months<</if>>.
+	<<= getSlave($AS).slaveName>> is never again seen in public, but $his fate is obvious: $he's chained to a milking rack somewhere in a cavernous factory farm, with milk draining from $his tits<<if getSlave($AS).balls > 0>> and an electroshock stimulator up $his butt to force $him to cum<<elseif getSlave($AS).ovaries > 0>> and a new baby in $his belly every ten months<</if>>.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion <= 50)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -209,7 +209,7 @@
 	<</if>>
 
 <<case "elite auction">>
-	getSlave($AS).slaveName is quickly escorted out by $his new master. $He is rarely seen in public anymore, but $his records show $he is settling well into being $his new owner's breeder.
+	<<= getSlave($AS).slaveName>> is quickly escorted out by $his new master. $He is rarely seen in public anymore, but $his records show $he is settling well into being $his new owner's breeder.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].breedingMark != 1 && $propOutcome == 1)>>
 			<<set $slaves[_ss].devotion -= 5>>
@@ -217,11 +217,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		Your non-chosen slaves @@.mediumorchid;resent@@ you for denying them the special treatment getSlave($AS).slaveName is receiving.
+		Your non-chosen slaves @@.mediumorchid;resent@@ you for denying them the special treatment <<= getSlave($AS).slaveName>> is receiving.
 	<</if>>
 
 <<case "free range">>
-	getSlave($AS).slaveName is a common sight around the arcology, since free range cows are allowed to range between milkings. $He seems reasonably content.
+	<<= getSlave($AS).slaveName>> is a common sight around the arcology, since free range cows are allowed to range between milkings. $He seems reasonably content.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].assignment == "get milked") || ($slaves[_ss].assignment == "work in the dairy")>>
 			<<set $slaves[_ss].trust += 1>>
@@ -245,7 +245,7 @@
 	<</if>>
 
 <<case "preg fetishist">>
-	getSlave($AS).slaveName settles in to $his new role easily enough; $he's one of the most pampered slaves in the arcology. All $he's expected to do is light housework and self-maintenance, along with gentle unprotected vaginal sex with $his new master.
+	<<= getSlave($AS).slaveName>> settles in to $his new role easily enough; $he's one of the most pampered slaves in the arcology. All $he's expected to do is light housework and self-maintenance, along with gentle unprotected vaginal sex with $his new master.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "pregnancy")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -259,7 +259,7 @@
 	<</if>>
 
 <<case "nipple fetishist">>
-	getSlave($AS).slaveName's new mistress is an exhibitionist as well as a nipple fetishist, and before long, she's seen in the club, riding <<= getSlave($AS).slaveName>>'s chest with her wet pussy. The slave is expected to keep $his nipples erect for her at all times.
+	<<= getSlave($AS).slaveName>>'s new mistress is an exhibitionist as well as a nipple fetishist, and before long, she's seen in the club, riding <<= getSlave($AS).slaveName>>'s chest with her wet pussy. The slave is expected to keep $his nipples erect for her at all times.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "boobs")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -273,7 +273,7 @@
 	<</if>>
 
 <<case "nipple fucker">>
-	getSlave($AS).slaveName's new master is an exhibitionist as well as a nipple fetishist, and before long, he's seen in the club, plowing <<= getSlave($AS).slaveName>>'s engorged breasts. Since nipple cunts aren't naturally lubricated, some owners find stimulating milk production a suitable replacement; judging from the pooling fluids and sympathetic gushes from $his ignored tit, he is one of them.
+	<<= getSlave($AS).slaveName>>'s new master is an exhibitionist as well as a nipple fetishist, and before long, he's seen in the club, plowing <<= getSlave($AS).slaveName>>'s engorged breasts. Since nipple cunts aren't naturally lubricated, some owners find stimulating milk production a suitable replacement; judging from the pooling fluids and sympathetic gushes from $his ignored tit, he is one of them.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "boobs")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -289,7 +289,7 @@
 	<</if>>
 
 <<case "anal fetishist">>
-	The next time getSlave($AS).slaveName is seen in public, on an errand for $his master, $he's <<if canWalk(getSlave($AS))>>walking<<else>>moving<</if>> a little oddly. $His naked dick has the flaccidity of sexual satiation, and $he has a tired but dreamy expression on $his face.
+	The next time <<= getSlave($AS).slaveName>> is seen in public, on an errand for $his master, $he's <<if canWalk(getSlave($AS))>>walking<<else>>moving<</if>> a little oddly. $His naked dick has the flaccidity of sexual satiation, and $he has a tired but dreamy expression on $his face.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "buttslut")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -303,7 +303,7 @@
 	<</if>>
 
 <<case "oral fetishist">>
-	The next time getSlave($AS).slaveName is seen in public, $he's obediently accompanying $his new master. After doing some business on the promenade, he pulls $him into an alcove and lets $him masturbate as he uses $his throat.
+	The next time <<= getSlave($AS).slaveName>> is seen in public, $he's obediently accompanying $his new master. After doing some business on the promenade, he pulls $him into an alcove and lets $him masturbate as he uses $his throat.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "cumslut")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -317,7 +317,7 @@
 	<</if>>
 
 <<case "pain fetishist">>
-	getSlave($AS).slaveName is not seen again in public for a long time, but the crack of leather on flesh and the resultant hoarse female howling that issues from $his new mistress's apartment is well-known.
+	<<= getSlave($AS).slaveName>> is not seen again in public for a long time, but the crack of leather on flesh and the resultant hoarse female howling that issues from $his new mistress's apartment is well-known.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "masochist")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -331,7 +331,7 @@
 	<</if>>
 
 <<case "sadism fetishist">>
-	getSlave($AS).slaveName rarely leaves $his new mistress's apartments, but the slave rumor mill bears stories about $him to your penthouse anyway. $His mistress uses $him as a rapist on demand, and $his dumbly obedient brutality is renowned.
+	<<= getSlave($AS).slaveName>> rarely leaves $his new mistress's apartments, but the slave rumor mill bears stories about $him to your penthouse anyway. $His mistress uses $him as a rapist on demand, and $his dumbly obedient brutality is renowned.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "sadist")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -345,7 +345,7 @@
 	<</if>>
 
 <<case "dom fetishist">>
-	getSlave($AS).slaveName wins $himself a leadership position with $his new master, who repays $his hard work by allowing $him to use his slaves at will.
+	<<= getSlave($AS).slaveName>> wins $himself a leadership position with $his new master, who repays $his hard work by allowing $him to use his slaves at will.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "dom")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -359,7 +359,7 @@
 	<</if>>
 
 <<case "sub fetishist">>
-	The back of getSlave($AS).slaveName's head becomes a well-known sight in business circles, since $his mistress rarely lets it out from between her legs.
+	The back of <<= getSlave($AS).slaveName>>'s head becomes a well-known sight in business circles, since $his mistress rarely lets it out from between her legs.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "submissive")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -373,7 +373,7 @@
 	<</if>>
 
 <<case "supremacist arcology">>
-	getSlave($AS).slaveName leaves your control forthwith, to be freed and installed in a favored life in an arcology that gives getSlave($AS).race people every possible advantage.
+	<<= getSlave($AS).slaveName>> leaves your control forthwith, to be freed and installed in a favored life in an arcology that gives <<= getSlave($AS).race>> people every possible advantage.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion < 10)>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -385,7 +385,7 @@
 	<</if>>
 
 <<case "subjugationist arcology">>
-	getSlave($AS).slaveName is shipped off to help produce a race of getSlave($AS).race idiots to perform eternal servitude. $He is not perceptive enough to fear $his upcoming life as a downtrodden breeder.
+	<<= getSlave($AS).slaveName>> is shipped off to help produce a race of <<= getSlave($AS).race>> idiots to perform eternal servitude. $He is not perceptive enough to fear $his upcoming life as a downtrodden breeder.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant > 15)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -397,7 +397,7 @@
 	<</if>>
 
 <<case "gender radicalist arcology">>
-	getSlave($AS).slaveName is shipped off, but $his buyer is so unwilling to waste any time that the shipment container includes hormonal injectors to get $him started on an intensive feminization regime as quickly as possible.
+	<<= getSlave($AS).slaveName>> is shipped off, but $his buyer is so unwilling to waste any time that the shipment container includes hormonal injectors to get $him started on an intensive feminization regime as quickly as possible.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].dick > 0)>>
 			<<if ($slaves[_ss].devotion <= 20)>>
@@ -411,7 +411,7 @@
 	<</if>>
 
 <<case "gender fundamentalist arcology">>
-	getSlave($AS).slaveName is taken away to join the legion of airheaded, big-titted sex slaves that throng the arcology owned by $his purchaser.
+	<<= getSlave($AS).slaveName>> is taken away to join the legion of airheaded, big-titted sex slaves that throng the arcology owned by $his purchaser.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant > 50)>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -423,7 +423,7 @@
 	<</if>>
 
 <<case "paternalist arcology">>
-	getSlave($AS).slaveName is shipped off to be improved into a happy, educated slave at the best pace $his new owner can manage.
+	<<= getSlave($AS).slaveName>> is shipped off to be improved into a happy, educated slave at the best pace $his new owner can manage.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion < -20)>>
 			<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant < -15)>>
@@ -449,7 +449,7 @@
 	<</if>>
 
 <<case "slimness enthusiast arcology">>
-	getSlave($AS).slaveName is taken away to join the tribe of squealing, slim forms that populate the arcology of $his new owner.
+	<<= getSlave($AS).slaveName>> is taken away to join the tribe of squealing, slim forms that populate the arcology of $his new owner.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant > 50)>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -473,7 +473,7 @@
 	<</if>>
 
 <<case "organ crafter">>
-	getSlave($AS).slaveName is seen in a research report nine months later; $he has undergone some interesting changes. As expected by someone interested in $his odd womb, $he is quite pregnant, but what really stands out is the massive size of $his testicles and $his huge round implants. A quick glance at the article reveals that they aren't implants; in fact, $his breasts and testicles are rounded with children.
+	<<= getSlave($AS).slaveName>> is seen in a research report nine months later; $he has undergone some interesting changes. As expected by someone interested in $his odd womb, $he is quite pregnant, but what really stands out is the massive size of $his testicles and $his huge round implants. A quick glance at the article reveals that they aren't implants; in fact, $his breasts and testicles are rounded with children.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].mpreg == 1)>>
 			<<set $slaves[_ss].trust -= 5>>
@@ -485,7 +485,7 @@
 	<</if>>
 
 <<case "abortion TV">>
-	getSlave($AS).slaveName is soon seen on live TV, restrained and still grotesquely pregnant. $He screams into $his restraints as the host approaches with a comically large syringe of abortifacients and drives it deep into $his womb. Within minutes, a flood of liquid and fetuses are pouring from $his gaping cunt, all the while he times how long it takes $his overburdened womb to drain of all its contents.
+	<<= getSlave($AS).slaveName>> is soon seen on live TV, restrained and still grotesquely pregnant. $He screams into $his restraints as the host approaches with a comically large syringe of abortifacients and drives it deep into $his womb. Within minutes, a flood of liquid and fetuses are pouring from $his gaping cunt, all the while he times how long it takes $his overburdened womb to drain of all its contents.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if $slaves[_ss].bellyPreg >= 300000>>
 			<<set $slaves[_ss].trust -= 15>>
@@ -497,7 +497,7 @@
 	<</if>>
 
 <<case "womb filler">>
-	getSlave($AS).slaveName is seen in a drug report nine months later; $he is unrecognizable. $His gaunt body is completely bloated by $his enormous womb, leaving <<if !isAmputee(getSlave($AS))>>what's left of $his <<if hasAnyArms(getSlave($AS))>>arm<<if hasBothArms(getSlave($AS))>>s<</if>><<if hasAnyLegs(getSlave($AS))>> and <</if>><</if>><<if hasAnyLegs(getSlave($AS))>>leg<<if hasBothLegs(getSlave($AS))>>s<</if>><</if>> dangling<<else>>$his torso teetering<</if>> pathetically atop its quivering mass. The headline reads "New drug allows for upwards of seven hundred children carried at once". Live on stream, $his body loses stability and ruptures, flooding the room with fluid and children.
+	<<= getSlave($AS).slaveName>> is seen in a drug report nine months later; $he is unrecognizable. $His gaunt body is completely bloated by $his enormous womb, leaving <<if !isAmputee(getSlave($AS))>>what's left of $his <<if hasAnyArms(getSlave($AS))>>arm<<if hasBothArms(getSlave($AS))>>s<</if>><<if hasAnyLegs(getSlave($AS))>> and <</if>><</if>><<if hasAnyLegs(getSlave($AS))>>leg<<if hasBothLegs(getSlave($AS))>>s<</if>><</if>> dangling<<else>>$his torso teetering<</if>> pathetically atop its quivering mass. The headline reads "New drug allows for upwards of seven hundred children carried at once". Live on stream, $his body loses stability and ruptures, flooding the room with fluid and children.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].vagina == 0)>>
 			<<if isFertile($slaves[_ss])>>
@@ -511,7 +511,7 @@
 	<</if>>
 
 <<case "repopulationist arcology">>
-	getSlave($AS).slaveName is seen nine months later with an enormous pregnancy and the most content look on $his face. $He <<if hasAnyArms(getSlave($AS))>>gently pats $his quadruplet filled belly and lets off a moan as $his children kick in response<<else>>moans lewdly as $his children kick away in $his womb<</if>>.
+	<<= getSlave($AS).slaveName>> is seen nine months later with an enormous pregnancy and the most content look on $his face. $He <<if hasAnyArms(getSlave($AS))>>gently pats $his quadruplet filled belly and lets off a moan as $his children kick in response<<else>>moans lewdly as $his children kick away in $his womb<</if>>.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].vagina == 0)>>
 			<<if isFertile($slaves[_ss])>>
@@ -523,11 +523,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		Your other pregnancy fetishists @@.mediumorchid;are jealous@@ of getSlave($AS).slaveName's good fortune.
+		Your other pregnancy fetishists @@.mediumorchid;are jealous@@ of <<= getSlave($AS).slaveName>>'s good fortune.
 	<</if>>
 
 <<case "eugenics arcology">>
-	getSlave($AS).slaveName is seen nearly a year later, happy and healthy, along with $his owner and newborn son. They are quite a good looking family.
+	<<= getSlave($AS).slaveName>> is seen nearly a year later, happy and healthy, along with $his owner and newborn son. They are quite a good looking family.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant < -15)>>
 			<<if isFertile($slaves[_ss])>>
@@ -537,11 +537,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		Your more idiotic slaves are @@.mediumorchid;deeply jealous@@ of getSlave($AS).slaveName's new pampered lifestyle, oblivious to the demanding nature of eugenics.
+		Your more idiotic slaves are @@.mediumorchid;deeply jealous@@ of <<= getSlave($AS).slaveName>>'s new pampered lifestyle, oblivious to the demanding nature of eugenics.
 	<</if>>
 
 <<case "hedonistic decadence arcology">>
-	getSlave($AS).slaveName is taken away to join a quivering mass of plump, pampered ladies that crowd the bedroom of $his new owner.
+	<<= getSlave($AS).slaveName>> is taken away to join a quivering mass of plump, pampered ladies that crowd the bedroom of $his new owner.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if $slaves[_ss].behavioralFlaw == "gluttonous">>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -549,11 +549,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		Your more gluttonous slaves are @@.mediumorchid;deeply jealous@@ of getSlave($AS).slaveName's constant feedings and excessive weight gain.
+		Your more gluttonous slaves are @@.mediumorchid;deeply jealous@@ of <<= getSlave($AS).slaveName>>'s constant feedings and excessive weight gain.
 	<</if>>
 
 <<case "stuffer chef">>
-	getSlave($AS).slaveName's new owner is quite fond of his work and typically sends out photos of his progress. This is no exception; you are treated to a series of images featuring <<= getSlave($AS).slaveName>> being force-fed until $his stomach bulges. Day after day, you watch $him handle more and more food until $his belly is big enough to fill $his lap even when empty.
+	<<= getSlave($AS).slaveName>>'s new owner is quite fond of his work and typically sends out photos of his progress. This is no exception; you are treated to a series of images featuring <<= getSlave($AS).slaveName>> being force-fed until $his stomach bulges. Day after day, you watch $him handle more and more food until $his belly is big enough to fill $his lap even when empty.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if $slaves[_ss].weight < 10>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -591,7 +591,7 @@
 	<</if>>
 
 <<case "pastoralist arcology">>
-	getSlave($AS).slaveName is subjected to a stock assay and then packed off to take $his place as a prize heifer.
+	<<= getSlave($AS).slaveName>> is subjected to a stock assay and then packed off to take $his place as a prize heifer.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].lactation == 0)>>
 			<<if ($slaves[_ss].devotion <= 20)>>
@@ -605,7 +605,7 @@
 	<</if>>
 
 <<case "chattel religionist arcology">>
-	getSlave($AS).slaveName is terrified of $his impending religious life; perhaps $he's heard the new text that reads 'no woman come of age is holy unless she performs the act as many times per day as she has years less than forty.'
+	<<= getSlave($AS).slaveName>> is terrified of $his impending religious life; perhaps $he's heard the new text that reads 'no woman come of age is holy unless she performs the act as many times per day as she has years less than forty.'
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].counter.anal < 200)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -617,7 +617,7 @@
 	<</if>>
 
 <<case "roman revivalist arcology">>
-	getSlave($AS).slaveName is shipped to a new arcology, and culturally, across the centuries. $His skill at arms is well enough known that $his impending role as a gladiatrix is easily deduced.
+	<<= getSlave($AS).slaveName>> is shipped to a new arcology, and culturally, across the centuries. $His skill at arms is well enough known that $his impending role as a gladiatrix is easily deduced.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].skill.combat > 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -629,7 +629,7 @@
 	<</if>>
 
 <<case "aztec revivalist arcology">>
-	getSlave($AS).slaveName is transported after losing a military engagement. Though $his will remains strong, $he's @@.gold;filled with fear@@ when $he sees the rivers of blood that flow through the city.
+	<<= getSlave($AS).slaveName>> is transported after losing a military engagement. Though $his will remains strong, $he's @@.gold;filled with fear@@ when $he sees the rivers of blood that flow through the city.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].skill.combat > 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -641,7 +641,7 @@
 	<</if>>
 
 <<case "egyptian revivalist arcology">>
-	getSlave($AS).slaveName's journey to $his new home is respectful, even celebratory, as far as you can see. $He is gravely informed by the purchasing agent that many slaves await $his learned instruction.
+	<<= getSlave($AS).slaveName>>'s journey to $his new home is respectful, even celebratory, as far as you can see. $He is gravely informed by the purchasing agent that many slaves await $his learned instruction.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant < -50)>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -653,7 +653,7 @@
 	<</if>>
 
 <<case "virgin trader">>
-	getSlave($AS).slaveName is seen in a shipment of slaves leaving the arcology a month later, with just the slightest hint of a gravid belly and a worn-down expression on $his face.
+	<<= getSlave($AS).slaveName>> is seen in a shipment of slaves leaving the arcology a month later, with just the slightest hint of a gravid belly and a worn-down expression on $his face.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].vagina == 0)>>
 			<<if ($slaves[_ss].ovaries == 1)>>
@@ -667,7 +667,7 @@
 	<</if>>
 
 <<case "body purist arcology">>
-	getSlave($AS).slaveName is shipped to $his new owner's arcology to have $his implants extracted and the resultant damage addressed.
+	<<= getSlave($AS).slaveName>> is shipped to $his new owner's arcology to have $his implants extracted and the resultant damage addressed.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion <= 50)>>
 			<<if ($slaves[_ss].boobsImplant > 1000)>>
@@ -681,7 +681,7 @@
 	<</if>>
 
 <<case "trainer staffing">>
-	getSlave($AS).slaveName is soon well-known among the slaves of the arcology, as many of them are sold after passing under $his hands in training. $He performs effectively, imparting good sex slave ethics in a generation of sluts.
+	<<= getSlave($AS).slaveName>> is soon well-known among the slaves of the arcology, as many of them are sold after passing under $his hands in training. $He performs effectively, imparting good sex slave ethics in a generation of sluts.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligence+$slaves[_ss].intelligenceImplant > 15)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -693,7 +693,7 @@
 	<</if>>
 
 <<case "teaching trainer">>
-	getSlave($AS).slaveName is not pleased by $his change in circumstances, since $he is soon subjected to training rigor that $he did not experience while your property.
+	<<= getSlave($AS).slaveName>> is not pleased by $his change in circumstances, since $he is soon subjected to training rigor that $he did not experience while your property.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].intelligenceImplant < 15)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -705,7 +705,7 @@
 	<</if>>
 
 <<case "implanting trainer">>
-	A few weeks later, getSlave($AS).slaveName is seen in a shipment of slaves heading out of the arcology. $He has new fake tits, a bigger butt, lip implants, and even some facial bone structure alterations, but $his balloon breasts are the most shocking change.
+	A few weeks later, <<= getSlave($AS).slaveName>> is seen in a shipment of slaves heading out of the arcology. $He has new fake tits, a bigger butt, lip implants, and even some facial bone structure alterations, but $his balloon breasts are the most shocking change.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].boobsImplant == 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -713,11 +713,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		Your unimplanted slaves @@.gold;fear they'll go under the knife@@ for invasive surgery like getSlave($AS).slaveName suffered, should you ever decide to sell them.
+		Your unimplanted slaves @@.gold;fear they'll go under the knife@@ for invasive surgery like <<= getSlave($AS).slaveName>> suffered, should you ever decide to sell them.
 	<</if>>
 
 <<case "purifying trainer">>
-	A few weeks later, getSlave($AS).slaveName is seen in a shipment of slaves heading out of the arcology. $He is almost unrecognizable, having been quickly returned to as natural an appearance as skillful removal of $his implants could manage.
+	A few weeks later, <<= getSlave($AS).slaveName>> is seen in a shipment of slaves heading out of the arcology. $He is almost unrecognizable, having been quickly returned to as natural an appearance as skillful removal of $his implants could manage.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].boobsImplant > 800)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -729,7 +729,7 @@
 	<</if>>
 
 <<case "D virgin asspussy">>
-	getSlave($AS).slaveName's buyer takes charge of $him, and cannot resist immediately running a hand between $his buttocks to sink a couple of groping fingers into $his soft asspussy.
+	<<= getSlave($AS).slaveName>>'s buyer takes charge of $him, and cannot resist immediately running a hand between $his buttocks to sink a couple of groping fingers into $his soft asspussy.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "buttslut")>>
 			<<set $slaves[_ss].trust += 1>>
@@ -741,7 +741,7 @@
 	<</if>>
 
 <<case "D startled the witch">>
-	getSlave($AS).slaveName heads off to form part of whatever great design $his new master is pursuing; all you know is that it apparently requires lots of lithe, sharp toothed slave <<= $girl>>s.
+	<<= getSlave($AS).slaveName>> heads off to form part of whatever great design $his new master is pursuing; all you know is that it apparently requires lots of lithe, sharp toothed slave <<= $girl>>s.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion <= 20)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -753,7 +753,7 @@
 	<</if>>
 
 <<case "vampire clan">>
-	getSlave($AS).slaveName is quickly embraced by $his new owner and spirited away like all the other <<= $girl>>s that catch his fancy.
+	<<= getSlave($AS).slaveName>> is quickly embraced by $his new owner and spirited away like all the other <<= $girl>>s that catch his fancy.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion <= 20)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -765,7 +765,7 @@
 	<</if>>
 
 <<case "D milf staffing">>
-	getSlave($AS).slaveName becomes a common sight around the arcology, training slaves for $his new master. They're usually seen hanging close by $him as $he manages them with an air at once protective and frankly sexual.
+	<<= getSlave($AS).slaveName>> becomes a common sight around the arcology, training slaves for $his new master. They're usually seen hanging close by $him as $he manages them with an air at once protective and frankly sexual.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].actualAge > 35)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -777,7 +777,7 @@
 	<</if>>
 
 <<case "D hucow">>
-	getSlave($AS).slaveName becomes quite a fixture at social events hosted by $his new master; he enjoys showing off how healthy, happy and productive his cow is.
+	<<= getSlave($AS).slaveName>> becomes quite a fixture at social events hosted by $his new master; he enjoys showing off how healthy, happy and productive his cow is.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].lactation > 0)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -789,7 +789,7 @@
 	<</if>>
 
 <<case "D r9k">>
-	getSlave($AS).slaveName's nervous buyer comes to collect $him, stammering and sweating and doing his best to pretend he does this all the time.
+	<<= getSlave($AS).slaveName>>'s nervous buyer comes to collect $him, stammering and sweating and doing his best to pretend he does this all the time.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].counter.vaginal + $slaves[_ss].counter.anal < 20)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -801,7 +801,7 @@
 	<</if>>
 
 <<case "slimming trainer">>
-	getSlave($AS).slaveName is occasionally visible around the arcology, looking rather tired and gaunt under the stresses of a severe crash diet coupled with a punishing cardio regime.
+	<<= getSlave($AS).slaveName>> is occasionally visible around the arcology, looking rather tired and gaunt under the stresses of a severe crash diet coupled with a punishing cardio regime.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].weight > 10)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -813,7 +813,7 @@
 	<</if>>
 
 <<case "broadening trainer">>
-	getSlave($AS).slaveName is only rarely seen around the arcology, since $his new owners force $him to spend most of $his time sleeping, eating and looking after $himself. But $his belly, painfully distended with food, makes $his situation obvious.
+	<<= getSlave($AS).slaveName>> is only rarely seen around the arcology, since $his new owners force $him to spend most of $his time sleeping, eating and looking after $himself. But $his belly, painfully distended with food, makes $his situation obvious.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].weight > 10)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -825,7 +825,7 @@
 	<</if>>
 
 <<case "cow trainer">>
-	getSlave($AS).slaveName is last seen somewhat later, packed into a shipment of cows heading out of the arcology. $He looks rather ill from the drugs $he's been filled with, and $his now-distended breasts are marred by unsightly stretch marks.
+	<<= getSlave($AS).slaveName>> is last seen somewhat later, packed into a shipment of cows heading out of the arcology. $He looks rather ill from the drugs $he's been filled with, and $his now-distended breasts are marred by unsightly stretch marks.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].lactation == 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -837,7 +837,7 @@
 	<</if>>
 
 <<case "clipping trainer">>
-	getSlave($AS).slaveName is frequently seen in public over the next few weeks, since $he's being trained to improve $his feminine deportment. $He grows visibly more feminine as time passes, as the hormonal effects of having $his balls cut off become apparent.
+	<<= getSlave($AS).slaveName>> is frequently seen in public over the next few weeks, since $he's being trained to improve $his feminine deportment. $He grows visibly more feminine as time passes, as the hormonal effects of having $his balls cut off become apparent.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].balls > 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -849,7 +849,7 @@
 	<</if>>
 
 <<case "reassignment trainer">>
-	getSlave($AS).slaveName is next seen after some weeks of surgery. $He's barely recognizable, and now possesses a serviceable vagina which $he clearly is unsure of. $His original status is scarcely discernible.
+	<<= getSlave($AS).slaveName>> is next seen after some weeks of surgery. $He's barely recognizable, and now possesses a serviceable vagina which $he clearly is unsure of. $His original status is scarcely discernible.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].dick > 0)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -861,7 +861,7 @@
 	<</if>>
 
 <<case "arcade">>
-	The upper half of getSlave($AS).slaveName's body is never seen again. $His butt, on the other hand, is periodically visible in a lower-level arcade, $his orifices gradually showing the wear and $his price gradually decreasing, until finally $he is seen no more.
+	The upper half of <<= getSlave($AS).slaveName>>'s body is never seen again. $His butt, on the other hand, is periodically visible in a lower-level arcade, $his orifices gradually showing the wear and $his price gradually decreasing, until finally $he is seen no more.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].devotion < 10)>>
 			<<set $slaves[_ss].trust -= 2>>
@@ -873,13 +873,13 @@
 	<</if>>
 
 <<case "D cannibal">>
-	getSlave($AS).slaveName is never seen again. $His buyer prefers to keep whatever happened to $him private. However, rumors of steaks, rump roasts, sweetbreads, and blood pudding eaten at three in the morning filter out from time to time. Naturally, these murmurs never fail to @@.gold;terrify@@ your other slaves.
+	<<= getSlave($AS).slaveName>> is never seen again. $His buyer prefers to keep whatever happened to $him private. However, rumors of steaks, rump roasts, sweetbreads, and blood pudding eaten at three in the morning filter out from time to time. Naturally, these murmurs never fail to @@.gold;terrify@@ your other slaves.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<set $slaves[_ss].trust -= 2>>
 	<</for>>
 
 <<case "harvester">>
-	Though getSlave($AS).slaveName's fate as a source of organs for transplantation is not announced, rumors of what happens to those who @@.gold;fail to be valuable to you@@ pass among your slaves.
+	Though <<= getSlave($AS).slaveName>>'s fate as a source of organs for transplantation is not announced, rumors of what happens to those who @@.gold;fail to be valuable to you@@ pass among your slaves.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<set $slaves[_ss].trust -= 2>>
 	<</for>>
@@ -891,7 +891,7 @@
 	<</for>>
 
 <<case "D oral servants">>
-	getSlave($AS).slaveName is an occasional sight around the arcology; $he's never seen outside the company of $his new slave superior. This is one of $his new master's more favored slaves. $He has a huge cock, and <<= getSlave($AS).slaveName>> is usually seen crouching down, hugging one of $his superior's legs and keeping $his mouth obediently near that dick.
+	<<= getSlave($AS).slaveName>> is an occasional sight around the arcology; $he's never seen outside the company of $his new slave superior. This is one of $his new master's more favored slaves. $He has a huge cock, and <<= getSlave($AS).slaveName>> is usually seen crouching down, hugging one of $his superior's legs and keeping $his mouth obediently near that dick.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetishKnown == 1)>>
 			<<if ($slaves[_ss].fetish == "cumslut")>>
@@ -905,7 +905,7 @@
 	<</if>>
 
 <<case "D trap lover">>
-	getSlave($AS).slaveName becomes a frequent sight around the arcology, accompanying $his new master. $He's clearly happy, and is frequently seen to offer $his butt to him with a smile.
+	<<= getSlave($AS).slaveName>> becomes a frequent sight around the arcology, accompanying $his new master. $He's clearly happy, and is frequently seen to offer $his butt to him with a smile.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].dick > 0)>>
 			<<if ($slaves[_ss].devotion > 20)>>
@@ -919,7 +919,7 @@
 	<</if>>
 
 <<case "D butt bury">>
-	getSlave($AS).slaveName's buyer arrives promptly; he seems pleased with his new slave's bountiful bottom, so far off the ground.
+	<<= getSlave($AS).slaveName>>'s buyer arrives promptly; he seems pleased with his new slave's bountiful bottom, so far off the ground.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "buttslut")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -933,7 +933,7 @@
 	<</if>>
 
 <<case "D milky herm">>
-	getSlave($AS).slaveName's buyer arrives and seems pleased with $his lovely feminine appearance; he verifies $his lactation and $his ability to achieve erection despite $his lack of visible balls.
+	<<= getSlave($AS).slaveName>>'s buyer arrives and seems pleased with $his lovely feminine appearance; he verifies $his lactation and $his ability to achieve erection despite $his lack of visible balls.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].dick > 0)>>
 			<<if ($slaves[_ss].boobs > 400)>>
@@ -947,7 +947,7 @@
 	<</if>>
 
 <<case "D shorty breeder">>
-	getSlave($AS).slaveName's lithe, muscular form is rarely seen after $his buyer takes charge of $him, since $he seems to spend most of $his time at home making babies.
+	<<= getSlave($AS).slaveName>>'s lithe, muscular form is rarely seen after $his buyer takes charge of $him, since $he seems to spend most of $his time at home making babies.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].fetish == "pregnancy")>>
 			<<if ($slaves[_ss].fetishKnown == 1)>>
@@ -961,16 +961,16 @@
 	<</if>>
 
 <<case "D waifu">>
-	getSlave($AS).slaveName is rarely seen after $his buyer takes charge of $him, since he prefers to keep his beloved at home. Though $he seems to be well treated, arcology society finds him repellent enough that your other slaves do not envy $him.
+	<<= getSlave($AS).slaveName>> is rarely seen after $his buyer takes charge of $him, since he prefers to keep his beloved at home. Though $he seems to be well treated, arcology society finds him repellent enough that your other slaves do not envy $him.
 
 <<case "fuckdoll">>
-	Though getSlave($AS).slaveName's fate as a living fucktoy is not obvious, since most of $his body will forever after be encased in thick latex, rumors of what happens to those who @@.gold;fail to be valuable to you@@ pass among your slaves.
+	Though <<= getSlave($AS).slaveName>>'s fate as a living fucktoy is not obvious, since most of $his body will forever after be encased in thick latex, rumors of what happens to those who @@.gold;fail to be valuable to you@@ pass among your slaves.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<set $slaves[_ss].trust -= 2>>
 	<</for>>
 
 <<case "porn studio">>
-	getSlave($AS).slaveName becomes a frequent sight in <<= getSlave($AS).porn.fameType>> smut and attracts huge crowds with each public appearance.
+	<<= getSlave($AS).slaveName>> becomes a frequent sight in <<= getSlave($AS).porn.fameType>> smut and attracts huge crowds with each public appearance.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if $slaves[_ss].porn.prestige > 0 && $slaves[_ss].porn.prestige < 3>>
 			<<if ($slaves[_ss].devotion > 20)>>
@@ -984,7 +984,7 @@
 	<</if>>
 
 <<case "obsessed fan">>
-	getSlave($AS).slaveName is rarely seen after $his buyer takes charge of $him, since he prefers to keep his prize safe and sound at home.
+	<<= getSlave($AS).slaveName>> is rarely seen after $his buyer takes charge of $him, since he prefers to keep his prize safe and sound at home.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if $slaves[_ss].porn.prestige == 1>>
 			<<if ($slaves[_ss].devotion > 20)>>
@@ -1009,11 +1009,11 @@
 		<</if>>
 	<</for>>
 	<<if _slaveImpact == 1>>
-		Your less than intelligent slaves are @@.mediumorchid;deeply envious@@ of getSlave($AS).slaveName, completely failing to comprehend what they saw were not special effects.
+		Your less than intelligent slaves are @@.mediumorchid;deeply envious@@ of <<= getSlave($AS).slaveName>>, completely failing to comprehend what they saw were not special effects.
 	<</if>>
 
 <<case "concert hall">>
-	As getSlave($AS).slaveName now spends all $his time backstage, $he's rarely seen again. Occasionally, however, a roadie will bring $him outside as he hauls the equipment, and $he jacks him off.
+	As <<= getSlave($AS).slaveName>> now spends all $his time backstage, $he's rarely seen again. Occasionally, however, a roadie will bring $him outside as he hauls the equipment, and $he jacks him off.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].hears < 0)>>
 			<<set $slaves[_ss].trust += 1>>
@@ -1025,7 +1025,7 @@
 	<</if>>
 
 <<case "etiquette coach">>
-	getSlave($AS).slaveName's new etiquette trainer sends you courtesy updates on $his progress, as $he learns proper poise and enunciation, the correct locations of silverware, and how to avoid making vulgar comments while performing lascivious acts.
+	<<= getSlave($AS).slaveName>>'s new etiquette trainer sends you courtesy updates on $his progress, as $he learns proper poise and enunciation, the correct locations of silverware, and how to avoid making vulgar comments while performing lascivious acts.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].sexualFlaw == "crude")>>
 			<<set $slaves[_ss].trust -= 1>>
@@ -1037,7 +1037,7 @@
 	<</if>>
 
 <<case "sex double">>
-	getSlave($AS).slaveName soon makes $his debut on the big screen in a debaucherous gangbang in place of the popular lead. $He is a spitting image of the actress, even when coated in layers of semen.
+	<<= getSlave($AS).slaveName>> soon makes $his debut on the big screen in a debaucherous gangbang in place of the popular lead. $He is a spitting image of the actress, even when coated in layers of semen.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].sexualFlaw == "attention whore")>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -1045,11 +1045,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		The attention whores among your slaves are @@.mediumorchid;envious@@ of getSlave($AS).slaveName's good fortune.
+		The attention whores among your slaves are @@.mediumorchid;envious@@ of <<= getSlave($AS).slaveName>>'s good fortune.
 	<</if>>
 
 <<case "monster movie">>
-	getSlave($AS).slaveName soon makes $his debut on the big screen in a thrilling horror movie. At its end, the male lead finds his partner, played by $him in this scene, glued to a wall with a massively distended middle filled to capacity with the monster's spawn. The camera slowly zooms in on $him as $he gives birth to a future sequel.
+	<<= getSlave($AS).slaveName>> soon makes $his debut on the big screen in a thrilling horror movie. At its end, the male lead finds his partner, played by $him in this scene, glued to a wall with a massively distended middle filled to capacity with the monster's spawn. The camera slowly zooms in on $him as $he gives birth to a future sequel.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].sexualFlaw == "breeder")>>
 			<<set $slaves[_ss].devotion -= 2>>
@@ -1057,11 +1057,11 @@
 		<</if>>
 	<</for>>
 	<<if (_slaveImpact == 1)>>
-		The pregnancy obsessed sluts among your slaves are @@.mediumorchid;envious@@ of getSlave($AS).slaveName's new experience, even if it is fake.
+		The pregnancy obsessed sluts among your slaves are @@.mediumorchid;envious@@ of <<= getSlave($AS).slaveName>>'s new experience, even if it is fake.
 	<</if>>
-	
+
 <<case "sniper spotter">>
-	The mercenary sniper greets getSlave($AS).slaveName before the two of them head off for a battlefield halfway around the world. "Let's hope you've got a good eye for political assassinations," he says humorlessly.
+	The mercenary sniper greets <<= getSlave($AS).slaveName>> before the two of them head off for a battlefield halfway around the world. "Let's hope you've got a good eye for political assassinations," he says humorlessly.
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
 		<<if ($slaves[_ss].skill.combat <= 15)>>
 			<<set $slaves[_ss].devotion -= 3>>
@@ -1073,7 +1073,7 @@
 	<</if>>
 
 <<case "peacekeepers">>
-	getSlave($AS).slaveName is delivered to General $peacekeepers.generalName's forces, to serve as a barracks whore. Several days later, the purchasing officer forwards a short shot of getSlave($AS).slaveName
+	<<= getSlave($AS).slaveName>> is delivered to General $peacekeepers.generalName's forces, to serve as a barracks whore. Several days later, the purchasing officer forwards a short shot of <<= getSlave($AS).slaveName>>
 	<<set _slaveCost = slaveCost(getSlave($AS))>>
 	<<if $peacekeepers.tastes == 0>>
 		<<if _slaveCost > random(10000,50000) || $peacekeepers.attitude > 90>><<set _influential = 1>><<else>><<set _influential = 0>><</if>>
@@ -1154,7 +1154,7 @@
 		$His presence will influence General $peacekeepers.generalName's troops in favor of a closer relationship with the Free City; old world mores are difficult to maintain while inside an arcology-trained sex slave.
 		<<set $peacekeepers.attitude += Math.ceil(_slaveCost/10000)>>
 	<<elseif $peacekeepers.attitude < 100>>
-		With getSlave($AS).slaveName added to their stable of sex slaves, General $peacekeepers.generalName's troops will be fully converted to the idea of aligning with the slaveowning Free Cities, and the general will no longer have to maintain even plausible deniability. @@.yellow;General $peacekeepers.generalName's little empire is now effectively a client state of $arcologies[0].name.@@
+		With <<= getSlave($AS).slaveName>> added to their stable of sex slaves, General $peacekeepers.generalName's troops will be fully converted to the idea of aligning with the slaveowning Free Cities, and the general will no longer have to maintain even plausible deniability. @@.yellow;General $peacekeepers.generalName's little empire is now effectively a client state of $arcologies[0].name.@@
 		<<set $peacekeepers.attitude = 100>>
 	<<else>>
 		General $peacekeepers.generalName's little empire continues to be a reliable client state of $arcologies[0].name, and a good market for $peacekeepers.tastes.
diff --git a/themes/themes.md b/themes/themes.md
index 24c3350e20d61a89bf45cea34237abb4aa8a4d15..8118e27f173ac3b3121c9767f174ad3e9139688f 100644
--- a/themes/themes.md
+++ b/themes/themes.md
@@ -5,9 +5,9 @@ page.
 
 ## Creating new themes
 
-Files inside these directories are combined into one CSS file based on 
+Files inside these directories are combined into one CSS file based on
 alphabetical ordering. The light theme is recommended as a base for creating new themes.
 
 For quick testing run `App.UI.Theme.loadTheme("yourTheme.css")` in the browser console. This will unload the current
-theme and load the new theme. If you modify the same file it is effectively reloading. Supplying no argument (eg. 
+theme and load the new theme. If you modify the same file it is effectively reloading. Supplying no argument (eg.
 `App.UI.Theme.loadTheme()`) will unload any theme.