diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw
index a7f24da19ae2fac27008cd245819d0eddc2a5698..24fb8d8d1a9c95b6f9b4631479828198148e9df1 100644
--- a/src/js/utilJS.tw
+++ b/src/js/utilJS.tw
@@ -69,43 +69,62 @@ window.Height = (function(){
 		return {limitMult: [minMult, maxMult], limitHeight: [minHeight, maxHeight], skew: skew, spread: spread};
 	}
 	
+	/* if you can find an average for an undefined, add it in! */
 	const xxMeanHeight = {
 		"American.white": 165, "American.black": 163.6, "American.latina": 158.9, "American.asian": 158.4, "American": 161.8,
-		"Afghan": undefined, "Algerian": 162, "Argentinian": 159.6, "Armenian": undefined, "Australian": 161.8, "Austrian": 166,
-		"Bangladeshi": undefined, "Belarusian": 166.8, "Belgian": 168.1, "Bolivian": 142.2, "Brazilian": 158.8,
+		"Afghan": 163.8, "Algerian": 162, "Argentinian": 159.6, "Armenian": 158.1, "Australian": 161.8, "Austrian": 166,
+		"Bangladeshi": 150.6, "Belarusian": 166.8, "Belgian": 168.1, "Bolivian": 142.2, "Brazilian": 158.8,
 		"British": 161.9, "Burmese": undefined, "Canadian": 162.3, "Chilean": 157.2, "Chinese": 155.8, "Colombian": 158.7,
 		"Congolese": 157.7, "Cuban": 156, "Czech": 167.22, "Danish": 168.7, "Dominican": 156.4, "Dutch": 169, "Egyptian": 158.9,
-		"Emirati": 158.9, "Estonian": 165.5, "Ethiopian": undefined, "Filipina": undefined, "Finnish": 165.3, "French": 162.5,
-		"German": 162.8, "Ghanan": 158.5, "Greek": 165, "Guatemalan": undefined, "Haitian": undefined, "Hungarian": 164,
+		"Emirati": 158.9, "Estonian": 165.5, "Ethiopian": 157.6, "Filipina": 151.8, "Finnish": 165.3, "French": 162.5,
+		"German": 162.8, "Ghanan": 158.5, "Greek": 165, "Guatemalan": 147.3, "Haitian": 158.6, "Hungarian": 164,
 		"Icelandic": 168, "Indian": 151.9, "Indonesian": 147, "Iranian": 157.2, "Iraqi": 155.8, "Irish": 163, "Israeli": 166,
-		"Italian": 162.5, "Jamaican": 160.8, "Japanese": 158, "Jordanian": undefined, "Kazakh": 159.8, "Kenyan": undefined,
+		"Italian": 162.5, "Jamaican": 160.8, "Japanese": 158, "Jordanian": 158.2, "Kazakh": 159.8, "Kenyan": 159.4,
 		"Korean": 156.15, "Lebanese": 165, "Libyan": 160.5, "Lithuanian": 167.5, "Malaysian": 154.7, "Malian": 160.4,
 		"Mexican": 154, "Moroccan": 158.5, "Nepalese": 150.8, "Nigerian": 163.8, "Norwegian": 157.8, "Omani": undefined,
 		"Pakistani": 151.9, "Peruvian": 151, "Polish": 165.1, "Portuguese": 165.1, "Puerto Rican": 158.9, "Romanian": 157,
 		"Russian": 164.1, "Saudi": 156.3, "Scottish": 163, "Serbian": 166.8, "Slovak": 165.6, "South African": 159,
-		"Spanish": 162.6, "Sudanese": undefined, "Swedish": 166.8, "Swiss": 162.5, "Tanzanian": undefined, "Thai": 159,
-		"Tunisian": 160, "Turkish": 161.9, "Ugandan": undefined, "Ukrainian": 164.8, "Uzbek": 159.9, "Venezuelan": 159,
-		"Vietnamese": 155.2, "Yemeni": undefined, "a New Zealander": 164, "Zimbabwean": undefined, 
+		"Spanish": 162.6, "Sudanese": 180.0, "Swedish": 166.8, "Swiss": 162.5, "Tanzanian": 156.6, "Thai": 159,
+		"Tunisian": 160, "Turkish": 161.9, "Ugandan": 159.2, "Ukrainian": 164.8, "Uzbek": 159.9, "Venezuelan": 159,
+		"Vietnamese": 155.2, "Yemeni": undefined, "a New Zealander": 164, "Zimbabwean": 160.3, "Sammarinese": undefined,
+		"Marshallese": undefined, "Syrian": 156.3, "Bermudian": undefined, "Uruguayan": 158.0, "Monégasque": undefined,
+		"Montenegrin": 168.4, "Cambodian": 152.4, "Cameroonian": 161.3, "Gabonese": 158.4, "Djiboutian": undefined,
+		"Greenlandic": undefined, "Tuvaluan": undefined, "Zambian": 158.5, "Albanian": 161.8, "Bruneian": undefined,
+		"Singaporean": 160.0, "Croatian": 166.3, "Bulgarian": 163.2, "Laotian": undefined, "Mongolian": 157.7, "Taiwanese": 160.4,
+		"Belizean": undefined, "Grenadian": undefined, "I-Kiribati": undefined, "Malagasy": 154.3, "Maldivian": undefined,
+		"Bosnian": 171.1, "Kosovan": undefined, "Macedonian": undefined, "Honduran": 152.0, "Maltese": 159.9,
+		"Nauruan": undefined, "Micronesian": undefined, "Costa Rican": undefined, "Salvadoran": 160.3, "Nicaraguan": 153.7,
+		"Panamanian": 152.0, "Nigerien": 157.8, "Andorran": undefined, "Bulgarian": 163.2, "Luxembourgian": 164.8,
+		"Moldovan": 161.2,
 		"": 162.5 // default
 	};
 	const xyMeanHeight = {
 		"American.white": 178.2, "American.black": 177.4, "American.latina": 172.5, "American.asian": 172.5, "American": 176.4, 
 		"Afghan": undefined, "Algerian": 172.2, "Argentinian": 174.46, "Armenian": undefined, "Australian": 175.6,
-		"Austrian": 179, "Bangladeshi": undefined, "Belarusian": 176.9, "Belgian": 178.7, "Bolivian": 160, "Brazilian": 170.7,
-		"British": 175.3, "Burmese": undefined, "Canadian": 175.1, "Chilean": 169.6, "Chinese": 167.1, "Colombian": 170.6,
+		"Austrian": 179, "Bangladeshi": 150.8, "Belarusian": 176.9, "Belgian": 178.7, "Bolivian": 160, "Brazilian": 170.7,
+		"British": 175.3, "Burmese": 168.0, "Canadian": 175.1, "Chilean": 169.6, "Chinese": 167.1, "Colombian": 170.6,
 		"Congolese": 158.9, "Cuban": 168, "Czech": 180.31, "Danish": 180.4, "Dominican": 168.4, "Dutch": 181, "Egyptian": 170.3,
-		"Emirati": 170.3, "Estonian": 179.1, "Ethiopian": undefined, "Filipina": undefined, "Finnish": 178.9, "French": 175.6,
-		"German": 175.4, "Ghanan": 169.5, "Greek": 177, "Guatemalan": undefined, "Haitian": undefined, "Hungarian": 176,
+		"Emirati": 170.3, "Estonian": 179.1, "Ethiopian": undefined, "Filipina": 163.5, "Finnish": 178.9, "French": 175.6,
+		"German": 175.4, "Ghanan": 169.5, "Greek": 177, "Guatemalan": 157.5, "Haitian": undefined, "Hungarian": 176,
 		"Icelandic": 181, "Indian": 164.7, "Indonesian": 158, "Iranian": 170.3, "Iraqi": 165.4, "Irish": 177, "Israeli": 177,
-		"Italian": 176.5, "Jamaican": 171.8, "Japanese": 172, "Jordanian": undefined, "Kazakh": 169, "Kenyan": undefined,
+		"Italian": 176.5, "Jamaican": 171.8, "Japanese": 172, "Jordanian": undefined, "Kazakh": 169, "Kenyan": 170.0,
 		"Korean": 168.15, "Lebanese": 176, "Libyan": 171.3, "Lithuanian": 177.2, "Malaysian": 166.3, "Malian": 171.3,
 		"Mexican": 167, "Moroccan": 172.7, "Nepalese": 163, "Nigerian": 163.8, "Norwegian": 179.63, "Omani": undefined,
 		"Pakistani": 164.7, "Peruvian": 164, "Polish": 178.7, "Portuguese": 173.9, "Puerto Rican": 172.5, "Romanian": 172,
 		"Russian": 177.2, "Saudi": 168.9, "Scottish": 177.6, "Serbian": 182, "Slovak": 179.4, "South African": 168,
-		"Spanish": 173.1, "Sudanese": undefined, "Swedish": 181.5, "Swiss": 178.2, "Tanzanian": undefined, "Thai": 170.3,
+		"Spanish": 173.1, "Sudanese": 190.0, "Swedish": 181.5, "Swiss": 178.2, "Tanzanian": undefined, "Thai": 170.3,
 		"Tunisian": 172.3, "Turkish": 173.6, "Ugandan": undefined, "Ukrainian": 176.5, "Uzbek": 175.4, "Venezuelan": 169,
-		"Vietnamese": 165.7, "Yemeni": undefined, "a New Zealander": 177, "Zimbabwean": undefined,
-		".white": 177.6, "": 172.5 // defaults
+		"Vietnamese": 165.7, "Yemeni": 159.9, "a New Zealander": 177, "Zimbabwean": undefined, "Sammarinese": undefined,
+		"Marshallese": undefined, "Syrian": 173.0, "Bermudian": undefined, "Uruguayan": 170.0, "Monégasque": undefined,
+		"Montenegrin": 183.2, "Cambodian": 162.5, "Cameroonian": 170.6, "Gabonese": undefined, "Djiboutian": undefined,
+		"Greenlandic": undefined, "Tuvaluan": undefined, "Zambian": undefined, "Albanian": 174.0, "Bruneian": undefined,
+		"Singaporean": 170.6, "Andorran": undefined, "Croatian": 180.5, "Bulgarian": 175.2, "Laotian": 160.5,
+		"Mongolian": 168.4, "Taiwanese": 171.4, "Belizean": undefined, "Grenadian": undefined, "I-Kiribati": undefined,
+		"Malagasy": 161.5, "Maldivian": undefined, "Bosnian": 183.9, "Kosovan": undefined, "Macedonian": undefined,
+		"Honduran": undefined, "Maltese": 169.9, "Nauruan": undefined, "Micronesian": undefined, "Costa Rican": undefined,
+		"Salvadoran": undefined, "Nicaraguan": undefined, "Panamanian": 165.0, "Nigerien": 163.8, "Luxembourgian": 179.9,
+		"Moldovan": undefined, ".white": 177.6,
+		"": 172.5 // defaults
 	};
 	
 	// Helper method - table lookup for nationality/race combinations
diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw
index 1726ec5907fcea23c31db3b0f04cb61cf92d2c39..28791d1002072c83285ea14c7c880750fb600d89 100644
--- a/src/uncategorized/generateXXSlave.tw
+++ b/src/uncategorized/generateXXSlave.tw
@@ -233,15 +233,15 @@
 	<<set $activeSlave.butt = either(1, 2, 2, 3, 3, 4)>>
 	<<set $activeSlave.boobs = BoobGenerator.rollBreast(50)>>
 	<<set $activeSlave.lips = random(5,25)>>
-	<<if $activeSlave.nationality is "German">>
+	<<if $activeSlave.nationality == "German">>
 		<<set $activeSlave.skin = either("pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>>
-	<<elseif $activeSlave.nationality is "Icelandic">>
+	<<elseif $activeSlave.nationality == "Icelandic">>
 		<<set $activeSlave.skin = either("pale", "pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>>
-	<<elseif $activeSlave.nationality is "Irish">>
+	<<elseif $activeSlave.nationality == "Irish">>
 		<<set $activeSlave.skin = either("pale", "pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "brown", "green", "green", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "red", "red", "red", "brown")>>
diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw
index b2f08cfb600e588487db696d0ebe57cbdc8f03b9..ad009a68f4beb1f1892b1e919e696e1b2394fb96 100644
--- a/src/uncategorized/generateXYSlave.tw
+++ b/src/uncategorized/generateXYSlave.tw
@@ -232,15 +232,15 @@
 	<<set $activeSlave.butt = either(1, 1, 2, 3)>>
 	<<set $activeSlave.boobs = either(100, 200, 200, 300, 300, 400, 500)>>
 	<<set $activeSlave.lips = random(5,25)>>
-	<<if $activeSlave.nationality is "German">>
+	<<if $activeSlave.nationality == "German">>
 		<<set $activeSlave.skin = either("pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>>
-	<<elseif $activeSlave.nationality is "Icelandic">>
+	<<elseif $activeSlave.nationality == "Icelandic">>
 		<<set $activeSlave.skin = either("pale", "pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "blue", "blue", "brown", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "blonde", "blonde", "red", "brown")>>
-	<<elseif $activeSlave.nationality is "Irish">>
+	<<elseif $activeSlave.nationality == "Irish">>
 		<<set $activeSlave.skin = either("pale", "pale", "tanned", "fair")>>
 		<<set $activeSlave.eyeColor = either("blue", "brown", "green", "green", "green")>>
 		<<set $activeSlave.hColor = either("black", "blonde", "red", "red", "red", "brown")>>
@@ -451,20 +451,22 @@
 	<<switch $activeSlave.nationality>>
 	<<case "Iranian" "Moroccan" "Afghan" "Tunisian">>
 		<<set $activeSlave.foreskin = 100>>
-	<<case "Turkish" "Nigerian" "Iraqi" "Yemeni" "Jordanian">>
+	<<case "Turkish" "Nigerian" "Iraqi" "Yemeni" "Jordanian" "Gabonese">>
 		<<set $activeSlave.foreskin = 99>>
-	<<case "Algerian">>
+	<<case "Algerian" "Maldivian">>
 		<<set $activeSlave.foreskin = 98>>
-	<<case "Saudi" "Uzbek" "Libyan">>
+	<<case "Saudi" "Uzbek" "Libyan" "Djiboutian">>
 		<<set $activeSlave.foreskin = 97>>
-	<<case "Congolese" "Pakistani">>
+	<<case "Congolese" "Pakistani" "Nigerien">>
 		/% Population-weighted average of Democratic Republic of Congo and Republic of Congo %/
 		<<set $activeSlave.foreskin = 96>>
-	<<case "Egyptian">>
+	<<case "Egyptian" "Tuvaluan" "Malagasy" "Nauruan">>
 		<<set $activeSlave.foreskin = 95>>
-	<<case "Indonesian" "Bangladeshi">>
+	<<case "Cameroonian">>
+		<<set $activeSlave.foreskin = 94>>
+	<<case "Indonesian" "Bangladeshi" "Syrian">>
 		<<set $activeSlave.foreskin = 93>>
-	<<case "Israeli" "Ghanan" "Ethiopian" "Filipina">>
+	<<case "Israeli" "Ghanan" "Ethiopian" "Filipina" "Kosovan">>
 		<<set $activeSlave.foreskin = 92>>
 	<<case "Kenyan">>
 		<<set $activeSlave.foreskin = 91>>
@@ -484,18 +486,24 @@
 		<<set $activeSlave.foreskin = 60>>
 	<<case "Kazakh">>
 		<<set $activeSlave.foreskin = 56>>
-	<<case "Korean">>
+	<<case "Korean" "Bruneian">>
 		/% Population-weighted average of South Korea and North Korea. %/
 		<<set $activeSlave.foreskin = 52>>
+	<<case "Albanian">>
+		<<set $activeSlave.foreskin = 48>>
 	<<case "South African">>
 		<<set $activeSlave.foreskin = 45>>
 	<<case "Dominican">>
 		<<set $activeSlave.foreskin = 43>>
+	<<case "Bosnian">>
+		<<set $activeSlave.foreskin = 42>>
 	<<case "Mexican">>
 		<<set $activeSlave.foreskin = 38>>
 	<<case "Sudanese">>
 		/% Population-weighted average of Sudan and South Sudan. %/
 		<<set $activeSlave.foreskin = 36>>
+	<<case "Macedonian">>
+		<<set $activeSlave.foreskin = 34>>
 	<<case "a New Zealander">>
 		<<set $activeSlave.foreskin = 33>>
 	<<case "Scottish">>
@@ -508,8 +516,14 @@
 		<<set $activeSlave.foreskin = 21>>
 	<<case "Puerto Rican">>
 		<<set $activeSlave.foreskin = 20>>
+	<<case "Montenegrin">>
+		<<set $activeSlave.foreskin = 19>>
+	<<case "Singaporean">>
+		<<set $activeSlave.foreskin = 15>>
 	<<case "Jamaican" "French" "Chinese" "Indian">>
 		<<set $activeSlave.foreskin = 14>>
+	<<case "Zambian" "Bulgarian">>
+		<<set $activeSlave.foreskin = 13>>
 	<<case "Russian">>
 		<<set $activeSlave.foreskin = 12>>
 	<<case "German">>
@@ -518,21 +532,23 @@
 		<<set $activeSlave.foreskin = 10>>
 	<<case "Zimbabwean" "Japanese">>
 		<<set $activeSlave.foreskin = 9>>
+	<<case "Taiwanese">>
+		<<set $activeSlave.foreskin = 8>>
 	<<case "Haitian" "Spanish">>
 		<<set $activeSlave.foreskin = 7>>
 	<<case "Dutch" "Austrian" "Swiss">>
 		<<set $activeSlave.foreskin = 6>>
 	<<case "Danish" "Swedish" "Greek">>
 		<<set $activeSlave.foreskin = 5>>
-	<<case "Peruvian" "Serbian" "Nepalese" "Burmese">>
+	<<case "Peruvian" "Serbian" "Nepalese" "Burmese" "Cambodian" "Mongolian">>
 		<<set $activeSlave.foreskin = 4>>
 	<<case "Italian" "Norwegian" "Argentinian">>
 		<<set $activeSlave.foreskin = 3>>
-	<<case "Ukrainian">>
+	<<case "Ukrainian" "Luxembourgian">>
 		<<set $activeSlave.foreskin = 2>>
-	<<case "Portuguese" "Hungarian" "Irish" "Finnish" "Brazilian">>
+	<<case "Portuguese" "Hungarian" "Irish" "Finnish" "Brazilian" "Bermudian" "Uruguayan" "Monégasque" "Andorran" "Croatian" "Moldovan" "Panamanian">>
 			<<set $activeSlave.foreskin = 1>>
-	<<case "Cuban" "Guatemalan" "Chilean" "Bolivian" "Venezuelan" "Lithuanian" "Slovak" "Czech" "Romanian" "Estonian" "Icelandic" "Polish" "Colombian" "Armenian" "Vietnamese">>
+	<<case "Cuban" "Guatemalan" "Chilean" "Bolivian" "Venezuelan" "Lithuanian" "Slovak" "Czech" "Romanian" "Estonian" "Icelandic" "Polish" "Colombian" "Armenian" "Vietnamese" "Sammarinese" "Marshallese" "Greenlandic" "Belizean" "Costa Rican" "Salvadoran" "Micronesian" "Grenadian" "Honduran" "I-Kiribati" "Laotian" "Maltese" "Nicaraguan">>
 		<<set $activeSlave.foreskin = 0>>
 	<<default>>
 		/% Some overlooked country, or possibly stateless. Use global average. %/
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index ad3c851fe7c8278ae880cf7bb438629a4202dd37..d77a3687e668d05c45108f5013016691bcfa29c7 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -342,7 +342,21 @@
 
 <<if $slaves[$i].devotion >= -50>>
 <<if $slaves[$i].energy > 20>>
-	<<set $slaves[$i].need = $slaves[$i].energy>>
+	<<if $slaves[$i].physicalAge < $slaves[$i].pubertyAgeXY && $slaves[$i].genes == "XY">>
+		<<set $slaves[$i].need = $slaves[$i].energy/3>>
+	<<elseif $slaves[$i].physicalAge < $slaves[$i].pubertyAgeXX && $slaves[$i].genes == "XX">>
+		<<set $slaves[$i].need = $slaves[$i].energy/3>>
+	<<elseif $slaves[$i].physicalAge < 50>>
+		<<set $slaves[$i].need = $slaves[$i].energy>>
+	<<else>>
+		<<set $slaves[$i].need = $slaves[$i].energy/5>>
+	<</if>>
+	<<if $slaves[$i].balls > 0 && $slaves[$i].pubertyXY == 1 && $slaves[$i].physicalAge <= ($slaves[$i].pubertyAgeXY + 2) && $slaves[$i].physicalAge < 18>>
+		<<set $slaves[$i].need = ($slaves[$i].need*2)>>
+	<</if>>
+	<<if ($slaves[$i].ovaries == 1 || $slaves[$i].mpreg == 1) && $slaves[$i].pubertyXX == 1 && $slaves[$i].physicalAge <= ($slaves[$i].pubertyAgeXX + 2) && $slaves[$i].physicalAge < 18>>
+		<<set $slaves[$i].need = ($slaves[$i].need*2)>>
+	<</if>>
 <</if>>
 <</if>>