diff --git a/src/facilities/nursery/reports/childrenReport.js b/src/facilities/nursery/reports/childrenReport.js
index da805c2e22757eb29eb9e6d92108d456cff46356..dc73de38694ff715a489a9b557713beec9574b24 100644
--- a/src/facilities/nursery/reports/childrenReport.js
+++ b/src/facilities/nursery/reports/childrenReport.js
@@ -35,74 +35,8 @@ App.Facilities.Nursery.childrenReport = function childrenReport() {
 				r.push(nannyFetishEffects());
 			}
 
-			// TODO: add friend / rivalry system
-			// TODO: add relations to friend system
-			for (let j = 0; j < CL; j++) {
-				const
-					c = V.cribs[j];
-
-				let
-					friend = 0,
-					rival = 0,
-					chance = jsRandom(1, 100);
-
-				if (c.actualAge >= 3) {
-					if (c.fetish === child.fetish) {
-						r += ``; // TODO:
-						friend++;
-					}
-
-					if (c.sexualQuirk === child.sexualQuirk || c.behavioralQuirk === child.behavioralQuirk) {
-						r += ``; // TODO:
-						friend++;
-					}
-
-					if (c.fetish === "sadist" || c.fetish === "dom") {
-						r += ``; // TODO:
-						rival++;
-					} else if (child.fetish === "sadist" || child.fetish === "dom") {
-						r += ``; // TODO:
-						rival++;
-					}
-
-					if (friend) {
-						if (rival) {
-							if (friend > rival) {
-								if (chance > 75) {
-									r += ``;	// TODO:
-									child.relationship = 1;
-									child.relationshipTarget = c.ID;
-
-									c.relationship = 1;
-									c.relationshipTarget = child.ID;
-								}
-							}
-						} else {
-							if (chance > 60) {
-								r += ``;	// TODO:
-								child.relationship = 1;
-								child.relationshipTarget = c.ID;
-
-								c.relationship = 1;
-								c.relationshipTarget = child.ID;
-							}
-						}
-					}
-
-					if (rival) {
-						if (friend) {
-							if (rival > friend) {
-								if (chance > 75) {
-									r += ``;	// TODO:
-								}
-							}
-						} else {
-							if (chance > 60) {
-								r += ``;	// TODO:
-							}
-						}
-					}
-				}
+			if (CL > 1) {
+				r.push(childFriendshipRivalries());
 			}
 
 			// TODO: rework these entirely
@@ -170,6 +104,10 @@ App.Facilities.Nursery.childrenReport = function childrenReport() {
 		r += `<br>`;
 	}
 
+
+
+	// MARK: Miscellaneous Functions
+
 	function newChildFetish(fetish = "none") {
 		switch (fetish) {
 			case "submissive":
@@ -195,6 +133,80 @@ App.Facilities.Nursery.childrenReport = function childrenReport() {
 		}
 	}
 
+	// TODO: add relation checks
+	function childFriendshipRivalries() {
+		for (const target of V.cribs) {	// alias for second child
+			const
+				chance = jsRandom(1, 100);
+
+			let
+				r = [],
+
+				friend = 0,
+				rival = 0;
+
+			if (target.actualAge >= 3) {
+				if (target.fetish === child.fetish) {
+					r.push(``); // TODO:
+					friend++;
+				}
+
+				if (target.sexualQuirk === child.sexualQuirk || target.behavioralQuirk === child.behavioralQuirk) {
+					r.push(``); // TODO:
+					friend++;
+				}
+
+				if (target.fetish === "sadist" || target.fetish === "dom") {
+					r.push(``); // TODO:
+					rival++;
+				} else if (child.fetish === "sadist" || child.fetish === "dom") {
+					r.push(``); // TODO:
+					rival++;
+				}
+
+				if (friend) {
+					if (rival) {
+						if (friend > rival) {
+							if (chance > 75) {
+								r.push(``);	// TODO:
+								child.relationship = 1;
+								child.relationshipTarget = target.ID;
+
+								target.relationship = 1;
+								target.relationshipTarget = child.ID;
+							}
+						}
+					} else {
+						if (chance > 60) {
+							r.push(``);	// TODO:
+							child.relationship = 1;
+							child.relationshipTarget = target.ID;
+
+							target.relationship = 1;
+							target.relationshipTarget = child.ID;
+						}
+					}
+				}
+
+				if (rival) {
+					if (friend) {
+						if (rival > friend) {
+							if (chance > 75) {
+								r.push(``);	// TODO:
+							}
+						}
+					} else {
+						if (chance > 60) {
+							r.push(``);	// TODO:
+						}
+					}
+				}
+			}
+		}
+
+		return r.join(' ');
+	}
+
 
 
 	// MARK: Matron Effects