diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index be799ff3bb2a7b9a9bb85e8e0eeb97c38bc4f4fd..952aba16132d642ec727927d32197d9dc000ceee 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,12 @@
 
 	0.10.7.0/1
 
+12/27/17
+	234
+	-saRules now applies to the HG's slave
+	-HG and BG no longer consume dormitory capacity if they have their own room
+	-SFanon's fixes
+
 12/26/17
 	
 	234
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 7c131b4d26ffcaa2b0bc035d4edba4fb8532bf4f..90a246501d99bb81d6f8e3c265a8d5856586f678 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -36,7 +36,7 @@
 		.map((s, idx) => ({ID: s.ID, idx: idx, name: s.slaveName, assignment: s.assignment}))
 		.filter(s => s.ID === _i).map(s => s.idx + ' - ' + s.name + ' (' + s.assignment + ')').join(', ')>>@@
 <</foreach>>
-<<set _visibleSlaves = $slaves.filter(s => s.assignmentVisible == 1),
+<<set _visibleSlaves = $slaves.filter(s => s.assignmentVisible == 1 && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
 	$slavesVisible = _visibleSlaves.length,
 	$dormitoryPopulation = _visibleSlaves.filter(s => s.livingRules != "luxurious").length,
 	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.livingRules == "luxurious" && s.relationship >= 4).length * 0.5,
diff --git a/src/uncategorized/saBeYourHeadGirl.tw b/src/uncategorized/saBeYourHeadGirl.tw
index 3d72a94e0321ff0d2fcd4f39352c8a50c324b0a6..352b2aef637d456fdb898cfb0258644be9e9d8ec 100644
--- a/src/uncategorized/saBeYourHeadGirl.tw
+++ b/src/uncategorized/saBeYourHeadGirl.tw
@@ -2,12 +2,15 @@
 
 <<set $HGTimeInGrade += 1>>
 
+<<if $HGSuite == 1>>
+	<<set $slaves[$i].livingRules = "luxurious">>
+<</if>>
+
 <<if $arcologies[0].FSEgyptianRevivalistLaw == 0>>
 	helps manage your other slaves. She helps them when they try and fail, and punishes them when they fail to try.
 <<else>>
 	serves as your Consort. Though she is still your slave, her status is scarcely below that of a citizen. She @@.green;contributes to your reputation@@ just like a Concubine, and she is @@.hotpink;conscious@@ of the @@.mediumaquamarine;trust@@ you place in her.
-	<<set $slaves[$i].devotion += 1>>
-	<<set $slaves[$i].trust += 1>>
+	<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 	<<silently>>
 	<<include "SA please you">>
 	<</silently>>
@@ -92,16 +95,13 @@
 
 <<if ($slaves[$i].livingRules == "luxurious") && ($HGSuite == 1)>>
 	Being continually trusted with this position @@.hotpink;increases her devotion to you,@@ and encourages her to @@.mediumaquamarine;trust you in turn;@@ she's also @@.hotpink;grateful@@ for her nice suite, which makes her one of the best provided for slaves in the Free Cities.
-	<<set $slaves[$i].devotion += 4>>
-	<<set $slaves[$i].trust += 4>>
+	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 <<elseif ($slaves[$i].livingRules == "luxurious")>>
 	Being continually trusted with this position @@.hotpink;increases her devotion to you@@ and encourages her to @@.mediumaquamarine;trust you in turn.@@
-	<<set $slaves[$i].devotion += 4>>
-	<<set $slaves[$i].trust += 4>>
+	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 <<elseif ($HGSuite == 1)>>
 	She's @@.hotpink;grateful@@ for her nice suite, which makes her one of the best provided for slaves in the Free Cities. Being continually trusted with this position encourages her to @@.mediumaquamarine;trust you in turn.@@
-	<<set $slaves[$i].devotion += 2>>
-	<<set $slaves[$i].trust += 4>>
+	<<set $slaves[$i].devotion += 2, $slaves[$i].trust += 4>>
 <<else>>
 	Being continually trusted with this position @@.hotpink;slightly increases her devotion to you,@@ though she harbors some doubts because she isn't allowed a room of her own to set her apart from the other slaves.
 	<<set $slaves[$i].devotion += 1>>
@@ -140,15 +140,12 @@
 		<<set $slaves[$i].fetishStrength -= 4>>
 	<<else>>
 		Having all the slaves look up to and obey her affects her sexuality, turning her into a @@.lightcoral;bit of a dominatrix.@@
-		<<set $slaves[$i].fetish = "dom">>
-		<<set $slaves[$i].fetishStrength = 20>>
+		<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishStrength = 20, $slaves[$i].fetishKnown = 1>>
 	<</if>>
 <<else>>
 	<<if random(1,3) == 1>>
 		Having all the slaves look up to and obey her affects her sexuality, turning her into a @@.lightcoral;bit of a dominatrix.@@
-		<<set $slaves[$i].fetish = "dom">>
-		<<set $slaves[$i].fetishStrength = 20>>
-		<<set $slaves[$i].fetishKnown = 1>>
+		<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishStrength = 20, $slaves[$i].fetishKnown = 1>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index 2192452015b9725395f7c7218c55407154b5fde3..4f6f9e0c7f37e43e4bcd3e870b0f2903ebe66580 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -2,6 +2,10 @@
 
 carries arms in your defense.
 
+<<if $dojo > 1>>
+	<<set $slaves[$i].livingRules = "luxurious">>
+<</if>>
+
 <<Deadliness $slaves[$i]>>
 
 <<if $slaves[$i].combatSkill > 0>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index fba026f7beac5620c8b6fc7c347a64781cc838c6..cd2aa5ea14da589b289f13a799aeed1bb0c50ee4 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -631,7 +631,7 @@
 <</if>>
 <</if>>
 
-<<set $slaves[$i].need -= ((_vaginalUse+_penetrativeUse+_analUse)*5)
+<<set $slaves[$i].need -= ((_vaginalUse+_penetrativeUse+_analUse)*5)>>
 <<set $HeadGirl.need = 0>>
 
 <<if $slaves[$i].cervixImplant == 1 && _cervixPump > 0 && canDoVaginal($slaves[$i])>>
@@ -924,6 +924,10 @@
 	<</if>>
 <</if>>
 
+<<if $slaves[$i].livingRules != "luxurious">>
+	<<set $slaves[$i].livingRules = "luxurious">>
+<</if>>
+
 <<if ($HeadGirl.relationshipTarget == $slaves[$i].ID)>>
 	<<set ($HeadGirl.relationship = $slaves[$i].relationship)>>
 <</if>>
@@ -932,6 +936,7 @@
 <<if $showEWD == 0>>
 	<<silently>>
 	<<include "SA chooses own clothes">>
+	<<include "SA rules">>
 	<<include "SA diet">>
 	<<include "SA long term effects">>
 	<<include "SA drugs">>
@@ -941,6 +946,7 @@
 	<</silently>>
 <<else>>
 	<<include "SA chooses own clothes">>
+	<<include "SA rules">>
 	<<include "SA diet">>
 	<<include "SA long term effects">>
 	<<include "SA drugs">>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 30e4cd3704d4ee72240f07d4481884d87c15016c..60e8b35d7c759daf23b20174626248f2a5e35954 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -3729,6 +3729,155 @@
 					<<set $slaves[$i].trust -= _punishments>>
 				<</switch>>
 			<</if>>
+		<<case "live with your Head Girl">>
+			<<if $slaves[$i].devotion < -50>>
+				is so unhappy that she has little interest in getting off, not that $HeadGirl.SlaveName cares.
+				<<set $slaves[$i].need = 0>>
+			<<elseif $slaves[$i].energy <= 20>>
+				is frigid and has little interest in getting off, though it doesn't stop $HeadGirl.SlaveName.
+				<<set $slaves[$i].need = 0>>
+			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
+				<<if ($slaves[$i].devotion <= 20)>>
+					gets off with $HeadGirl.SlaveName despite her reluctance, @@.hotpink;habituating her to sexual slavery.@@
+					<<set $slaves[$i].devotion += 1>>
+					<<if ($slaves[$i].trust > -20) && ($slaves[$i].devotion <= 20)>>
+						She hates herself for climaxing, and knows the mild aphrodisiacs in the food are forcing her arousal, @@.gold;frightening her.@@
+						<<set $slaves[$i].trust -= 1>>
+					<</if>>
+					<<set $slaves[$i].need -= 20>>
+				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation")>>
+					gets off with $HeadGirl.SlaveName, so being forbidden to masturbate doesn't affect her seriously.
+					<<set $slaves[$i].need -= 20>>
+				<<else>>
+					gets off with $HeadGirl.SlaveName, so she doesn't feel the need for release that often.
+					<<set $slaves[$i].need -= 20>>
+				<</if>>
+			<<else>>
+				either gets off with $HeadGirl.SlaveName or gets to put up with being sexual frustration.
+			<</if>>
+
+			<<if ($slaves[$i].devotion <= 20)>>
+				<<if $slaves[$i].voice == 0>>
+					Living as a mute @@.hotpink;molds her@@ to your Head Girl's will.
+					<<set $slaves[$i].devotion += 1>>
+				<<elseif $slaves[$i].lips > 95>>
+					Being unable to speak through her facepussy @@.hotpink;molds her@@ to your Head Girl's will.
+					<<set $slaves[$i].devotion += 1>>
+				<<elseif $slaves[$i].speechRules == "restrictive">>
+					Living under enforced silence @@.hotpink;molds her@@ to your Head Girl's will.
+					<<set $slaves[$i].devotion += 1>>
+				<</if>>
+			<</if>>
+
+			<<if ($slaves[$i].devotion <= 20)>>
+				She shares a room, and sometimes bed, with $HeadGirl.slaveName. Your Head Girl keeps it from going to her head, however.
+			<<else>>
+				She loves sharing a room, and sometimes bed, with $HeadGirl.slaveName.
+			<</if>>
+
+			<<if ($slaves[$i].attrKnown == 0)>>
+				<<if ($week-$slaves[$i].weekAcquired > 4) && $slaves[$i].energy > 20>>
+					<<set $slaves[$i].attrKnown = 1>>
+					<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> has been monitoring her as she spends time with your Head Girl, analyzing her sexuality. It seems she is
+					<<saRulesAttractionDiscovery>>
+				<</if>>
+			<</if>>
+
+			<<if $slaves[$i].devotion > 50>>
+				She does her best for $HeadGirl.slaveName, and thus you, so she frequently deserves a reward and never needs to be punished.
+				<<set _punishments = 0>>
+				<<set _rewards = 3>>
+			<<elseif $slaves[$i].devotion > 20>>
+				She's obedient out of acceptance of her place, so she often deserves a reward and rarely needs to be punished.
+				<<set _punishments = 1>>
+				<<set _rewards = 2>>
+			<<elseif $slaves[$i].devotion >= -20>>
+				<<if $slaves[$i].trust < -20>>
+					She's obedient out of fear, so she only rarely deserves a reward and sometimes needs to be punished.
+					<<set _punishments = 1>>
+					<<set _rewards = 1>>
+				<<else>>
+					She's too trusting for obedience and often needs to be punished.
+					<<set _punishments = 2>>
+					<<set _rewards = 0>>
+				<</if>>
+			<<else>>
+				<<if $slaves[$i].trust < -50>>
+					She's only obedient out of terror, so she sometimes needs to be punished.
+					<<set _punishments = 1>>
+					<<set _rewards = 0>>
+				<<else>>
+					She hates you and $HeadGirl.slaveName too much to obey, so she needs constant punishment.
+					<<set _punishments = 3>>
+					<<set _rewards = 0>>
+				<</if>>
+			<</if>>
+
+			<<if _rewards > 0>>
+				<<switch $slaves[$i].standardReward>>
+				<<case "relaxation">>
+					She's given free time, which she
+					<<if $spa != 0>>
+						usually spends in $spaName<<if $Attendant != 0>> enjoying $Attendant.slaveName's care<</if>>.
+					<<else>>
+						usually spends relaxing in your Head Girls private room.
+					<</if>>
+					<<if $slaves[$i].relationship > 0>>
+						She often asks to save these breaks so she can spend them with her <<if $slaves[$i].relationship == 1>>friend<<elseif $slaves[$i].relationship == 2>>best friend<<elseif $slaves[$i].relationship == 3>>friend with benefits<<elseif $slaves[$i].relationship == 4>>sweetheart<<else>>wife<</if>>.
+					<</if>>
+					These breaks are @@.green;good for her.@@
+					<<set $slaves[$i].health += _rewards>>
+				<<case "drugs">>
+					She's @@.hotpink;rewarded@@ with hits of mild recreational drugs, which @@.red;isn't healthy,@@ but helps bind her to you strongly.
+					<<set $slaves[$i].health -= _rewards>>
+					<<set $slaves[$i].devotion += _rewards*2>>
+				<<case "orgasm">>
+					She's @@.hotpink;rewarded@@ with
+					<<if $slaves[$i].clitPiercing >= 3>>
+						sustained orgasm from her <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
+					<<elseif $activeSlave.releaseRules == "sapphic">>
+						immediate sex with any nearby slave,
+					<<else>>
+						a quick climax from a vibrator,
+					<</if>>
+					@@.green;boosting her libido.@@
+					<<if $slaves[$i].energy < 98>><<set $slaves[$i].energy += _rewards>><</if>><<set $slaves[$i].need -= (_rewards*10)>>
+					<<set $slaves[$i].devotion += _rewards>>
+				<<default>>
+					She's @@.hotpink;rewarded@@
+					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+						and @@.gold;punished@@
+					<</if>>
+					situationally, letting her develop normally.
+					<<set $slaves[$i].devotion += _rewards>>
+				<</switch>>
+			<</if>>
+			<<if _punishments > 0>>
+				<<switch $slaves[$i].standardPunishment>>
+				<<case "confinement">>
+					When she disobeys, she
+					<<if $cellblock != 0>>
+						@@.gold;spends her time in $cellblockName@@<<if $Wardeness != 0>>, where she can experience $Wardeness.slaveName's tender mercies<</if>>.
+					<<else>>
+						spends her time @@.gold;shut up in a box@@ until she behaves.
+					<</if>>
+					<<set $slaves[$i].trust -= _punishments>>
+				<<case "whipping">>
+					When she disobeys, she's @@.gold;whipped,@@ not hard enough to mark her, but hard enough to @@.red;hurt,@@ breaking her quickly.
+					<<set $slaves[$i].health -= _punishments>>
+					<<set $slaves[$i].trust -= 2*_punishments>>
+				<<case "chastity">>
+					When she disobeys, $HeadGirl.slaveName @@.gold;ruins her next orgasm,@@ @@.red;reducing her libido@@ but breaking her to @@.hotpink;sexual obedience.@@
+					<<if $slaves[$i].energy > 2>><<set $slaves[$i].energy -= 2*_punishments>><</if>>
+					<<set $slaves[$i].devotion += _punishments>>
+					<<set $slaves[$i].trust -= _punishments>>
+				<<default>>
+					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+						When she disobeys, she's @@.gold;punished@@ situationally, letting her develop normally.
+					<</if>>
+					<<set $slaves[$i].trust -= _punishments>>
+				<</switch>>
+			<</if>>
 		<<default>>
 			<<if $slaves[$i].devotion < -50>>
 				is so unhappy that she has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting her sexual outlets superfluous<</if>>.
@@ -3869,13 +4018,15 @@
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
 			<</if>>
-
-			<<if $roomsPopulation > $rooms>>
-				<<if $slaves[$i].livingRules == "luxurious">>
-					There are @@.yellow;too many slaves for the penthouse's individual rooms,@@ so she moves out into the dormitory.
-					<<set $slaves[$i].livingRules = "normal">>
-					<<set $dormitoryPopulation += 1>>
-					<<if $slaves[$i].relationship >= 4>><<set $roomsPopulation -= 0.5>><<else>><<set $roomsPopulation -= 1>><</if>>
+			
+			<<if $slaves[$i].assignment != "be your Head Girl" && $slaves[$i].assignment != "guard you">>
+				<<if $roomsPopulation > $rooms>>
+					<<if $slaves[$i].livingRules == "luxurious">>
+						There are @@.yellow;too many slaves for the penthouse's individual rooms,@@ so she moves out into the dormitory.
+						<<set $slaves[$i].livingRules = "normal">>
+						<<set $dormitoryPopulation += 1>>
+						<<if $slaves[$i].relationship >= 4>><<set $roomsPopulation -= 0.5>><<else>><<set $roomsPopulation -= 1>><</if>>
+					<</if>>
 				<</if>>
 			<</if>>
 
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 2652c7d8638e9fb91075a89cfec5ae7eb9948ae0..7fc2185cc7f4dae51763c676ab16743cb7d70de8 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1226,7 +1226,7 @@ Hormones: <strong><span id="hormones">
 <<else>>
 	<<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
 	<<for $i = 0; $i < _SL; $i++>>
-		<<if $slaves[$i].assignmentVisible == 1>>
+		<<if $slaves[$i].assignmentVisible == 1 && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
 			<<if $slaves[$i].livingRules == "luxurious">>
 				<<if $slaves[$i].relationship >= 4>>
 					<<set $roomsPopulation += 0.5>>
@@ -1241,6 +1241,10 @@ Hormones: <strong><span id="hormones">
 	Living standard: ''<span id="livingRules">$activeSlave.livingRules</span>.''
 	<<if setup.facilityCareers.includes($activeSlave.assignment)>>
 		//Her living conditions are managed by her assignment.//
+	<<elseif ($activeSlave.assignment == "be your Head Girl") && ($HGSuite == 1)>>
+		//She has her own little luxurious room in the penthouse with everything she needs to be a proper Head Girl.//
+	<<elseif ($activeSlave.assignment == "guard you") && ($dojo > 1)>>
+		//She has a comfortable room in the armory to call her own.//
 	<<else>>
 		<<link "Spare">><<set $activeSlave.livingRules = "spare">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
 		<<link "Normal">><<set $activeSlave.livingRules = "normal">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
diff --git a/src/utility/assignWidgets.tw b/src/utility/assignWidgets.tw
index af7b8a66bf63ca48da6a53e052d5ede4d860f9c1..201fba73a60b423dc7cf1aa5abffaa1fc863db76 100644
--- a/src/utility/assignWidgets.tw
+++ b/src/utility/assignWidgets.tw
@@ -56,6 +56,7 @@
 			<</switch>>
 		<<case "live with your head girl" "live with your Head Girl" "head girl suite" "hgsuite">>
 			<<set $args[0].assignment = "live with your Head Girl",     $args[0].assignmentVisible = 0, $HGSuiteSlaves++, $HGSuiteiIDs.push(_wID)>>
+			<<set $args[0].livingRules = "luxurious">>
 		<<case "serve in the master suite" "master suite" "mastersuite">>
 			<<set $args[0].assignment = "serve in the master suite",    $args[0].assignmentVisible = 0, $masterSuiteSlaves++, $MastSiIDs.push(_wID)>>
 		<<case "learn in the schoolroom" "schoolroom">>
@@ -82,6 +83,16 @@
 		<<case "be the Attendant" "be your Concubine" "be the DJ" "be the Madam" "be the Milkmaid" "be the Nurse" "be the Schoolteacher" "be the Stewardess" "be the Wardeness">>
 			<<set $args[0].assignment = $args[1],                       $args[0].assignmentVisible = 0>>     /* non-visible leadership roles */
 			<<set $args[0].livingRules = "luxurious">>
+		<<case "be your Head Girl">>
+			<<set $args[0].assignment = $args[1]>>
+			<<if $HGSuite == 1>>
+				<<set $args[0].livingRules = "luxurious">>
+			<</if>>
+		<<case "guard you">>
+			<<set $args[0].assignment = $args[1]>>
+			<<if $dojo > 1>>
+				<<set $args[0].livingRules = "luxurious">>
+			<</if>>
 		<<case "be your agent" "live with your agent">>
 			<<set $args[0].assignment = $args[1],                       $args[0].assignmentVisible = 0,      $args[0].useRulesAssistant = 0>> /* non-visible roles exempt from Rules Assistant */
 		<<case "choose her own job">>
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index a908668474dcb19057dac8785849babfbd4e5628..e835f42f423abc5dcb61d5273c6c028e3e48a62c 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -4176,6 +4176,8 @@ Your brand design is ''$brandDesign.''
 <<if (def _combinedRule.livingRules) && (_combinedRule.livingRules !== "no default setting")>>
 <<if setup.facilityCareers.includes($args[0].assignment)>>
 	<br>$args[0].slaveName's living standards are controlled by her assignment.
+<<elseif (($args[0].assignment == "be your Head Girl") && ($HGSuite == 1)) || (($args[0].assignment == "guard you") && ($dojo > 1))>>
+	<br>$args[0].slaveName has a private room.
 <<elseif ($args[0].fetish == "mindbroken")>>
 	<<if ($args[0].livingRules !== "spare")>>
 	<<set $args[0].livingRules = "spare">>