diff --git a/src/npc/fPCImpreg.tw b/src/npc/fPCImpreg.tw
index 1ca79bfd43f38ce0dfcd863d2eb2d6fb8aedcc71..35ef710dc7fa45d821be1ce5b8686c0774215560 100644
--- a/src/npc/fPCImpreg.tw
+++ b/src/npc/fPCImpreg.tw
@@ -2,12 +2,14 @@
  
 <<nobr>>
 
+<<set _bonus = random(6,20)>>
+
 <<if $activeSlave.mpreg == 1>>
-<<set $activeSlave.analCount += 1>>
-<<set $analTotal += 1>>
+<<set $activeSlave.analCount += _bonus+1>>
+<<set $analTotal += _bonus+1>>
 <<else>>
-<<set $activeSlave.vaginalCount += 1>>
-<<set $vaginalTotal += 1>>
+<<set $activeSlave.vaginalCount += _bonus+1>>
+<<set $vaginalTotal += _bonus+1>>
 <</if>>
 
 You call her over so you can
diff --git a/src/npc/fSlaveImpreg.tw b/src/npc/fSlaveImpreg.tw
index 0c0b044f77c10f94cebd30a1be0220cfa49ce23c..9e8187255f9ec50874bb53da7c71cf026294ec2b 100644
--- a/src/npc/fSlaveImpreg.tw
+++ b/src/npc/fSlaveImpreg.tw
@@ -14,11 +14,9 @@
 
 __Select an eligible slave to serve as the semen donatrix:__
 <<for $i to 0; $i < $slaves.length; $i++>>\
-	<<if ($slaves[$i].dick > 0)>>\
-	<<if ($slaves[$i].balls > 0)>>\
+	<<if canPenetrate($slaves[$i])>>\
 	<<if ($slaves[$i].pubertyXY == 1)>>\
 	<<if canBreed($activeSlave, $slaves[$i])>>\
-	<<if ($slaves[$i].dickAccessory != "chastity")>>\
 	<<if ($slaves[$i].ID != $activeSlave.ID)>>\
 		<<print "[[$slaves[$i].slaveName|FSlaveImpreg Consummate][$impregnatrix to $slaves[" + $i + "]]]">>
 		<<set $eligibility to 1>>\
@@ -26,8 +24,6 @@ __Select an eligible slave to serve as the semen donatrix:__
 	<</if>>\
 	<</if>>\
 	<</if>>\
-	<</if>>\
-	<</if>>\
 <</for>>\
 <<if ($eligibility == 0)>>\
 	//You have no slaves capable of inseminating others.//
diff --git a/src/npc/fSlaveImpregConsummate.tw b/src/npc/fSlaveImpregConsummate.tw
index d567d464a241cbad8eccc29afe879d357603ab5d..dd2e6e5886b6570d298521acc2f055e4d9c75927 100644
--- a/src/npc/fSlaveImpregConsummate.tw
+++ b/src/npc/fSlaveImpregConsummate.tw
@@ -4,8 +4,12 @@
 
 The first necessary step is to prepare the donatrix.
 
-<<set $activeSlave.penetrativeCount += 1>>
-<<set $penetrativeTotal += 1>>
+<<set _penCountBonus = random(6,20)>>
+<<set _analCountBonus = _penCountBonus>>
+<<set _vagCountBonus = _penCountBonus>>
+
+<<set $activeSlave.penetrativeCount += _penCountBonus+1>>
+<<set $penetrativeTotal += _penCountBonus+1>>
 <<set $activeSlave.analCount += 1>>
 <<set $analTotal += 1>>
 
@@ -62,11 +66,11 @@ The first necessary step is to prepare the donatrix.
 Next, you see to $activeSlave.slaveName.
 
 <<if $activeSlave.mpreg == 1>>
-<<set $activeSlave.analCount += 1>>
-<<set $analTotal += 1>>
+<<set $activeSlave.analCount += _analCountBonus+1>>
+<<set $analTotal += _analCountBonus+1>>
 <<else>>
-<<set $activeSlave.vaginalCount += 1>>
-<<set $vaginalTotal += 1>>
+<<set $activeSlave.vaginalCount += _vagCountBonus+1>>
+<<set $vaginalTotal += _vagCountBonus+1>>
 <</if>>
 
 <<if ($activeSlave.fetish is "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && (($activeSlave.vagina == 0) || (($activeSlave.anus == 0) && ($activeSlave.mpreg == 1)))>>
diff --git a/src/pregmod/electiveSurgery.tw b/src/pregmod/electiveSurgery.tw
index e894e7027487bf4f5014c84f6e74d024c06a8223..84a96c7187f7e65a5d001ada29fe159a0024d930 100644
--- a/src/pregmod/electiveSurgery.tw
+++ b/src/pregmod/electiveSurgery.tw
@@ -9,10 +9,10 @@ You're @@color:orange;$PC.actualAge years old.@@
 <<if $PC.actualAge >= 65>>
 	<<if $PC.visualAge > $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look older.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0,$cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge,$cash -= 5000, $surgeryType to "restoreFace"]]
 	<<elseif $PC.visualAge < $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look younger.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0,$cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge,$cash -= 5000, $surgeryType to "restoreFace"]]
 	<<else>>
 		You could benefit from a face lift.
 		<br>[[Get a face lift|PC Surgery Degradation][$PC.faceImplant = 1,$cash -= 5000, $surgeryType to "ageDown"]] | [[Remodel your face to appear older|PC Surgery Degradation][$PC.faceImplant = 1,$cash -= 5000, $surgeryType to "ageUp"]]
@@ -20,10 +20,10 @@ You're @@color:orange;$PC.actualAge years old.@@
 <<elseif $PC.actualAge >= 50>>
 	<<if $PC.visualAge > $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look older.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge, $cash -= 5000, $surgeryType to "restoreFace"]]
 	<<elseif $PC.visualAge < $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look younger.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge, $cash -= 5000, $surgeryType to "restoreFace"]]
 	<<else>>
 		You could benefit from a face lift.
 		<br>[[Get a face lift|PC Surgery Degradation][$PC.faceImplant = 1, $cash -= 5000, $surgeryType to "ageDown"]] | [[Remodel your face to appear older|PC Surgery Degradation][$PC.faceImplant = 1,$cash -= 5000, $surgeryType to "ageUp"]]
@@ -31,10 +31,10 @@ You're @@color:orange;$PC.actualAge years old.@@
 <<elseif $PC.actualAge >= 35>>
 	<<if $PC.visualAge > $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look older.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge, $cash -= 5000, $surgeryType to "restoreFace"]]
 	<<elseif $PC.visualAge < $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look younger.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge, $cash -= 5000, $surgeryType to "restoreFace"]]
 	<<else>>
 		You could go for a face lift, though making yourself look older could be useful.
 		<br>[[Get a face lift|PC Surgery Degradation][$PC.faceImplant = 1, $cash -= 5000, $surgeryType to "ageDown"]] | [[Remodel your face to appear older|PC Surgery Degradation][$PC.faceImplant = 1,$cash -= 5000, $surgeryType to "ageUp"]]
@@ -42,10 +42,10 @@ You're @@color:orange;$PC.actualAge years old.@@
 <<else>>
 	<<if $PC.visualAge > $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look older.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0,$cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge,$cash -= 5000, $surgeryType to "restoreFace"]]
 	<<elseif $PC.visualAge < $PC.actualAge>>
 		You've had surgery to make yourself @@color:lime;look younger.@@
-		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0,$cash -= 5000, $surgeryType to "restoreFace"]]
+		<br>[[Undo Facial surgery|PC Surgery Degradation][$PC.faceImplant = 0, $PC.visualAge = $PC.physicalAge,$cash -= 5000, $surgeryType to "restoreFace"]]
 	<<else>>
 		You could undergo facial surgery to make yourself look older, though you could also make yourself look even younger.
 		<br>[[Remodel your face to appear younger|PC Surgery Degradation][$PC.faceImplant = 1, $cash -= 5000, $surgeryType to "ageDown"]] | [[Remodel your face to appear older|PC Surgery Degradation][$PC.faceImplant = 1,$cash -= 5000, $surgeryType to "ageUp"]]
diff --git a/src/pregmod/pregmodWidgets.tw b/src/pregmod/pregmodWidgets.tw
index 89d5296ebcc5b85374fdae15954ae277e1822c05..36179b0fb557d8250c2a12c4c2770c8778ca4713 100644
--- a/src/pregmod/pregmodWidgets.tw
+++ b/src/pregmod/pregmodWidgets.tw
@@ -155,6 +155,34 @@
 	<</if>>
 <</widget>>
 
+<<widget PCAgeImplantAdjustmentUP>>
+	<<if $PC.visualAge < 35>>
+		<<set $PC.visualAge += 15>>
+	<<elseif $PC.visualAge <= 50>>
+		<<set $PC.visualAge += 10>>
+	<<elseif $PC.visualAge < 60>>
+		<<set $PC.visualAge += 5>>
+	<<elseif $PC.visualAge < 80>>
+		<<set $PC.visualAge += 3>>
+	<<else>>
+		<<set $PC.visualAge += 1>>
+	<</if>>
+<</widget>>
+
+<<widget PCAgeImplantAdjustmentDOWN>>
+	<<if $PC.visualAge > 80>>
+		<<set $PC.visualAge -= 40>>
+	<<elseif $PC.visualAge >= 70>>
+		<<set $PC.visualAge -= 30>>
+	<<elseif $PC.visualAge > 50>>
+		<<set $PC.visualAge -= 20>>
+	<<elseif $PC.visualAge > 36>>
+		<<set $PC.visualAge -= 10>>
+	<<else>>
+		<<set $PC.visualAge -= 5>>
+	<</if>>
+<</widget>>
+
 <<widget InitStandards>>
 
 <<set $activeStandard to {age: 24, weight: 0, muscles: 0, raceSup: "white", raceSub: "white", boobs: 0, boobsImplant: 0, lactation: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, face: 0, faceImplant: 0, lips: 15, lipsImplant: 0, chem: 0, addict: 0, intelligence: 0, intelligenceImplant: 0, bellyImplant: 0, beauty: 0, dick: 0, balls: 0, health: 0}>>