diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 19c455f0e9e11703faa0400160313f778cb5193d..43e39ad512579482d89bf912efeb39e0a0870903 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -9576,7 +9576,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignmentVisible = 0;
 			V.farmyardSlaves++;
 			V.FarmyardiIDs.push(slave.ID);
-			switch (V.dairyDecoration) {
+			switch (V.farmyardDecoration) {
 				case "Aztec Revivalist":
 				case "Chinese Revivalist":
 				case "Chattel Religionist":
diff --git a/src/facilities/nursery/placeInNursery.tw b/src/facilities/nursery/placeInNursery.tw
deleted file mode 100644
index a233eae109a7791d323e896b97fd9144115925ec..0000000000000000000000000000000000000000
--- a/src/facilities/nursery/placeInNursery.tw
+++ /dev/null
@@ -1,60 +0,0 @@
-:: Place In Nursery
-
-/*	CURRENTLY NOT IN USE
-<<silently>>
-
-<<set $childrenInLine = []>>
-<<set _activeChildIndex = $childIndices[$activeSlave.ID]>>
-<<set _CL = $cribs.length>>
-
-<<if ($activeSlave.assignmentVisible == 1)>>
-	<<for _pin = _activeChildIndex - 1; _pin != _activeChildIndex; _pin-->> /* loops backwards through the $cribs array *//*
-		<<if _pin < 0>>
-			<<set _pin = _CL>>
-			<<continue>>
-		<</if>>
-		<<if $cribs[_pin].assignmentVisible == 1>>
-			<<set $childrenInLine.push(_pin)>> /* index of the previous slave in line *//*
-			<<break>>
-		<</if>>
-	<</for>>
-	<<for _pin = _activeChildIndex + 1; _pin != _activeChildIndex; _pin++>> /* this loops forwards through the $cribs array *//*
-		<<if _pin == _CL>>
-			<<set _pin = -1>>
-			<<continue>>
-		<</if>>
-		<<if $cribs[_pin].assignmentVisible == 1>>
-			<<set $childrenInLine.push(_pin)>> /* index of the next slave in line *//*
-			<<break>>
-		<</if>>
-	<</for>>
-<<else>>
-	<<for _pin = _activeChildIndex - 1; _pin != _activeChildIndex; _pin-->> /* loops backwards through the $cribs array *//*
-		<<if _pin < 0>>
-			<<set _pin = _CL>>
-			<<continue>>
-		<</if>>
-		<<if ($cribs[_pin].assignment == $activeSlave.assignment)>>
-			<<set $childrenInLine.push(_pin)>> /* index of the previous slave in line *//*
-			<<break>>
-		<</if>>
-	<</for>>
-	<<for _pin = _activeChildIndex + 1; _pin != _activeChildIndex; _pin++>> /* this loops forwards through the $cribs array *//*
-		<<if _pin == _CL>>
-			<<set _pin = -1>>
-			<<continue>>
-		<</if>>
-		<<if ($cribs[_pin].assignment == $activeSlave.assignment)>>
-			<<set $childrenInLine.push(_pin)>> /* index of the next slave in line *//*
-			<<break>>
-		<</if>>
-	<</for>>
-<</if>>
-
-<<if $childrenInLine.length == 0>> /* if there are no other cribs available, set previous/next slave to self *//*
-	<<set $childrenInLine[0] = _activeChildIndex>>
-	<<set $childrenInLine[1] = _activeChildIndex>>
-<</if>>
-
-<</silently>>
-*/
\ No newline at end of file
diff --git a/src/js/assignJS.tw b/src/js/assignJS.tw
index 6beaa0a0785d97dc375228da0cb51d8b58ea712d..2ca984e1b0ffcf2b7e145c89a9825273711f5248 100644
--- a/src/js/assignJS.tw
+++ b/src/js/assignJS.tw
@@ -133,7 +133,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignmentVisible = 0;
 			V.farmyardSlaves++;
 			V.FarmyardiIDs.push(slave.ID);
-			switch (V.dairyDecoration) {
+			switch (V.farmyardDecoration) {
 				case "Aztec Revivalist":
 				case "Chinese Revivalist":
 				case "Chattel Religionist":
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
index 62f04539963b8149a846742a8c65df9e70768e16..431176616f49b7900ea90802eedf523d1a6e638b 100644
--- a/src/js/wombJS.tw
+++ b/src/js/wombJS.tw
@@ -28,6 +28,7 @@ $slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volu
 
 //Init womb system.
 window.WombInit = function(actor) {
+    
 	if (!Array.isArray(actor.womb)) {
 		//alert("creating new womb"); //debugging
 		actor.womb = [];
@@ -46,10 +47,11 @@ window.WombInit = function(actor) {
 
 	//backward compatibility setup. Fully accurate for normal pregnancy only.
 	if (actor.womb.length > 0 && actor.broodmother == 0 && actor.womb[0].genetics == undefined) {
-		var i;
-		for (i=0; i<actor.womb.length; i++) {
-			ft.genetics = generateGenetics(actor.ID, actor.pregSource, i+1);
-		}
+        var i=0
+		actor.womb.forEach(function(ft){
+			ft.genetics = generateGenetics(actor.ID, actor.pregSource, i);
+            i++;
+		});
 	} else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother == 0) {
 		WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg);
 	} else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0 && actor.broodmotherOnHold < 1) {
@@ -322,13 +324,15 @@ window.fetalSplit = function(actor) {
 };
 
 //safe alternative to .womb.length.
-window.WombFetusCount(actor){
+window.WombFetusCount = function(actor)
+{
     WombInit(actor);
     return actor.womb.length;
 }
 
 //give reference to fetus object, but not remove fetus, use for manupulation in the womb.
-window.WombGetFetus = function(actor, fetusNum){
+window.WombGetFetus = function(actor, fetusNum)
+{
     WombInit(actor);
     if (actor.womb.length >= fetusNum)
         return actor.womb[fetusNum];
@@ -337,18 +341,20 @@ window.WombGetFetus = function(actor, fetusNum){
 }
 
 //give reference to fetus object, and remove it form the womb.
-window.WombRemoveFetus = function(actor, fetusNum){
+window.WombRemoveFetus = function(actor, fetusNum)
+{
     WombInit(actor);
     if (actor.womb.length >= fetusNum){
         ft = actor.womb[fetusNum];
         actor.womb.splice(fetusNum, 1);
         WombSort(actor);
+        return ft;
     }
     else
         return null;
 }
 
-//to add fetus object in the womb. Be warned - you can add one single fetus to many wombs, or even add it many times to one womb. It's will not show error, but behavior become strange, as fetus object will be the same - it's reference, not full copies. If this not desired - use deepCopy on fetus before adding.
+/*to add fetus object in the womb. Be warned - you can add one single fetus to many wombs, or even add it many times to one womb. It's will not show error, but behavior become strange, as fetus object will be the same - it's reference, not full copies. If this not desired - use deepCopy on fetus before adding.*/
 window.WombAddFetus = function(actor, fetus)
 {
     WombInit(actor);
@@ -357,17 +363,114 @@ window.WombAddFetus = function(actor, fetus)
 }
 
 // change property for all fetuses. Like fetus.age = X.
-window.WombChangeFetus = function(actor, propName, newValue){
+window.WombChangeFetus = function(actor, propName, newValue)
+{
     WombInit(actor);
     actor.womb.forEach(ft => ft[propName] = newValue);
 }
 
 // change genetic property of all fetuses. Like fetus.genetic.intelligence = X
-window.WombChangeGene = function(actor, geneName, newValue){
+window.WombChangeGene = function(actor, geneName, newValue)
+{
     WombInit(actor);
     actor.womb.forEach(ft => ft.genetic[geneName] = newValue);
 }
 
+window.FetusGlobalReserveCount = function(reserveType) 
+{
+    var cnt = 0;
+    var SV = State.variables;
+
+    if (typeof reserveType != 'string' )
+        return 0;
+
+    SV.slaves.forEach(function(slave){
+        slave.womb.forEach(function(ft){
+            if (ft.reserved == reserveType)
+                cnt++;
+            });
+        });
+
+    SV.PC.womb.forEach(function(ft){
+        if (ft.reserved == reserveType)
+            cnt++;
+        });
+
+    return cnt;
+}
+
+window.WombSetGenericReserve = function(actor, type, count)
+{
+
+    actor.womb.forEach(function(ft){
+
+        if ((ft.reserve == "" || ft.reserve == type) && count > 0)
+        {
+            ft.reserve = type;        
+            count--;
+        }
+
+    });
+}
+
+window.WombCleanGenericReserve = function(actor, type, count)
+{
+
+    actor.womb.forEach(function(ft){
+
+        if (ft.reserve == type && count > 0)
+        {
+            ft.reserve = "";        
+            count--;
+        }
+
+    });
+}
+
+window.WombReserveCount = function(actor, type)
+{
+
+    var cnt;
+
+    actor.womb.forEach(function(ft){
+
+        if (ft.reserve == type)
+        {
+            cnt++;
+        }
+
+    });
+
+    return cnt;
+}
+
+
+window.WombCleanAllReserve = function(actor)
+{
+
+    actor.womb.forEach(function(ft){
+        ft.reserve = "";        
+    });
+
+}
+
+window.BCReserveInit = function()
+{
+    var SV = State.variables;
+
+    SV.slaves.forEach(function(slave){
+        slave.womb.forEach(function(ft){
+            if (typeof ft.reserved != 'string')
+                ft.reserved = "";
+            });
+        });
+
+    SV.PC.womb.forEach(function(ft){
+        if (typeof ft.reserved != 'string')
+            ft.reserved = "";
+        });
+}
+
 /* alt
 window.fetalSplit = function(actor)
 {
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index a2341cfa3c4b2ecf2b56081d06f53cc1777920d4..8810b528d98a648065bf189ed52b23ae87266806 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -366,6 +366,7 @@
 	<</if>>
 <</if>>
 <<run PCDatatypeCleanup()>>
+<<run BCReserveInit()>>
 
 <<if ndef $universalRulesImmobileSlavesMaintainMuscles>>
 	<<set $universalRulesImmobileSlavesMaintainMuscles = 0>>