diff --git a/devNotes/jsEventCreationGuide.md b/devNotes/jsEventCreationGuide.md
index f9292d1d6cf425fe8fb2ebf0e946292991bef76c..78b8b85a874dba40a0313316d9ffa85a3ef6d47a 100644
--- a/devNotes/jsEventCreationGuide.md
+++ b/devNotes/jsEventCreationGuide.md
@@ -6,87 +6,80 @@ First decide your events name (e.g. `MyEvent`)
 
 ```js
 App.Events.MyEvent = class MyEvent extends App.Events.BaseEvent {
- // The event only fires if the optional conditions listed in this array are met. This can be empty.
- eventPrerequisites() {
-   // Conditional example
-   return [
-    () => V.plot === 1
-   ];
-
-   // empty example
-   return [];
- }
-
- // Each position in the array correlates to conditions that a slave must meet to be selected. This can also be empty.
- actorPrerequisites() {
-  // Single slave example
-  return [
-   [
-    s => canWalk(s),
-    s => s.fetish !== Fetish.MINDBROKEN,
-    s => s.devotion >= 50,
-    s => s.trust <= 20
-   ]
-  ];
-
-  // Dual slave
-  return [
-   [ // first actor
-    s => canWalk(s),
-    s => s.fetish !== Fetish.MINDBROKEN,
-    s => s.devotion >= 50,
-    s => s.trust <= 20
-   ],
-   [ // second actor
-    s => s.ID === getSlave(this.actors[0]).mother
-   ]
-  ];
-
-  // One actor, but any slave will do
-  return [[]];
-
-  // Empty (no actors at all)
-  return [];
- }
-
- execute(node) {
-  /** @type {Array<App.Entity.SlaveState>} */
-  let [eventSlave] = this.actors.map(a => getSlave(a));
-  const {
-   He, he, His, his, him, himself
-  } = getPronouns(eventSlave);
-  const {
-   HeU, heU, hisU, himU, himselfU
-  } = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-
-  // show slave art
-  App.Events.drawEventArt(node, eventSlave, "no clothing");
-
-  let t = [];
-
-  t.push(`Event info text goes here`)
-
-  App.Events.addParagraph(node, t);
-
-  // Event branches
-  App.Events.addResponses(node, [
-   new App.Events.Result(`Text shown to user`, choiceA),
-   ...
-  ]);
-
-  function choiceA() {
-   t = [];
-
-   t.push(`choice text goes here`);
-
-   // additional code if needed
-
-   // effects on the actors
-   eventSlave.devotion += 4;
-   eventSlave.trust += 4;
-   return t;
-  }
- }
+	// The event only fires if the optional conditions listed in this array are met. This can be empty/not present.
+	eventPrerequisites() {
+		// Conditional example
+		return [
+			() => V.plot === 1
+		];
+		return []; // empty example
+	}
+
+	// Each position in the array correlates to conditions that a slave must meet to be selected. This can be empty/not present.
+	actorPrerequisites() {
+		// Single slave
+		return [
+			[
+				s => canWalk(s),
+				s => s.fetish !== Fetish.MINDBROKEN,
+				s => s.devotion >= 50,
+				s => s.trust <= 20
+			]
+		];
+
+		// Dual slave
+		return [
+			[ // first actor
+				s => canWalk(s),
+				s => s.fetish !== Fetish.MINDBROKEN,
+				s => s.devotion >= 50,
+				s => s.trust <= 20
+			],
+			[ // second actor
+				s => s.ID === getSlave(this.actors[0]).mother
+			]
+		];
+
+		return [[]]; // One actor, but any slave will do
+		return []; // Empty (no actors at all, see plot events and about half or individual events)
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const { He, he, His, his, him, himself } = getPronouns(eventSlave); // In this example we assign the left hand local variables to already defined output of the same name from the getPronouns function. Said function is designed to handle the PC object as well.
+		const { HeU, heU, hisU, himU, himselfU } = getNonlocalPronouns(V.seeDicks).appendSuffix('U'); // This line handles none actor objects e.g. background characters based on both V.seeDicks (which is the ratio of slaves with dicks vs true females) and if the player has enabled diverse pronouns else the background character will always be considered female. Using 'U' is simply a convention.
+		App.Events.drawEventArt(node, eventSlave, "no clothing"); // show slave art, temporarily rendering the chosen slave nude, just for the purposes of this code path within this event.
+
+		// It is a best practice to organize event text into paragraphs.
+		// That way you don't have to worry about funky spacing problems.
+		// addParagraph (or the equivalent SpacedTextAccumulator.toParagraph) should be by FAR the majority case for text.
+
+		App.Events.addNode(node, [`${He} shoves ${himU} to the ground.`], "span", ["yellow"]); // This would be rendered in yellow as "He/She (slave A) shoves she/him (none slave) to the ground.", depending how the player has configured their game.
+
+		// Event branches
+		App.Events.addResponses(node, [
+		new App.Events.Result(`Text shown to user`, choiceA),
+		...
+		]);
+
+		function choiceA() {
+			App.Events.addNode(node, [
+				`Bla bla.`,
+				`Some more words.`,
+			], "p"); // The above is rendered as a new paragraph with the content of "Bla bla. Some more words." - please note how spacing it automatically handled for you.
+			// additional code if needed
+			// effects on the actors
+			eventSlave.devotion += 4;
+			eventSlave.trust += 4;
+			// To insert a few words of coloured text you have two main options, the later being preferred. Regardless, generally full stops and other natural break points should be included in any coloring.
+			return App.Events.addNode(node, [
+				`Bla bla.`,
+				`<span class="yellow">Milk and cheese</span>.`, // Option A
+				App.UI.DOM.makeElement("span", `Moon rocks are heavy.`, ["blue"]), // Option B
+			], "p"); // Renders the above as a new paragraph with the content as: "Bla bla. Milk and cheese. (yellow) Moon rocks are heavy. (blue)" e.g. https://gitgud.io/pregmodfan/fc-pregmod/uploads/764ef42ac966f2551ac826aebac1f2aa/image.png
+		}
+	}
 };
 ```
 
@@ -97,7 +90,7 @@ Use `getEnunciation()` and `Spoken()` when dealing with slave dialog. For exampl
 ```js
 const {say, title: Master} = getEnunciation(eventSlave);
 
-return `"${Spoken(`Some text, ${Master},`)}" says ${eventSlave.slaveName}.`;
+return `"${Spoken(eventSlave, `Some text, ${Master},`)}" says ${eventSlave.slaveName}.`;
 ```
 
 ## Adding your event to the pool
@@ -109,7 +102,7 @@ Simply add your event to the array in `App.Events.getIndividualEvents`.
 
 ## Testing
 
-In the Options menu, open the "Debug & cheating" tab and enable CheatMode.
+In the Options menu, open the "Debug & cheating" tab and enable “Cheat Mode”.
 Once you get to "Random Individual Event" select any slave and at the bottom under DEBUG: there should be
  a input box with "Check Prerequisites and Casting" link next to it.
 Per the example under it, place your event's full name into it e.g. App.Events.myEvent and then hit said link.
@@ -123,4 +116,4 @@ If everything works as intended you should see output
 
 ### Dual slave
 
-- [src/events/reDevotedTwins.js](src/events/reDevotedTwins.js)
+- [src/events/reDevotedTwins.js](src/events/reDevotedTwins.js)
\ No newline at end of file
diff --git a/src/endWeek/shared/physicalDevelopment.js b/src/endWeek/shared/physicalDevelopment.js
index 8b4f3065d62cdd91b768eb0ee5af822c1f77faa4..84d803b907334e84066f5c66e069a77a687afb41 100644
--- a/src/endWeek/shared/physicalDevelopment.js
+++ b/src/endWeek/shared/physicalDevelopment.js
@@ -178,7 +178,7 @@ App.EndWeek.Shared.physicalDevelopment = function(actor, player = false) {
 		let hormoneMod = actor.hormoneBalance <= -100 ? 0 : Math.min(1 + Math.trunc(actor.hormoneBalance / 100) / 10, 1.4); // Forbid 500 hormone balance from being special. It is not.
 		const growthTarget = actor.natural.boobs * gigantomastiaMod * hormoneMod * random(0.9, 1.1);
 		const implantsHinder = actor.boobsImplant === 0 ? 1 : actor.boobsImplant / actor.boobs; // Implants disrupt growth.
-		const growthRange = Math.max(18 - actor.pubertyAgeXX, 6); // growth range puberty to 18? Start at at least 12 otherwise you end up with the possibility of way too much growth in just a few years.
+		const growthRange = Math.max(18 - actor.pubertyAgeXX, 6); // growth range puberty to 18? 12 should be the starting point otherwise you end up with the possibility of way too much growth in just a few years.
 		const expectedGrowth = growthTarget / growthRange;
 		if (unalteredBoobs < growthTarget) {
 			let roundGrowth = expectedGrowth * implantsHinder;
diff --git a/src/events/RE/reMalefactor.js b/src/events/RE/reMalefactor.js
index c5436564ac98d5bafee73a010fb5fac4ecac05f9..406409df793aecdba6ba90e017c75a4604f07ee6 100644
--- a/src/events/RE/reMalefactor.js
+++ b/src/events/RE/reMalefactor.js
@@ -481,7 +481,6 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent {
 
 			slave.devotion = 25;
 			slave.trust = 25;
-			slave.origin = "$He was an orphan forced to live and steal on the streets until you adopted $him.";
 			cashX(forceNeg(contractCost), "slaveTransfer", slave);
 			r.push(`You sit down and talk to the exhausted ${girl}, handing ${him} a contract cleverly altered to resemble adoption papers. Once ${he} comprehends what ${he} is looking at, ${he} eagerly signs it. Only once ${he} has reached the penthouse and been introduced to the slave life does ${he} realize ${he} willingly signed away ${his} freedom. Though ${he} can't complain. A warm cot and plenty of food await, which to ${him} is a huge improvement over a slow death on the streets. The public`);
 			if (V.arcologies[0].FSPaternalist !== "unset") {
@@ -521,6 +520,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent {
 			if (V.arcologies[0].FSRepopulationFocus !== "unset") {
 				r.push(`<span class="reputation inc">approves of breeders, free or not,</span> and word spreads that any and all mothers are welcome into your arcology <span class="green">adding to its prosperity.</span>`);
 				repX(500, "event", slave);
+				V.arcologies[0].prosperity += 5;
 			} else if (V.arcologies[0].FSPaternalist !== "unset") {
 				r.push(`<span class="reputation inc">sympathizes with your charity.</span>`);
 				repX(100, "event", slave);
@@ -709,7 +709,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent {
 					break;
 				case "orphanloli":
 					slave = GenerateNewSlave(null, {minAge: V.minimumSlaveAge, maxAge: 12, disableDisability: 1});
-					slave.origin = "You sentenced $him to enslavement as a punishment for suspected escapism.";
+					slave.origin = "$He was an orphan forced to live and steal on the streets until you adopted $him.";
 					slave.career = "an orphan";
 					slave.devotion = random(-15, 0);
 					slave.trust = random(-75, -60);
diff --git a/src/interaction/sellSlave.js b/src/interaction/sellSlave.js
index a700eb640c078c988f2efdd3533b18b4c2488d52..312c848dc19c804a625fc1853b2040a4b28e6968 100644
--- a/src/interaction/sellSlave.js
+++ b/src/interaction/sellSlave.js
@@ -67,7 +67,11 @@ App.Interact.sellSlave = function(slave) {
 		if (V.showAppraisal === 1) {
 			App.Events.addParagraph(scene, t);
 			t = [];
-			const reviewers = [];
+			const reviewers = ["businesswoman", "accountant", "slaver"];
+			if (V.seeDicks > 0) {
+				reviewers.push("futa");
+			}
+
 			if (V.arcologies[0].FSRomanRevivalist > 20) {
 				reviewers.push("roman");
 			} else if (V.arcologies[0].FSNeoImperialist > 20) {
@@ -89,16 +93,6 @@ App.Interact.sellSlave = function(slave) {
 			if (V.arcologies[0].FSRestartDecoration === 100) {
 				reviewers.push("Elite");
 			}
-			if (V.seeDicks !== 0) {
-				reviewers.push("futa");
-				reviewers.push("businesswoman");
-				reviewers.push("slaver");
-				reviewers.push("accountant");
-			} else {
-				reviewers.push("businesswoman");
-				reviewers.push("slaver");
-				reviewers.push("accountant");
-			}
 			const appraiser = reviewers.random();
 
 			t.push(`A reputable slave appraiser arrives promptly to inspect ${him} and certify ${his} qualities for sale. The appraiser,`);
diff --git a/src/npc/children/longChildDescription.js b/src/npc/children/longChildDescription.js
index ad2295d3a44150d1b4352141994467c6b6dc6a1a..30c358e4d1ff681893ce2a78d3411f171dd15132 100644
--- a/src/npc/children/longChildDescription.js
+++ b/src/npc/children/longChildDescription.js
@@ -6191,7 +6191,7 @@ App.Facilities.Nursery.LongChildDescription = function(child, {market = 0, event
 
 			let oral = child.counter.oral;
 			let vaginal = child.counter.vaginal;
-			let anal = child.counter.oral;
+			let anal = child.counter.anal;
 			let mammary = child.counter.mammary;
 			let penetrative = child.counter.penetrative;
 			let total = oral + vaginal + anal + mammary + penetrative;