diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index a3e4c61533b7a4686b4bad5ef78d1579cb812f49..15dc3c8efb39ada802e38c19df7a2bc70bb6668b 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,14 @@
 
 0.10.7.0/1
 
+3/24/2018
+
+	6
+	-new voluntarily enslaved pairs can show their incestual love during recruitment
+
+	5
+	-fixed improper usage of jsEither()
+
 3/23/2018
 
 	4
diff --git a/devNotes/twine JS b/devNotes/twine JS
index 42b3639959447d6d3d0be96c530ae58914dd2dc4..5b79ec05f5d4efd466cbdbb1b9634cf6b593b484 100644
--- a/devNotes/twine JS	
+++ b/devNotes/twine JS	
@@ -1325,47 +1325,47 @@ window.setPregType = function(actor) {
 		} else if(actor.ID == -1) {
 			if(actor.birthMaster > 0) { // Predisposed to twins
 				if(actor.fertDrugs == 1) {
-					ovum += jsEither(1, 1, 2, 2, 2, 2, 3, 3);
+					ovum += jsEither([1, 1, 2, 2, 2, 2, 3, 3]);
 				} else {
-					ovum += jsEither(0, 0, 0, 1, 1, 1, 1, 1, 1, 2);
+					ovum += jsEither([0, 0, 0, 1, 1, 1, 1, 1, 1, 2]);
 				}
 				if(actor.forcedFertDrugs > 0) {
-					ovum += jsEither(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4);
+					ovum += jsEither([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4]);
 				}
 			} else {
 				if(actor.fertDrugs == 1) {
-					ovum += jsEither(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3);
+					ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3]);
 				} else {
-					ovum += jsEither(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
+					ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
 				}
 				if(actor.forcedFertDrugs > 0) {
-					ovum += jsEither(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4);
+					ovum += jsEither([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4]);
 				}
 			}
 		} else if(actor.pregType == 0) {
-			ovum += jsEither(0, 0, 0, 0, 0, 0, 0, 0, 0, 1);	//base chance for twins
+			ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);	//base chance for twins
 			if(actor.hormones == 2) {
-				ovum += jsEither(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2);
+				ovum += jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2]);
 				fertilityStack++;
 			}
 			if(actor.hormoneBalance >= 400) {
-				ovum += jsEither(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3);
+				ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3]);
 				fertilityStack++;
 			}
 			if(State.variables.masterSuitePregnancyFertilitySupplements == 1 && ((actor.assignment == "serve in the master suite" || actor.assignment == "be your Concubine"))) {
-				ovum += jsEither(0, 0, 0, 1, 1, 2, 2, 2, 3, 3);
+				ovum += jsEither([0, 0, 0, 1, 1, 2, 2, 2, 3, 3]);
 				fertilityStack++;
 				fertilityStack++;
 			}
 			if(actor.drugs == "super fertility drugs") {
-				ovum += jsEither(1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5);
+				ovum += jsEither([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5]);
 				fertilityStack++;
 				fertilityStack++;
 				fertilityStack++;
 				fertilityStack++;
 				fertilityStack++;
 			} else if(actor.drugs == "fertility drugs") {
-				ovum += jsEither(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3);
+				ovum += jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3]);
 				fertilityStack++;
 			}
 			if(State.variables.seeHyperPreg == 1) {
@@ -7250,7 +7250,7 @@ window.todaysOutfit = function(slave) {
 				break;
 			case 'genderFund':
 				if(jsRandom(1,2) == 1) {
-					selection = {text: "she commonly sees cheerleaders around and instinctually follows along.", clothes: jsEither('a cheerleader outfit', 'a schoolgirl outfit')};
+					selection = {text: "she commonly sees cheerleaders around and instinctually follows along.", clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])};
 				} else {
 					selection = {text: "she commonly sees bunnies around and instinctually follows along.", clothes: "a bunny outfit"};
 				}
@@ -7259,22 +7259,22 @@ window.todaysOutfit = function(slave) {
 				selection = {text: "she commonly sees others wearing clothing and is drawn to doing so herself.", clothes: "conservative clothing"};
 				break;
 			case 'degradationist':
-				selection = {text: "she commonly sees others wearing chains and is drawn to doing so herself.", clothes: jsEither('chains', 'uncomfortable straps', 'shibari ropes')};
+				selection = {text: "she commonly sees others wearing chains and is drawn to doing so herself.", clothes: jsEither(['chains', 'uncomfortable straps', 'shibari ropes'])};
 				break;
 			case 'mature':
-				selection = {text: "she commonly sees others wearing suits and is drawn to doing so herself.", clothes: jsEither('slutty business attire', 'a nice maid outfit', 'a military uniform', 'nice business attire')};
+				selection = {text: "she commonly sees others wearing suits and is drawn to doing so herself.", clothes: jsEither(['slutty business attire', 'a nice maid outfit', 'a military uniform', 'nice business attire'])};
 				break;
 			case 'youth':
-				selection = {text: "she commonly sees schoolgirls around and instinctually follows along.", clothes: jsEither('a schoolgirl outfit', 'a cheerleader outfit')};
+				selection = {text: "she commonly sees schoolgirls around and instinctually follows along.", clothes: jsEither(['a schoolgirl outfit', 'a cheerleader outfit'])};
 				break;
 			case 'physicalIdealist':
-				selection = {text: "she commonly sees naked girls around and seldom realizes they are coated in oil.", clothes: jsEither('body oil', 'no clothing', 'no clothing')};
+				selection = {text: "she commonly sees naked girls around and seldom realizes they are coated in oil.", clothes: jsEither(['body oil', 'no clothing', 'no clothing'])};
 				break;
 			case 'pastoralist':
 				selection = {text: "she commonly sees cowgirls around and instinctually follows along.", clothes: "Western clothing"};
 				break;
 			case 'bodyPurist':
-				selection = {text: "she commonly sees others wearing tight, form-fitting clothes and is drawn to doing so herself.", clothes: jsEither('a leotard', 'a string bikini', 'a slave gown', 'a comfortable bodysuit', 'restrictive latex', 'clubslut netting', 'a leotard', 'a halter top dress')};
+				selection = {text: "she commonly sees others wearing tight, form-fitting clothes and is drawn to doing so herself.", clothes: jsEither(['a leotard', 'a string bikini', 'a slave gown', 'a comfortable bodysuit', 'restrictive latex', 'clubslut netting', 'a leotard', 'a halter top dress'])};
 				break;
 			default:
 				selection = {text: "she chooses to put on underwear, the reasons lost to her, and moves on.", clothes: "attractive lingerie"};
@@ -7773,9 +7773,9 @@ window.todaysShoes = function(slave) {
 	
 	if(slave.fetish == 'mindbroken') {
 		if(slave.amp != 1 && slave.heels == 1) {
-			shoes.push({text: "She finds she can inexplicably walk if she wears heels; a daily lesson for her, as she forgets shortly after leaving.", shoes: jsEither("heels", "extreme heels", "boots")});
+			shoes.push({text: "She finds she can inexplicably walk if she wears heels; a daily lesson for her, as she forgets shortly after leaving.", shoes: jsEither(["heels", "extreme heels", "boots"])});
 		}
-		shoes.push({text: "She vaguely remembers putting things on her feet, so she does.", shoes: jsEither("heels", "extreme heels", "boots", "flats")});
+		shoes.push({text: "She vaguely remembers putting things on her feet, so she does.", shoes: jsEither(["heels", "extreme heels", "boots", "flats"])});
 		shoes.push({text: "She entered without shoes, and will leave the same.", shoes: "none"});
 	} else if(slave.devotion <= 20) {
 		if(slave.heels == 0) {
@@ -7851,7 +7851,7 @@ window.todaysCorset = function(slave) {
 			if(slave.weight > 130) {
 				belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one. She struggles to fit it around her huge gut, only stopping when another slave takes it away from her so she moves on and stops blocking the wardrobe with her fat ass.", bellyAccessory: "none"});
 			} else {
-				belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one.", bellyAccessory: jsEither("a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly")});
+				belly.push({text: "She notices the fake bellies; since every girl she has ever met has a rounded middle, it's only natural she is compelled to wear one.", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])});
 			}
 		} else {
 			belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatiblity for no output, will likely get deprecated in the future as content is added*/
@@ -7863,7 +7863,7 @@ window.todaysCorset = function(slave) {
 			if(slave.weight > 130) {
 				belly.push({text: "struggles to fit a fake pregnant belly around her gut before giving up and hoping she can pass as fecund,", bellyAccessory: "none"});
 			} else {
-				belly.push({text: "straps on a fake pregnant belly to fit in with all the other pregnant girls,", bellyAccessory: jsEither("a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly")});
+				belly.push({text: "straps on a fake pregnant belly to fit in with all the other pregnant girls,", bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])});
 			}
 		} else if(slave.belly < 1500 && slave.fetish == "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw != "breeder" && slave.weight <= 130) {
 			if(slave.fetishStrength <= 30) {
diff --git a/src/npc/newSlaveIncestSex.tw b/src/npc/newSlaveIncestSex.tw
index 859f7edde3d46450bc4368d9106a202c8869db09..3e71594f05d8f85e046b49d77f22192346a750d4 100644
--- a/src/npc/newSlaveIncestSex.tw
+++ b/src/npc/newSlaveIncestSex.tw
@@ -3,74 +3,101 @@
 <br/><br/>
 
 /* setup pronouns (switch on vagina for sisters and herms regardless of genes) */
-<<set $_oneshe = "she" >>
-<<set $_oneher = "her" >>
+<<set _oneshe = "she" >>
+<<set _oneher = "her" >>
 <<if $sissy.vagina == -1 >>
-  <<set $_oneshe = "he" >>
-  <<set $_oneher = "his" >>
+  <<set _oneshe = "he" >>
+  <<set _oneher = "his" >>
 <</if>>
-<<set $_othershe = "she" >>
-<<set $_otherher = "her" >>
+<<set _othershe = "she" >>
+<<set _otherher = "her" >>
 <<if $activeSlave.vagina == -1 >>
-  <<set $_othershe = "he" >>
-  <<set $_otherher = "his" >>
+  <<set _othershe = "he" >>
+  <<set _otherher = "his" >>
 <</if>>
+<<if $familyTesting == 1>>
+	<<set _other = relativeTerm($activeSlave, $sissy)>> /* sissy is active's blank */
+	<<set _one = relativeTerm($sissy, $activeSlave)>> /* active is sissy's blank */
+	<<if $sissy.vagina == -1 >>
+		<<if _other == "sister" >><<set _one = "brother">><</if>>
+		<<if _other == "half-sister" >><<set _one = "half-brother">><</if>>
+		<<if _other == "daughter" >><<set _one = "son">><</if>>
+	<</if>>
+	<<if $activeSlave.vagina == -1 >>
+		<<if _one == "sister" >><<set _other = "brother">><</if>>
+		<<if _one == "half-sister" >><<set _other = "half-brother">><</if>>
+		<<if _one == "daughter" >><<set _other = "son">><</if>>
+	<</if>>
+	<<if areSisters($sissy, $activeSlave)>>
+		<<if $sissy.actualAge > $activeSlave.actualAge>>
+			<<set _one = "older "+_one >>
+			<<set _other = "younger "+_other >>
+		<<elseif $sissy.actualAge < $activeSlave.actualAge>>
+			<<set _one = "younger "+_one >>
+			<<set _other = "older "+_other >>
+		<</if>>
+	<</if>>
+<<else>>
 /* setup identifiers */
-<<set $_one = $sissy.relation >>
-<<set $_other = $activeSlave.relation >>
-/* gender relation descriptions */
-/* TODO: is there a function for gender-aware relationships? */
-<<if $sissy.vagina == -1 >>
-  <<if $sissy.relation == "mother" >><<set $_one = "father">><</if>>
-  <<if $sissy.relation == "sister" >><<set $_one = "brother">><</if>>
-  <<if $sissy.relation == "daughter" >><<set $_one = "son">><</if>>
-<</if>>
-<<if $activeSlave.vagina == -1 >>
-  <<if $activeSlave.relation == "mother" >><<set $_other = "father">><</if>>
-  <<if $activeSlave.relation == "sister" >><<set $_other = "brother">><</if>>
-  <<if $activeSlave.relation == "daughter" >><<set $_other = "son">><</if>>
-<</if>>
-<<if $_one == $_other >>
-  /* two sisters / brothers: idenfy by age */
-  <<if $sissy.physicalAge > $activeSlave.physicalAge >>
-    <<set $_one = "older "+$_one >>
-    <<set $_other = "younger "+$_other >>
-  <<else>>
-    <<set $_one = "younger "+$_one >>
-    <<set $_other = "older "+$_other >>
-  <</if>>
+	<<set _one = $sissy.relation >>
+	<<set _other = $activeSlave.relation >>
+	/* gender relation descriptions */
+	/* TODO: is there a function for gender-aware relationships? */
+	<<if $sissy.vagina == -1 >>
+	  <<if $sissy.relation == "mother" >><<set _one = "father">><</if>>
+	  <<if $sissy.relation == "sister" >><<set _one = "brother">><</if>>
+	  <<if $sissy.relation == "daughter" >><<set _one = "son">><</if>>
+	<</if>>
+	<<if $activeSlave.vagina == -1 >>
+	  <<if $activeSlave.relation == "mother" >><<set _other = "father">><</if>>
+	  <<if $activeSlave.relation == "sister" >><<set _other = "brother">><</if>>
+	  <<if $activeSlave.relation == "daughter" >><<set _other = "son">><</if>>
+	<</if>>
+	<<if _one == _other >>
+	  /* two sisters / brothers: idenfy by age */
+	  <<if $sissy.actualAge > $activeSlave.actualAge>>
+		<<set _one = "older "+_one >>
+		<<set _other = "younger "+_other >>
+	  <<elseif $sissy.actualAge < $activeSlave.actualAge>>
+		<<set _one = "younger "+_one >>
+		<<set _other = "older "+_other >>
+	  <<elseif $sissy.birthWeek == $activeSlave.birthWeek>>
+		<<set _one = "twin "+_one >>
+		<<set _other = "twin "+_other >>
+	  <</if>>
+	<</if>>
 <</if>>
 /* prepare some text passages based on options */
-<<set $_actions = [] >>
-<<set $_secretions = [] >>
-<<set $_genitals = [] >>
+<<set _actions = [] >>
+<<set _secretions = [] >>
+<<set _genitals = [] >>
 <<if ($sissy.dick == 0) || ($activeSlave.dick == 0) >>
   /* at least one vagina is present */
-  <<run $_actions.push("clit-flinging tongue-action") >> /* TODO: check oral skill of slaves */
-  <<run $_secretions.push("girlcum") >>
-  <<run $_genitals.push("licked wet cunt") >>
+  <<run _actions.push("clit-flinging tongue-action") >> /* TODO: check oral skill of slaves */
+  <<run _secretions.push("girlcum") >>
+  <<run _genitals.push("licked wet cunt") >>
 <</if>>
 <<if ($sissy.dick != 0) || ($activeSlave.dick != 0) >>
   /* at least one penis is present */
-  <<run $_actions.push("nose-pressed-against-balls deep-throats") >> /* TODO: check oral skill of slaves */
-  <<run $_secretions.push("semen") >>
-  <<run $_genitals.push("limp dangling cock") >>
+  <<run _actions.push("nose-pressed-against-balls deep-throats") >> /* TODO: check oral skill of slaves */
+  <<run _secretions.push("semen") >>
+  <<run _genitals.push("limp dangling cock") >>
 <</if>>
-<<if $_genitals.length == 1 >>
-  <<set $_genitals = $_genitals[0]+"s" >>
+<<if _genitals.length == 1 >>
+  <<set _genitals = _genitals[0]+"s" >>
 <<else>>
-  <<set $_genitals = $_genitals.join(" and ") >>
+  <<set _genitals = _genitals.join(" and ") >>
 <</if>>
 
 /*
 SISSY SLAVE (FIRST): <br/>
-$_one ($sissy.relation) <br/>
+_one ($sissy.relation) <br/>
 $sissy.physicalAge <br/>
-$_oneshe / $_oneher <br/>
+_oneshe / _oneher <br/>
 ACTIVE SLAVE (SECOND): <br/>
-$_other ($activeSlave.relation) <br/>
+_other ($activeSlave.relation) <br/>
 $activeSlave.physicalAge <br/>
-$_othershe / $_otherher <br/>
+_othershe / _otherher <br/>
 */
 
 <span id="result">
@@ -79,20 +106,20 @@ $_othershe / $_otherher <br/>
 Now that you own them, you want to see proof of their love for each other. You order them to perform mutual oral sex in front of you.
 Hesitantly they assume 69 position on your couch. They either never did this in front of a stranger or never had sex this way before. You remind them that they are sex slaves now. They need to follow all orders, especially sexual ones, so this is a comparatively gentle start.
 <br/><br/>
-The $_one shows more boldness as $_oneshe lowers $_oneher head towards $_oneher $_other's privates.
+The _one shows more boldness as _oneshe lowers _oneher head towards _oneher _other's privates.
 <<if $activeSlave.dick == 0 >>
-Carefully, $_oneshe spreads $_oneher $_other's labia. Then $_oneshe continues to give $_oneher $_other's exposed pussy a few experimental licks. At first, $_oneher efforts seem to be futile, but after a while the $_other's clit becomes engorged and $_otherher juices start flowing.
+Carefully, _oneshe spreads _oneher _other's labia. Then _oneshe continues to give _oneher _other's exposed pussy a few experimental licks. At first, _oneher efforts seem to be futile, but after a while the _other's clit becomes engorged and _otherher juices start flowing.
 <<else>>
-Uncertain, $_oneshe grabs $_oneher $_other's penis. Then $_oneshe puts $_oneher $_other's flaccid member into $_oneher mouth and gives it an experimental sucke. At first, $_oneher efforts seem to be futile, but after a while the $_other sports a nice, hard erection.
+Uncertain, _oneshe grabs _oneher _other's penis. Then _oneshe puts _oneher _other's flaccid member into _oneher mouth and gives it an experimental sucke. At first, _oneher efforts seem to be futile, but after a while the _other sports a nice, hard erection.
 <</if>>
-As $_other's arousal grows, $_othershe becomes more eager to please $_otherher $_one, too. Going down on $_otherher's lover's genitals, $_othershe starts to mimic $_otherher ministrations.
+As _other's arousal grows, _othershe becomes more eager to please _otherher _one, too. Going down on _otherher's lover's genitals, _othershe starts to mimic _otherher ministrations.
   <<if ($sissy.dick == 0) != ($activeSlave.dick == 0) >>
-  Of course, $_othershe has to adapt $_otherher actions to the <<if $sissy.dick == 0 >>pussy pressed against $_otherher lips.<<else>>dick in $_otherher mouth.<</if>>
+  Of course, _othershe has to adapt _otherher actions to the <<if $sissy.dick == 0 >>pussy pressed against _otherher lips.<<else>>dick in _otherher mouth.<</if>>
   <</if>>
 <br/><br/>
-You can tell how uncomfortable they are with you watching them, but as they become increasingly worked up, they lose their inhibitions. Soon, you watch really enthralling <<print $RecETSevent.replace("incest","") >> incest action at your office<<if $_actions.length >>, including some enthusiastic <<print $_actions.join(" and ")>><</if>>. Eventually, they bring each other to an impressive mutual orgasm. Their lusty moans are only muffled by each others crotches. Spent, exhausted, and with their faces covered in each others <<print $_secretions.join(" and ")>> respectively, they untangle to rest comfortably on your couch.
+You can tell how uncomfortable they are with you watching them, but as they become increasingly worked up, they lose their inhibitions. Soon, you watch really enthralling <<print $RecETSevent.replace("incest","") >> incest action at your office<<if _actions.length >>, including some enthusiastic <<print _actions.join(" and ")>><</if>>. Eventually, they bring each other to an impressive mutual orgasm. Their lusty moans are only muffled by each others crotches. Spent, exhausted, and with their faces covered in each others <<print _secretions.join(" and ")>> respectively, they untangle to rest comfortably on your couch.
 <br/><br/>
-You indicate them to present themselves to you. Still shaking from the aftershocks of their orgasms, they are standing side by side in front of you. Naked with their  $_genitals dripping mixed juices. You simply nod, showing your approval. They are visibly relieved, not only sexually. They are more confident of having made the right choice in enslaving themselves to you since you seem @@.mediumaquamarine;trustworthy@@ and @@.hotpink;sympathetic.@@ They hug again, kissing and licking the sexual fluids off each others stained faces.
+You indicate them to present themselves to you. Still shaking from the aftershocks of their orgasms, they are standing side by side in front of you. Naked with their  _genitals dripping mixed juices. You simply nod, showing your approval. They are visibly relieved, not only sexually. They are more confident of having made the right choice in enslaving themselves to you since you seem @@.mediumaquamarine;trustworthy@@ and @@.hotpink;sympathetic.@@ They hug again, kissing and licking the sexual fluids off each others stained faces.
 <</replace>>
 <<set $sissy.devotion += 4>>
 <<set $sissy.trust += 4>>