diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index e4daabdbb07b086aac36a3064cf95bd7a69fadd8..c8d969a56f3a04fd7b6ba7a2670e4c02b52152fd 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -4339,6 +4339,21 @@ window.removeDuplicates = function removeDuplicates(array) {
 	return [...new Set(array)];
 };
 
+window.induceLactation = function induceLactation(slave) {
+	let pronouns = getPronouns(slave);
+	let His = capFirstChar(pronouns.possessive);
+	let r = ``;
+	if (slave.induceLactation >= 10) {
+		if (jsRandom(1,100) < slave.induceLactation) {
+			r += `${His} breasts have been stimulated often enough to @@.lime;induce lactation.@@`
+			slave.induceLactation = 0;
+			slave.lactationDuration = 2;
+			slave.lactation = 1;
+		}
+	}
+	return r;
+};
+
 window.ResearchLabStockPile = function() {
 	V = State.variables;
 	return `__Stockpile__
@@ -4358,22 +4373,81 @@ window.ResearchLabStockPile = function() {
 	Electrolarynx: $stockpile.electrolarynx`;
 };
 
-window.ResearchLabStockPile = function() {
-	return `__Stockpile__
-	Prosthetics interfaces: ${commaNum($stockpile.basicPLimbInterface + $stockpile.advPLimbInterface)}
-	&nbsp;Basic : $stockpile.basicPLimbInterface
-	&nbsp;Advanced: $stockpile.advPLimbInterface
-	Limbs: ${commaNum($stockpile.basicPLimb + $stockpile.advSexPLimb + $stockpile.advGracePLimb + $stockpile.advCombatPLimb + $stockpile.cyberneticPLimb)}
-	&nbsp;Basic: $stockpile.basicPLimb
-	&nbsp;Sex: $stockpile.advSexPLimb
-	&nbsp;Beauty: $stockpile.advGracePLimb
-	&nbsp;Combat: $stockpile.advCombatPLimb
-	&nbsp;Cybernetic: $stockpile.cyberneticPLimb
-	Implants: ${commaNum($stockpile.ocularImplant + $stockpile.cochlearImplant + $stockpile.erectileImplant)}
-	&nbsp;Ocular: $stockpile.ocularImplant
-	&nbsp;Cochlear: $stockpile.cochlearImplant
-	//&nbsp;Erectile: $stockpile.erectileImplant//
-	Electrolarynx: $stockpile.electrolarynx`;
+window.originPronounReplace = function(slave) {
+	let r = slave.origin;
+	switch (r) {
+		case "She was the result of unprotected sex with a client. Her mother tracked you down years after her birth to force her upon you.":
+			return `${capFirstChar(slave.pronoun)} was the result of unprotected sex with a client. ${capFirstChar(slave.possessive)} mother tracked you down years after ${slave.possessive} birth to force ${slave.object} upon you.`;
+		case "You kept her after her owner failed to pay your bill for performing surgery on her.":
+			return `You kept ${slave.object} after ${slave.possessive} owner failed to pay your bill for performing surgery on ${slave.object}.`;
+		case "She comes from old money and sold herself into slavery to satisfy her obsession with the practice, believing her family would buy her back out of slavery later.":
+			return `${capFirstChar(slave.pronoun)} comes from old money and sold herself into slavery to satisfy ${slave.possessive} obsession with the practice, believing ${slave.possessive} family would buy ${slave.object} back out of slavery later.`;
+		case "When you took her from her previous owner, she was locked into a beautiful rosewood box lined with red velvet, crying.":
+			return `When you took ${slave.object} from ${slave.possessive} previous owner, ${slave.pronoun} was locked into a beautiful rosewood box lined with red velvet, crying.`;
+		case "Her husband sold her into slavery to escape his debts.":
+			return `${capFirstChar(slave.possessive)} husband sold ${slave.object} into slavery to escape his debts.`;
+		case "She was voluntarily enslaved after she decided that your arcology was the best place for her to get the steroids that she'd allowed to define her life.":
+			return `${capFirstChar(slave.pronoun)} was voluntarily enslaved after ${slave.pronoun} decided that your arcology was the best place for ${slave.object} to get the steroids that ${slave.pronoun}'d allowed to define ${slave.possessive} life.`;
+		case "She came to you to escape being sold to a cruel master after her producer informed her of her debt.":
+			return `${capFirstChar(slave.pronoun)} came to you to escape being sold to a cruel master after ${slave.possessive} producer informed ${slave.object} of ${slave.possessive} debt.`;
+		case "You tricked her into enslavement, manipulating her based on her surgical addiction.":
+			return `You tricked ${slave.object} into enslavement, manipulating ${slave.object} based on ${slave.possessive} surgical addiction.`;
+		case "You helped free her from a POW camp after being abandoned by her country, leaving her deeply indebted to you.":
+			return `You helped free ${slave.object} from a POW camp after being abandoned by ${slave.possessive} country, leaving ${slave.object} deeply indebted to you.`;
+		case "You purchased her in order to pave the way for her brother to take the throne.":
+			return `You purchased ${slave.object} in order to pave the way for ${slave.possessive} brother to take the throne.`;
+		case "You purchased her as a favor to her father.":
+			return `You purchased ${slave.object} as a favor to ${slave.possessive} father.`;
+		case "You purchased her from a King after his son put an illegitimate heir in her womb.":
+			return `You purchased ${slave.object} from a King after his son put an illegitimate heir in ${slave.possessive} womb.`;
+		case "You acquired her in the last stages of your career as a successful venture capitalist.":
+		case "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.":
+		case "You acquired her in the last stages of your career as a noted private military contractor.":
+		case "You never thought you would be capable of impregnating yourself, but years of pleasuring yourself with yourself after missions managed to create her.":
+		case "A fresh capture once overpowered you and had his way with you. You kept her as a painful reminder to never lower your guard again.":
+		case "Your slaving troop kept several girls as fucktoys, you sired her in your favorite.":
+		case "You enslaved her personally during the last stages of your slaving career.":
+		case "You sired her in yourself after an arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You conceived her after a male arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You sired her after a female arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You received her as a gift from an arcology owner impressed by your work.":
+		case "You captured her during your transition to the arcology":
+		case "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.":
+		case "You brought her into the arcology mindbroken, little more than a walking collection of fuckable holes.":
+		case "You brought her into the arcology mindbroken, little more than a human onahole.":
+		case "She grew up sheltered and submissive, making her an easy target for enslavement.":
+		case "She was fresh from the slave markets when you acquired her.":
+		case "She chose to be a slave because the romanticized view of it she had turns her on.":
+		case "She was previously owned by a creative sadist, who has left a variety of mental scars on her.":
+		case "She was taken as a slave by a Sultan, who presented her as a gift to a surveyor.":
+		case "She is the winner of a martial arts slave tournament. You won her in a bet.":
+		case "She was homeless and willing to do anything for food, which in the end resulted in her becoming a slave.":
+		case "She was sold to you by an anonymous person who wanted her to suffer.":
+		case "You received her from a surgeon who botched an implant operation on her and needed to get her out of sight.":
+		case "She offered herself to you for enslavement to escape having plastic surgery foisted on her.":
+		case "You turned her into a slave girl after she fell into debt to you.":
+		case "She was raised in a radical slave school that treated her with drugs and surgery from a very young age.":
+		case "She was raised in a radical slave school that treated her from a very young age, up to the point that she never experienced male puberty.":
+		case "She was a runaway slave captured by a gang outside your arcology. You bought her cheap after she was harshly used by them.":
+		case "She was the private slave of a con artist cult leader before he had to abandon her and flee.":
+		case "You helped her give birth, leaving her deeply indebted to you.":
+		case "You purchased her from a King after she expressed knowledge of the prince's affair with another servant.":
+			r = r.replace(/(?<=\s)herself(?=\s|,|\.|;|\?|!)/g, slave.objectReflexive);
+			r = r.replace(/(?<=\s|^)Herself(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.objectReflexive));
+			r = r.replace(/(?<=\s)she(?=\s|,|\.|;|\?|!)/g, slave.pronoun);
+			r = r.replace(/(?<=\s|^)She(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.pronoun));
+			r = r.replace(/(?<=\s)her(?=\s|,|\.|;|\?|!)/g, slave.object);
+			r = r.replace(/(?<=\s|^)Her(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.object));
+			return r;
+		default:
+			r = r.replace(/(?<=\s)herself(?=\s|,|\.|;|\?|!)/g, slave.objectReflexive);
+			r = r.replace(/(?<=\s|^)Herself(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.objectReflexive));
+			r = r.replace(/(?<=\s)she(?=\s|,|\.|;|\?|!)/g, slave.pronoun);
+			r = r.replace(/(?<=\s|^)She(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.pronoun));
+			r = r.replace(/(?<=\s)her(?=\s|,|\.|;|\?|!)/g, slave.possessive);
+			r = r.replace(/(?<=\s|^)Her(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.possessive));
+			return r;
+	}
 };
 
 /*:: Span Macro JS [script]*/
diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw
index d58b3cea300c0a6b409bcffc0ee564124952a61d..4442780ca75ec36392e1e0d1fe9fef3c3487af1e 100644
--- a/src/facilities/nursery/longChildDescription.tw
+++ b/src/facilities/nursery/longChildDescription.tw
@@ -605,11 +605,11 @@ $he's
 			<</if>>
 		<<case "sadist">>
 			<<if ($activeChild.fetishStrength > 95)>>
-				$He is an @@.lightcoral;aggressive sadist@@; $he's constantly plotting to control, abuse, and hurt other slaves.
+				$He is an @@.lightcoral;aggressive sadist;@@ $he's constantly plotting to control, abuse, and hurt other slaves.
 			<<elseif ($activeChild.fetishStrength > 60)>>
-				$He has @@.lightcoral;sadistic tendencies@@; $he enjoys watching other slaves in pain, but truly loves causing pain $himself.
+				$He has @@.lightcoral;sadistic tendencies;@@ $he enjoys watching other slaves in pain, but truly loves causing pain $himself.
 			<<else>>
-				$He gets off on @@.lightcoral;the suffering of others@@; $he enjoys watching other slaves in pain.
+				$He gets off on @@.lightcoral;the suffering of others;@@ $he enjoys watching other slaves in pain.
 			<</if>>
 		<<case "masochist">>
 			<<if ($activeChild.fetishStrength > 95)>>
@@ -887,7 +887,7 @@ $he's
 
 <<if $saleDescription == 0>>
 	<<if $activeChild.origin != 0>>
-		<<originDescription $activeChild>>
+		<<= originPronounReplace($activeChild)>>
 	<</if>>
 <</if>>
 
@@ -1229,7 +1229,7 @@ $He is
 	<</if>>
 
 	<<if $activeChild.combatSkill > 0>>
-		$He is @@.aquamarine;skilled at combat@@: $he is comfortable with the use of modern firearms and edged weapons, and $his hands <<if $activeChild.amp == -4>>would be deadly weapons even if they weren't full of deadly weapons already<<elseif $activeChild.amp > 0>>would be deadly weapons if $he had any<<else>>are deadly weapons<</if>>.
+		$He is @@.aquamarine;skilled at combat:@@ $he is comfortable with the use of modern firearms and edged weapons, and $his hands <<if $activeChild.amp == -4>>would be deadly weapons even if they weren't full of deadly weapons already<<elseif $activeChild.amp > 0>>would be deadly weapons if $he had any<<else>>are deadly weapons<</if>>.
 	<</if>>
 <</if>>
 
diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw
index 32587040d2532b8b46f0fe6e525290618fff364f..982e9bf3f96e157390e09ea2bb58b6ae0ae31ffa 100644
--- a/src/js/utilJS.tw
+++ b/src/js/utilJS.tw
@@ -1159,3 +1159,80 @@ window.ResearchLabStockPile = function() {
 	//&nbsp;Erectile: $stockpile.erectileImplant//
 	Electrolarynx: $stockpile.electrolarynx`;
 };
+
+window.originPronounReplace = function(slave) {
+	let r = slave.origin;
+	switch (r) {
+		case "She was the result of unprotected sex with a client. Her mother tracked you down years after her birth to force her upon you.":
+			return `${capFirstChar(slave.pronoun)} was the result of unprotected sex with a client. ${capFirstChar(slave.possessive)} mother tracked you down years after ${slave.possessive} birth to force ${slave.object} upon you.`;
+		case "You kept her after her owner failed to pay your bill for performing surgery on her.":
+			return `You kept ${slave.object} after ${slave.possessive} owner failed to pay your bill for performing surgery on ${slave.object}.`;
+		case "She comes from old money and sold herself into slavery to satisfy her obsession with the practice, believing her family would buy her back out of slavery later.":
+			return `${capFirstChar(slave.pronoun)} comes from old money and sold herself into slavery to satisfy ${slave.possessive} obsession with the practice, believing ${slave.possessive} family would buy ${slave.object} back out of slavery later.`;
+		case "When you took her from her previous owner, she was locked into a beautiful rosewood box lined with red velvet, crying.":
+			return `When you took ${slave.object} from ${slave.possessive} previous owner, ${slave.pronoun} was locked into a beautiful rosewood box lined with red velvet, crying.`;
+		case "Her husband sold her into slavery to escape his debts.":
+			return `${capFirstChar(slave.possessive)} husband sold ${slave.object} into slavery to escape his debts.`;
+		case "She was voluntarily enslaved after she decided that your arcology was the best place for her to get the steroids that she'd allowed to define her life.":
+			return `${capFirstChar(slave.pronoun)} was voluntarily enslaved after ${slave.pronoun} decided that your arcology was the best place for ${slave.object} to get the steroids that ${slave.pronoun}'d allowed to define ${slave.possessive} life.`;
+		case "She came to you to escape being sold to a cruel master after her producer informed her of her debt.":
+			return `${capFirstChar(slave.pronoun)} came to you to escape being sold to a cruel master after ${slave.possessive} producer informed ${slave.object} of ${slave.possessive} debt.`;
+		case "You tricked her into enslavement, manipulating her based on her surgical addiction.":
+			return `You tricked ${slave.object} into enslavement, manipulating ${slave.object} based on ${slave.possessive} surgical addiction.`;
+		case "You helped free her from a POW camp after being abandoned by her country, leaving her deeply indebted to you.":
+			return `You helped free ${slave.object} from a POW camp after being abandoned by ${slave.possessive} country, leaving ${slave.object} deeply indebted to you.`;
+		case "You purchased her in order to pave the way for her brother to take the throne.":
+			return `You purchased ${slave.object} in order to pave the way for ${slave.possessive} brother to take the throne.`;
+		case "You purchased her as a favor to her father.":
+			return `You purchased ${slave.object} as a favor to ${slave.possessive} father.`;
+		case "You purchased her from a King after his son put an illegitimate heir in her womb.":
+			return `You purchased ${slave.object} from a King after his son put an illegitimate heir in ${slave.possessive} womb.`;
+		case "You acquired her in the last stages of your career as a successful venture capitalist.":
+		case "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.":
+		case "You acquired her in the last stages of your career as a noted private military contractor.":
+		case "You never thought you would be capable of impregnating yourself, but years of pleasuring yourself with yourself after missions managed to create her.":
+		case "A fresh capture once overpowered you and had his way with you. You kept her as a painful reminder to never lower your guard again.":
+		case "Your slaving troop kept several girls as fucktoys, you sired her in your favorite.":
+		case "You enslaved her personally during the last stages of your slaving career.":
+		case "You sired her in yourself after an arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You conceived her after a male arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You sired her after a female arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
+		case "You received her as a gift from an arcology owner impressed by your work.":
+		case "You captured her during your transition to the arcology":
+		case "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.":
+		case "You brought her into the arcology mindbroken, little more than a walking collection of fuckable holes.":
+		case "You brought her into the arcology mindbroken, little more than a human onahole.":
+		case "She grew up sheltered and submissive, making her an easy target for enslavement.":
+		case "She was fresh from the slave markets when you acquired her.":
+		case "She chose to be a slave because the romanticized view of it she had turns her on.":
+		case "She was previously owned by a creative sadist, who has left a variety of mental scars on her.":
+		case "She was taken as a slave by a Sultan, who presented her as a gift to a surveyor.":
+		case "She is the winner of a martial arts slave tournament. You won her in a bet.":
+		case "She was homeless and willing to do anything for food, which in the end resulted in her becoming a slave.":
+		case "She was sold to you by an anonymous person who wanted her to suffer.":
+		case "You received her from a surgeon who botched an implant operation on her and needed to get her out of sight.":
+		case "She offered herself to you for enslavement to escape having plastic surgery foisted on her.":
+		case "You turned her into a slave girl after she fell into debt to you.":
+		case "She was raised in a radical slave school that treated her with drugs and surgery from a very young age.":
+		case "She was raised in a radical slave school that treated her from a very young age, up to the point that she never experienced male puberty.":
+		case "She was a runaway slave captured by a gang outside your arcology. You bought her cheap after she was harshly used by them.":
+		case "She was the private slave of a con artist cult leader before he had to abandon her and flee.":
+		case "You helped her give birth, leaving her deeply indebted to you.":
+		case "You purchased her from a King after she expressed knowledge of the prince's affair with another servant.":
+			r = r.replace(/(?<=\s)herself(?=\s|,|\.|;|\?|!)/g, slave.objectReflexive);
+			r = r.replace(/(?<=\s|^)Herself(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.objectReflexive));
+			r = r.replace(/(?<=\s)she(?=\s|,|\.|;|\?|!)/g, slave.pronoun);
+			r = r.replace(/(?<=\s|^)She(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.pronoun));
+			r = r.replace(/(?<=\s)her(?=\s|,|\.|;|\?|!)/g, slave.object);
+			r = r.replace(/(?<=\s|^)Her(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.object));
+			return r;
+		default:
+			r = r.replace(/(?<=\s)herself(?=\s|,|\.|;|\?|!)/g, slave.objectReflexive);
+			r = r.replace(/(?<=\s|^)Herself(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.objectReflexive));
+			r = r.replace(/(?<=\s)she(?=\s|,|\.|;|\?|!)/g, slave.pronoun);
+			r = r.replace(/(?<=\s|^)She(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.pronoun));
+			r = r.replace(/(?<=\s)her(?=\s|,|\.|;|\?|!)/g, slave.possessive);
+			r = r.replace(/(?<=\s|^)Her(?=\s|,|\.|;|\?|!)/g, capFirstChar(slave.possessive));
+			return r;
+	}
+};
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 3c603af2b01e2b696befcb07732ef2ea849e9b3c..057172ab89a125d5f2c236ba5efff5fd3ae169c9 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -788,11 +788,11 @@ is
 			<</if>>
 		<<case "sadist">>
 			<<if ($activeSlave.fetishStrength > 95)>>
-				$He is an @@.lightcoral;aggressive sadist@@; $he's constantly plotting to control, abuse, and hurt other slaves.
+				$He is an @@.lightcoral;aggressive sadist;@@ $he's constantly plotting to control, abuse, and hurt other slaves.
 			<<elseif ($activeSlave.fetishStrength > 60)>>
-				$He has @@.lightcoral;sadistic tendencies@@; $he enjoys watching other slaves in pain, but truly loves causing pain $himself.
+				$He has @@.lightcoral;sadistic tendencies;@@ $he enjoys watching other slaves in pain, but truly loves causing pain $himself.
 			<<else>>
-				$He gets off on @@.lightcoral;the suffering of others@@; $he enjoys watching other slaves in pain.
+				$He gets off on @@.lightcoral;the suffering of others;@@ $he enjoys watching other slaves in pain.
 			<</if>>
 		<<case "masochist">>
 			<<if ($activeSlave.fetishStrength > 95)>>
@@ -1259,7 +1259,7 @@ is
 
 <<if $saleDescription == 0>>
 	<<if $activeSlave.origin != 0>>
-		<<originDescription $activeSlave>>
+		<<= originPronounReplace($activeSlave)>>
 	<</if>>
 <</if>>
 
@@ -1900,7 +1900,7 @@ $He is
 	<</if>>
 
 	<<if $activeSlave.combatSkill > 0>>
-		$He is @@.aquamarine;skilled at combat@@: $he is comfortable with the use of modern firearms and edged weapons, and $his hands <<if $activeSlave.amp == -4>>would be deadly weapons even if they weren't full of deadly weapons already<<elseif $activeSlave.amp > 0>>would be deadly weapons if $he had any<<else>>are deadly weapons<</if>>.
+		$He is @@.aquamarine;skilled at combat:@@ $he is comfortable with the use of modern firearms and edged weapons, and $his hands <<if $activeSlave.amp == -4>>would be deadly weapons even if they weren't full of deadly weapons already<<elseif $activeSlave.amp > 0>>would be deadly weapons if $he had any<<else>>are deadly weapons<</if>>.
 	<</if>>
 <</if>>
 
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 40b61947ba4a0d691848d550465aad503397ffc3..11a3715090e12f4f9b076783e96849977987648d 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -269,7 +269,7 @@
 
 <</widget>>
 
-
+/* deprecated, use originPronounReplace() instead. For now this serves as a convenient list of default origins. */
 <<widget "originDescription">>
 	<<switch $args[0].origin>>
 
@@ -284,8 +284,6 @@
 		<<print "You acquired $him in the last stages of your career as a successful venture capitalist.">>
 	<<case "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.">>
 		<<print "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with $him, you had to temporarily switch to a desk job for your mercenary group.">>
-	<<case "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.">>
-		<<print "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with $him, you had to temporarily switch to a desk job for your mercenary group.">>
 	<<case "A trip to a brothel after a mission resulted in an unexpected surprise years later.">>
 		<<print "A trip to a brothel after a mission resulted in an unexpected surprise years later.">>
 	<<case "You acquired her in the last stages of your career as a noted private military contractor.">>