diff --git a/artTools/README.md b/artTools/README.md
index 5ec58f83e73815c6318f703d570bcbb930f7f9d2..8e59dba1d03004db7b3ec6eddb624be830ec756c 100644
--- a/artTools/README.md
+++ b/artTools/README.md
@@ -35,23 +35,25 @@ While editing, keep the Layers in mind.
   Use them if your asset should be changed upon display. 
   Do not set the style directly in the object.
 
-## 3. Fix the document (before commiting, Inkscape only)
+## 3. Normalise the document (before committing)
 
-Inkscape shows weird behaviour in some regards.
-If you use Inkscape, close the document and run
+**THIS IS IMPORTANT**
 
-    python3 inkscape_svg_fixup.py vector_source.svg
+The various editors out there (Inkscape, Illustrator) may use different variants of formatting the SVG XML.
+Use
 
-before continuing. Open the file in Inkscape and save it again. 
-You need to make a minor change, as Inkscape will not save a unchanged file 
-(move the notes back and forth or something). The fixup does not produce
-the same linebreaks as Inkscape or Illustrator and git will go mad because
-the whole seems to have changed.
+    python3 normalize_svg.py vector_source.svg
+
+before committing to normalise the format so git will not freak out about the changed indentation.
+
+If you use Inkscape, please use in Edit → Settings → Input/Output → SVG-Output → Path Data → Optimized. This is the default.
+In case your Editor uses another path data style which cannot be changed, please contact the other artists and developers via the issue tracker to find a new common ground.
 
 What it does:
+* Formats the SVG XML according to Pythons lxml module, regardless of editor.
 * Adobe Illustrator uses group IDs as layer labels. 
   Inkscape however uses layer labels and a separate, auto-generated group ID.
-  inkscape_svg_fixup.py overwrites the group ID with the Inkscape layer label 
+  normalize_svg.py overwrites the group ID with the Inkscape layer label 
   so they are synchronised with Inkscape layer labels.
 * Inkscape copies the global style definition into the object *every time*
   the object is edited. If an object references a CSS class AND at the same time 
@@ -62,11 +64,11 @@ Note: Behaviour of Adobe Illustrator is untested.
 
 ## 4. Split the layers
 
-Execute
+For NoX original, deepurk extensions, execute
 
     python3 vector_layer_split.py vector_source.svg tw ../src/art/vector/layers/
 
-For revamped art 
+For faraen revamped art (based on NoX original)
 
 	python3 vector_revamp_layer_split.py vector_revamp_source.svg tw ../src/art/vector_revamp/layers/
 
@@ -101,4 +103,4 @@ You can define multiple CSS classes to one element, e.g. "skin torso". When proc
 
 You can put variable text into the image using single quotes, e.g. "'+_tattooText+'". The single quotes *break* the quoting in Twine so the content of the Twine variable `_tattooText` is shown upon display. You can even align text on paths.
 
-An anonymous group can be used for dynamic transformation. However, finding the correct parameters for the affine transformation matrix can be cumbersome. Use any method you see fit. See `src/art/vector/Boob.tw` for one example of the result.
\ No newline at end of file
+An anonymous group can be used for dynamic transformation. However, finding the correct parameters for the affine transformation matrix can be cumbersome. Use any method you see fit. See `src/art/vector/Boob.tw` for one example of the result.
diff --git a/artTools/normalize_svg.py b/artTools/normalize_svg.py
new file mode 100644
index 0000000000000000000000000000000000000000..5767de7344bce0060a68c2d160962bfdc7abed39
--- /dev/null
+++ b/artTools/normalize_svg.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python3
+
+'''
+Application for "fixing" SVGs edited with Inkscape
+
+These problems are addressed:
+
+* Inkscape notoriously copies class styles into the object definitions.
+https://bugs.launchpad.net/inkscape/+bug/167937
+
+* Inkscape uses labels on layers. Layers are basically named groups. 
+  Inkscape does not sync the group id with the layer label.
+  
+Usage Example:
+python3 inkscape_svg_fixup.py vector_source.svg
+
+Note:
+The output of lxml differs greatly from standard SVG indentation.
+Please open and save the file in Inkscape before committing.
+'''
+
+import lxml.etree as etree
+import sys
+
+def fix(tree):
+  # know namespaces
+  ns = {
+    'svg' : 'http://www.w3.org/2000/svg',
+    'inkscape' : 'http://www.inkscape.org/namespaces/inkscape'
+  }
+  
+  # find document global style definition
+  # mangle it and interpret as python dictionary
+  style_element = tree.find('./svg:style',namespaces=ns)
+  style_definitions = style_element.text
+  pythonic_style_definitions = '{'+style_definitions.\
+  replace('\t.','"').replace('{','":"').replace('}','",').\
+  replace('/*','#')+'}'
+  styles = eval(pythonic_style_definitions)
+
+  # go through all SVG elements
+  for elem in tree.iter():
+    if (elem.tag == etree.QName(ns['svg'], 'g')):
+      # compare inkscape label with group element ID
+      l = elem.get(etree.QName(ns['inkscape'], 'label'))
+      if l:
+        i = elem.get('id')
+        if (i != l):
+          print("Overwriting ID %s with Label %s..."%(i, l))
+          elem.set('id', l)
+    
+    # remove all offending style attributes
+    s = elem.get('style')
+    c = elem.get('class')
+    if (c and s):
+      s = s.lower()
+      c = c.split(' ')[0] # regard main style only
+      cs = ''
+      if c in styles:
+        cs = styles[c].strip('; ').lower()
+      if (c not in styles):
+        print("Object id %s references unknown style class %s."%(i,c))
+      else:
+        if (cs != s.strip('; ')):
+          print("Style %s removed from object id %s differed from class %s style %s."%(s,i,c,cs))
+        del elem.attrib["style"]
+
+if __name__ == "__main__":
+  input_file = sys.argv[1]
+  tree = etree.parse(input_file)
+  fix(tree)
+  # store SVG into file (input file is overwritten)
+  svg = etree.tostring(tree, pretty_print=True)
+  with open(input_file, 'wb') as f:
+    f.write('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'.encode("utf-8"))
+    f.write(svg)
diff --git a/artTools/vector_layer_split.py b/artTools/vector_layer_split.py
index de9751d9dbc292a75d569ebbbe516149ab84c948..99bacecc86223048fa97ebbec3f46b4d0970acfa 100644
--- a/artTools/vector_layer_split.py
+++ b/artTools/vector_layer_split.py
@@ -15,7 +15,7 @@ import sys
 import os
 import copy
 import re
-import inkscape_svg_fixup
+import normalize_svg
 
 input_file = sys.argv[1]
 output_format = sys.argv[2]
@@ -30,7 +30,7 @@ ns = {
 }
 
 tree = etree.parse(input_file)
-inkscape_svg_fixup.fix(tree)
+normalize_svg.fix(tree)
 
 # prepare output template
 template = copy.deepcopy(tree)
diff --git a/artTools/vector_revamp_layer_split.py b/artTools/vector_revamp_layer_split.py
index d495f0bad3923c7939a900c8e1b3b22c6e943da6..600a7d358cfb7d05e7da101ee98d3415afb173b7 100644
--- a/artTools/vector_revamp_layer_split.py
+++ b/artTools/vector_revamp_layer_split.py
@@ -17,7 +17,7 @@ import sys
 import os
 import copy
 import re
-import inkscape_svg_fixup
+import normalize_svg
 
 input_file = sys.argv[1]
 output_format = sys.argv[2]
@@ -35,7 +35,7 @@ ns = {
 p = XMLParser(huge_tree=True)
 tree = parse(input_file, parser=p)
 #tree = etree.parse(input_file)
-inkscape_svg_fixup.fix(tree)
+normalize_svg.fix(tree)
 
 # prepare output template
 template = copy.deepcopy(tree)
diff --git a/artTools/vector_source_ndmain.svg b/artTools/vector_source_ndmain.svg
index ea01eeec94719ae7613f0ddb8e9e6b1e532072b4..e46e8f92c57a4152138db17e127a24dbd75b52f3 100644
--- a/artTools/vector_source_ndmain.svg
+++ b/artTools/vector_source_ndmain.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="1000" width="560" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="vector_source_ndmain.svg" id="svg4356" xml:space="preserve" viewBox="0 0 560 1000" y="0px" x="0px" version="1.1">
+<svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="1000" width="560" inkscape:version="0.91 r13725" sodipodi:docname="vector_source_ndmain.svg" id="svg4356" xml:space="preserve" viewBox="0 0 560 1000" y="0px" x="0px" version="1.1">
   <metadata id="metadata4362">
     <rdf:RDF>
       <cc:Work rdf:about="">
@@ -60,7 +60,7 @@
       <feGaussianBlur stdDeviation="1.5 1.5" result="blur" id="feGaussianBlur4091-3-43"/>
     </filter>
   </defs>
-  <sodipodi:namedview inkscape:snap-others="false" inkscape:snap-bbox="true" inkscape:snap-intersection-paths="false" inkscape:snap-nodes="true" inkscape:snap-global="false" inkscape:snap-object-midpoints="true" inkscape:snap-smooth-nodes="false" inkscape:object-paths="true" inkscape:object-nodes="true" inkscape:current-layer="Torso_Outfit_Apron_Unnatural" inkscape:window-maximized="1" inkscape:window-y="-8" inkscape:window-x="-8" inkscape:cy="738.29606" inkscape:cx="-160.03928" inkscape:zoom="0.99999996" showgrid="false" id="namedview4358" inkscape:window-height="1057" inkscape:window-width="1920" inkscape:pageshadow="2" inkscape:pageopacity="0" guidetolerance="10" gridtolerance="10" objecttolerance="10" borderopacity="1" bordercolor="#666666" pagecolor="#ffffff" showguides="true">
+  <sodipodi:namedview inkscape:snap-others="false" inkscape:snap-bbox="true" inkscape:snap-intersection-paths="false" inkscape:snap-nodes="true" inkscape:snap-global="false" inkscape:snap-object-midpoints="true" inkscape:snap-smooth-nodes="false" inkscape:object-paths="true" inkscape:object-nodes="true" inkscape:current-layer="Head_Outfit_Soviet" inkscape:window-maximized="1" inkscape:window-y="0" inkscape:window-x="0" inkscape:cy="736.29606" inkscape:cx="214.12498" inkscape:zoom="0.99999996" showgrid="false" id="namedview4358" inkscape:window-height="952" inkscape:window-width="1280" inkscape:pageshadow="2" inkscape:pageopacity="0" guidetolerance="10" gridtolerance="10" objecttolerance="10" borderopacity="1" bordercolor="#666666" pagecolor="#ffffff" showguides="true">
     <inkscape:grid type="xygrid" id="grid897"/>
   </sodipodi:namedview>
   <style type="text/css" id="style">
@@ -79,6 +79,7 @@
 	.shoe_shadow{fill:#15406D;}
 	.smart_piercing{fill:#4DB748;}
 	.steel_piercing{fill:#787878;}
+	.outfit_base{fill:#555555;stroke-width:1;}
 	.steel_chastity{fill:#BABABA;}
 	.gag{fill:#BF2126;}
 	.shadow{fill:#010101;}
@@ -3760,17 +3761,17 @@
       <g inkscape:groupmode="layer" id="Torso_Outfit_Latex_Unnatural" inkscape:label="Torso_Outfit_Latex_Unnatural" style="display:none">
         <path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -11.21229,-19.95541 -14.59961,-23.625 -0.9,-1 -3.9,-4.1 -6,-9 0,0 -1.90078,-4.4 -2.30078,-9 -0.4,-4.8 1.1,-10.49883 13.5,-27.29883 9,-12.2 10.8,-12.60078 14.5,-19.80078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="Body_Shadow_2_-7" inkscape:connector-curvature="0"/>
         <path inkscape:connector-curvature="0" d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="Body_Shadow_5_" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/>
-        <path inkscape:connector-curvature="0" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -24.82097,-35.35808 -25.12244,-41.46809 -0.80392,-16.02631 17.68622,-31.35152 30.04646,-54.18899 10.02476,-21.61274 19.50869,-62.3114 11.11392,-86.01652 -11.05067,-22.38837 -22.40001,-21.34428 -22.56975,-21.25972 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="Body_Normal_6_" sodipodi:nodetypes="cscccccccccccccc" style="fill:#515351;fill-opacity:1;stroke-width:1.00326991"/>
+        <path inkscape:connector-curvature="0" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -24.82097,-35.35808 -25.12244,-41.46809 -0.80392,-16.02631 17.68622,-31.35152 30.04646,-54.18899 10.02476,-21.61274 19.50869,-62.3114 11.11392,-86.01652 -11.05067,-22.38837 -22.40001,-21.34428 -22.56975,-21.25972 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="Body_Normal_6_" sodipodi:nodetypes="cscccccccccccccc" class="outfit_base"/>
       </g>
       <g style="display:none" inkscape:label="Torso_Outfit_Latex_Hourglass" id="Torso_Outfit_Latex_Hourglass" inkscape:groupmode="layer">
         <path inkscape:connector-curvature="0" id="path1716" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -9.02479,-21.26791 -12.41211,-24.9375 -0.65,-1.75 -0.65,-1.5375 -2.75,-6.4375 0,0 -1.46328,-4.775 -1.86328,-9.375 0.1,-3.05 -2.9,-8.12383 9.5,-24.92383 9,-12.2 8.925,-15.85078 12.625,-23.05078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" style="fill:#010101;fill-opacity:1" sodipodi:nodetypes="scccccccccccccccs"/>
         <path sodipodi:nodetypes="ccccccc" id="path1718" d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" inkscape:connector-curvature="0" style="fill:#010101;fill-opacity:1"/>
-        <path sodipodi:nodetypes="cscccccccccccccc" id="path1720" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -18.79155,-35.35808 -19.09302,-41.46809 -0.49582,-20.90695 15.08536,-25.80633 24.01704,-54.18899 10.02476,-21.61274 19.69619,-62.4364 11.30142,-86.14152 -11.05067,-22.38837 -22.58751,-21.21928 -22.75725,-21.13472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" inkscape:connector-curvature="0" style="fill:#515351;fill-opacity:1;stroke-width:1.00327051"/>
+        <path sodipodi:nodetypes="cscccccccccccccc" id="path1720" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -18.79155,-35.35808 -19.09302,-41.46809 -0.49582,-20.90695 15.08536,-25.80633 24.01704,-54.18899 10.02476,-21.61274 19.69619,-62.4364 11.30142,-86.14152 -11.05067,-22.38837 -22.58751,-21.21928 -22.75725,-21.13472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" inkscape:connector-curvature="0" class="outfit_base"/>
       </g>
       <g inkscape:groupmode="layer" id="Torso_Outfit_Latex_Normal" inkscape:label="Torso_Outfit_Latex_Normal" style="display:inline">
         <path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 l 120.80542,-0.48614 c -0.46897,-0.9031 -5.12432,-17.87272 -4.8769,-18.36589 -0.1045,-0.38128 -1.02737,-8.03328 -0.91767,-8.33709 0,0 0.0366,-7.44571 -0.36341,-12.04571 -0.68531,-4.23176 -0.47322,-20.139 2.05178,-25.814 1.625,-2.7 5.55,-16.47578 9.25,-23.67578 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="path1724" inkscape:connector-curvature="0" sodipodi:nodetypes="scccccccccccccccs"/>
         <path inkscape:connector-curvature="0" d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="path1726" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/>
-        <path inkscape:connector-curvature="0" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -14.63717,58.78944 -8.50732,80.42501 2.21078,23.03782 -0.62885,27.97816 -1.40687,49.88189 -1.10536,10.11661 -4.75732,26.04993 -12.49501,46.6838 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.38256,-23.65724 -6.18816,-34.52319 -7.4111,-41.09248 -0.77701,-15.96885 2.10786,-27.17117 12.33512,-54.5646 10.02476,-21.61274 19.57119,-62.6864 11.17642,-86.39152 -11.05067,-22.38837 -22.46251,-20.96928 -22.63225,-20.88472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="path1728" sodipodi:nodetypes="cscccccccccccccc" style="fill:#515351;fill-opacity:1;stroke-width:1.00326991"/>
+        <path inkscape:connector-curvature="0" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -14.63717,58.78944 -8.50732,80.42501 2.21078,23.03782 -0.62885,27.97816 -1.40687,49.88189 -1.10536,10.11661 -4.75732,26.04993 -12.49501,46.6838 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.38256,-23.65724 -6.18816,-34.52319 -7.4111,-41.09248 -0.77701,-15.96885 2.10786,-27.17117 12.33512,-54.5646 10.02476,-21.61274 19.57119,-62.6864 11.17642,-86.39152 -11.05067,-22.38837 -22.46251,-20.96928 -22.63225,-20.88472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="path1728" sodipodi:nodetypes="cscccccccccccccc" class="outfit_base"/>
       </g>
     </g>
     <g inkscape:groupmode="layer" id="Torso_Outfit_Kimono_" inkscape:label="Torso_Outfit_Kimono_" style="display:none">
@@ -5482,88 +5483,4 @@
   <g inkscape:groupmode="layer" id="Hair_Fore_" inkscape:label="Hair_Fore_" style="display:inline"/>
   <g inkscape:groupmode="layer" id="Notes_" inkscape:label="Notes_" style="display:none;opacity:1" sodipodi:insensitive="true"><text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="-190.58824" y="1037.6471" id="text4352"><tspan sodipodi:role="line" id="tspan4354" x="-190.58824" y="1037.6471" style="font-size:17.5px;line-height:1.25">prndev's notes:</tspan><tspan sodipodi:role="line" x="-190.58824" y="1059.5221" id="tspan4356" style="font-size:17.5px;line-height:1.25">I work with Inkscape. I do not know how Illustrator behaves.</tspan><tspan sodipodi:role="line" x="-190.58824" y="1081.3971" id="tspan4358" style="font-size:17.5px;line-height:1.25">All Inkscape Layers are SVG groups.</tspan><tspan sodipodi:role="line" x="-190.58824" y="1103.2721" id="tspan4360" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be unique.</tspan><tspan sodipodi:role="line" x="-190.58824" y="1125.1471" id="tspan4362" style="font-size:17.5px;line-height:1.25">Inkscape Layer names should be the same as the corresponding SVG group ID (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-190.58824" y="1147.0221" id="tspan4364" style="font-size:17.5px;line-height:1.25">All changable style (most notably fill) should be defined in a class.</tspan><tspan sodipodi:role="line" x="-190.58824" y="1168.8971" id="tspan4366" style="font-size:17.5px;line-height:1.25">All conflicting attribute style should be removed (use provided fixup tool to be sure).</tspan><tspan sodipodi:role="line" x="-190.58824" y="1190.7721" id="tspan4368" style="font-size:17.5px;line-height:1.25">All groups with IDs NOT ending in underscore "_", starting with "g" or "XMLID" are exported into separate files.</tspan><tspan sodipodi:role="line" x="-190.58824" y="1212.6471" id="tspan4060" style="font-size:17.5px;line-height:1.25">A single quote ' breaks embedding. Use them to include Twine variables (see README for details).</tspan><tspan sodipodi:role="line" x="-190.58824" y="1234.5221" id="tspan4370" style="font-size:17.5px;line-height:1.25">Original art credit goes to Nov-X.</tspan></text>
 </g>
-  <style id="style-8" type="text/css">
-	/* please maintain these definitions manually  */
-	.white{fill:#FFFFFF;}
-	.skin{fill:#F6E0E8;}
-	.head{}
-	.torso{}
-	.boob{}
-	.penis{}
-	.scrotum{}
-	.areola{fill:#D76B93;}
-	.labia{fill:#D76B93;}
-	.hair{fill:#3F403F;}
-	.shoe{fill:#3E65B0;}
-	.shoe_shadow{fill:#15406D;}
-	.smart_piercing{fill:#4DB748;}
-	.steel_piercing{fill:#787878;}
-	.steel_chastity{fill:#BABABA;}
-	.gag{fill:#BF2126;}
-	.shadow{fill:#010101;}
-	.glasses{fill:#010101;}
-</style>
-  <style id="style-9" type="text/css">
-	/* please maintain these definitions manually  */
-	.white{fill:#FFFFFF;}
-	.skin{fill:#F6E0E8;}
-	.head{}
-	.torso{}
-	.boob{}
-	.penis{}
-	.scrotum{}
-	.areola{fill:#D76B93;}
-	.labia{fill:#D76B93;}
-	.hair{fill:#3F403F;}
-	.shoe{fill:#3E65B0;}
-	.shoe_shadow{fill:#15406D;}
-	.smart_piercing{fill:#4DB748;}
-	.steel_piercing{fill:#787878;}
-	.steel_chastity{fill:#BABABA;}
-	.gag{fill:#BF2126;}
-	.shadow{fill:#010101;}
-	.glasses{fill:#010101;}
-</style>
-  <style id="style-6" type="text/css">
-	/* please maintain these definitions manually  */
-	.white{fill:#FFFFFF;}
-	.skin{fill:#F6E0E8;}
-	.head{}
-	.torso{}
-	.boob{}
-	.penis{}
-	.scrotum{}
-	.areola{fill:#D76B93;}
-	.labia{fill:#D76B93;}
-	.hair{fill:#3F403F;}
-	.shoe{fill:#3E65B0;}
-	.shoe_shadow{fill:#15406D;}
-	.smart_piercing{fill:#4DB748;}
-	.steel_piercing{fill:#787878;}
-	.steel_chastity{fill:#BABABA;}
-	.gag{fill:#BF2126;}
-	.shadow{fill:#010101;}
-	.glasses{fill:#010101;}
-</style>
-  <style id="style-5" type="text/css">
-	/* please maintain these definitions manually  */
-	.white{fill:#FFFFFF;}
-	.skin{fill:#F6E0E8;}
-	.head{}
-	.torso{}
-	.boob{}
-	.penis{}
-	.scrotum{}
-	.areola{fill:#D76B93;}
-	.labia{fill:#D76B93;}
-	.hair{fill:#3F403F;}
-	.shoe{fill:#3E65B0;}
-	.shoe_shadow{fill:#15406D;}
-	.smart_piercing{fill:#4DB748;}
-	.steel_piercing{fill:#787878;}
-	.steel_chastity{fill:#BABABA;}
-	.gag{fill:#BF2126;}
-	.shadow{fill:#010101;}
-	.glasses{fill:#010101;}
-</style>
 </svg>
diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index e157663a37f599761ca1061133eace728baed236..df25162c5f8b295428f402b7baaf375e16ef3497 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,8 +2,18 @@
 
 0.10.7.1-0.1.x
 
+4/21/2018
+
+	66
+	-various fixes, cleanups and optimizations
+
 4/20/2018
 
+	65
+	-finished REFI cleaning
+	-red army uniform and schutzstaffel uniform from Deepmurk
+	-more vectors from Deepmurk too
+
 	64
 	-added options to allow/deny DJ and Madam fixing flaws
 	-added anon's pirate themed FCTV channel
diff --git a/devNotes/twine JS b/devNotes/twine JS
index 44ac3945941d2f317c4396ba0eb21aaa4e97f5bd..a29f53f9331089b65bfd966c1b78e72ac25f4a49 100644
--- a/devNotes/twine JS	
+++ b/devNotes/twine JS	
@@ -4516,7 +4516,7 @@ if(eventSlave.fetish != "mindbroken") {
 
 		if(eventSlave.devotion > 20) {
 			if(eventSlave.butt > 5) {
-				if(!["no clothing", "body oil", "a toga", "a kimono", "shibari ropes", "a slutty maid outfit", "a string bikini", "a scalemail bikini", "a chattel habit", "a slave gown", "a halter top dress", "a ball gown", "a mini dress", "harem gauze", "a monokini"].includes(eventSlave.clothes)) {
+				if(!["no clothing", "body oil", "a toga", "a kimono", "shibari ropes", "a slutty maid outfit", "a string bikini", "a scalemail bikini", "a chattel habit", "a slave gown", "a halter top dress", "a ball gown", "a mini dress", "harem gauze", "a schutzstaffel uniform", "a red army uniform", "a monokini"].includes(eventSlave.clothes)) {
 					State.variables.RESSevent.push("ass fitting");
 				}
 			}
@@ -7305,7 +7305,7 @@ window.todaysOutfit = function(slave) {
 				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', 'a schutzstaffel uniform', 'a red army 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'])};
@@ -7392,6 +7392,8 @@ window.todaysOutfit = function(slave) {
 			}
 		} else if(slave.assignment == "be your Head Girl") {
 			wardrobeAssignment.push({text: "and wears a military uniform to give her that extra touch of authority.", clothes: "a military uniform"});
+			wardrobeAssignment.push({text: "and wears a schutzstaffel uniform to give her that extra touch of authority.", clothes: "a schutzstaffel uniform"});
+			wardrobeAssignment.push({text: "and wears a red army uniform to give her that extra touch of authority.", clothes: "a red army uniform"});			
 			wardrobeAssignment.push({text: "and wears a handsome suit to give her that extra touch of authority.", clothes: "nice business attire"});
 			if(canPenetrate(slave)){
 				wardrobeAssignment.push({text: "and wears a slutty suit to make it perfectly clear that her dick is her main tool in her job.", clothes: "slutty business attire"});
@@ -7449,6 +7451,8 @@ window.todaysOutfit = function(slave) {
 		} else if(slave.assignment == "guard you") {
 			wardrobeAssignment.push({text: "and wears a bodysuit to show off her curves without hindering her deadliness.", clothes: "a comfortable bodysuit"});
 			wardrobeAssignment.push({text: "and wears a military uniform to look the part of the honor guard.", clothes: "a military uniform"});
+			wardrobeAssignment.push({text: "and wears a schutzstaffel uniform to look the part of the honor guard.", clothes: "a schutzstaffel uniform"});
+			wardrobeAssignment.push({text: "and wears a red army uniform to look the part of the honor guard.", clothes: "a red army uniform"});
 			wardrobeAssignment.push({text: "and wears a nice suit to make it clear you mean business.", clothes: "nice business attire"});
 			wardrobeAssignment.push({text: "and wears a scalemail bikini to make herself look fierce.", clothes: "a scalemail bikini"});
 			if(isItemAccessible("a kimono")) {
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 96ba186cf7e8f7f7696b97a1c50b7792b4057b9f..3175454880ca9080e20be3e4dd54fa0d6e684a05 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1998,6 +1998,11 @@ may accept strings, use at own risk
 "stretch pants and a crop-top"
 "spats and a tank top"
 "a scalemail bikini"
+"a monokini"
+"an apron"
+"a cybersuit"
+"a red army uniform"
+"a schutzstaffel uniform"
 
 collar:
 
@@ -2028,18 +2033,10 @@ shoes:
 may accept strings, use at own risk
 "none"
 "heels"
-"heels with short stockings"
-"heels with long stockings"
 "pumps"
-"pumps with short stockings"
-"pumps with long stockings"
-"short stockings"
-"long stockings"
 "extreme heels"
 "boots"
 "flats"
-"flats with short stockings"
-"flats with long stockings"
 
 vaginalAccessory:
 
@@ -2063,6 +2060,12 @@ may accept strings, use at own risk
 "anal chastity"
 "combined chastity"
 
+legAccessory:
+
+"none"
+"short stockings"
+"long stockings"
+
 buttplug:
 
 may accept strings, use at own risk
@@ -2773,7 +2776,7 @@ How to set up your own hero slave.
 
 -The default slave template used:
 
-<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: "none", areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
+<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", legAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
 
 Making your slave; add their name to the following, then go down the documentation adding in your changes.
 -each variable must be seperated from the last by a comma followed by a space
diff --git a/src/art/vector/Arm.tw b/src/art/vector/Arm.tw
index d8aa9ae549d93262d5b73d495794a907677dd106..dcd6f61a98797e1c64e4451262950b543f9e51c0 100644
--- a/src/art/vector/Arm.tw
+++ b/src/art/vector/Arm.tw
@@ -48,17 +48,17 @@
 /* TODO: simplify selection (select prefix, infix and suffix and combine instead of using switch statemens) */
 
 <<if _artSlave.clothes == "a slave gown">>
-	/* only some arm positions have art (feel free to add more) */
-	<<switch _leftArmType>>
-	<<case "High">>
-		<<include Art_Vector_Arm_Outfit_Slavegown_Left_High>>
-	<<case "Mid">>
-	<<include Art_Vector_Arm_Outfit_Slavegown_Left_Mid>>
-	<<case "Low">>
-		<<include Art_Vector_Arm_Outfit_Slavegown_Left_Low>>
-	<<default>>
-		/* no art for this arm position */
-	<</switch>>
+		/* only some arm positions have art (feel free to add more) */
+		<<switch _leftArmType>>
+		<<case "High">>
+			<<include Art_Vector_Arm_Outfit_Slavegown_Left_High>>
+		<<case "Mid">>
+		<<include Art_Vector_Arm_Outfit_Slavegown_Left_Mid>>
+		<<case "Low">>
+			<<include Art_Vector_Arm_Outfit_Slavegown_Left_Low>>
+		<<default>>
+			/* no art for this arm position */
+		<</switch>>
 <</if>>
 
 <<if _artSlave.clothes == "a hijab and abaya">>
@@ -419,52 +419,4 @@
 	<<elseif _rightArmType == "Low">>
 		<<include Art_Vector_Arm_Outfit_Suitslutty_Right_Low>>
 	<</if>>
-<</if>>
-
-<<if _artSlave.clothes == "a schutzstaffel uniform">>
-	<<if _leftArmType == "High">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Left_High>>
-	<<elseif _leftArmType == "Mid">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Left_Mid>>
-	<<elseif _leftArmType == "Low">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Left_Low>>
-	<<elseif _leftArmType == "Rebel">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Left_Rebel>>
-	<<elseif _rightArmType == "Thumb Down">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Left_Thumb>>
-	<</if>>
-<</if>>
-
-<<if _artSlave.clothes == "a schutzstaffel uniform">>
-	<<if _rightArmType == "High">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Right_High>>
-	<<elseif _rightArmType == "Mid">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Right_Mid>>
-	<<elseif _rightArmType == "Low">>
-		<<include Art_Vector_Arm_Outfit_Schutzstaffel_Right_Low>>
-	<</if>>
-<</if>>
-
-<<if _artSlave.clothes == "a red army uniform">>
-	<<if _leftArmType == "High">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Left_High>>
-	<<elseif _leftArmType == "Mid">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Left_Mid>>
-	<<elseif _leftArmType == "Low">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Left_Low>>
-	<<elseif _leftArmType == "Rebel">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Left_Rebel>>
-	<<elseif _rightArmType == "Thumb Down">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Left_Thumb>>
-	<</if>>
-<</if>>
-
-<<if _artSlave.clothes == "a red army uniform">>
-	<<if _rightArmType == "High">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Right_High>>
-	<<elseif _rightArmType == "Mid">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Right_Mid>>
-	<<elseif _rightArmType == "Low">>
-		<<include Art_Vector_Arm_Outfit_Soviet_Right_Low>>
-	<</if>>
 <</if>>
\ No newline at end of file
diff --git a/src/art/vector/Feet.tw b/src/art/vector/Feet.tw
index e549af441dfc77e3723cc87c3b7e112a725e57a2..1b99d3f41850c18fa11e344c6593b27fbe77e859 100644
--- a/src/art/vector/Feet.tw
+++ b/src/art/vector/Feet.tw
@@ -102,6 +102,7 @@
       <</if>>
 	<</if>>
 <</if>>
+<<<<<<< HEAD
 
 /* shiny clothings */
 <<if $seeVectorArtHighlights == 1>>
@@ -531,4 +532,6 @@
     <<include _art >>
   <</if>>
 <</if>>
-*/
\ No newline at end of file
+*/
+=======
+>>>>>>> pregmod-master
diff --git a/src/art/vector/Head.tw b/src/art/vector/Head.tw
index eeef31c24d80f8371a20d0c47e1de56d5f26459c..599d4b225941ba3360778131c83910bb464b0c1c 100644
--- a/src/art/vector/Head.tw
+++ b/src/art/vector/Head.tw
@@ -12,23 +12,23 @@
 /* ADDONS */
 
 <<if _artSlave.fuckdoll == 0 >> /* fuckdolly cannot be decorated */
-  <<if _artSlave.collar == "dildo gag">>
-    <<include Art_Vector_Dildo_Gag>>
-  <</if>>
-  <<if _artSlave.collar == "ball gag">>
-    <<include Art_Vector_Ball_Gag>>
-  <</if>>
-  <<if _artSlave.collar == "bit gag">>
-    <<include Art_Vector_Bit_Gag>>
-  <</if>>
-  <<if _artSlave.collar == "massive dildo gag">>
-    <<include Art_Vector_Massive_Dildo_Gag>>
-  <</if>>
-  <<if _artSlave.eyewear == "corrective glasses" || _artSlave.eyewear == "glasses" || _artSlave.eyewear == "blurring glasses">>
-    <<include Art_Vector_Glasses>>
-  <</if>>
+<<if _artSlave.collar == "dildo gag">>
+  <<include Art_Vector_Dildo_Gag>>
+<</if>>
+<<if _artSlave.collar == "ball gag">>
+  <<include Art_Vector_Ball_Gag>>
+<</if>>
+<<if _artSlave.collar == "bit gag">>
+  <<include Art_Vector_Bit_Gag>>
+<</if>>
+<<if _artSlave.collar == "massive dildo gag">>
+  <<include Art_Vector_Massive_Dildo_Gag>>
+<</if>>
+<<if _artSlave.eyewear == "corrective glasses" || _artSlave.eyewear == "glasses" || _artSlave.eyewear == "blurring glasses">>
+  <<include Art_Vector_Glasses>>
+<</if>>
 
-  /* head clothing */
+/* head clothing */
   <<if _artSlave.clothes == "a hijab and abaya">>
     <<include Art_Vector_Head_Outfit_Abaya>>
   <</if>>
@@ -54,12 +54,16 @@
     <<include Art_Vector_Head_Outfit_Western>>
   <</if>>
   <<if _artSlave.clothes == "a military uniform">>
-	<<include Art_Vector_Head_Outfit_Military>>
+    <<include Art_Vector_Head_Outfit_Military>>
   <</if>>
   <<if _artSlave.clothes == "a cybersuit">>
+<<<<<<< HEAD
 	<<include Art_Vector_Head_Outfit_Cybersuit>>
+=======
+    <<include Art_Vector_Head_Outfit_Cybersuit>>
+>>>>>>> pregmod-master
   <</if>>
-    <<if _artSlave.clothes == "a schutzstaffel uniform">>
+  <<if _artSlave.clothes == "a schutzstaffel uniform">>
 	<<include Art_Vector_Head_Outfit_Schutzstaffel>>
   <</if>>
   <<if _artSlave.clothes == "a red army uniform">>
diff --git a/src/art/vector/layers/Torso_Outfit_Latex_Hourglass.tw b/src/art/vector/layers/Torso_Outfit_Latex_Hourglass.tw
index 6cfae5d29e7fb610e3e0de5fe0b0fc82e6af2be3..963ceacda03f51f4ccfb8f3b59b889164269e283 100644
--- a/src/art/vector/layers/Torso_Outfit_Latex_Hourglass.tw
+++ b/src/art/vector/layers/Torso_Outfit_Latex_Hourglass.tw
@@ -1,3 +1,3 @@
 :: Art_Vector_Torso_Outfit_Latex_Hourglass [nobr]
 
-<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path id="path1716" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -9.02479,-21.26791 -12.41211,-24.9375 -0.65,-1.75 -0.65,-1.5375 -2.75,-6.4375 0,0 -1.46328,-4.775 -1.86328,-9.375 0.1,-3.05 -2.9,-8.12383 9.5,-24.92383 9,-12.2 8.925,-15.85078 12.625,-23.05078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" style="fill:#010101;fill-opacity:1" sodipodi:nodetypes="scccccccccccccccs"/><path sodipodi:nodetypes="ccccccc" id="path1718" d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" style="fill:#010101;fill-opacity:1"/><path sodipodi:nodetypes="cscccccccccccccc" id="path1720" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -18.79155,-35.35808 -19.09302,-41.46809 -0.49582,-20.90695 15.08536,-25.80633 24.01704,-54.18899 10.02476,-21.61274 19.69619,-62.4364 11.30142,-86.14152 -11.05067,-22.38837 -22.58751,-21.21928 -22.75725,-21.13472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" style="fill:#515351;fill-opacity:1;stroke-width:1.00327051"/></svg></html>' >>
\ No newline at end of file
+<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path id="path1716" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -9.02479,-21.26791 -12.41211,-24.9375 -0.65,-1.75 -0.65,-1.5375 -2.75,-6.4375 0,0 -1.46328,-4.775 -1.86328,-9.375 0.1,-3.05 -2.9,-8.12383 9.5,-24.92383 9,-12.2 8.925,-15.85078 12.625,-23.05078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" style="fill:#010101;fill-opacity:1" sodipodi:nodetypes="scccccccccccccccs"/><path sodipodi:nodetypes="ccccccc" id="path1718" d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" style="fill:#010101;fill-opacity:1"/><path sodipodi:nodetypes="cscccccccccccccc" id="path1720" d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -18.79155,-35.35808 -19.09302,-41.46809 -0.49582,-20.90695 15.08536,-25.80633 24.01704,-54.18899 10.02476,-21.61274 19.69619,-62.4364 11.30142,-86.14152 -11.05067,-22.38837 -22.58751,-21.21928 -22.75725,-21.13472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" class="outfit_base"/></svg></html>' >>
\ No newline at end of file
diff --git a/src/art/vector/layers/Torso_Outfit_Latex_Normal.tw b/src/art/vector/layers/Torso_Outfit_Latex_Normal.tw
index c08fbe8a1da7c31b15fc57525bcd19d8e468c309..bbbd2aeff90e99b47801b18e77642f8cbee99871 100644
--- a/src/art/vector/layers/Torso_Outfit_Latex_Normal.tw
+++ b/src/art/vector/layers/Torso_Outfit_Latex_Normal.tw
@@ -1,3 +1,3 @@
 :: Art_Vector_Torso_Outfit_Latex_Normal [nobr]
 
-<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 l 120.80542,-0.48614 c -0.46897,-0.9031 -5.12432,-17.87272 -4.8769,-18.36589 -0.1045,-0.38128 -1.02737,-8.03328 -0.91767,-8.33709 0,0 0.0366,-7.44571 -0.36341,-12.04571 -0.68531,-4.23176 -0.47322,-20.139 2.05178,-25.814 1.625,-2.7 5.55,-16.47578 9.25,-23.67578 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="path1724" sodipodi:nodetypes="scccccccccccccccs"/><path d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="path1726" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/><path d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -14.63717,58.78944 -8.50732,80.42501 2.21078,23.03782 -0.62885,27.97816 -1.40687,49.88189 -1.10536,10.11661 -4.75732,26.04993 -12.49501,46.6838 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.38256,-23.65724 -6.18816,-34.52319 -7.4111,-41.09248 -0.77701,-15.96885 2.10786,-27.17117 12.33512,-54.5646 10.02476,-21.61274 19.57119,-62.6864 11.17642,-86.39152 -11.05067,-22.38837 -22.46251,-20.96928 -22.63225,-20.88472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="path1728" sodipodi:nodetypes="cscccccccccccccc" style="fill:#515351;fill-opacity:1;stroke-width:1.00326991"/></svg></html>' >>
\ No newline at end of file
+<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 l 120.80542,-0.48614 c -0.46897,-0.9031 -5.12432,-17.87272 -4.8769,-18.36589 -0.1045,-0.38128 -1.02737,-8.03328 -0.91767,-8.33709 0,0 0.0366,-7.44571 -0.36341,-12.04571 -0.68531,-4.23176 -0.47322,-20.139 2.05178,-25.814 1.625,-2.7 5.55,-16.47578 9.25,-23.67578 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="path1724" sodipodi:nodetypes="scccccccccccccccs"/><path d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="path1726" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/><path d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -14.63717,58.78944 -8.50732,80.42501 2.21078,23.03782 -0.62885,27.97816 -1.40687,49.88189 -1.10536,10.11661 -4.75732,26.04993 -12.49501,46.6838 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.38256,-23.65724 -6.18816,-34.52319 -7.4111,-41.09248 -0.77701,-15.96885 2.10786,-27.17117 12.33512,-54.5646 10.02476,-21.61274 19.57119,-62.6864 11.17642,-86.39152 -11.05067,-22.38837 -22.46251,-20.96928 -22.63225,-20.88472 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="path1728" sodipodi:nodetypes="cscccccccccccccc" class="outfit_base"/></svg></html>' >>
\ No newline at end of file
diff --git a/src/art/vector/layers/Torso_Outfit_Latex_Unnatural.tw b/src/art/vector/layers/Torso_Outfit_Latex_Unnatural.tw
index 16ede9e65cc8aa66e1720f6c1357ab4e78f5e699..209375d3ce134b293dbe9ffc625fe3b3aadc7d6a 100644
--- a/src/art/vector/layers/Torso_Outfit_Latex_Unnatural.tw
+++ b/src/art/vector/layers/Torso_Outfit_Latex_Unnatural.tw
@@ -1,3 +1,3 @@
 :: Art_Vector_Torso_Outfit_Latex_Unnatural [nobr]
 
-<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -11.21229,-19.95541 -14.59961,-23.625 -0.9,-1 -3.9,-4.1 -6,-9 0,0 -1.90078,-4.4 -2.30078,-9 -0.4,-4.8 1.1,-10.49883 13.5,-27.29883 9,-12.2 10.8,-12.60078 14.5,-19.80078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="Body_Shadow_2_-7"/><path d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="Body_Shadow_5_" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/><path d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -24.82097,-35.35808 -25.12244,-41.46809 -0.80392,-16.02631 17.68622,-31.35152 30.04646,-54.18899 10.02476,-21.61274 19.50869,-62.3114 11.11392,-86.01652 -11.05067,-22.38837 -22.40001,-21.34428 -22.56975,-21.25972 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="Body_Normal_6_" sodipodi:nodetypes="cscccccccccccccc" style="fill:#515351;fill-opacity:1;stroke-width:1.00326991"/></svg></html>' >>
\ No newline at end of file
+<<print '<html><svg viewBox="0 0 560 1000" class="'+_art_display_class+'"><path style="fill:#010101;fill-opacity:1" d="m 283.26172,215.74219 c -8.43786,-0.0205 -16.09063,1.75625 -22.0625,5.75781 -4.3,2.9 -6.8,6.29922 -10,10.69922 -13.9,19 -12.99883,41.20117 -12.29883,57.70117 0.3,6.4 1.09922,15.89883 3.69922,27.29883 3.8,16.5 1.00078,28.2 0.80078,32.5 -0.2,4.5 -0.70078,12.2 -2.30078,21 -1.73947,9.06355 -5.08596,22.49315 -12.84961,38.125 h 120.84961 c -6.38699,-13.18859 -11.21229,-19.95541 -14.59961,-23.625 -0.9,-1 -3.9,-4.1 -6,-9 0,0 -1.90078,-4.4 -2.30078,-9 -0.4,-4.8 1.1,-10.49883 13.5,-27.29883 9,-12.2 10.8,-12.60078 14.5,-19.80078 3.7,-7.1 5.40078,-13.09883 6.80078,-18.29883 2.9,-11 4.7,-22.8 4,-28.5 -3.42656,-29.72344 -48.63593,-57.4782 -81.73828,-57.55859 z" id="Body_Shadow_2_-7"/><path d="m 225.8,413.2 c 17.75041,4.41653 19.73516,25.4737 38.4375,47.50625 1.2,0.9 -4.025,-2.26875 4.8125,-10.44375 15.5,6.7625 12.3875,12.33125 12.5875,11.93125 C 289.0375,446.29375 296,443.1 308.2,433.2 c 12.4,-10 20,-18 41.9,-21.9 z" id="Body_Shadow_5_" sodipodi:nodetypes="ccccccc" style="fill:#010101;fill-opacity:1"/><path d="m 272.83017,207.88134 c 0,0 -14.06857,4.3071 -24.82097,28.34657 -10.75239,24.03948 -10.55141,59.49771 -4.42151,81.13327 2.21073,23.03782 0.70343,29.74887 -1.40686,49.88194 -1.10539,10.11661 -8.84314,25.34162 -16.58083,45.97549 16.64748,4.96237 26.85091,37.32111 38.6383,47.77849 0.42469,-0.9356 -2.95753,-2.73085 4.9821,-9.69564 13.16914,5.79662 12.11622,10.33502 12.27075,11.46729 9.44602,-18.22996 28.8217,-40.83583 69.01761,-51.55344 -9.74749,-23.83913 -24.82097,-35.35808 -25.12244,-41.46809 -0.80392,-16.02631 17.68622,-31.35152 30.04646,-54.18899 10.02476,-21.61274 19.50869,-62.3114 11.11392,-86.01652 -11.05067,-22.38837 -22.40001,-21.34428 -22.56975,-21.25972 -31.13933,-3.64845 -32.22546,-14.61028 -30.85038,-50.08224 l -22.4092,1.00165 c 8.54161,43.57154 -2.71324,39.96563 -17.8872,48.67994" id="Body_Normal_6_" sodipodi:nodetypes="cscccccccccccccc" class="outfit_base"/></svg></html>' >>
\ No newline at end of file
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index 6231b826a514406052f3c6cbc335b9f8ea04d42d..d9144fb9c5dc424fac67d488ad17ef8597bff4aa 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -5,7 +5,6 @@ Do not uncomment anything!
 
 $showBestiality
 $ageMode
-$args.bodySwap
 $servantMilkersJobs
 $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers
 $whiteAmericanSlaveNames, $africanAmericanSlaveNames, $asianAmericanSlaveNames, $latinaSlaveNames, $russianSlaveNames, $egyptianSlaveNames, $brazilianSlaveNames, $chineseSlaveNames, $koreanSlaveNames, $indianSlaveNames, $indonesianSlaveNames, $bangladeshiSlaveNames, $japaneseSlaveNames, $nigerianSlaveNames, $pakistaniSlaveNames, $mexicanSlaveNames, $filipinaSlaveNames, $ethiopianSlaveNames, $germanSlaveNames, $saudiSlaveNames, $turkishSlaveNames, $colombianSlaveNames, $argentinianSlaveNames, $vietnameseSlaveNames, $iranianSlaveNames, $congoleseSlaveNames, $frenchSlaveNames, $thaiSlaveNames, $britishSlaveNames, $italianSlaveNames, $spanishSlaveNames, $kenyanSlaveNames, $ukrainianSlaveNames, $canadianSlaveNames, $peruvianSlaveNames, $venezuelanSlaveNames, $irishSlaveNames, $icelandicSlaveNames, $finnishSlaveNames, $newZealanderSlaveNames, $polishSlaveNames, $greekSlaveNames, $israeliSlaveNames, $armenianSlaveNames, $moroccanSlaveNames, $romanianSlaveNames, $swedishSlaveNames, $lithuanianSlaveNames, $bolivianSlaveNames, $haitianSlaveNames, $cubanSlaveNames, $whiteSouthAfricanSlaveNames, $blackSouthAfricanSlaveNames, $chileanSlaveNames, $belgianSlaveNames, $danishSlaveNames, $norwegianSlaveNames, $hungarianSlaveNames, $estonianSlaveNames, $slovakSlaveNames, $kazakhSlaveNames, $zimbabweanSlaveNames, $ugandanSlaveNames, $tanzanianSlaveNames, $dutchSlaveNames, $austrianSlaveNames, $swissSlaveNames, $puertoRicanSlaveNames, $czechSlaveNames, $portugueseSlaveNames, $jamaicanSlaveNames, $malaysianSlaveNames, $guatemalanSlaveNames, $ghananSlaveNames, $serbianSlaveNames, $australianSlaveNames, $burmeseSlaveNames, $algerianSlaveNames, $sudaneseSlaveNames, $iraqiSlaveNames, $uzbekSlaveNames, $nepaleseSlaveNames, $afghanSlaveNames, $yemeniSlaveNames, $lebaneseSlaveNames, $tunisianSlaveNames, $emiratiSlaveNames, $libyanSlaveNames, $jordanianSlaveNames, $omaniSlaveNames, $malianSlaveNames, $sammarineseSlaveNames, $marshalleseSlaveNames, $syrianSlaveNames, $bermudianSlaveNames, $uruguayanSlaveNames, $monegasqueSlaveNames, $montenegrinSlaveNames, $cambodianSlaveNames, $cameroonianSlaveNames, $gaboneseSlaveNames, $djiboutianSlaveNames, $greenlandicSlaveNames, $tuvaluanSlaveNames, $zambianSlaveNames, $albanianSlaveNames, $bruneianSlaveNames, $singaporeanSlaveNames
@@ -14,16 +13,14 @@ $ArcologyNamesSupremacistWhite, $ArcologyNamesSupremacistAsian, $ArcologyNamesSu
 $ArcologyNamesSubjugationistWhite, $ArcologyNamesSubjugationistAsian, $ArcologyNamesSubjugationistLatina, $ArcologyNamesSubjugationistMiddleEastern, $ArcologyNamesSubjugationistBlack, $ArcologyNamesSubjugationistIndoAryan, $ArcologyNamesSubjugationistPacificIslander, $ArcologyNamesSubjugationistMalay, $ArcologyNamesSubjugationistAmerindian, $ArcologyNamesSubjugationistSouthernEuropean, $ArcologyNamesSubjugationistSemitic, $ArcologyNamesSubjugationistMixedRace
 $ArcologyNamesGenderRadicalist, $ArcologyNamesGenderFundamentalist, $ArcologyNamesPaternalist, $ArcologyNamesDegradationist, $ArcologyNamesBodyPurist, $ArcologyNamesTransformationFetishist, $ArcologyNamesYouthPreferentialist, $ArcologyNamesMaturityPreferentialist, $ArcologyNamesSlimnessEnthusiast, $ArcologyNamesAssetExpansionist, $ArcologyNamesPastoralist, $ArcologyNamesPhysicalIdealist, $ArcologyNamesChattelReligionist, $ArcologyNamesRomanRevivalist, $ArcologyNamesAztecRevivalist, $ArcologyNamesEgyptianRevivalist, $ArcologyNamesEdoRevivalist, $ArcologyNamesArabianRevivalist, $ArcologyNamesChineseRevivalist
 $personalAttentionChanged
-$piercingLocation
-$startingSlaveRelative, $Helots
 $veryYoungCareers, $recruiterCareers
 $belarusianSlaveNames, $dominicanSlaveNames, $scottishSlaveNames
 $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticDecadence
 $hare1, $hare2, $hare3, $hareSpeed, $hareSpeed1, $hareSpeed2, $hareSpeed3, $origin1, $origin2, $origin3, $LurcherSpeed
 $$i
-$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.HasBeenAssignedToFacilitySupport, $activeSlave.nipplesAccessory
+$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.nipplesAccessory
 $drugs, $harshCollars, $shoes, $bellyAccessories, $vaginalAccessories, $dickAccessories, $buttplugs
 $PC.origRace, $PC.origSkin
-$FacSupIDs, $SFIDs, $SupportFacilityDecoration, $SupportFacilityEfficiency
+$SFIDs, $SupportFacilityDecoration, $SupportFacilityEfficiency
 $isReady, $fatherID, 
 */
diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw
index b34fe4a80e419710e614376b477d5fc54ec8e5ec..4b6c46834b273382cad0cd156f74a5b760e30767 100644
--- a/src/init/setupVars.tw
+++ b/src/init/setupVars.tw
@@ -307,7 +307,7 @@
 
 <<set setup.recruiterCareers = ["a club recruiter", "a college scout", "a con artist", "a cult leader", "a girl scout", "a hunter", "a lobbyist", "a military recruiter", "a missionary", "a political activist", "a princess", "a talent scout", "retired"]>> /* pregmod */
 
-/* <<set setup.servantCareers = ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"]>> */
+/<<set setup.servantCareers = ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"]>>
 
 /* <<set setup.otherCareers = ["a producer", "being homeschooled by her parents", "from a middle class family", "from an upper class family"]>> */
 
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index d32802dc7fce45330a32fcf8e6efccc7f8835397..ab8357012d2f34c65793dbe3a431ceafd6b05849 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -29,7 +29,6 @@ You should have received a copy of the GNU General Public License along with thi
 		<<set $slaves[_i].assignmentVisible = 1>>
 		<<set $slaves[_i].weekAcquired = 1>>
 		<<set $slaves[_i].newGamePlus = 1>>
-		<<set $slaves[$i].HasBeenAssignedToFacilitySupport = 0>>
 		<<PMODinit $slaves[_i]>>
 		<<if $slaves[_i].mother > 0>>
 			<<set $slaves[_i].mother += 1200000>>
@@ -242,7 +241,7 @@ You should have received a copy of the GNU General Public License along with thi
 
 <<set $slaveIndices = slaves2indices()>>
 <<set $organs = []>>
-<<set $ArcadeiIDs = [], $BrothiIDs = [], $CellBiIDs = [], $CliniciIDs = [], $ClubiIDs = [], $DairyiIDs = [], $HGSuiteiIDs = [], $MastSiIDs = [], $SchlRiIDs = [], $ServQiIDs = [], $SpaiIDs = [], $FacSupIDs = []>>
+<<set $ArcadeiIDs = [], $BrothiIDs = [], $CellBiIDs = [], $CliniciIDs = [], $ClubiIDs = [], $DairyiIDs = [], $HGSuiteiIDs = [], $MastSiIDs = [], $SchlRiIDs = [], $ServQiIDs = [], $SpaiIDs = []>>
 
 <<if ndef $saveImported>>
 	<<set $saveImported = 0>>
diff --git a/src/pregmod/fSlaveFeed.tw b/src/pregmod/fSlaveFeed.tw
index 7d39435953cbabb5133a001e80c7e59e3ee6aee5..41b9ce3080044f03306b234c8f11e111eeef5461 100644
--- a/src/pregmod/fSlaveFeed.tw
+++ b/src/pregmod/fSlaveFeed.tw
@@ -763,6 +763,5 @@ Next, you see to $activeSlave.slaveName.
 <</if>>
 
 <<SetBellySize $activeSlave>>
-<<set _m = $slaves.findIndex(function(s) { return s.ID == $milkTap.ID; })>>
-<<set $slaves[_m] = $milkTap>>
+<<set $slaves[$slaveIndices[$milkTap.ID]] = $milkTap>>
 <<set $milkTap = 0>>
\ No newline at end of file
diff --git a/src/pregmod/fSlaveSlaveDickConsummate.tw b/src/pregmod/fSlaveSlaveDickConsummate.tw
index 73ef5c8fbc9957a08676cacd6a8fa7f818dad821..19b0c9cb4eb9630bf8040e92e67c5183ffc6c4ea 100644
--- a/src/pregmod/fSlaveSlaveDickConsummate.tw
+++ b/src/pregmod/fSlaveSlaveDickConsummate.tw
@@ -546,6 +546,5 @@ You call $slaverapistx.slaveName into the room.
 <</if>>
 
 /% save changes %/
-<<set _SSDC = $slaves.findIndex(function(s) { return s.ID == $slaverapistx.ID; })>>
-<<set $slaves[_SSDC] = $slaverapistx>>
+<<set $slaves[$slaveIndices[$slaverapistx.ID]] = $slaverapistx>>
 
diff --git a/src/pregmod/fSlaveSlaveVagConsummate.tw b/src/pregmod/fSlaveSlaveVagConsummate.tw
index 3a7216ff69b4bb064f435f48530568c80550042c..dc92537772ce82b39601cef0c81d57ffe09e60a1 100644
--- a/src/pregmod/fSlaveSlaveVagConsummate.tw
+++ b/src/pregmod/fSlaveSlaveVagConsummate.tw
@@ -241,5 +241,4 @@ Next, you see to $activeSlave.slaveName.
 	<<KnockMeUp $activeSlave 25 0 $slaverapistx.ID>>
 <</if>>
 
-<<set _ssvg = $slaves.findIndex(function(s) { return s.ID == $slaverapistx.ID; })>>
-<<set $slaves[_ssvg] = $slaverapistx>>
+<<set $slaves[$slaveIndices[$slaverapistx.ID]] = $slaverapistx>>
diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw
index 07cc52e3ad9e4c2f632ac8ce92b574e04dbc41c8..f3239069c561b7d738b6cab6d535f8468eb33f05 100644
--- a/src/pregmod/generateChild.tw
+++ b/src/pregmod/generateChild.tw
@@ -298,7 +298,7 @@
 	<</if>>
 	<<set $activeSlave.mother = $mergeMom.ID>>
 	<<if $mom.pregSource > 0>>
-		<<set _currentFather = $slaves.find(function(s) { return s.ID == $mom.pregSource; })>>
+		<<set _currentFather = getSlave($mom.pregSource)>>
 		<<set $activeSlave.father = $mergeDad.ID>>
 		<<set $activeSlave.slaveName = String($mom.slaveName + " and " + _currentFather.slaveName + "'s child")>>
 		<<if def $mom.slaveSurname && $mom.slaveSurname != "">><<set $activeSlave.slaveSurname = $mom.slaveSurname>><<elseif def _currentFather.slaveSurname && _currentFather.slaveSurname != "">><<set $activeSlave.slaveSurname = _currentFather.slaveSurname>><<else>><<set $activeSlave.slaveSurname = 0>><</if>>
diff --git a/src/pregmod/huskSlaveSwap.tw b/src/pregmod/huskSlaveSwap.tw
index 01689d23c7ca1813874db3ad864431870948705c..d1f31346707f1e1968177b39d0c01aad87047ae2 100644
--- a/src/pregmod/huskSlaveSwap.tw
+++ b/src/pregmod/huskSlaveSwap.tw
@@ -2,7 +2,7 @@
 
 <<set $nextButton = "Continue">>
 <<set _oldSlave = clone($swappingSlave)>>
-<<set _m = $slaves.findIndex(function(s) { return s.ID == $swappingSlave.ID; })>>
+<<set _m = $slaveIndices[$swappingSlave.ID]>>
 
 You strap $slaves[_m].slaveName, and the body to which $pronoun will be transferred, into the remote surgery and stand back as it goes to work.
 <<BodySwap $slaves[_m] $activeSlave>>
diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw
index a54a63469161e207cb33a5b0c959d7b6fd7b93c2..ea809ffd6e5752a6a09fb32b397f2f6034d54f71 100644
--- a/src/pregmod/incubator.tw
+++ b/src/pregmod/incubator.tw
@@ -40,12 +40,10 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 		<<elseif $slaves[_u].pregSource == -1>>your
 		<<elseif $slaves[_u].pregSource == -2>>a citizen's
 		<<else>>
-			<<for _t = 0; _t < _SL; _t++>>
-				<<if $slaves[_u].pregSource == $slaves[_t].ID>>
-					<<print $slaves[_t].slaveName>>'s
-					<<break>>
-				<</if>>
-			<</for>>
+			<<set _t = $slaveIndices[$slaves[_u].pregSource]>>
+			<<if def _t>>
+				<<print $slaves[_t].slaveName>>'s
+			<</if>>
 		<</if>>
 		<<if $slaves[_u].pregType > 1>>$slaves[_u].pregType babies<<else>>baby<</if>>.
 		<<if $slaves[_u].reservedChildren > 0>>
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index 0d1d6339d79ec75fe5e5372247a326a29b21d52a..a5d689bd8b33a1de49428e810b18b487e9f7208c 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -5,10 +5,10 @@
 <<SlaveTitle $activeSlave>>
 
 <<if $activeSlave.mother > 0>>
-	<<set _tempMom = $slaves.find(function(s) { return s.ID == $activeSlave.mother; })>>
+	<<set _tempMom = getSlave($activeSlave.mother)>>
 <</if>>
 <<if $activeSlave.father > 0>>
-	<<set _tempDad = $slaves.find(function(s) { return s.ID == $activeSlave.father; })>>
+	<<set _tempDad = getSlave($activeSlave.father)>>
 <</if>>
 
 You completed the legalities before heading to $incubatorName, knowing the tank will release her on your approach, and instruct $assistantName to notify the new girl's parents to meet you in your office. As the tank exhumes the disoriented girl, you help her to her feet<<if $incubatorReproductionSetting > 1>>, making sure to feel-up her overdeveloped body,<</if>> and walk her to your penthouse. Though first you must decide upon a name for the new girl; it won't take long to reach your office, so you have only @@.orange;one chance to name her@@ before you arrive.
diff --git a/src/pregmod/organFarmOptions.tw b/src/pregmod/organFarmOptions.tw
index 739bef91d1b085831019aca4304b7b909cb5598c..2855ac9275fc7bfcfe110b0148e6cbf4b422dfbc 100644
--- a/src/pregmod/organFarmOptions.tw
+++ b/src/pregmod/organFarmOptions.tw
@@ -278,12 +278,24 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 				<<if $activeSlave.dick > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has a penis.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "penis"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "penis"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<if $activeSlave.prostate == 0>>
 							<<set $activeSlave.prostate = 1>>
 						<</if>>
@@ -295,25 +307,50 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<<set $activeSlave.chem += 20>>
 						<</if>>
 						<<set $surgeryType = "addDick">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "penis"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "testicles">>
 				<<if $activeSlave.balls > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "testicles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.dick == 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the penis necessary to accept testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "testicles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 					<br>You can forgo standard procedure and implant testicles directly into $possessive abdomen.
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
-						<<if $activeSlave.prostate > 1>><<set $activeSlave.prostate = 1>><</if>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "testicles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+						<<if $activeSlave.prostate < 1>><<set $activeSlave.prostate = 1>><</if>>
 						<<set $activeSlave.balls = 2>>
 						<<set $activeSlave.ballType = "human">>
 						<<set $activeSlave.health -= 20>>
@@ -332,13 +369,17 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addTesticles">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "testicles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<if $activeSlave.prostate == 0>>
 							<<set $activeSlave.prostate = 1>>
 						<</if>>
@@ -361,30 +402,79 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addBalls">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "testicles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "pigTesticles">>
 				<<if $activeSlave.balls > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.dick == 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the penis necessary to accept testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
+					<br>You can forgo standard procedure and implant testicles directly into $possessive abdomen.
+					<<link "Implant" "Surgery Degradation">>
+						<<set $cash -= $surgeryCost>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+						<<if $activeSlave.prostate < 1>><<set $activeSlave.prostate = 1>><</if>>
+						<<set $activeSlave.balls = 2>>
+						<<set $activeSlave.ballType = "pig">>
+						<<set $activeSlave.health -= 20>>
+						<<if $organFarmUpgrade == 2>>
+							<<set $activeSlave.chem += 20>>
+						<</if>>
+						<<if $activeSlave.pubertyXY == 0>>
+							<<if $precociousPuberty == 1>>
+								<<if $activeSlave.physicalAge >= $potencyAge>>
+									<<set $activeSlave.pubertyAgeXY = ($activeSlave.physicalAge+1)>>
+								<</if>>
+							<<else>>
+								<<if $activeSlave.physicalAge >= $potencyAge>>
+									<<set $activeSlave.pubertyXY = 1>>
+								<</if>>
+							<</if>>
+						<</if>>
+						<<set $surgeryType = "addPigBalls">>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.balls = 3>>
 						<<set $activeSlave.scrotum = 3>>
 						<<set $activeSlave.ballType = "pig">>
@@ -404,30 +494,79 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addPigBalls">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "dogTesticles">>
 				<<if $activeSlave.balls > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.dick == 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the penis necessary to accept testicles.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
+					<br>You can forgo standard procedure and implant testicles directly into $possessive abdomen.
+					<<link "Implant" "Surgery Degradation">>
+						<<set $cash -= $surgeryCost>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+						<<if $activeSlave.prostate < 1>><<set $activeSlave.prostate = 1>><</if>>
+						<<set $activeSlave.balls = 2>>
+						<<set $activeSlave.ballType = "dog">>
+						<<set $activeSlave.health -= 20>>
+						<<if $organFarmUpgrade == 2>>
+							<<set $activeSlave.chem += 20>>
+						<</if>>
+						<<if $activeSlave.pubertyXY == 0>>
+							<<if $precociousPuberty == 1>>
+								<<if $activeSlave.physicalAge >= $potencyAge>>
+									<<set $activeSlave.pubertyAgeXY = ($activeSlave.physicalAge+1)>>
+								<</if>>
+							<<else>>
+								<<if $activeSlave.physicalAge >= $potencyAge>>
+									<<set $activeSlave.pubertyXY = 1>>
+								<</if>>
+							<</if>>
+						<</if>>
+						<<set $surgeryType = "addDogBalls">>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					<<link "Implant">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.balls = 2>>
 						<<set $activeSlave.ballType = "dog">>
 						<<set $activeSlave.scrotum = 2>>
@@ -450,43 +589,87 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogTesticles"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "scrotum">>
 				<<if $activeSlave.scrotum > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has a scrotum.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "scrotum"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.balls == 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the balls necessary to accept a scrotum.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "scrotum"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Graft on">>
+					<<link "Graft on" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "scrotum"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.scrotum = $activeSlave.balls>>
 						<<set $activeSlave.health -= 10>>
 						<<if $organFarmUpgrade == 2>>
 							<<set $activeSlave.chem += 10>>
 						<</if>>
 						<<set $surgeryType = "addScrotum">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "scrotum"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "foreskin">>
 				<<if $activeSlave.foreskin > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has a <<if $activeSlave.dick > 0>>foreskin<<else>>clitoral hood<</if>>.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "foreskin"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Graft on">>
+					<<link "Graft on" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "foreskin"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<if $activeSlave.dick > 0>>
 							<<set $activeSlave.foreskin = $activeSlave.dick>>
 						<<else>>
@@ -497,29 +680,61 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<<set $activeSlave.chem += 10>>
 						<</if>>
 						<<set $surgeryType = "addForeskin">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "foreskin"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "ovaries">>
 				<<if $activeSlave.ovaries > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "ovaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.vagina < 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the vagina necessary to accept ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "ovaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<elseif $activeSlave.mpreg != 0 || $activeSlave.bellyImplant != -1>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave's body cavity is filled with another organ.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "ovaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "ovaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.ovaries = 1>>
 						<<set $activeSlave.eggType = "human">>
 						<<set $activeSlave.preg = 0>>
@@ -539,34 +754,61 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addOvaries">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "ovaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "pigOvaries">>
 				<<if $activeSlave.ovaries > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.vagina < 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the vagina necessary to accept ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.mpreg != 0 || $activeSlave.bellyImplant != -1>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave's body cavity is filled with another organ.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.ovaries = 1>>
 						<<set $activeSlave.eggType = "pig">>
 						<<set $activeSlave.preg = 0>>
@@ -586,34 +828,61 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addPigOvaries">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "pigOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "dogOvaries">>
 				<<if $activeSlave.ovaries > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.vagina < 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks the vagina necessary to accept ovaries.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.mpreg != 0 || $activeSlave.bellyImplant != -1>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave's body cavity is filled with another organ.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.ovaries = 1>>
 						<<set $activeSlave.eggType = "dog">>
 						<<set $activeSlave.preg = 0>>
@@ -633,24 +902,49 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "addDogOvaries">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "dogOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "freshOvaries">>
 				<<if ($activeSlave.mpreg == 0 && $activeSlave.ovaries == 0) || $activeSlave.bellyImplant != -1>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave lacks a viable womb.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "freshOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.physicalAge >= 60>>
 					ERROR: this slave's body is too old to handle pregnancy.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "freshOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "freshOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<if $activeSlave.ovaryAge >= 47>>
 							<<set $activeSlave.ovaryAge = 45>>
 						<<else>>
@@ -675,42 +969,78 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "freshOvaries">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "freshOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "prostate">>
 				<<if $activeSlave.prostate != 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave already has a prostate.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "prostate"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "prostate"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.prostate = 1>>
 						<<set $activeSlave.health -= 20>>
 						<<if $organFarmUpgrade == 2>>
 							<<set $activeSlave.chem += 20>>
 						<</if>>
 						<<set $surgeryType = "addProstate">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "prostate"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "eyes">>
 				<<if $activeSlave.eyes > -2 && $activeSlave.origEye != "implant">>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave has working eyes.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<elseif $activeSlave.origEye == "implant">>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Remove ocular implants and implant">>
+					<<link "Remove ocular implants and implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $stockpile.ocularImplant++>>
 						<<set $activeSlave.eyes = 1>>
 						<<set _oldEyes = $genePool.find(function(s) { return s.ID = $activeSlave.ID; })>>
@@ -721,15 +1051,26 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<<set $activeSlave.chem += 20>>
 						<</if>>
 						<<set $surgeryType = "newEyes">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>		
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>	
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.eyes = 1>>
 						<<set $activeSlave.eyeColor = $activeSlave.origEye>>
 						/* no way to salvage original eye color */
@@ -738,26 +1079,39 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<<set $activeSlave.chem += 20>>
 						<</if>>
 						<<set $surgeryType = "unblind">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "mpreg">>
 				<<if ($activeSlave.ovaries != 0) && ($activeSlave.vagina > -1) && ($activeSlave.mpreg != 0)>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					ERROR: this slave has existing reproductive completedOrgans.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					ERROR: this slave has existing reproductive Organs.
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpreg"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpreg"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.mpreg = 1>>
 						<<set $activeSlave.eggType = "human">>
 						<<set $activeSlave.preg = 0>>
@@ -777,26 +1131,39 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "mpreg">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpreg"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "mpregPig">>
 				<<if ($activeSlave.ovaries != 0) && ($activeSlave.vagina > -1) && ($activeSlave.mpreg != 0)>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					ERROR: this slave has existing reproductive completedOrgans.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					ERROR: this slave has existing reproductive Organs.
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregPig"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregPig"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.mpreg = 1>>
 						<<set $activeSlave.eggType = "pig">>
 						<<set $activeSlave.preg = 0>>
@@ -816,26 +1183,39 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "mpregPig">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregPig"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<<elseif $completedOrgans[_i].type == "mpregDog">>
 				<<if ($activeSlave.ovaries != 0) && ($activeSlave.vagina > -1) && ($activeSlave.mpreg != 0)>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave has existing reproductive completedOrgans.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregDog"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>>
-							<<if $activeSlave.ID == $completedOrgans[$i].ID>>
-							<<set $completedOrgans.deleteAt($i)>>
-							<<break>>
-							<</if>>
-						<</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregDog"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<set $activeSlave.mpreg = 1>>
 						<<set $activeSlave.eggType = "dog">>
 						<<set $activeSlave.preg = 0>>
@@ -855,22 +1235,40 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<</if>>
 						<</if>>
 						<<set $surgeryType = "mpregDog">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "mpregDog"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 				
 			<<else>>
 				<<if $activeSlave.voice > 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					ERROR: this slave is not mute.
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "voicebox"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<<else>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<link "Implant">>
+					<<link "Implant" "Surgery Degradation">>
 						<<set $cash -= $surgeryCost>>
-						<<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "voicebox"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
 						<<if $activeSlave.ovaries == 1 && $activeSlave.hormoneBalance >= 200>>
 							<<set $activeSlave.voice = 3>>
 						<<elseif ($activeSlave.balls > 0) || ($activeSlave.hormoneBalance < -20)>>
@@ -883,10 +1281,16 @@ The fabricator is ready to grow an organ for $object. Extract tissue to begin gr
 							<<set $activeSlave.chem += 10>>
 						<</if>>
 						<<set $surgeryType = "restoreVoice">>
-						<<goto "Surgery Degradation">>
 					<</link>>
 					|
-					<<link "Discard">><<for $i = 0; $i < $completedOrgans.length; $i++>><<if $activeSlave.ID == $completedOrgans[$i].ID>><<set $completedOrgans.deleteAt($i)>><<break>><</if>><</for>><<goto "Remote Surgery">><</link>>
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "voicebox"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>>
 				<</if>>
 			<</if>>
 		<</if>>
diff --git a/src/pregmod/reLegendaryWomb.tw b/src/pregmod/reLegendaryWomb.tw
index a3cfb9fe2de4bc111ec929ea91a6b30c3ca5d67d..806c34d6a6c6a9b0ec2a1360c2906519132be838 100644
--- a/src/pregmod/reLegendaryWomb.tw
+++ b/src/pregmod/reLegendaryWomb.tw
@@ -1,6 +1,6 @@
 :: RE legendary womb [nobr]
  
-<<set $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "RIE Eligibility Check", $activeSlave = ($legendaryFacility == 1) ? $slaves.find(function(s) { return s.ID == $legendaryWombID; }) : $eventSlave>>
+<<set $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "RIE Eligibility Check", $activeSlave = ($legendaryFacility == 1) ? getSlave($legendaryWombID) : $eventSlave>>
 
 <<if (ndef $activeSlave)>> /* not found - reset variable and stop event */
 	<<set $legendaryWombID = 0>>
diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw
index 034e8e2c7e270a44c60c625fda2364f55688e9bb..24ef6730cad084222117aec4863a55eadc31fe52 100644
--- a/src/pregmod/saAgent.tw
+++ b/src/pregmod/saAgent.tw
@@ -113,7 +113,7 @@
 		<<if $slaves[$i].pregSource == -1>>
 			<<set $PC.slavesKnockedUp++>>
 		<<elseif $slaves[$i].pregSource > 0>>
-			<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
+			<<set _babyDaddy = $slaveIndices[$slaves[$i].pregSource]>>
 			<<set $slaves[_babyDaddy].slavesKnockedUp++>>
 		<</if>>
 	<</if>>
diff --git a/src/pregmod/saInflation.tw b/src/pregmod/saInflation.tw
index be163c09d592228dfab4711051dece874d72a9d9..27c7c6b6d2d92611a153996dc6d3e718ccc9ea8a 100644
--- a/src/pregmod/saInflation.tw
+++ b/src/pregmod/saInflation.tw
@@ -212,7 +212,7 @@
 				<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].milkSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].milkSource]>>
 			<<if $slaves[_saf].lactation == 0>>
 				$slaves[_saf].slaveName is no longer lactating and thus can no longer keep $slaves[$i].slaveName filled with milk. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>><<SetBellySize $slaves[$i]>>
@@ -257,7 +257,7 @@
 				<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].milkSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].milkSource]>>
 			<<if $slaves[_saf].lactation == 0>>
 				$slaves[_saf].slaveName is no longer lactating and thus can no longer keep $slaves[$i].slaveName filled with milk. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>><<SetBellySize $slaves[$i]>>
@@ -298,7 +298,7 @@
 				Throughout the week, $pronoun makes sure to fill $possessive rear with nearly two liters of milk, leaving $possessive belly noticeably distended, whenever $pronoun leaks or needs to release $possessive load. $pronounCap is full enough to be swollen but not enough to visibly jiggle.
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].milkSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].milkSource]>>
 			<<if $slaves[_saf].lactation == 0>>
 				$slaves[_saf].slaveName is no longer lactating and thus can no longer keep $slaves[$i].slaveName filled with milk. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>><<SetBellySize $slaves[$i]>>
@@ -344,7 +344,7 @@
 				<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].cumSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].cumSource]>>
 			<<if $slaves[_saf].balls == 0>>
 				$slaves[_saf].slaveName has no longer has testicles and thus can no longer keep $slaves[$i].slaveName filled with cum. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].cumSource = 0>><<SetBellySize $slaves[$i]>>
@@ -389,7 +389,7 @@
 				<<set $slaves[$i].devotion++, $slaves[$i].trust++>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].cumSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].cumSource]>>
 			<<if $slaves[_saf].balls == 0>>
 					$slaves[_saf].slaveName has no longer has testicles and thus can no longer keep $slaves[$i].slaveName filled with cum. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].cumSource = 0>><<SetBellySize $slaves[$i]>>
@@ -430,7 +430,7 @@
 				Throughout the week, $pronoun makes sure to fill $possessive rear with nearly two liters of cum, leaving $possessive belly noticeably distended, whenever $pronoun leaks or needs to release $possessive load. $pronounCap is full enough to be swollen but not enough to visibly jiggle.
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 3>>
-			<<set _saf = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].cumSource; })>>
+			<<set _saf = $slaveIndices[$slaves[$i].cumSource]>>
 			<<if $slaves[_saf].balls == 0>>
 					$slaves[$j].slaveName has no longer has testicles and thus can no longer keep $slaves[$i].slaveName filled with cum. @@.yellow;$possessiveCap inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].cumSource = 0>><<SetBellySize $slaves[$i]>>
diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw
index 299ff7d019636a97905ccf1008b1cd813c3d1184..bbfc9ef95bb9fe2a0a9bc96ccc547b4a59a9c523 100644
--- a/src/pregmod/seFCTVshows.tw
+++ b/src/pregmod/seFCTVshows.tw
@@ -982,7 +982,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 			Stunned and fully erect, you inexplicably feel the urge to creampie a pussy, so you
 			<<if $Concubine != 0 && $Concubine.vagina > 0 && canDoVaginal($Concubine)>>
 				grab $Concubine.slaveName and recreate the entire ending with her.
-				<<set _fctvs = $slaves.findIndex(function(s) { return s.ID == $Concubine.ID; })>>
+				<<set _fctvs = $slaveIndices[$Concubine.ID]>>
 				<<set $slaves[_fctvs].vaginalCount += 1, $vaginalTotal += 1>>
 				<<if $Concubine.eggType == "human" && canGetPregnant($Concubine)>>
 					<<KnockMeUp $slaves[_fctvs] 10 0 -1 1>>
@@ -998,7 +998,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 			<<if $Concubine != 0 && canPenetrate($Concubine) && isPlayerFertile($PC) && $Concubine.ballType == "human" && $Concubine.vasectomy == 0 && ($sexualOpeness == 1 || $Concubine.toyHole == "dick")>>
 				get $Concubine.slaveName nice and hard before recreating the entire ending with her. You've never had a more hope-filled orgasm.
 				<<KnockMeUp $PC 10 0 $Concubine.ID 1>>
-				<<set _fctvs = $slaves.findIndex(function(s) { return s.ID == $Concubine.ID; })>>
+				<<set _fctvs = $slaveIndices[$Concubine.ID]>>
 				<<set $slaves[_fctvs].penetrativeCount += 1, $penetrativeTotal += 1>>
 			<<elseif $sexualOpeness == 1>>
 				find your favorite cock to get a creampie from. You've never had a more lust-filled orgasm.
@@ -1011,7 +1011,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		<br>
 		"I met with one of the leading scientists working on cleaner, higher-purity aphrodisiacs." the woman presenting narrates.
 		<br>
-		The scientist's volume fades in, and you can finally hear what he has to say. "The problem with most of the cheap stuff is it can make you sick and it can be really hard to kick an addiction to it. With products similar to what we aim to create those risks are severely mitigated, showing that the potential for healthy, prolonged use of aphrodisacs exists, and that cessation of use can be significantly easier."
+		The scientist's volume fades in, and you can finally hear what he has to say. "The problem with most of the cheap stuff is it can make you sick and it can be really hard to kick an addiction to it. With products similar to what we aim to create those risks are severely mitigated, showing that the potential for healthy, prolonged use of aphrodisiacs exists, and that cessation of use can be significantly easier."
 		<br>
 		The woman cuts in with a question. "But won't an easier time quitting mean a weaker product?"
 		<br>
@@ -1019,11 +1019,11 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		<br>
 		"This was a nun from the old world, recently made a slave." he explains. "We do all of our testing on legally purchased slaves who are slated to work in brothels that use aphrodisiacs anyway, so there's no harm done."
 		<br>
-		One of the men from earlier walks back into frame and hands the scentist an injector. "This is one of our latest prototypes, the purest we've produced yet. I'm proud to be able to show it off today." he says as he prepares an injection site on the right side of the nun's neck. He moves the injector close to her neck, just barely grazing her skin. "Before I do this, for the cameras, how do you feel about taking it up the ass in front of this nice girl, Sister?"
+		One of the men from earlier walks back into frame and hands the scientist an injector. "This is one of our latest prototypes, the purest we've produced yet. I'm proud to be able to show it off today." he says as he prepares an injection site on the right side of the nun's neck. He moves the injector close to her neck, just barely grazing her skin. "Before I do this, for the cameras, how do you feel about taking it up the ass in front of this nice girl, Sister?"
 		<br>
 		The nun looks up with anger and defiance before speaking in a low tone "Do you not know that the unrighteous will not inherit the kingdom of God? Do not be deceived. Neither the sexually immoral, nor idolators, nor adulterers, nor m-" the scientist injects her, and her eyes immediately widen. Her cheeks quickly flush and her breathing becomes labored as she clenches her teeth. "What's the matter?" the scientist teases. "No more verses?"
 		<br>
-		The nun unconciously moves closer to him, and finds herself hugging his thigh and rubbing her crotch against his leg like a dog. Her robes are soaked right at the spot where her pussy ought to be, and she's drooling as she undoes the scientist's pants. When his big, soft cock flops out and slaps her face, she desperately licks and sucks on it to get it hard before hungrily deepthroating it at a maddening pace. The scientist eventually grabs her hair and rips his cock out of her mouth before blowing his load all over her face, all on camera. "One more time for the cameras." he says. "How do you feel about taking it up the ass in front of this nice girl, Sister?"
+		The nun unconsciously moves closer to him, and finds herself hugging his thigh and rubbing her crotch against his leg like a dog. Her robes are soaked right at the spot where her pussy ought to be, and she's drooling as she undoes the scientist's pants. When his big, soft cock flops out and slaps her face, she desperately licks and sucks on it to get it hard before hungrily deepthroating it at a maddening pace. The scientist eventually grabs her hair and rips his cock out of her mouth before blowing his load all over her face, all on camera. "One more time for the cameras." he says. "How do you feel about taking it up the ass in front of this nice girl, Sister?"
 		<br>
 		"Please fuck me." the nun whimpers. "Please. I need it. My... it burns."
 		<br>
@@ -1031,7 +1031,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		<br>
 		"Anywhere. Please, now. Please."
 		<br>
-		He bends her over the couch, right next to the presenter, who's been watching the entire time. She's transfixed with genuine interest in the aphrodisiacs and genuine cocklust for the scientist. The scientist slides his spit-covered cock into the nun's ass, and she thanks him through tears as she moans and desperately rubs her clit. He's pounding her hard and fast, and she cums quickly, but clearly she isn't satiated judging by how quickly she goes back to slamming her ass against the scientist after cumming. Eventually the sight of it is too much for the presenter, who mouths "fuck it" before hiking up the bottom of her dress to her hips revealing a beatifully puffy pussy and a carefully-sculpted landing strip. The presenter shifts over on the couch, and pulls the nun by her hair to make her eat her cunt. They go on like this for some time, with the nun and presenter frequently changing places, much to the delight of the scientist. By the end of the scene the nun is crying on the floor, leaking cum from every holy hole and staring off into space. The benefits of aphrodisiacs are quite clear.
+		He bends her over the couch, right next to the presenter, who's been watching the entire time. She's transfixed with genuine interest in the aphrodisiacs and genuine cocklust for the scientist. The scientist slides his spit-covered cock into the nun's ass, and she thanks him through tears as she moans and desperately rubs her clit. He's pounding her hard and fast, and she cums quickly, but clearly she isn't satiated judging by how quickly she goes back to slamming her ass against the scientist after cumming. Eventually the sight of it is too much for the presenter, who mouths "fuck it" before hiking up the bottom of her dress to her hips revealing a beautifully puffy pussy and a carefully-sculpted landing strip. The presenter shifts over on the couch, and pulls the nun by her hair to make her eat her cunt. They go on like this for some time, with the nun and presenter frequently changing places, much to the delight of the scientist. By the end of the scene the nun is crying on the floor, leaking cum from every holy hole and staring off into space. The benefits of aphrodisiacs are quite clear.
 	<</if>>
 
 <<case 15>>
@@ -1047,15 +1047,15 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		The camera cuts to a young blonde girl with her hair braided back in rows. She's wearing a white blouse thats unbuttoned all the way down to her leather corset showing much of her very large rack while hiding little.
 		<br><br>
 		"Thank ye, Captain Castbeak!" she positively beams with energy as she bounces around, her barely contained breasts keeping your eye as she sways and jumps around the screen. 
-		"Today we be keepin an eye on the acid rain storms as they blow on through the upper chinese and mongolian regions on their way to the bearing straight. If ye be located anywhere around here-" She stretches up with a short pointer that you now realize is part of a prostethic limb attached to her right hand. "-batton down yer hatches an wait fer the storm ta blow over".
+		"Today we be keepin an eye on the acid rain storms as they blow on through the upper Chinese and Mongolian regions on their way to the bearing straight. If ye be located anywhere around here-" She stretches up with a short pointer that you now realize is part of a prosthetic limb attached to her right hand. "-batten down yer hatches an wait fer the storm ta blow over".
 		<br><br>
-		The camera shifts down low now as the green screen map behind her shifts to Australia, Lusty stooping over towards the cameria to stay in frame gives you a beautiful view straight down her blouse. "And ifin ye be in Australia yer in for another hot and dry one as this unseasonable drought stretches on fer at least another week"
+		The camera shifts down low now as the green screen map behind her shifts to Australia, Lusty stooping over towards the camera to stay in frame gives you a beautiful view straight down her blouse. "And ifin ye be in Australia yer in for another hot and dry one as this unseasonable drought stretches on fer at least another week"
 		<br><br>
-		The camera angle switches again as the map of North America comes on screen overlayed with tempuratures. Lusty slowly straightens up and stretches out with a smile clearly giving the camera a show. "an if'n ye be travelin across here, beware, this be the worst weather of them all, with dust storms and tornadows and lightning storms across the continent. If ye be catchin our broadcast from here, seek a safe port and stay safe." she points again with her pointer hand all across the midwest.
+		The camera angle switches again as the map of North America comes on screen overlayed with temperatures. Lusty slowly straightens up and stretches out with a smile clearly giving the camera a show. "an if'n ye be travelin across here, beware, this be the worst weather of them all, with dust storms and tornadows and lightning storms across the continent. If ye be catchin our broadcast from here, seek a safe port and stay safe." she points again with her pointer hand all across the midwest.
 		<br><br>
-		The weather report continues with more mundane tempurature readings and Lusty bubbly bouncing around the screen giving you something to pay attention to when the weather is not about your region.
+		The weather report continues with more mundane temperature readings and Lusty bubbly bouncing around the screen giving you something to pay attention to when the weather is not about your region.
 		<br><br>
-		When the weather finishes, she crosses her arms under her breasts, emphasizing the pair barely restrained by the laces of her blouse and bearly slipping free after her energetic report, as credits of strange and funny pirate themed names begin to flash across the bottom of the screen, She happily begins to sign off. "We here at Pieces o' Eight thank ye fer trustin us with yer global news an weather, From our crew to yours, have a merry day!"
+		When the weather finishes, she crosses her arms under her breasts, emphasizing the pair barely restrained by the laces of her blouse and barely slipping free after her energetic report, as credits of strange and funny pirate themed names begin to flash across the bottom of the screen, She happily begins to sign off. "We here at Pieces o' Eight thank ye fer trustin us with yer global news an weather, From our crew to yours, have a merry day!"
 		<br><br>
 		You flip off the tv. News from a pirate, how novel.
 	<<elseif $showFifteen == 2>>
@@ -1070,7 +1070,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		<br>"I think you're just mad that your callsign is 'cuttlefish'" Manta shoots back.
 		<br>"I've had worse" Cuttlefish replies then mutters quietly "but not by much"
 		<br>"I dunno, mate. As an accent it's kind of infectious, especially since they got all the wenches in Tortuga speaking it. It makes the whole port kind of endearing."
-		<br>"I can't argue with that, Pull one of them girls on my lap and listening to her squeel and sqirm, and then they get all that grog in you... Lets just say I'm warming up to the place."
+		<br>"I can't argue with that, Pull one of them girls on my lap and listening to her squeal and squirm, and then they get all that grog in you... Lets just say I'm warming up to the place."
 		<br><br>
 		Orca shakes his head at the banter of his crew shaking the camera mount as well slightly before he turns to leave. He takes a step out before suddenly freezing and stopping. He clicks on his radio and says "Radio silence for a minute." 
 		<br><br>
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index 2f205d26ecd1fdd3de7da9aad74cdcec6c05b588..d5a125d2057299db1fde052ba98299c45495b75a 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -44,8 +44,8 @@ PC.pregSource documentation
 	<<set $PC.birthSelf += _curBabies>>
 <<else>>
 	<<set $PC.birthDegenerate += _curBabies>>
-	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $PC.pregSource; })>>
-	<<if _babyDaddy != -1>>
+	<<set _babyDaddy = $slaveIndices[$PC.pregSource]>>
+	<<if def _babyDaddy>>
 		<<set $slaves[_babyDaddy].PCChildrenFathered += _curBabies>>
 	<</if>>
 <</if>>
@@ -486,8 +486,8 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 <</if>>
 
 <<if $PC.pregSource > 0 && _curBabies > 0>>
-	<<set _pb = $slaves.findIndex(function(s) { return s.ID == $PC.pregSource; })>>
-	<<if _pb != -1>>
+	<<set _pb = $slaveIndices[$PC.pregSource]>>
+	<<if def _pb>>
 		<<if $arcologies[0].FSRestartDecoration == 100>>
 			Word spreads fast through your peers that you gave birth to <<if _curBabies > 1>>low class infants<<else>>a low class child<</if>> @@.red;utterly devastating your standing among the Elite.@@
 			<<set $failedElite += 200>>
diff --git a/src/pregmod/slaveAgeIntro.tw b/src/pregmod/slaveAgeIntro.tw
index 67052c36979f40e2ed59e0491e334b959aeaf1c2..29605afe2e0cdf0c78f97d6867e7f728cd87978e 100644
--- a/src/pregmod/slaveAgeIntro.tw
+++ b/src/pregmod/slaveAgeIntro.tw
@@ -7,5 +7,5 @@ Do you want to see content involving girls younger than 18 in this game?
 [[No.|PC Body Intro][$minimumSlaveAge = 18, $pedo_mode = 0]] //All slaves will be at least 18 years old, and slavery of children will be illegal in the Free Cities.//
 <br>Yes, I wish to see girls as young as <<textbox "$minimumSlaveAge" $minimumSlaveAge "PC Body Intro">> [[Continue|PC Body Intro][$pedo_mode = 0]]
 <br>[[I just want lots of lolis.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 1]] //Nearly all randomly generated slaves will be under the age of 18, although custom slaves and slaves related to specific events may be older.//
-<br>[[I wish to see them grow up and become fertile.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 0, $precociousPuberty = 1, $loliGrow = 1, $fertilityAge = 10, $potencyAge = 12, $seeAge = 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile younger than normal puberty age (10) in some cases, and grow up naturally.//
+<br>[[I wish to see them grow up and become fertile.|PC Body Intro][$minimumSlaveAge = 3, $pedo_mode = 0, $precociousPuberty = 1, $loliGrow = 0, $fertilityAge = 10, $potencyAge = 12, $seeAge = 1]] //Preset. Slaves' age will be random from minimal possible age. They can be made fertile younger than normal puberty age (10) in some cases, and grow up naturally.//
 
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 4301725cb66b26f62cfb4b212f5d9966222b828a..7f21b6cfe3d386955220847e305f3a8712782272 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -142,11 +142,8 @@
 <<if def $place>>
 	<<unset $place>>
 <</if>>
-<<if def $assayedSlave>>
-	<<unset $assayedSlave>>
-<</if>>
-<<if def $assayedSlaveAvailable>>
-	<<unset $assayedSlaveAvailable>>
+<<if def $assayedSlave || def $assayedSlaveAvailable || def $assayType>>
+	<<unset $assayedSlave, $assayedSlaveAvailable, $assayType>>
 <</if>>
 <<if def $RERepressedAnalVirginSub || def $REBoobCollisionSub || def $REIfYouEnjoyItSub || def $RESadisticDescriptionSub || def $REShowerForceSub>>
 	<<unset $RERepressedAnalVirginSub, $REBoobCollisionSub, $REIfYouEnjoyItSub, $RESadisticDescriptionSub, $REShowerForceSub>>
@@ -163,6 +160,12 @@
 <<if def $milfSlave>>
 	<<unset $milfSlave>>
 <</if>>
+<<if def $vignettes>>
+	<<unset $vignettes>>
+<</if>>
+<<if def $piercingLocation>>
+	<<unset $piercingLocation>>
+<</if>>
 
 /* pregmod stuff */
 
@@ -429,8 +432,8 @@
 <<if ndef $missingParentID>>
 	<<set $missingParentID = -10000>>
 <</if>>
-<<if ndef $startingSlaveRelative>>
-	<<set $startingSlaveRelative = 0>>
+<<if def $startingSlaveRelative>>
+	<<unset $startingSlaveRelative>>
 <</if>>
 <<if ndef $mom>>
 	<<set $mom = 0>>
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index e00be24723345205ff238fd4adcdabe38eb968da..955aeb6185e2a64ecbfa5815186ca14b9eae8179 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -571,6 +571,7 @@ It seems she passed by while $subSlave.slaveName was blowing you. She swallows p
 	<<set $analTotal += 1>>
 <</if>>
 <<set $subSlave = $slaves[_refi]>>
+<<set _subBelly = bellyAdjective($subSlave)>>
 
 /* 000-250-006 */
 <<if $seeImages == 1>>
@@ -583,9 +584,37 @@ It seems she passed by while $subSlave.slaveName was blowing you. She swallows p
 <</if>>
 /* 000-250-006 */
 
-You have $subSlave.slaveName pinned up against a railing on a balcony that overlooks a public atrium. Passersby below cannot see you, but they can certainly see $subSlave.slaveName's upper body as she takes your dick. She's blushing furiously with the sex and with her trademark mixed arousal and embarrassment at having an audience. She makes a show of trying to disguise the fact that she's getting railed, but it's obvious. When you finish, you pull her off the railing so she can clean up. <<EventNameLink $activeSlave>> saw the denouement of this exhibitionist fun, and seems intrigued.
+You have $subSlave.slaveName pinned up against a railing on a balcony that overlooks a public atrium. Passersby below cannot see you, but they can certainly see $subSlave.slaveName's upper body as she takes your dick. She's blushing furiously with the sex and with her trademark mixed arousal and embarrassment at having an audience. She makes a show of trying to disguise the fact that she's getting railed, but it's obvious. When you finish, you pull her off the railing so she can clean up. <<EventNameLink $activeSlave>> <<if canSee($activeSlave)>>saw<<else>>heard<</if>> the denouement of this exhibitionist fun, and seems intrigued.
 <br><br>
-<<EventNameLink $activeSlave>> hesitates before explaining herself, and the $desc is obviously aroused: <<if ($activeSlave.dick > 0) && ($activeSlave.dickAccessory == "chastity")>>she's got a string of precum leaking out of her chastity cage<<elseif ($activeSlave.dick > 0) && ($activeSlave.hormoneBalance >= 100)>>though her hormone-filled body can't get her dick hard any more, she's got a string of precum coming off her member<<elseif ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>>though her gelded body can't get her dick hard any more, she's got a string of precum coming off her limp member<<elseif $activeSlave.dick > 4>>her gigantic cock is standing out like a mast<<elseif $activeSlave.dick > 2>>she's sporting an impressive erection<<elseif $activeSlave.dick > 0>>her little penis is rock hard<<elseif $activeSlave.clit > 0>>her large clit is visibly engorged<<else>>her nipples are hard and there's a sheen on her pussylips<</if>>. There was a glint of envy in her eyes when she saw $subSlave.slaveName's satisfaction at being publicly used. It should be possible to either encourage this fascination with humiliation or steer her away from it for now.
+<<EventNameLink $activeSlave>> hesitates before explaining herself, and the $desc is obviously aroused:
+<<if ($activeSlave.dick > 0) && ["chastity", "combined chastity"].includes($activeSlave.dickAccessory)>>
+	she's got a string of precum leaking out of her chastity cage.
+<<elseif ($activeSlave.dick > 0) && ($activeSlave.hormoneBalance >= 100)>>
+	though her hormone-filled body can't get her dick hard any more, she's got a string of precum coming off her member.
+<<elseif ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>>
+	though her gelded body can't get her dick hard any more, she's got a string of precum coming off her limp member.
+<<elseif canAchieveErection($activeSlave)>>
+	<<if $activeSlave.dick > 4>>
+		her gigantic cock is standing out like a mast.
+	<<elseif $activeSlave.dick > 2>>
+		she's sporting an impressive erection.
+	<<elseif $activeSlave.dick > 0>>
+		her little penis is rock hard.
+	<</if>>
+<<elseif $activeSlave.dick > 7>>
+	she's got a string of precum coming off her engorged member.
+<<elseif $activeSlave.dick > 0>>
+	she's got a string of precum coming off her limp member.
+<<elseif $activeSlave.clit > 0>>
+	her large clit is visibly engorged.
+<<elseif $activeSlave.vagina > -1>>
+	her nipples are hard and there's a sheen on her pussylips.
+<<elseif $activeSlave.balls > 0>>
+	her nipples are hard and there is a distinct dribble of precum running from her featureless crotch.
+<<else>>
+	her nipples are hard and there is a clear scent of lust around her.
+<</if>>
+There was a glint of envy <<if canSee($activeSlave)>>in her eyes when she saw<<else>>across her face as she listened to<</if>> $subSlave.slaveName's satisfaction at being publicly used. It should be possible to either encourage this fascination with humiliation or steer her away from it for now.
 
 <<default>>
 	<br>ERROR: bad REFI event $REFIevent
@@ -909,11 +938,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 			<</if>>
 		<<else>>
 			<<if $activeSlave.lips > 70>>
-				She <<says>>s through her massive dick-sucking lips,
+				She <<say>>s through her massive dick-sucking lips,
 			<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-				She <<says>>s through her big oral piercings,
+				She <<say>>s through her big oral piercings,
 			<<else>>
-				She <<says>>s,
+				She <<say>>s,
 			<</if>>
 			"<<Master>>, I don't know. I ju<<s>>t thought that wa<<s>> really hot."
 		<</if>>
@@ -973,11 +1002,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 			<</if>>
 		<<else>>
 			<<if $activeSlave.lips > 70>>
-				She <<says>>s through her massive dick-sucking lips,
+				She <<say>>s through her massive dick-sucking lips,
 			<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-				She <<says>>s through her big oral piercings,
+				She <<say>>s through her big oral piercings,
 			<<else>>
-				She <<says>>s,
+				She <<say>>s,
 			<</if>>
 			"<<Master>>, I don't know. I ju<<s>>t thought that wa<<s>> really hot."
 		<</if>>
@@ -1031,11 +1060,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 			<</if>>
 		<<else>>
 			<<if $activeSlave.lips > 70>>
-				She <<says>>s through her massive dick-sucking lips,
+				She <<say>>s through her massive dick-sucking lips,
 			<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-				She <<says>>s through her big oral piercings,
+				She <<say>>s through her big oral piercings,
 			<<else>>
-				She <<says>>s,
+				She <<say>>s,
 			<</if>>
 			"<<Master>>, I don't know. I ju<<s>>t thought that wa<<s>> really hot."
 		<</if>>
@@ -1080,11 +1109,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 			<</if>>
 		<<else>>
 			<<if $activeSlave.lips > 70>>
-				She <<says>>s through her massive dick-sucking lips,
+				She <<say>>s through her massive dick-sucking lips,
 			<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-				She <<says>>s through her big oral piercings,
+				She <<say>>s through her big oral piercings,
 			<<else>>
-				She <<says>>s,
+				She <<say>>s,
 			<</if>>
 			"<<Master>>, I don't know. I ju<<s>>t thought that wa<<s>> really hot."
 		<</if>>
@@ -1208,11 +1237,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 		<</if>>
 	<<else>>
 		<<if $activeSlave.lips > 70>>
-			She <<says>>s through her massive dick-sucking lips,
+			She <<say>>s through her massive dick-sucking lips,
 		<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-			She <<says>>s through her big oral piercings,
+			She <<say>>s through her big oral piercings,
 		<<else>>
-			She <<says>>s,
+			She <<say>>s,
 		<</if>>
 		"<<Master>>, may I have a nipple orga<<s>>m, too?"
 	<</if>>
@@ -1322,11 +1351,11 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 		<</if>>
 	<<else>>
 		<<if $activeSlave.lips > 70>>
-			She <<says>>s through her massive dick-sucking lips,
+			She <<say>>s through her massive dick-sucking lips,
 		<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-			She <<says>>s through her big oral piercings,
+			She <<say>>s through her big oral piercings,
 		<<else>>
-			She <<says>>s,
+			She <<say>>s,
 		<</if>>
 		"<<Master>>, would you plea<<s>>e do me like that?"
 	<</if>>
@@ -1413,38 +1442,63 @@ You have $subSlave.slaveName pinned up against a railing on a balcony that overl
 <<link "Turn her into a cumslut too">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	Focusing a slave's sexuality on cum isn't as easy as some other manipulations, for the simple reason that even you have a limited supply of the stuff. So, you take another approach; you instruct $activeSlave.slaveName to accompany $subSlave.slaveName, and vice versa, whenever their duties permit. They're to act as sexual partners, and share cum whenever there's any forthcoming. They spend the week giving blowjobs whenever they can, and making out to swap the cum back and forth afterward. If someone insists on penetrating them instead, that just means that the other has to suck it out of her before they can share it. Most importantly, $activeSlave.slaveName is punished if she ever orgasms without cum in her mouth. Soon, she gets aroused by the mere scent of the stuff. @@.hotpink;She has become more submissive to you,@@ and @@.lightcoral;her sexuality now focuses on cum.@@
+	Focusing a slave's sexuality on cum isn't as easy as some other manipulations, for the simple reason that even you have a limited supply of the stuff and it would be a shame to waste it all on her. So, you take another approach; you instruct $activeSlave.slaveName to accompany $subSlave.slaveName, and vice versa, whenever their duties permit. They're to act as sexual partners, and share cum whenever there's any forthcoming. They spend the week giving blowjobs whenever they can, and making out to swap the cum back and forth afterward. If someone insists on penetrating them instead, that just means that the other has to suck it out of her before they can share it. Most importantly, $activeSlave.slaveName is punished if she ever orgasms without cum in her mouth. Soon, she gets aroused by the mere scent of the stuff. @@.hotpink;She has become more submissive to you,@@ and @@.lightcoral;her sexuality now focuses on cum.@@
 	<<set $activeSlave.devotion += 4>>
-	<<set $activeSlave.oralCount += 50>>
-	<<set $oralTotal += 50>>
-	<<set $activeSlave.fetish = "cumslut">>
+	<<set $activeSlave.oralCount += 50, $oralTotal += 50>>
+	<<set $activeSlave.fetish = "cumslut", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65>>
 	<</replace>>
 <</link>>
 <br><<link "Steer her away from cum obsession for the moment">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	Good slaves get aroused according to their masters' whim, not their own silly tendencies. You call $activeSlave.slaveName over before she can give voice to her interest in cum, and fuck her until she orgasms, but you are careful to keep your cum well away from her. You'll keep an eye on her, and with this correction @@.hotpink;she'll become more submissive to you.@@
-	<<SimpleVCheck>>
+	Good slaves get aroused according to their masters' whim, not their own silly tendencies. You call $activeSlave.slaveName over before she can give voice to her interest in cum, and
+	<<if (canDoVaginal($activeSlave) && $activeSlave.vagina > 0) || (canDoAnal($activeSlave) && $activeSlave.anus > 0)>>
+		fuck her until she orgasms, but you are careful to keep your cum well away from her.
+	<<else>>
+		enjoy her until she orgasms, making sure to not involve cum at all.
+	<</if>>
+	You'll keep an eye on her, and with this correction @@.hotpink;she'll become more submissive to you.@@
+	<<if canDoVaginal($activeSlave) && $activeSlave.vagina > 0>>
+		<<set $activeSlave.vaginalCount++, $vaginalTotal++>>
+	<<elseif canDoAnal($activeSlave) && $activeSlave.anus > 0>>
+		<<set $activeSlave.analCount++, $analTotal++>>
+	<</if>>
 	<<set $activeSlave.devotion += 4>>
 	<</replace>>
-<</link>><<if (($activeSlave.anus == 0) && ($activeSlave.vagina == -1)) || ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>>
+<</link>>
 
 <<case "humiliation">>
 
 <<link "Turn her into a humiliation fetishist too">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	You bring $activeSlave.slaveName to the railing $subSlave.slaveName just left. For a long while, you just play with her naked breasts, requiring her to look any member of the public below that stares at her right in the eyes. She sobs and shakes with abject embarrassment as she locks eyes with person after person. After enough of this, she's so sexually primed that she orgasms convulsively almost immediately after you enter her from behind. @@.hotpink;She has become more obedient,@@ and @@.lightcoral;her sexuality now focuses on public humiliation.@@
-	<<SimpleVCheck>>
-	<<set $activeSlave.fetish = "humiliation">>
-	<<set $activeSlave.fetishKnown = 1>><<set $activeSlave.fetishStrength = 65>>
+	You bring $activeSlave.slaveName to the railing $subSlave.slaveName just left. For a long while, you just play with her naked breasts, <<if canSee($activeSlave)>>requiring her to look any member of the public below that stares at her right in the eyes<<else>>making sure to keep her well informed of how many passersby are ogling her<</if>>. She sobs and shakes with abject embarrassment <<if canSee($activeSlave)>>as she locks eyes with person after person<<else>>whistle and catcall<</if>>. After enough of this, she's so sexually primed that she orgasms convulsively almost immediately 
+	<<if (canDoVaginal($activeSlave) && $activeSlave.vagina > 0) || (canDoAnal($activeSlave) && $activeSlave.anus > 0)>>
+		after you enter her from behind.
+	<<else>>
+		once run your hand across her crotch.
+	<</if>>
+	@@.hotpink;She has become more obedient,@@ and @@.lightcoral;her sexuality now focuses on public humiliation.@@
+	<<if canDoVaginal($activeSlave) && $activeSlave.vagina > 0>>
+		<<VaginalVCheck>>
+	<<elseif canDoAnal($activeSlave) && $activeSlave.anus > 0>>
+		<<AnalVCheck>>
+	<</if>>
+	<<set $activeSlave.devotion += 4>>
+	<<set $activeSlave.fetish = "humiliation", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 65>>
 	<</replace>>
 <</link>><<if ($activeSlave.anus == 0) || ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>>
 <br><<link "Steer her away from humiliation fetishism for the moment">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	Good slaves get aroused according to their masters' whim, not their own silly tendencies. You call $activeSlave.slaveName over before she can give voice to her interest in humiliation and fuck her privately in your office. You'll keep an eye on her, and with this correction @@.hotpink;she'll become more obedient.@@
-	<<SimpleVCheck>>
+	<<if canDoVaginal($activeSlave) && $activeSlave.vagina > 0>>
+		<<VaginalVCheck>>
+	<<elseif canDoAnal($activeSlave) && $activeSlave.anus > 0>>
+		<<AnalVCheck>>
+	<<else>>
+		<<SimpleSexAct $activeSlave>>
+	<</if>>
 	<<set $activeSlave.devotion += 4>>
 	<</replace>>
 <</link>><<if ($activeSlave.anus == 0) || ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index b30abea75125b2ad752a94302b3b90bcff6bc4e2..7901dcc934520d0ddfe35f29d87a168d9603a50e 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -383,11 +383,11 @@ She comes to you for an inspection
 <<if $ui != "start">>
 <<if $week-$activeSlave.weekAcquired > 0>>
 
-<<set $seed = $week-$activeSlave.weekAcquired>>
+<<set _weeksOwned = $week-$activeSlave.weekAcquired>>
 $pronounCap has been with you
 <<if $activeSlave.weekAcquired == 1>>
 	since before you owned the arcology,
-<<elseif $seed > 1>>
+<<elseif _weeksOwned > 1>>
 	<<print $week-$activeSlave.weekAcquired>> weeks,
 <<else>>
 	one week,
@@ -420,43 +420,43 @@ $pronounCap has been with you
 	has had little or no sexual experience as your slave yet.
 <</if>>
 
-<<if ($seed*112)/$activeSlave.analCount < 4>>
+<<if (_weeksOwned*112)/$activeSlave.analCount < 4>>
   Remarkably, this means that $pronoun's been buttfucked
-  <<if ($seed*112)/$activeSlave.analCount < 1>>
+  <<if (_weeksOwned*112)/$activeSlave.analCount < 1>>
 	more than once every hour
-  <<elseif ($seed*112)/$activeSlave.analCount < 1.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.analCount < 1.5>>
 	about once every hour
-  <<elseif ($seed*112)/$activeSlave.analCount < 2.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.analCount < 2.5>>
 	about once every two hours
-  <<elseif ($seed*112)/$activeSlave.analCount < 3.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.analCount < 3.5>>
 	about once every three hours
   <<else>>
 	about once every four hours
   <</if>>
   $pronoun's spent awake.
-<<elseif ($seed*112)/$activeSlave.oralCount < 4>>
+<<elseif (_weeksOwned*112)/$activeSlave.oralCount < 4>>
   Remarkably, this means that $pronoun's sucked something off
-  <<if ($seed*112)/$activeSlave.oralCount < 1>>
+  <<if (_weeksOwned*112)/$activeSlave.oralCount < 1>>
 	more than once every hour
-  <<elseif ($seed*112)/$activeSlave.oralCount < 1.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.oralCount < 1.5>>
 	about once every hour
-  <<elseif ($seed*112)/$activeSlave.oralCount < 2.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.oralCount < 2.5>>
 	about once every two hours
-  <<elseif ($seed*112)/$activeSlave.oralCount < 3.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.oralCount < 3.5>>
 	about once every three hours
   <<else>>
 	about once every four hours
   <</if>>
   $pronoun's spent awake.
-<<elseif ($seed*112)/$activeSlave.vaginalCount < 4>>
+<<elseif (_weeksOwned*112)/$activeSlave.vaginalCount < 4>>
   Remarkably, this means that $possessive pussy has been fucked
-  <<if ($seed*112)/$activeSlave.vaginalCount < 1>>
+  <<if (_weeksOwned*112)/$activeSlave.vaginalCount < 1>>
 	more than once every hour
-  <<elseif ($seed*112)/$activeSlave.vaginalCount < 1.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.vaginalCount < 1.5>>
 	about once every hour
-  <<elseif ($seed*112)/$activeSlave.vaginalCount < 2.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.vaginalCount < 2.5>>
 	about once every two hours
-  <<elseif ($seed*112)/$activeSlave.vaginalCount < 3.5>>
+  <<elseif (_weeksOwned*112)/$activeSlave.vaginalCount < 3.5>>
 	about once every three hours
   <<else>>
 	about once every four hours
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 4df29859a8257a1c1a795a44ba401b6a3209b290..d603f78ca8bb9192c33111cfa04e67db1c03c2b7 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -142,7 +142,7 @@ __''MAIN MENU''__&nbsp;&nbsp;&nbsp;&nbsp;//[[Summary Options]]//
 		<div class="content">
 			<<set $slaveAssignmentTab = "overview">>			
 			<<if def _HG>>
-				''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>>
+				''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.
 				<span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
 				<<set $showOneSlave = "Head Girl">>
 				<<include "Slave Summary">>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index d94f594282d3e29bedbf35367e518bd0acc423c5..0545bdcdc50311ffd560552b138b9645b44c2b7b 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -246,7 +246,7 @@
 <<set $averageProsperity = 0, $beauty = 0, $beautyMultiplier = 0, $boobsID = -1, $boobsInterestTargetID = -1, $brideSlave = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $FResult = 0, $groomSlave = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $i = 0, $individualCosts = 0, $influenceBonus = 0, $j = 0, $masochistID = -1, $masochistInterestTargetID = -1, $opinion = 0, $r = 0, $subID = -1, $submissiveInterestTargetID = -1, $weddingSlaveID = -1, $x = 0, $mother = -1, $daughter = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>>
 
 /% Other arrays %/
-<<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $qualifiedNicknames = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $devotedSlaves = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $qualifiedFS = []>>
+<<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $qualifiedNicknames = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $devotedSlaves = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $qualifiedFS = [], $eligibleSlaves = [], $slavesInLine = []>>
 
 /% Slave Objects using 0 instead of null. Second most memory eaten up. %/
 <<set $activeSlave = 0, $eventSlave = 0, $slaveWithoutBonuses = 0, $subSlave = 0, $milfSlave = 0, $milkTap = 0, $relation = 0>>
@@ -254,9 +254,6 @@
 /% Slave Objects that never get zeroed so null them here. Second most memory eaten up. %/
 <<set $beforeGingering = null, $sibling = null>>
 
-/% Slave Object Arrays. These can take up the most memory. %/
-<<set $eligibleSlaves = [], $slavesInLine = []>>
-
 /% Strings Memory varies. %/
 <<set $analSkinDesc = "", $applyDesc = "", $bellyAccessory = "", $buyer = "", $desc = "", $event = "", $goto = "", $malefactor = "", $nickname = "", $notApplyDesc = "", $oldName = "", $oldSurname = "", $situationDesc = "", $skinDesc = "", $k = "">>
 /% Done with zeroing out, what should be for the most part Temps %/
diff --git a/src/uncategorized/pPeacekeepersInfluence.tw b/src/uncategorized/pPeacekeepersInfluence.tw
index f1b0465748c37cc3816ff5974db42d6f9df97f58..37e0c9934906d504d730eff390116b467c0754df 100644
--- a/src/uncategorized/pPeacekeepersInfluence.tw
+++ b/src/uncategorized/pPeacekeepersInfluence.tw
@@ -8,7 +8,7 @@ General $peacekeepers.generalName has successfully declared his independence fro
 
 <br><br>
 
-You provided money to General $peacekeepers.generalName to help him through this difficult time of transition, making him an investment of yours. That investment has already shown a small return; the first regular tribute of slaves arrived this week, free of charge. General $peacekeepers.generalName seems determined to pay his debts properly, and he sent you good stock, healthy menials ready for <<if $Helots>>work<<if $Sweatshops>>. They're already toiling away in $arcologies[0].name's sweatshops<</if>><<else>>resale<</if>>. Even better, it seems you can expect to receive a similar shipment in perpetuity. The number of downtrodden people living in the ruins of a small country dwarfs even a Free City's appetite for slaves.
+You provided money to General $peacekeepers.generalName to help him through this difficult time of transition, making him an investment of yours. That investment has already shown a small return; the first regular tribute of slaves arrived this week, free of charge. General $peacekeepers.generalName seems determined to pay his debts properly, and he sent you good stock, healthy menials ready for <<if $helots>>work<<if $Sweatshops>>. They're already toiling away in $arcologies[0].name's sweatshops<</if>><<else>>resale<</if>>. Even better, it seems you can expect to receive a similar shipment in perpetuity. The number of downtrodden people living in the ruins of a small country dwarfs even a Free City's appetite for slaves.
 
 <br><br>
 
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index 23c795dc4398d581bc06ac85fccd3f18cc360e00..9b01bd906a4940db399f2246608236bfd89959ed 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -208,10 +208,8 @@
 			<</if>>
 		<<elseif ($slaves[$i].fetish == "cumslut")>>
 			<<if ($cumslutID == 0)>>
-				<<if $PC.dick == 1>>
-					<<if !["dildo gag", "massive dildo gag", "ball gag", "bit gag"].includes($slaves[$i].collar)>>
-						<<set $cumslutID = $slaves[$i].ID>>
-					<</if>>
+				<<if !["dildo gag", "massive dildo gag", "ball gag", "bit gag"].includes($slaves[$i].collar)>>
+					<<set $cumslutID = $slaves[$i].ID>>
 				<</if>>
 			<</if>>
 		<<elseif ($slaves[$i].fetish == "submissive")>>
@@ -221,16 +219,16 @@
 				<</if>>
 			<</if>>
 		<<elseif ($slaves[$i].fetish == "humiliation")>>
-			<<if ($slaves[$i].anus > 0)>>
-			<<if ($humiliationID == 0)>>
-				<<set $humiliationID = $slaves[$i].ID>>
-			<</if>>
+			<<if (($slaves[$i].anus > 0 && canDoAnal($slaves[$i])) || ($slaves[$i].vagina > 0 && canDoVaginal($slaves[$i])) && $slaves[$i].belly < 30000)>>
+				<<if ($humiliationID == 0)>>
+					<<set $humiliationID = $slaves[$i].ID>>
+				<</if>>
 			<</if>>
 		<<elseif ($slaves[$i].fetish == "boobs")>>
 			<<if ($slaves[$i].lactation > 0)>>
-			<<if ($boobsID == 0)>>
-				<<set $boobsID = $slaves[$i].ID>>
-			<</if>>
+				<<if ($boobsID == 0)>>
+					<<set $boobsID = $slaves[$i].ID>>
+				<</if>>
 			<</if>>
 		<<elseif ($slaves[$i].fetish == "pregnancy")>>
 			<<if ($pregnancyID == 0)>>
@@ -255,10 +253,8 @@
 	<<if isSlaveAvailable($slaves[$i])>>
 		<<if ($slaves[$i].fetish == "none") || ($slaves[$i].fetishStrength <= 60)>>
 			<<if ($buttslutID != 0) && ($buttslutInterestTargetID == 0)>>
-				<<if ($slaves[$i].anus != 0)>>
-					<<set $REFIevent.push("buttslut")>>
-					<<set $buttslutInterestTargetID = $slaves[$i].ID>>
-				<</if>>
+				<<set $REFIevent.push("buttslut")>>
+				<<set $buttslutInterestTargetID = $slaves[$i].ID>>
 			<</if>>
 			<<if ($cumslutID != 0) && ($cumslutInterestTargetID == 0)>>
 				<<if $PC.dick == 1>>
diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw
index 86372efe1f4cce658a9619223cc0fc6b0fadf044..ad484e8edd09389b7b653a5b31eff63ecb17a7b0 100644
--- a/src/uncategorized/reBoomerang.tw
+++ b/src/uncategorized/reBoomerang.tw
@@ -67,7 +67,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 			<<if $seeAge == 1>>
 				<<set $activeSlave.physicalAge += 1, $activeSlave.actualAge += 1, $activeSlave.visualAge += 1>>
 				<<set $activeSlave.ovaryAge += either(.8, .9, .9, 1, 1, 1, 1.1)>>
-				<<if $activeSlave.physicalAge <= 18 && $loliGrow == 1>>
+				<<if $activeSlave.physicalAge <= 18 && $loliGrow == 0>>
 					<<PhysicalDevelopment $activeSlave>>
 				<</if>>
 			<</if>>
diff --git a/src/uncategorized/saDevotion.tw b/src/uncategorized/saDevotion.tw
index 5c5daaa406568f567ede3d78e2c8df10366ce09b..5fbe96c1da52e2e48229095eaed8a1d3535caae8 100644
--- a/src/uncategorized/saDevotion.tw
+++ b/src/uncategorized/saDevotion.tw
@@ -41,7 +41,7 @@
 	<</if>>
 <</if>>
 
-<<if $PC.preg >= 20>>
+<<if $PC.preg >= 20 || ($PC.preg >= 16 && $PC.career == "escort")>>
 	<<if $slaves[$i].devotion > 60>>
 		<<if $PC.pregMood == 2>>
 			She is devoted to you and does her best to satisfy your demanding, hormone driven libido, no matter what you want from her. Her efforts to give herself you to @@.hotpink;further her submission@@ to you.
@@ -66,31 +66,6 @@
 			<<set $slaves[$i].devotion -= 3>>
 		<</if>>
 	<</if>>
-<<elseif $PC.preg >= 16 && $PC.career == "escort">>
-	<<if $slaves[$i].devotion > 60>>
-		<<if $PC.pregMood == 2>>
-			She is devoted to you and does her best to satisfy your demanding, hormonal driven libido, no matter what you want from her. Her efforts to give herself you to @@.hotpink;further her submission@@ to you.
-			<<set $slaves[$i].devotion += 2>>
-		<<elseif $PC.pregMood == 1>>
-			She is devoted to you and tries her best to accommodate your needs and desires. Your hormonal mothering @@.mediumaquamarine;leaves her slightly more trusting@@ of you.
-			<<set $slaves[$i].trust += 2>>
-		<<else>>
-			She is devoted to you and tries her best to accommodate your needs and desires.
-		<</if>>
-	<<else>>
-		<<if $PC.pregMood == 2>>
-			She is @@.gold;horrified@@ of your aggressive sexual advances, forcing her @@.hotpink;bend to your will@@ or face punishment at the hands of a hormonal pregnant woman.
-			<<set $slaves[$i].devotion += 4>>
-			<<set $slaves[$i].trust -= 4>>
-		<<elseif $PC.pregMood == 1>>
-			She happily @@.mediumorchid;takes advantage@@ of your hormone induced kindness, though your care @@.mediumaquamarine;builds her trust in you.@@
-			<<set $slaves[$i].devotion -= 4>>
-			<<set $slaves[$i].trust += 4>>
-		<<else>>
-			She takes note of your gravid form and @@.mediumorchid;begins testing just how much she can get away with@@ while she can.
-			<<set $slaves[$i].devotion -= 3>>
-		<</if>>
-	<</if>>
 <</if>>
 <<if $slaves[$i].dick > 0 && canAchieveErection($slaves[$i]) && $PC.preg >= 18>>
 	<<if $PC.pregMood == 2>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 2353e99a738fc9a8c0dff4d83bae45843c3373c8..e43018e5096aceec4e37efb45619e131c299898f 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -4909,13 +4909,13 @@
 <<set $pornFameBonus = 1>>
 <<if $studio == 1>>
 <<if $slaves[$i].pornFameSpending > 0>>
-	<<set $pornFameBonus += 0.2 + (($slaves[$i].pornFameSpending/10000)*$HackingSkillMultiplier)>>
+	<<set $pornFameBonus += 0.2 + (($slaves[$i].pornFameSpending/10000)/$HackingSkillMultiplier)>>
 	<<if ($slaves[$i].pornFameSpending >= 4000)>>
-	$possessiveCap near-ubiquitous presence in arcology pornography greatly increases $possessive impact on society.
+		$possessiveCap near-ubiquitous presence in arcology pornography greatly increases $possessive impact on society.
 	<<elseif ($slaves[$i].pornFameSpending >= 2000)>>
-	$possessiveCap presence in arcology pornography increases $possessive impact on society.
+		$possessiveCap presence in arcology pornography increases $possessive impact on society.
 	<<else>>
-	$possessiveCap occasional presence in arcology pornography slightly increases $possessive impact on society.
+		$possessiveCap occasional presence in arcology pornography slightly increases $possessive impact on society.
 	<</if>>
 <</if>>
 <</if>>
@@ -6097,9 +6097,9 @@
 		<<elseif !canWalk($slaves[$i]) && ($slaves[$i].diet != "muscle building")>>
 			<<if $slaves[$i].muscles > -80>>
 				Since she is incapable of moving herself,
-				<<if $universalRulesImmobileSlavesMaintainMuscles == 1 && $slaves[$i].muscles > 5>>
+				<<if $universalRulesImmobileSlavesMaintainMuscles == 1 && $slaves[$i].muscles >= 0>>
 					and is required to maintain her musculature, she regularly lifts weights to stave off muscular atrophy.
-				<<elseif $slaves[$i].muscles > 5>>
+				<<elseif $slaves[$i].muscles >= -5>>
 					she steadily @@.orange;loses muscle definition.@@
 					<<set $slaves[$i].muscles-->>
 				<<else>>
@@ -7123,13 +7123,13 @@
 <<if $slaves[$i].pornFameSpending > 0>>
 	<<set _oldFame = $slaves[$i].pornFame>>
 	<<if ($slaves[$i].pornFame < 35) && ($slaves[$i].prestige > 1)>>
-	Interest in porn of $object is very high, since $pronoun's already quite prestigious.
-	<<set $slaves[$i].pornFame += 1*$HackingSkillMultiplier>>
+		Interest in porn of $object is very high, since $pronoun's already quite prestigious.
+		<<set $slaves[$i].pornFame += 1/$HackingSkillMultiplier>>
 	<<elseif ($slaves[$i].pornFame < 10) && ($slaves[$i].prestige > 0)>>
-	Interest in porn of $object is high, since $pronoun's already prestigious.
-	<<set $slaves[$i].pornFame += 1*$HackingSkillMultiplier>>
+		Interest in porn of $object is high, since $pronoun's already prestigious.
+		<<set $slaves[$i].pornFame += 1/$HackingSkillMultiplier>>
 	<</if>>
-	<<set $slaves[$i].pornFame += (($slaves[$i].pornFameSpending/1000)*$HackingSkillMultiplier)>>
+	<<set $slaves[$i].pornFame += (($slaves[$i].pornFameSpending/1000)/$HackingSkillMultiplier)>>
 	<<if ($slaves[$i].prestige < 3) && ($slaves[$i].pornFame >= 100) && (_oldFame < 100)>>
 		<<set $slaves[$i].prestige = 3>>
 		@@.green;$pronounCap has become world famous for $possessive career in slave pornography!@@ Millions are now intimately familiar with
@@ -7278,8 +7278,8 @@
 	so it is now prestigious to own $object.
 	<</if>>
 	<<if ($slaves[$i].prestige >= 3)>>
-	Further paid publicity cannot increase $possessive fame, so subsidy of porn featuring $object has stopped.
-	<<set $slaves[$i].pornFameSpending = 0>>
+		Further paid publicity cannot increase $possessive fame, so subsidy of porn featuring $object has stopped.
+		<<set $slaves[$i].pornFameSpending = 0>>
 	<</if>>
 <</if>>
 <</if>>
@@ -7288,13 +7288,13 @@
 <<if $slaves[$i].birthWeek >= 51>>
 	$possessiveCap birthday was this week<<if $seeAge == 1>>; $pronoun turned <<print $slaves[$i].physicalAge+1>><</if>>.
 	<<if $slaves[$i].fuckdoll > 0>>
-	It did not know.
+		It did not know.
 	<<elseif $slaves[$i].devotion > 50>>
-	She did not notice.
+		She did not notice.
 	<<elseif $week-$slaves[$i].weekAcquired > 10>>
-	She remembered it only dimly.
+		She remembered it only dimly.
 	<<else>>
-	She remembered it, but no one cared.
+		She remembered it, but no one cared.
 	<</if>>
 <</if>>
 <<if $manuallyRetired == 0>>
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index 957d119034380947246ce22766ff85eb4a23288d..db5b3a01e665b240d087b180dfbbd6f5b2357aad 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -5,6 +5,7 @@ serves you this week.
 <<set _trainingEfficiency = 5+Math.trunc($slaves[$i].devotion/30)+$slaves[$i].intelligence>>
 <<set $skillIncrease = _trainingEfficiency>>
 <<set _oralUse = 0, _analUse = 0, _vaginalUse = 0, _mammaryUse = 0, _penetrativeUse = 0>>
+<<fetishChangeChance $slaves[$i]>>
 
 <<if ($slaves[$i].toyHole != "all her holes")>>
 	<<if $slaves[$i].toyHole == "pussy">>
@@ -913,4 +914,20 @@ Keeping $object as nothing but your personal
 	$slaves[$i].slaveName knows being part of your harem is the best romance $pronoun can realistically expect, and does $possessive best to @@.mediumaquamarine;be content@@ with it.
 	<<set $slaves[$i].trust += 1>>
 <</if>>
+<<if $slaves[$i].fetish != "mindbroken">>
+	<<if $slaves[$i].fetish == "pregnancy" && ($PC.preg >= 20 || ($PC.preg >= 16 && $PC.career == "escort"))>>
+		$slaves[$i].slaveName @@.hotpink;enjoys being so close her gravid <<WrittenMaster $slaves[$i]>>.@@
+		<<set $slaves[$i].devotion += 1>>
+		<<if $slaves[$i].fetishKnown == 0>>
+			She enjoys being tasked with servicing a pregnant woman far more than a normal slave would; @@.lightcoral;she's harboring a pregnancy fetish!@@
+			<<set $slaves[$i].fetishKnown = 1>>
+		<<elseif $slaves[$i].fetishStrength < 95>>
+			Being tasked with servicing a lusty pregnant woman @@.lightcoral;strengthens her pregnancy fetish.@@
+			<<set $slaves[$i].fetishStrength += 4>>
+		<</if>>
+	<<elseif $fetishChangeChance > random(0,100) && ($PC.preg >= 20 || ($PC.preg >= 16 && $PC.career == "escort"))>>
+		At first she found the prospect of being used by her increasingly pregnant <<WrittenMaster $slaves[$i]>> a turn off, but being so close to your gravid form serves to be more erotic than she anticipated. Soon she finds herself aroused less from the prospect of sex and more @@.lightcoral;the chance to be near your child laden belly.@@
+		<<set $slaves[$i].fetish = "pregnancy", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+	<</if>>
+<</if>>
 <</if>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index c0ba33e94bcd45ccdcfc3458a390481f7751cfe0..55d1dd28798697b2ffdbceaae665749097c043d0 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -50,7 +50,7 @@
 
 <br><br>__Take slave to another room:__
 [[Wardrobe|Wardrobe Use][$degradation = 0]]
-| [[Auto salon|Salon][$degradation = 0,$primaryHairColor = "",$secondaryHairColor = "",$artificialEyeColor = "",$artificialEyeShape = "",$tattooChoice = "",$piercingLocation = "",$piercingLevel = ""]]
+| [[Auto salon|Salon][$degradation = 0,$primaryHairColor = "",$secondaryHairColor = "",$artificialEyeColor = "",$artificialEyeShape = "",$tattooChoice = "",$piercingLevel = ""]]
 | [[Body mod studio|Body Modification][$degradation = 0]]
 | [[Remote surgery|Remote Surgery][$degradation = 0]]
 <<if $cyberMod == 1>>| [[Configure cybernetics|cyberConfig][$temp = 0]]<</if>>
diff --git a/src/uncategorized/wardrobe.tw b/src/uncategorized/wardrobe.tw
index 4a7ed5cf5fba55d4b1917c599c5eb287d505123e..dd40ee48fe96042719cb265068dac64ecfbf9976 100644
--- a/src/uncategorized/wardrobe.tw
+++ b/src/uncategorized/wardrobe.tw
@@ -1,168 +1,211 @@
-:: Wardrobe
+:: Wardrobe [nobr]
+
 
-<<nobr>>
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse">>
-<</nobr>>\
-\
+
 ''__Slave Wardrobe__''
-//The room containing all the clothes and accessories you have available to dress your slaves in, as well as the supplies and tools your tailor needs to resize them to better fit your slaves.  Several mirrors are set up for a slave to try on outfits should she be allowed to dress herself.  The selection includes <<if ($cheatMode == 1) || (($clothesBoughtBunny == 1 || $arcologies[0].FSGenderFundamentalist != "unset") && ($clothesBoughtChains == 1 || $arcologies[0].FSDegradationist != "unset") && ($clothesBoughtConservative == 1 || $arcologies[0].FSPaternalist != "unset") && ($clothesBoughtWestern == 1 || $arcologies[0].FSPastoralist != "unset") && ($clothesBoughtOil == 1 || $arcologies[0].FSPhysicalIdealist != "unset") && ($clothesBoughtHabit == 1 || $arcologies[0].FSChattelReligionist != "unset") && ($clothesBoughtToga == 1 || $arcologies[0].FSRomanRevivalist != "unset") && ($clothesBoughtHuipil == 1 || $arcologies[0].FSAztecRevivalist != "unset") && ($clothesBoughtKimono == 1 || $arcologies[0].FSEdoRevivalist != "unset") && ($clothesBoughtHarem == 1 || $arcologies[0].FSArabianRevivalist != "unset") && ($clothesBoughtQipao == 1 || $arcologies[0].FSChineseRevivalist != "unset") && ($clothesBoughtEgypt == 1 || $arcologies[0].FSEgyptianRevivalist != "unset") && ($clothesBoughtMaternityDress == 1 || $arcologies[0].FSRepopulationFocus != "unset") && ($clothesBoughtMaternityLingerie == 1 || $arcologies[0].FSRepopulationFocus != "unset") && ($clothesBoughtBelly == 1 || $arcologies[0].FSRepopulationFocus != "unset") && ($clothesBoughtLazyClothes == 1 || $arcologies[0].FSHedonisticDecadence != "unset"))>>outfits from all manner of cultures and societies, not a single style eludes you.<<else>>many styles of clothing ranging from exciting to mundane and sexy to practical.<</if>><<if $toysBoughtDildos == 1 && $toysBoughtGags == 1 && $toysBoughtButtPlugs == 1>> Sex toys of all kinds and shapes line the shelves.<<elseif $toysBoughtDildos == 1 || $toysBoughtGags == 1 || $toysBoughtButtPlugs == 1 || $toysBoughtButtPlugTails == 1>> Some sex toys line the shelves.<</if>><<if $buckets == 1>>Several buckets of various sizes and a sturdy cup have been set aside for you in feeding slaves to their limit.<</if>><<if $enema == 1>> A number of drums of specially formulated water for use in enemas line one of the walls.<</if>><<if $medicalEnema == 1>> Alongside them, multiple drums of mixtures for use in medical enemas.<</if>>//
 <br>
-<<nobr>>
-<<if $clothesBoughtBunny == 0 && $arcologies[0].FSGenderFundamentalist == "unset" && $cheatMode == 0>>
+//
+The room containing all the clothes and accessories you have available to dress your slaves in, as well as the supplies and tools your tailor needs to resize them to better fit your slaves. Several mirrors are set up for a slave to try on outfits should she be allowed to dress herself. The selection includes
+<<if ($cheatMode == 1) || (isItemAccessible("a bunny outfit") && isItemAccessible("chains") && isItemAccessible("conservative clothing") && isItemAccessible("Western clothing") && isItemAccessible("body oil") && isItemAccessible("a chattel habit") && isItemAccessible("a toga") && isItemAccessible("a huipil") && isItemAccessible("a kimono") && isItemAccessible("harem gauze") && isItemAccessible("a slutty qipao") && isItemAccessible("ancient Egyptian") && isItemAccessible("a maternity dress") && isItemAccessible("attractive lingerie for a pregnant woman") && isItemAccessible("a small empathy belly") && isItemAccessible("stretch pants and a crop-top"))>>
+	outfits from all manner of cultures and societies; not a single style eludes you.
+<<else>>
+	many styles of clothing ranging from exciting to mundane and sexy to practical.
+<</if>>
+<<if $toysBoughtDildos == 1 && $toysBoughtGags == 1 && $toysBoughtButtPlugs == 1>>
+	Sex toys of all kinds and shapes line the shelves.
+<<elseif $toysBoughtDildos == 1 || $toysBoughtGags == 1 || $toysBoughtButtPlugs == 1 || $toysBoughtButtPlugTails == 1>>
+	Some sex toys line the shelves.
+<</if>>
+<<if $buckets == 1>>
+	Several buckets of various sizes and a sturdy cup have been set aside for you in feeding slaves to their limit.
+<</if>>
+<<if $enema == 1>>
+	A number of drums of specially formulated water for use in enemas line one of the walls.
+<</if>>
+<<if $medicalEnema == 1>>
+	Alongside them, multiple drums of mixtures for use in medical enemas.
+<</if>>
+//
+
+<br>
+<<if !isItemAccessible("a bunny outfit")>>
 	[[Order a shipment of bunny suits|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtBunny = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with classic bunny suits and bowties.<</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtConservative == 0 && $arcologies[0].FSPaternalist == "unset" && $cheatMode == 0>>
+<<else>>
+	You are well stocked with classic bunny suits and bowties.
+<</if>>
+
+<br>
+<<if !isItemAccessible("conservative clothing")>>
 	[[Order a shipment of conservative clothes|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtConservative = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with modest outfits.
+<<else>>
+	You are well stocked with modest outfits.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtChains == 0 && $arcologies[0].FSDegradationist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("chains")>>
 	[[Order a shipment of chains|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtChains = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with various lengths of binding chains.
+<<else>>
+	You are well stocked with various lengths of binding chains.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtWestern == 0 && $arcologies[0].FSPastoralist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("Western clothing")>>
 	[[Order a shipment of western outfits|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtWestern = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with cowgirl outfits.
+<<else>>
+	You are well stocked with cowgirl outfits.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtOil == 0 && $arcologies[0].FSPhysicalIdealist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("body oil")>>
 	[[Order a shipment of body oil|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtOil = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with various body oils.
+<<else>>
+	You are well stocked with various body oils.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtLazyClothes == 0 && $arcologies[0].FSHedonisticDecadence == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("stretch pants and a crop-top")>>
 	[[Order a shipment of comfortable, rather stretchy, clothes|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtLazyClothes = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with various comfy pants and rather tight crop-tops.
+<<else>>
+	You are well stocked with various comfy pants and rather tight crop-tops.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtHabit == 0 && $arcologies[0].FSChattelReligionist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a chattel habit")>>
 	[[Order a shipment of chattel habits|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtHabit = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with habits from the chattel religion.
+<<else>>
+	You are well stocked with habits from the chattel religion.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtEgypt == 0 && $arcologies[0].FSEgyptianRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("ancient Egyptian")>>
 	[[Order a shipment of Egyptian necklaces|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtEgypt = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with ancient Egyptian necklaces.
+<<else>>
+	You are well stocked with ancient Egyptian necklaces.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtToga == 0 && $arcologies[0].FSRomanRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a toga")>>
 	[[Order a shipment of togas|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtToga = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with fine roman-styled togas.
+<<else>>
+	You are well stocked with fine roman-styled togas.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtHuipil == 0 && $arcologies[0].FSAztecRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a huipil")>>
 	[[Order a shipment of huipil|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtHuipil = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with exquisite Aztec Huipil.
+<<else>>
+	You are well stocked with exquisite Aztec Huipil.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtKimono == 0 && $arcologies[0].FSEdoRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a kimono")>>
 	[[Order a shipment of kimonos|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtKimono = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
 <<else>>You are well stocked with elegant Japanese Kimonos.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtHarem == 0 && $arcologies[0].FSArabianRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("harem gauze")>>
 	[[Order a shipment of harem outfits|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtHarem = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with Arabic harem garb made from the finest available silks.
+<<else>>
+	You are well stocked with Arabic harem garb made from the finest available silks.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtQipao == 0 && $arcologies[0].FSChineseRevivalist == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a slutty qipao")>>
 	[[Order a shipment of qipaos|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtQipao = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with slutty Chinese qipaos.
+<<else>>
+	You are well stocked with slutty Chinese qipaos.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtMaternityDress == 0 && $arcologies[0].FSRepopulationFocus == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("a maternity dress")>>
 	[[Order a shipment of maternity dresses|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtMaternityDress = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with dresses specially tailored for pregnant women.
+<<else>>
+	You are well stocked with dresses specially tailored for pregnant women.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtMaternityLingerie == 0 && $arcologies[0].FSRepopulationFocus == "unset" && $cheatMode == 0>>
+
+<br>
+<<if !isItemAccessible("attractive lingerie for a pregnant woman")>>
 	[[Order a shipment of maternity lingerie|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clothesBoughtMaternityLingerie = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with sexy silken lingerie designed for pregnant women.
+<<else>>
+	You are well stocked with sexy silken lingerie designed for pregnant women.
 <</if>>
-<</nobr>>
-<<nobr>>
-<<if $clothesBoughtBelly == 0 && $cheatMode == 0 && $arcologies[0].FSRepopulationFocus == "unset">>
+
+<br>
+<<if !isItemAccessible("a small empathy belly")>>
 	[[Order a shipment of fake pregnancy bellies|Wardrobe][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $clothesBoughtBelly = 1]]
 	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with silicone pregnancy bellies modeled after variously sized women.
+<<else>>
+	You are well stocked with silicone pregnancy bellies modeled after variously sized women.
 <</if>>
-<</nobr>>
 
-<<nobr>>
+<br><br>
 <<if $toysBoughtDildos == 0>>
 	[[Order a shipment of extra long dildos|Wardrobe][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $toysBoughtDildos = 1]]
 	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with extra long dildos in a variety of sizes.
+<<else>>
+	You are well stocked with extra long dildos in a variety of sizes.
 <</if>>
+
 <br>
 <<if $toysBoughtButtPlugs == 0>>
 	[[Order a shipment of extra long buttplugs|Wardrobe][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $toysBoughtButtPlugs = 1]]
 	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with extra long buttplugs in a variety of sizes.
+<<else>>
+	You are well stocked with extra long buttplugs in a variety of sizes.
 <</if>>
+
 <br>
 <<if $toysBoughtButtPlugTails == 0>>
 	[[Order a shipment of attachable tails|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $toysBoughtButtPlugTails = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with tails to attach to your buttplugs.
+<<else>>
+	You are well stocked with tails to attach to your buttplugs.
 <</if>>
+
 <br>
 <<if $toysBoughtGags == 0>>
 	[[Order a shipment of extra long dildo gags|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $toysBoughtGags = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with extra long dildo gags.
+<<else>>
+	You are well stocked with extra long dildo gags.
 <</if>>
-<</nobr>>
 
-<<nobr>>
+<br><br>
 <<if $buckets == 0>>
 	[[Gather up everything you need to force feed slaves|Wardrobe][$buckets = 1]]
 	//Some supplies from the cafeteria and a slight adjustment to the feeder settings is all it would take.//
-<<else>>You have everything you need in one place to force feed slaves. You've also adjusted the feeders to cheaply produce filler food to save on money. However, said food is just empty calories and probably bad for a slave's waistline.
+<<else>>
+	You have everything you need in one place to force feed slaves. You've also adjusted the feeders to cheaply produce filler food to save on money. However, said food is just empty calories and probably bad for a slave's waistline.
 <</if>>
-<</nobr>>
 
-<<nobr>>
+<br>
 <<if $enema == 0>>
 	[[Order enema supplies|Wardrobe][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $enema = 1]]
 	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>//
-<<else>>You are well stocked with specially formulated liquids to be used safely for long term enemas along with the tools needed to keep a slave bloated for extended periods of time.
+<<else>>
+	You are well stocked with specially formulated liquids to be used safely for long term enemas along with the tools needed to keep a slave bloated for extended periods of time.
 	<<if $medicalEnema == 0>>
 		[[Order medical enema supplies|Wardrobe][$cash -= Math.trunc(25000*$upgradeMultiplierArcology), $medicalEnema = 1]]
 		//Costs <<print cashFormat(Math.trunc(25000*$upgradeMultiplierArcology))>>//
 	<<else>>
-		You are well stocked with drugs to be mixed with the enema water for use in medical enemas.
+		You are also well stocked with drugs to be mixed with the enema water for use in medical enemas.
 	<</if>>
 <</if>>
-<</nobr>>
+
diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw
index c6826e353bfc857269732e446f6922f83226fb8b..bf26b8a9d4ec561b1783d6a713cd9ab81b9fe40d 100644
--- a/src/uncategorized/wardrobeUse.tw
+++ b/src/uncategorized/wardrobeUse.tw
@@ -326,6 +326,8 @@ Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
 	<<replace "#clothingDescription">><br>//<<ClothingDescription>>//<</replace>>
 <</link>>
 
+<</if>> /* closes fuckdoll check for color picker */
+
 <br>&nbsp;&nbsp;&nbsp;&nbsp;//Color://
 
 <<if ($seeImages == 1) && ($imageChoice == 1)>>
@@ -351,10 +353,14 @@ Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
 		<<goto "Wardrobe Use">>
 	<</link>>
 	<br>
-	//Note: Only latex outfits support a custom color.//
+	&nbsp;&nbsp;&nbsp;&nbsp;//Note: Only latex outfits support a custom color.//
 	<<unset _clothingBaseColor>> /* clean up temporary variable */
+<<else>>
+	//Custom outfit color is currently only used for embedded vector art by NoX &amp; deepmurk.//
 <</if>>
 
+<<if $activeSlave.fuckdoll == 0>> /* begin fuckdoll check */
+
 <br>
 
 <br>Collar: ''<span id="collar">$activeSlave.collar</span>.''
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 93c301c1b343ae6572e94ce594c4512f6ac6bfad..c9e980704fd364cf9dcd46eb900bd321b799a6a8 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -38,7 +38,7 @@
 <<if $useSlaveSummaryOverviewTab != 1>> /* Hide this block if it will be shown on the overview tab */
 	<br>
 	<<if def _HG>>
-		''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>>
+		''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.
 		<span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
 	<<elseif (ndef _HG) && ($slaves.length > 1)>>
 		You have not selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@