diff --git a/devNotes/encyclopedia.js b/devNotes/encyclopedia.js
index b8925b65314fb849f4b4aaf56c910acf1c6d5c7b..d17f6b7323ec468fe415df91d0ea3bb7ea94d9bf 100644
--- a/devNotes/encyclopedia.js
+++ b/devNotes/encyclopedia.js
@@ -21,63 +21,24 @@ App.Encyclopedia.UI = function() {
 	const trust = (text="trust") => link(text, "Trust", "mediumaquamarine");
 	const rep = (text="reputation") => link(text, "Arcologies and Reputation", "green");
 
-	const basic = [link("Arcade"), link("Brothel"), link("Club"), link("Dairy"), link("Servants' Quarters")];
-	const unique = [link("Head Girl Suite"), link("Master Suite"), link("Farmyard"), link("Incubation Facility", "The Incubation Facility"), link("Pit")];
 	const naturalDoms = [link("Head Girl"), link("Madam"), link("Schoolteacher"), link("Stewardess"), link("Nurse")];
-	const spaConditions = [link("Healthy", "Health"), "happy", link("free of flaws.", "Flaws")];
 
 	if (!["Table of Contents", "Credits"].includes(V.encyclopedia)) {
-		indentLine([App.UI.DOM.generateLinksStrip([link("Table of Contents"), link("Credits")])]);
+		App.Events.addNode(f, [App.UI.DOM.generateLinksStrip([link("Table of Contents"), link("Credits")], "div", ["indent"]);
 	}
-	indentLine([`${V.encyclopedia}`], "h2");
+	App.Events.addNode(f, [`${V.encyclopedia}`], "h2");
 
 	if (pass) {
 		// console.log(pass);
 		// App.Events.addParagraph(text, [pass]);
 		// text.append(pass);
 		// text.append(Scripting.evalJavaScript(pass));
-		// indentLine([pass]);
+		// App.Events.addNode(f, [pass], "div", ["indent"]);
 		// text.append(App.Encyclopedia.renderCategory(V.encyclopedia));
 		text.append(String(pass));
 	} else {
 	// if (!pass) {
 		switch (V.encyclopedia) {
-			case "Table of Contents":
-				indentLine(["Introduction"], "h3");
-				indentLine([link("Playing Free Cities")]);
-				App.Events.addParagraph(text, []);
-
-				indentLine(["The Player Character"], "h3");
-				indentLine([link("Design your master")]);
-				indentLine([link("Being in Charge")]);
-				indentLine([link("PC Skills")]);
-				App.Events.addParagraph(text, []);
-
-				indentLine(["Your Slaves"], "h3");
-				indentLine([link("Slaves")]);
-				indentLine([link("Obtaining Slaves")]);
-				indentLine([link("Slave Leaders", "Leadership Positions"), "/", link("Assignments", "Slave Assignments")]);
-				indentLine([link("Slave Body", "Body"), "/", link("Skills")]);
-				indentLine([link("Slave Fetishes", "Fetishes"), "/", link("Paraphilias")]);
-				indentLine([link("Quirks"), "/", link("Flaws")]);
-				indentLine([link("Slave Relationships", "Relationships")]);
-				indentLine([link("Slave Health", "Health")]);
-				indentLine([link("Slave Pregnancy", "Pregnancy"), "/", link("Inflation")]);
-				indentLine([link("Slave Modification")]);
-				App.Events.addParagraph(text, []);
-
-				indentLine(["Your Arcology"], "h3");
-				indentLine([link("The X-Series Arcology")]);
-				indentLine([link("Arcology Facilities", "Facilities")]);
-				indentLine([link("Terrain Types")]);
-				indentLine([link("Future Societies")]);
-				indentLine([link("The Black Market")]);
-				App.Events.addParagraph(text, []);
-
-				indentLine(["Extras"], "h3");
-				indentLine([link("Game Mods")]);
-				indentLine([link("Lore")]);
-				break;
 			// OBTAINING SLAVES
 			// SLAVE SKILLS
 			case "Skills":
@@ -108,180 +69,6 @@ App.Encyclopedia.UI = function() {
 			case "Whoring Skill":
 				r.push(highlight("Whoring skill"), "is available in three levels. It improves performance on all sexual assignments, though it affects whoring or working in the brothel most. Training methods include schooling (up to level one), personal attention (up to level one), Head Girl attention (up to the Head Girl's skill), and on the job experience (unlimited).");
 				break;
-			// SLAVE FETISHES
-			case "Fetishes":
-				r.push(highlight("Future room for lore text", ["note"]));
-				r.toParagraph();
-				r.push("Choose a more particular entry below:");
-				r.toNode("div");
-				break;
-			case "Boob Fetishists":
-				r.push(highlight("Boob Fetishists"), "like breasts.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, and being milked.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high", devotion(), "and", trust(), "and being milked.");
-				r.toParagraph();
-
-				r.push("The fetish will increase XX attraction. Boob Fetishists enjoy cowbell collars, breast surgery, and being milked. Milkmaids can become boob fetishists naturally.");
-				r.toParagraph();
-
-				r.push("Boob fetishists may become");
-				r.push(link("obsessed with breast expansion", "Breast Obsession"));
-				r.push("as their breasts grow.");
-				break;
-			case "Buttsluts":
-				r.push(highlight("Buttsluts"), "fetishize anal sex — mostly on the receiving end, though they'll enjoy other anal play.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, anally focused fucktoy service, service in a");
-				r.push(link("Dairy"));
-				r.push("upgraded with reciprocating dildos, the dildo drug dispenser upgrade, anal accessories, and being a painal queen.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high", devotion(), "and", trust("trust,"), "the dildo drug dispenser upgrade, and being a painal queen.");
-				r.toParagraph();
-
-				r.push("Buttsluttery will soften the 'hates anal' flaw into 'painal queen,' the 'hates penetration' flaw into 'strugglefuck queen,' and the 'repressed' flaw into 'perverted,' or remove these flaws if a quirk is already present. Buttsluts with vaginas enjoy wearing chastity belts, and all buttsluts enjoy buttock enhancement and anal rejuvenation surgeries. Buttsluts do not mind a lack of hormonal feminization. The fetish will increase XY attraction.");
-				r.toParagraph();
-
-				r.push("Buttsluts whose only available hole for receptive intercourse is the anus may become");
-				r.push(link("anal addicts", "Anal Addicts"));
-				r.addToLast(".");
-				break;
-			case "Cumsluts":
-				r.push(highlight("Cumsluts"), "fetishize oral sex and ejaculate.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust());
-				r.push("the phallic food dispenser upgrade, cum diets, and being a gagfuck queen.");
-				r.toParagraph();
-
-				r.push("Cumsluttery will soften the 'hates oral' flaw into 'gagfuck queen,' the 'hates women' flaw into 'adores men,' and the 'repressed' flaw into 'perverted,' or remove these flaws if a quirk is already present. Cumsluts enjoy cum diets. The fetish will increase XY attraction.");
-				r.toParagraph();
-
-				r.push("Cumsluts who eat out of phallic feeders or are fed cum may become");
-				r.push(link("cum addicts", "Cum Addicts"));
-				r.addToLast(".");
-				break;
-			case "Doms":
-				r.push(highlight("Doms"), "fetishize dominance.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, and being confident or cutting.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust("trust,"));
-				r.push("being confident, and being cutting.");
-				r.toParagraph();
-
-				r.push("Dominance will remove the");
-				r.push(highlight("apathetic"));
-				r.push("flaw if a quirk is already present. Doms do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Stewardesses do better when either dominant or");
-				r.push(link("nymphomaniacal.", "Nymphomania"));
-				r.push("The", App.UI.DOM.toSentence(naturalDoms), "can become Doms naturally.");
-				r.toParagraph();
-
-				r.push("Doms serving as Head Girls may become", link("abusive", "Abusiveness"), "if allowed to punish slaves by molesting them.");
-				break;
-			case "Humiliation Fetishists":
-				introLine("Humiliation Fetishists", "like exhibitionism.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, or being sinful, a tease, or perverted.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust("trust,"));
-				r.push("being sinful, being a tease, and being perverted.");
-				r.toParagraph();
-
-				r.push("A humiliation fetish will soften the 'bitchy' flaw into 'cutting' and the 'shamefast' flaw into 'tease,'");
-				r.push("or remove these flaws if a quirk is already present. The fetish will increase XY attraction. Humiliation fetishists enjoy nudity, and like revealing clothing at a lower");
-				r.push(devotion());
-				r.push("than other slaves. DJs can become humiliation fetishists naturally.");
-				r.toParagraph();
-
-				r.push("Humiliation fetishists on public sexual assignments may become", link("attention whores", "Attention Whores"));
-				r.addToLast(".");
-				break;
-			case "Masochists":
-				introLine("Masochists", "fetishize abuse and pain aimed at themselves.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, uncomfortable clothing, being");
-				r.push(link("funny"), "and being a", link("strugglefuck queen"));
-				r.addToLast(".");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust("trust,"), "being", link("funny"), "and being a", link("strugglefuck queen"));
-				r.addToLast(".");
-				r.toParagraph();
-
-				r.push("Masochism will soften the 'liberated' flaw into 'advocate' or remove this flaw if a quirk is already present. Masochists can be abused without causing deleterious flaws.");
-				r.toParagraph();
-
-				r.push("Masochists serving in an industrialized dairy, in an arcade, or in a glory hole have a chance to become");
-				r.push(link("self hating", "Self Hatred"));
-				r.addToLast(".");
-				break;
-			case "Pregnancy Fetishists":
-				introLine("Pregnancy Fetishists", "like being impregnated, sex with pregnant slaves, and getting others pregnant. (It is not necessary that the slave actually be able to do any of these things; such is life.)");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, having sex while pregnant, adoring men, being a tease, and being romantic.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust(), "adoring men, being a tease, and being romantic.");
-				r.toParagraph();
-
-				r.push("The fetish will increase XY attraction. Pregnancy fetishists greatly enjoy all kinds of impregnation, and love or hate fertility surgeries depending on what's being changed.");
-				r.toParagraph();
-
-				r.push("Pregnancy Fetishists who are repeatedly bred or are serving in an industrialized Dairy may develop");
-				r.push(link("breeding obsessions", "Breeding Obsession"));
-				r.addToLast(".");
-				break;
-			case "Sadists":
-				introLine("Sadists", "fetishize abuse and pain aimed at others.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, and relationships.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, and high", devotion(), "and", trust("trust."));
-				r.toParagraph();
-
-				r.push("Sadists do not mind a lack of hormonal feminization. The fetish will increase XX attraction. Wardenesses do better when sadistic, and can become sadists naturally.");
-				r.toParagraph();
-
-				r.push("Sadists serving as Wardeness may become", link("sexually malicious", "Maliciousness"));
-				r.addToLast(".");
-				break;
-			case "submissive":
-				introLine("Submissives", "fetishize submission.");
-				r.toParagraph();
-
-				r.push("The fetish can be created by appropriate smart clit piercing settings, serving the Head Girl, relationships, unfocused fucktoy service, crawling due to damaged tendons, being caring, being an advocate, and being insecure.");
-				r.toParagraph();
-
-				r.push("It can be advanced by appropriate smart clit piercing settings, high");
-				r.push(devotion(), "and", trust("trust,"), "being caring, being an advocate, and being insecure.");
-				r.toParagraph();
-
-				r.push("Submissiveness will soften the 'arrogant' flaw into 'confident,' the 'apathetic' flaw into 'caring,' and the 'idealistic' flaw into 'romantic,' or remove these flaws if a quirk is already present. The fetish will increase XY attraction. It improves performance at the servant assignment and working in the Servants' Quarters. Attendants do better when submissive, and can become submissives naturally.");
-				r.toParagraph();
-
-				r.push("Submissives serving on public sexual assignment may become");
-				r.push(link("sexually self neglectful", "Self Neglect"));
-				r.addToLast(".");
-				break;
 			// SLAVE PARAPHILIAS
 			case "Paraphilias":
 				r.push(highlight("Paraphilias"), "are intense forms of sexual", link("flaws"), "that cannot be softened.");
@@ -412,415 +199,14 @@ App.Encyclopedia.UI = function() {
 				r.push(link("emotionally bonded", "Emotionally Bonded"), "slaves can be married. There is no limit to the number of slaves a paternalist player character can marry. Marriage to the player character functions as a direct upgrade to being emotionally bonded.");
 				r.toParagraph();
 				break;
-			// ARCOLOGY FACILITIES
-			case "Facilities":
-				r.push("The arcology can be upgraded with a variety of facilities for slaves to live and work from. Each of the facilities is associated with an assignment. Sending a slave to a facility removes her from the main menu, removes her from the end of week report, and automates most management of her. Her clothes, drugs, rules, and other management tools are automatically run by the facility. However, her impact on your affairs will be substantially the same as if she were assigned to the corresponding assignment outside the facility. This means that things like", rep(), "effects, future society developments, and branding are all still active.");
-				r.toParagraph();
-
-				r.push("Use facilities sparingly until you're familiar with what assignments do so you don't miss important information. When you're confident enough to ignore a slave for long periods, sending her to a facility becomes a good option. Sending a slave to a facility heavily reduces the player's interaction with her, keeps the main menu and end week report manageable, and prevents most events from featuring her, which can be useful when she's so well trained that events aren't as beneficial for her. Also, many facilities have leadership positions that can apply powerful multipliers to a slave's performance.");
-				r.toParagraph();
-
-				r.push("The", App.UI.DOM.toSentence(basic), "all correspond to basic productive assignments.");
-				r.push("The",  App.UI.DOM.toSentence([link("Spa"), link("Cellblock"), link("Schoolroom")]), "are a little different in that they focus on improving their occupants rather than producing something useful, since they correspond to the rest, confinement, and class assignments.");
-				r.push("As such, only slaves that can benefit from these facilities' services can be sent to them. When slaves in these facilities have received all the benefits they can from the facility, they will be automatically ejected, assigned to rest, and returned to the main menu.");
-				r.push("The", App.UI.DOM.toSentence(unique), "are all completely unique.");
-				r.toParagraph();
-				break;
-			case "Arcade":
-				r.push("It is every slave's final duty to go into the arcade, and to become one with all the arcology.");
-				r.toNode("div", ["note"]);
-				indentLine(["— Anonymous slaveowner", "note"]);
-
-				r.push(`The arcade (sometimes colloquially referred to as "the wallbutts") is an excellent example of one of the many ideas that was confined to the realm of erotic fantasy until modern slavery began to take shape. It has rapidly turned from an imaginary fetishistic construction into a common sight in the more 'industrial' slaveowning arcologies. Most arcades are built to do one thing: derive profit from the holes of low-value slaves.`);
-				r.toNode("p", ["note"]);
-
-				r.push("Upon entering an arcade, one is typically presented with a clean, utilitarian wall like in a well-kept public restroom. Some have stalls, but many do not. In either case, at intervals along this wall, slaves' naked hindquarters protrude through. They are completely restrained on the inside of the wall, and available for use. Usually, the wall has an opposite side on which the slaves' throats may be accessed. The slaves' holes are cleaned either by mechanisms that withdraw them into the wall for the purpose, shields which extend between uses, or rarely, by attendants.");
-				r.toNode("p", ["note"]);
-
-				r.push("Arcades have become so common that most arcade owners attempt to differentiate themselves with something special. Some arcades have only a low wall so that conversations may be had between persons using either end of a slave; business meetings are an advertised possibility. Many specialize in a specific genital arrangement; others shield the pubic area so as to completely disguise it, reducing the slaves' identities to an anus and a throat only. Some attempt to improve patrons' experiences by using slaves who retain enough competence to do more than simply accept penetration, while others pursue the same goal by applying muscular electrostimulus for a tightening effect.");
-				r.toNode("p", ["note"]);
-
-				r.push("— Lawrence, W. G.,", highlight("Guide to Modern Slavery, 2037 Edition", ["note"]));
-				r.toParagraph();
-
-				r.push("The", highlight("Arcade"), "is the", highlight(link("Glory hole") + " facility.", ["note"]));
-				r.push("Extracts", link("money", "Money", "yellowgreen"), "from slaves; has extremely deleterious mental and physical effects.");
-				r.push("Arcades can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each customer who visits.");
-				r.toNode("div");
-				break;
-			case "Brothel":
-				r.push("The", highlight("Brothel"), "is the", highlight(link("Whoring") + " facility.", ["note"]));
-				r.push("Slaves will make", link("money", "Money", "yellowgreen"), "based on beauty and skills.");
-				r.push("Brothels can be the subject of an", link("ad campaign.", "Advertising"));
-				r.push("Brothels can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each customer who visits.");
-				r.toNode("div");
-				break;
-			case "Cellblock":
-				r.push("The", highlight("Cellblock"), "is the", highlight(link("Confinement") + " facility.", ["note"]));
-				r.push("Will break slaves and return them to the main menu after they are obedient.");
-				r.push("The Cellblock can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves incarcerated there.");
-				r.toNode("div");
-				break;
-			case "Clinic":
-				r.push("The", highlight("Clinic"), "is one of two", highlight(link("Rest") + " facilities,", ["note"]), "it focuses on slaves' health.");
-				r.push("The Clinic will treat slaves until they are", link("Healthy", "Health"), ",", "and will cure both injuries and illness.");
-				r.push("The Clinic can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves getting treatment there.");
-				r.toNode("div");
-				break;
-			case "Club":
-				r.push("The", highlight("Club"), "is the", highlight(link("Public Service") + " facility.", ["note"]));
-				r.push("Slaves will generate", rep(), "based on beauty and skills.");
-				r.push("Clubs can be the subject of an", link("ad campaign.", "Advertising"));
-				r.push("Clubs can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each citizen who visits.");
-				r.toNode("div");
-				break;
-			case "Dairy":
-				r.push("This is the very first", highlight("Free Cities Husbandry Weekly", ["note"]), "ever.");
-				r.push("I'm Val Banaszewski, and I'm the FCHW staff writer for dairy and dairy-related subjects. So, why do I do this, and why should you? Human breast milk is never going to be as", link("cheap", "Money", "yellowgreen"), "and common as normal milk. Why bother?");
-				r.toNode("div", ["note"]);
-
-				r.push("First, it's really tasty! If you've never tried it, put FCHW no. 1 down now and go try it. Buy it bottled if you have to, but make an effort to take your first drink right from the teat. You'll only ever take your first sip of mother's milk once, and it should really be special. Everyone describes it a little differently, but I'd say it's a warm, rich and comforting milk with vanilla and nutty flavors.");
-				r.toNode("p", ["note"]);
-
-				r.push("Second, it's sexy! Decadence is in, folks. Many people move to the Free Cities to get away from the old world, but some come here to experience real freedom. The experience of drinking a woman's milk before, during, and after you use her just isn't something you pass up. Try it today.");
-				r.toNode("p", ["note"]);
-
-				r.push("— Banaszewski, Valerie P.,", highlight("Free Cities Husbandry Weekly, February 2, 2032", ["note"]), );
-				r.toNode("p", ["note"]);
-
-				r.push("The", highlight("Dairy"), "is the", highlight(link("Milking") + " facility.", ["note"]));
-				r.push(`Only lactating ${V.seeDicks > 0 ? '' : 'or semen producing'} slaves can be assigned; will use drugs to increase natural breast size${V.seeDicks > 0 ? ' and ball size, if present<' : ''}.`);
-				r.push("All Dairy upgrades have three settings, once installed: Inactive, Active, and Industrial. Inactive and Active are self-explanatory. Industrial settings require that the restraint upgrade be installed and maximized, and that extreme content be enabled. They massively improve production, but will produce severe mental and physical damage. Younger slaves will be able to survive more intense industrial output, but drug side effects will eventually force an increasingly large fraction of drug focus towards curing the slave's ills, reducing production. Dairies can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each unit of fluid produced.");
-				r.toParagraph();
-				break;
-			case "Head Girl Suite":
-				r.push("The", highlight("Head Girl Suite"), "is a", highlight("unique facility.", ["note"]));
-				r.push("Only a single slave can be assigned, and this slave will be subject to the", link("Head Girl"), "'s decisions rather than the player's.");
-				r.toNode("div");
-				break;
-			case "Master Suite":
-				r.push("The", highlight("Master Suite"), "is the", highlight(link("Fucktoy") + " facility.", ["note"]));
-				r.push("Slaves will generate", rep(), "but at a lower efficiency than on the club. The Suite can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves serving there.");
-				r.toNode("div");
-				break;
-			case "Pit":
-				r.push("The", highlight("Pit"), "is a", highlight("unique facility.", ["note"]));
-				r.push("Unique in that slaves can perform standard duties in addition to being scheduled for fights in this facility.");
-				r.toNode("div");
-				break;
-			case "Schoolroom":
-				r.push("The", highlight("Schoolroom"), "is the", highlight(link("Learning", "Attending Classes") + " facility.", ["note"]));
-				r.push("Will educate slaves and return them to the penthouse after they are educated. The Schoolroom can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves studying there.");
-				r.toNode("div");
-				break;
-			case "Servants' Quarters":
-				r.push("The", highlight("Servants' Quarters"), "is the", highlight(link("Servitude") + " facility.", ["note"]));
-				r.push("Reduces weekly upkeep according to servants' obedience. Accepts most slaves and is insensitive to beauty and skills. The Quarters can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves serving there.");
-				r.toNode("div");
-				break;
-			case "Spa":
-				r.push("The", highlight("Spa"), "is one of two", highlight(link("Rest") + " facilities;", ["note"]), "it focuses on slaves' mental well-being.");
-				r.push("The Spa will heal, rest, and reassure slaves until they are at least reasonably", App.UI.DOM.toSentence(spaConditions), "The Spa can be furnished according to", link("future society", "Future Societies"), "styles, and doing so will add a slight", devotion(), "boost to slaves resting there.");
-				r.toNode("div");
-				break;
-			case "Nursery":
-				r.push("The", highlight("Nursery"), "is used to raise children from birth naturally. Once a spot is reserved for the child, they will be placed in the Nursery upon birth and ejected once they are old enough. The Nursery can be furnished according to", link("future society", "Future Societies"), "styles, and doing so can add a slight", devotion(), "boost to slaves working there.");
-				r.toNode("div");
-				break;
-			case "Farmyard": // TODO: this will need more information
-				r.push("The", highlight("Farmyard"), "is where the majority of the", link("food"), `in your arcology is grown, once it is built. It also allows you to house animals${V.seeBestiality === 1 ? ', which you can have interact with your slaves' : ''}. The Farmyard can be furnished according to`, link("future society", "Future Societies"), "styles, and doing so can add a slight", devotion(), "boost to slaves working there."); // TODO: this may need to be changed
-				r.toNode("div");
-
-				r.push("This entry still needs work and will be updated with more information as it matures. If this message is still here, remind one of the devs to remove it.");
-				r.toNode("div", ["note"]);
-				break;
-			// FACILITY BONUSES
-			case "Advertising":
-				r.push(highlight("Ad campaigns"), "can be run for both the", link("Brothel"), "and the", link("Club.", "Club"));
-				r.push("Naturally, these advertisements will feature lots of naked girls, providing the opportunity to give either facility a cachet for offering a specific kind of girl.");
-				r.push("Under the default, nonspecific settings, all slaves in the facilities will receive minor bonuses to performance.");
-				r.push("If specific body types are advertised, slaves that match the advertisements will receive an enhanced bonus, while slaves that do not will get a small penalty.");
-				r.push("However, instituting a specific ad campaign will prevent slaves in that facility from getting", link("Variety"), "bonuses.");
-				r.toNode("div");
-				break;
-			case "Variety":
-				r.push(highlight("Variety"), "bonuses are available for slaves in the", link("Brothel"), "and the", link("Club.", "Club"));
-				r.push("Offering a variety of slaves will provide a small bonus to performance for everyone in the facility, regardless of which qualities they possess:");
-				r.toNode("div");
-
-				indentLine(["Slim vs. Stacked"]);
-				indentLine(["Modded (heavily pierced and tattooed) vs. Unmodded"]);
-				indentLine(["Natural Assets vs. Implants"]);
-				indentLine([`Young vs. Old${V.seeDicks !== 0} '- Pussies and Dicks' : ''`]);
-				r.toParagraph();
-
-				r.push("Variety bonuses, if any, will be called out in the facility report at the end of the week.", link("Advertising"), "that the facility specializes in any of these areas will supersede variety bonuses for the related qualities. Staffing a facility to appeal to all tastes can be more challenging than building a homogeneous stable and advertising it, but is both powerful and free.");
-				r.toParagraph();
-				break;
-			case "Credits":
-				r.push("This game was created by a person with no coding experience whatsoever. If I can create a playable h-game, so can you.");
-				r.toNode("div");
-				r.push(highlight("Credit is not assigned without explicit permission.", ["underline"]));
-				r.push("If you have contributed content and are not credited, please reach out on gitgud so it can be resolved if desired.");
-				r.toParagraph();
-
-				introLine("anon", "various activities.");
-				indentLine(["Lolimod content, new slave careers, new pubestyles, and general improvements."]);
-				indentLine(["Considerable bugfixing, most notably that infernal", rep(), "bug."]);
-				indentLine(["Added a pair of fairy PA appearances."]);
-				indentLine(["Clitoral surgery, SMRs, and hip changes."]);
-				indentLine(["FAbuse alterations, gang leader start, and scarring."]);
-				indentLine(["Numerous pointed out typos."]);
-				indentLine(["Grorious nihon starting rocation."]);
-				indentLine(["Player getting fucked work."]);
-				indentLine(["Additional bodyguard weapons."]);
-				indentLine(["HGExclusion and animal pregnancy work."]);
-				indentLine(["Putting up with my javascript incompetence."]);
-				indentLine(["Player family listing."]);
-				indentLine(["Interchangeable prosthetics, advanced facial surgeries, custom nationality distribution and corporation assets overhaul."]);
-				indentLine(["Filter by assignment."]);
-				indentLine(["Filter by facility."]);
-				indentLine(["Forcing dicks onto slavegirls."]);
-				indentLine(["Forcing dicks into slavegirls and forced slave riding."]);
-				indentLine(["A prototype foot job scene."]);
-				indentLine(["Writing forced marriages, extra escape outcomes, new recruits and events, a story for FCTV and more player refreshment types."]);
-				indentLine(["Global realism stave trade setting."]);
-				indentLine(["New recruit events."]);
-				indentLine(["Expanding the cheat edit menu for slaves."]);
-				indentLine(["Head pats. What's next? Handholding? Consensual sex in the missionary position for the sole purpose of reproduction?"]);
-				indentLine(["Physical Idealist's beauty standard."]);
-				indentLine(["Gender Radicalist's trap preference."]);
-				indentLine(["Slave mutiny event."]);
-				indentLine(["Extending FCGudder's economy reports to the other facilities."]);
-				indentLine(["Making slaves seed their own fields."]);
-				indentLine(["Continued tweaks to various economy formulas."]);
-				indentLine(["Master slaving's multi slave training."]);
-				indentLine(["More hair vectors for the external art."]);
-				indentLine(["Wetware CPU market."]);
-				indentLine(["PA subjugationist and supremacist FS appearances."]);
-
-				introLine("Boney M", "of JoNT /hgg/ mod fame has been invaluable, combing tirelessly through the code to find and report my imbecilities.");
-				indentLine(["Coded an improvement to the relative recruitment system."]);
-				indentLine(["Wrote and coded the Ancient Egyptian Revivalism acquisition event."]);
-				indentLine(["Wrote and coded a prestige event for ex-abolitionists."]);
-				indentLine(["Coded a training event for slaves who hate blowjobs."]);
-				indentLine(["Wrote and coded several slave introduction options."]);
-
-				introLine("DrPill", "has offered great feedback, playtested exhaustively, and more.");
-				indentLine(["Wrote a slave introduction option."]);
-
-				introLine("bob22smith2000", "has made major contributions, not limited to close review of thousands of lines of code.");
-				indentLine(["Improved all facility and most assignment code for v0.5.11, an immense task."]);
-
-				introLine("Gerald Russell", "went into the code to locate and fix bugs.");
-				introLine("Ryllynyth", "contributed many bugfixes and suggestions in convenient code format.");
-
-				introLine("CornCobMan", "contributed several major modpacks, which include clothing, hair and eye colors, a facility name and arcology name expansions, UI improvements, nicknames, names, balance, a huge rework of the Rules Assistant, and more.");
-				indentLine(["indefatigably supported the RA updates."]);
-
-				introLine("Klementine", "wrote the fertility goddess skin for the personal assistant.");
-				introLine("Wahn", "wrote numerous generic recruitment events.");
-
-				introLine("PregModder", " has modded extensively, including descriptive embellishments for pregnant slaves, various asset descriptions, Master Suite reporting, the Wardrobe, a pack of facility leader interactions, options for Personal Assistant appearances, birthing scenes, fake pregnancy accessories, many other preg mechanics, blind content, expanded chubby belly descriptions, several new surgeries, neon and metallic makeup, better descriptive support for different refreshments, work on choosesOwnJob, many bugfixes, an expansion to the hostage corruption event chain, slave specific player titles, gagging and several basic gags, extended family mode, oversized sex toys, buttplug attachment system, and other, likely forgotten, things. (And that's just the vanilla added stuff!)");
-				introLine("Lolimodder", "your loli expertise will be missed.");
-
-				introLine("pregmodfan", "for tremendous amounts of work with compilers, decompilers, etc.");
-				indentLine(["Single-handedly kicked this mod into its new git home."]);
-				indentLine(["Contributed lots of bugfixes as well as fixed the RA considerably."]);
-				indentLine(["Revamped pregnancy tracking as well then further expanded it — and then expanding it more with superfetation."]);
-				indentLine(["Also for ppmod, ramod, implmod, cfpmod and psmod (preg speed)."]);
-				indentLine(["Added a pregnancy adapatation upgrade to the incubator."]);
-
-				introLine("FCGudder", "for advanced economy reports, image improvements, cleaning and fixing extended-extended family mode, extending building widgets, anaphrodisiacs, name cleaning, height overhauling, proper slave summary caching, new shelter slaves, some crazy ass shit with vector art, fixing seDeath, coding jQuery in ui support and likely one to two of these other anon credits.");
-				introLine("family mod anon", "for extending extended family mode.");
-				introLine("DarkTalon25", "for the Scots, Belarus, Dominicans, gilfwork, additional nicknames and a scalemail bikini.");
-
-				introLine("Unknown modder", "who did betterRA mod for old 0.9.5.4 version of original FC.");
-				introLine("brpregmodfan", "for Brazilian start and slave gen.");
-				introLine("fcanon", "for various fixes, massive improvements to the RA and wrangling my inabilty to spll gud.");
-
-				introLine("stuffedgameanon", "for fixes, streamlining the starting girls family code, family trees, unbelievable improvements to the games functionality, the sanityChecker, a tag checker and above ALL else; Improving the game's speed by an obscene amount. I swear this guy is a wizard. Now overhauling the UI as well.");
-				introLine("Preglocke", "for cleaning and expanding the foot job scene and various little content additions and corrections.");
-				introLine("thaumx", "for bigger player balls, cum production, self-impregnation and FCTV.");
-
-				introLine("onithyr", "for various little tweaks and additions.");
-				introLine("anonNeo", "for spellchecking.");
-
-				introLine("kopareigns", "for countless text and bug fixes.");
-				indentLine(["Also large swathes of code improvements."]);
-
-				introLine("Utopia", "for dirty dealings gang leader focus and updates to it.");
-				introLine("hexall90", "for height growth drugs, incubator organ farm support and detailing, the dispensary cleanup, the joint Eugenics bad end rework with SFanon (blank) the Hippolyta Academy, and the Security Expansion Mod (SecEx).");
-				introLine("sensei", "for coding in support for commas and an excellent family tree rework.");
-
-				introLine("laziestman", "for sexy spats.");
-				introLine("SFanon (blank)", "for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with hexall90.");
-				indentLine(["Cleaned up the sidebar, now maintaining and expanding SecEx."]);
-				indentLine([" Added warfare/engineering personal attention targets."]);
-				indentLine(["Converted the encyclopedia to JS along with minor standardiation."]);
-				indentLine(["Likes tabs."]);
-
-				introLine("MilkAnon", "for his contributions to FCTV and the FC world in general.");
-				introLine("valen102938", "for dealing with vector art, both creating new art and utilizing unused art.");
-				introLine("Ansopedi", "for slave career skills.");
-
-				introLine("Emuis", "for various compiler tweaks.");
-				introLine("Faraen", "for a full vector art variant.");
-
-				introLine("Vas", "for massive JS work and completely redoing the RA.");
-				indentLine(["Set up the 'make' compiler."]);
-				indentLine(["Gave nulls some nicknames."]);
-
-				introLine("deepmurk", "for a massive expansion in conjunction with Nox to the original embedded vector art.");
-				indentLine(["Also more hairs, clothes, shoes, clothes, descriptions and clothes."]);
-				indentLine(["Overhauled skin colors too."]);
-
-				introLine("Channel8", "for FCTV content (and likely giving the spellCheck an aneurysm).");
-				introLine("Channel13", "for FCTV content.");
-
-				introLine("kidkinster", "for slave management ui stuff and induced NCS.");
-				introLine("editoranon", "for cleaning text and drafting up bodyswap reactions.");
-				introLine("Autistic Boi", "for Mediterranean market preset.");
-
-				introLine("Editoranon and Milkanon?", "for prison markets and the nursing handjob scene.");
-
-				introLine("DCoded", "for creating the favicon, nursery, and farmyard, as well as animal-related content. Created a food system as well as a loan system. Refactored tons of code and standardized the facility passages. Also added several new scenes and interactions, the reminder system, and created and fixed a number of bugs.");
-				indentLine(["Created a food system as well as a loan system."]);
-				indentLine(["Also added an oral scene, the reminder system, and created and fixed a number of bugs."]);
-
-				introLine("HiveBro", "for giving hyperpregnant slaves some serious loving.");
-				introLine("Quin2k", "for overwriting save function and expired tweak via Vrelnir & co.");
-
-				introLine("ezsh", "for bugfixing and creating a tool to build twineJS and twineCSS for me.");
-				indentLine(["Set up a revised SC update process as well."]);
-				indentLine(["Has contributed massive revisions to the game's structure."]);
-				indentLine(["Keeps the RA in line."]);
-
-				introLine("Sonofrevvan", "for making slaves beg and dance.");
-				introLine("skriv", "for fixes and endless code cleaning.");
-
-				introLine("Arkerthan", "for various additions including merging cybermod and vanilla prosthetics.");
-				indentLine(["Java sanity check."]);
-				indentLine(["Limbs and reworked amputation."]);
-				indentLine(["Eye rework."]);
-				indentLine(["Has begun overhauling various systems including the building layout."]);
-				indentLine(["Dick tower."]);
-				indentLine(["Work on user themes."]);
-				indentLine(["Custom hotkeys."]);
-
-				introLine("MouseOfLight", "for overhauling the corporation.");
-				indentLine(["V proxy, nuff said."]);
-				indentLine(["Added better safeguards to the RA."]);
-
-				introLine("svornost", "a great asset.");
-				indentLine(["Various fixes and tools, including FCHost."]);
-				indentLine(["Gave players the ability to find that one slave they are looking for."]);
-				indentLine(["The 'Scope' macro."]);
-				indentLine(["Optimized porn so beautifully I can't even think."]);
-				indentLine(["Has continued his reign of optimization."]);
-				indentLine(["Got extended family mode so smooth it supplanted vanilla."]);
-				indentLine(["Laid the groundwork for the new event layout system."]);
-				indentLine(["Wrote SpacedTextAccumulator."]);
-
-				introLine("Trashman1138", "for various tweaks and fixes.");
-				introLine("maxd569", "for adding .mp4 and .webm support to custom images.");
-				introLine("Anu", "for various fixes.");
-
-				introLine("Cayleth", "for various fixes and support.");
-				introLine("Jones", "for major overhauling of the economy/population/health systems.");
-				introLine("PandemoniumPenguin", "for giving players a choice in FS names.");
-
-				introLine("torbjornhub", "for adding pit rules to the RA.");
-				introLine("CheatMode", "for additional cheatmode options.");
-
-				introLine("Transhumanist01", "for the production of husk slaves via incubator.");
-				indentLine(["Contributed the uterine hypersensitivity genetic quirk."]);
-
-				introLine("Fake_Dev", "for nipple enhancers.");
-				introLine("UnwrappedGodiva", "for a tool to edit save files.");
-				introLine("git contributors lost to time", "for their submissions and work through pregmod's git.");
-
-				introLine("Bane70", "optimized huge swaths of code with notable professionalism.");
-				introLine("Circle Tritagonist'", "provided several new collars and outfits.");
-				introLine("Qotsafan", "submitted bugfixes.");
-
-				introLine("FireDrops", "provided standardized body mod scoring, gave Recruiters their idle functions, revised personal assistant future society associations, and fixed bugs.");
-				introLine("Princess April", "wrote and coded several random events and the Slimness Enthusiast Dairy upgrade.");
-				introLine("Hicks", "provided minor logic and balance improvements in coded, release-ready form.");
-
-				introLine("Dej", "coded better diet logic for the RA.");
-				introLine("Flooby Badoop", "wrote and coded a random recruitment event.");
-				introLine("FC_BourbonDrinker", "went into the code to locate and fix bugs.");
-
-				introLine("Shokushu", "created a rendered imagepack comprising 775 images, and assisted with the code necessary to display them.");
-				indentLine(["Also maybe the dinner party event?"]);
-
-				introLine("NovX", "created a vector art system.");
-				introLine("Mauve", "contributed vector collars and pubic hair.");
-				introLine("Rodziel", "contributed the cybernetics mod.");
-
-				introLine("prndev", "wrote the Free Range Dairy Assignment scene.");
-				indentLine(["Also did tons of vector art work."]);
-
-				introLine("freecitiesbandit", "wrote a number of recruitment, future society, mercenary and random events, provided tailed buttplugs, new eyes and tattoos, and contributed the code for the mercenary raiders policy.");
-				introLine("DrNoOne", "wrote the bulk slave purchase and persistent summary code.");
-				introLine("Mauve", "provided vector art for chastity belts and limp dicks.");
-
-				introLine("Klorpa", "for dozens of new nationalities and boundless new names and nicknames.");
-				indentLine(["Also monokinis, middle eastern clothing, overalls and aprons."]);
-				indentLine(["Also the hearing, taste, and smell overhauls."]);
-				indentLine(["Added basic support for watersports."]);
-				indentLine(["Has declared war on bad spelling, grammar and formatting."]);
-				indentLine(["Added eyebrows too."]);
-				indentLine(["Dug up ancient abandoned vanilla vignettes and implemented them."]);
-				indentLine(["Toiled in the depths to extend limb support."]);
-
-				introLine("lowercasedonkey", "for various additions, not limited to the budget overhauls.");
-				indentLine(["Set up all the tabs too."]);
-				indentLine(["Gave events dynamic vector art."]);
-				indentLine(["Hammered the scarring and branding systems into place."]);
-				indentLine(["Been a real boon writing events and other things as well."]);
-				indentLine(["Used ezsh's facility framework to enhance slave summaries."]);
-				indentLine(["Set up a system to recall where slaves were serving."]);
-				indentLine(["Striving to master DOM with great gains."]);
-
-				introLine("amomynous0", "for bug reports and testing in addition to SFmod unit descriptions.");
-				introLine("wepsrd", "for QOL (hormonal balance cheat and lactation adaptation to new menu) fixes.");
-				introLine("i107760", "for Costs Budget, CashX work, The Utopian Orphanage, Farmyard, Special Forces work, various QoL additions and Private Tutoring System.");
-
-				introLine("Many other anonymous contributors", "helped fix bugs via GitHub. They will be credited by name upon request.", "p");
-				App.Events.addParagraph(text, ["Thanks are due to all the anons that submitted slaves for inclusion in the pre-owned database and offered content ideas. Many anonymous playtesters also gave crucial feedback and bug reports. May you all ride straight to the gates of Valhalla, shiny and chrome."]);
-				break;
 			default:
 				throw Error(`Error: bad title - ${V.encyclopedia}.`);
 		}
 	}
 
 	if (!["How to Play", "Table of Contents", "Credits"].includes(V.encyclopedia)) { // special pages where we don't show related links
-		indentLine([App.Encyclopedia.relatedLinks()], "h2");
+		App.Events.addNode(f, [App.Encyclopedia.relatedLinks()], "h2");
 	}
 	return text;
  */
-	/**
-	 * @param {string} name
-	 * @param {string} line
-	 * @param {keyof HTMLElementTagNameMap} [tag]
-	 * @api private
-	 */
-	function introLine(name, line, tag="div") {
-		const r = new SpacedTextAccumulator(text);
-		r.push(highlight(name), line);
-		return r.toNode(tag);
-	}
-	/**
-	 * @param {Array} line
-	 * @param {keyof HTMLElementTagNameMap} [tag]
-	 * @param {string[]} [className]
-	 * @api private
-	 */
-	function indentLine(line, tag="div", className=["indent"]) {
-		const r = new SpacedTextAccumulator(text);
-		r.push(...line);
-		return r.toNode(tag, className);
-	}
 };
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index cd952894a670f409ac8e3f4719517389870bfc71..51b6e9d5114ce18b1cee6bb4fd55762b6825f87c 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -142,118 +142,6 @@ SLAVE RELATIONSHIPS
 <<case "Slaveowner Marriages">>
 	''Slaveowner Marriages'', marriages between a @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devoted", "From Rebellious to Devoted")>>@@ slave and the player character, require passage of a slaveowner marriage policy unlocked by advanced <<= App.Encyclopedia.Dialog.linkSC("paternalism", "Paternalism")>>. Once this policy is in place, <<= App.Encyclopedia.Dialog.linkSC("emotionally bonded", "Emotionally Bonded")>> slaves can be married. There is no limit to the number of slaves a paternalist player character can marry. Marriage to the player character functions as a direct upgrade to being emotionally bonded.
 
-/**********
-ARCOLOGY FACILITIES
-**********/
-<<case "Facilities">>
-	The arcology can be upgraded with a variety of facilities for slaves to live and work from. Each of the facilities is associated with an assignment. Sending a slave to a facility removes her from the main menu, removes her from the end of week report, and automates most management of her. Her clothes, drugs, rules, and other management tools are automatically run by the facility. However, her impact on your affairs will be substantially the same as if she were assigned to the corresponding assignment outside the facility. This means that things like @@.green;<<= App.Encyclopedia.Dialog.linkSC("reputation", "Arcologies and Reputation")>>@@ effects, future society developments, and branding are all still active.
-
-	<br><br>Use facilities sparingly until you're familiar with what assignments do so you don't miss important information. When you're confident enough to ignore a slave for long periods, sending her to a facility becomes a good option. Sending a slave to a facility heavily reduces the player's interaction with her, keeps the main menu and end week report manageable, and prevents most events from featuring her, which can be useful when she's so well trained that events aren't as beneficial for her. Also, many facilities have leadership positions that can apply powerful multipliers to a slave's performance.
-
-	<br><br>The <<= App.Encyclopedia.Dialog.linkSC("Arcade", "Arcade")>>, <<= App.Encyclopedia.Dialog.linkSC("Brothel", "Brothel")>>, <<= App.Encyclopedia.Dialog.linkSC("Club", "Club")>>, <<= App.Encyclopedia.Dialog.linkSC("Dairy", "Dairy")>>, and <<= App.Encyclopedia.Dialog.linkSC("Servants' Quarters", "Servants' Quarters")>> all correspond to basic productive assignments. The <<= App.Encyclopedia.Dialog.linkSC("Spa", "Spa")>>, <<= App.Encyclopedia.Dialog.linkSC("Cellblock", "Cellblock")>>, and <<= App.Encyclopedia.Dialog.linkSC("Schoolroom", "Schoolroom")>>, are a little different in that they focus on improving their occupants rather than producing something useful, since they correspond to the rest, confinement, and class assignments. As such, only slaves that can benefit from these facilities' services can be sent to them. When slaves in these facilities have received all the benefits they can from the facility, they will be automatically ejected, assigned to rest, and returned to the main menu. The <<= App.Encyclopedia.Dialog.linkSC("Head Girl Suite", "Head Girl Suite")>>, <<= App.Encyclopedia.Dialog.linkSC("Master Suite", "Master Suite")>>, <<= App.Encyclopedia.Dialog.linkSC("Farmyard", "Farmyard")>>, <<= App.Encyclopedia.Dialog.linkSC("Incubation Facility", "The Incubation Facility")>>, and <<= App.Encyclopedia.Dialog.linkSC("Pit", "Pit")>> are all completely unique.
-
-
-<<case "Arcade">>
-	//It is every slave's final duty to go into the arcade, and to become one with all the arcology.
-	&nbsp;&nbsp;&nbsp;&nbsp;— Anonymous slaveowner
-
-	<br><br>The arcade (sometimes colloquially referred to as "the wallbutts") is an excellent example of one of the many ideas that was confined to the realm of erotic fantasy until modern slavery began to take shape. It has rapidly turned from an imaginary fetishistic construction into a common sight in the more 'industrial' slaveowning arcologies. Most arcades are built to do one thing: derive profit from the holes of low-value slaves.
-
-	<br><br>Upon entering an arcade, one is typically presented with a clean, utilitarian wall like in a well-kept public restroom. Some have stalls, but many do not. In either case, at intervals along this wall, slaves' naked hindquarters protrude through. They are completely restrained on the inside of the wall, and available for use. Usually, the wall has an opposite side on which the slaves' throats may be accessed. The slaves' holes are cleaned either by mechanisms that withdraw them into the wall for the purpose, shields which extend between uses, or rarely, by attendants.
-
-	<br><br>Arcades have become so common that most arcade owners attempt to differentiate themselves with something special. Some arcades have only a low wall so that conversations may be had between persons using either end of a slave; business meetings are an advertised possibility. Many specialize in a specific genital arrangement; others shield the pubic area so as to completely disguise it, reducing the slaves' identities to an anus and a throat only. Some attempt to improve patrons' experiences by using slaves who retain enough competence to do more than simply accept penetration, while others pursue the same goal by applying muscular electrostimulus for a tightening effect.
-
-	<br><br>— Lawrence, W. G., //Guide to Modern Slavery, 2037 Edition////
-
-	<br><br>The ''Arcade'' is the //<<= App.Encyclopedia.Dialog.linkSC("Glory hole", "Glory Hole")>> facility.// Extracts @@.yellowgreen;<<= App.Encyclopedia.Dialog.linkSC("money", "Money")>>@@ from slaves; has extremely deleterious mental and physical effects. Arcades can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a tiny amount of future society progress for each customer who visits.
-
-
-<<case "Brothel">>
-	The ''Brothel'' is the //<<= App.Encyclopedia.Dialog.linkSC("Whoring", "Whoring")>> facility.// Slaves will make @@.yellowgreen;<<= App.Encyclopedia.Dialog.linkSC("money", "Money")>>@@ based on beauty and skills. Brothels can be the subject of an <<= App.Encyclopedia.Dialog.linkSC("ad campaign", "Advertising")>>. Brothels can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a tiny amount of future society progress for each customer who visits.
-
-
-<<case "Cellblock">>
-	The ''Cellblock'' is the //<<= App.Encyclopedia.Dialog.linkSC("Confinement", "Confinement")>> facility.// Will break slaves and return them to the main menu after they are obedient. The Cellblock can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves incarcerated there.
-
-
-<<case "Clinic">>
-	The ''Clinic'' is one of two //<<= App.Encyclopedia.Dialog.linkSC("Rest", "Rest")>> facilities;// it focuses on slaves' health. The Clinic will treat slaves until they are <<= App.Encyclopedia.Dialog.linkSC("Healthy", "Health")>>, and will cure both injuries and illness. The Clinic can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves getting treatment there.
-
-
-<<case "Club">>
-	The ''Club'' is the //<<= App.Encyclopedia.Dialog.linkSC("Public Service", "Public Service")>> facility.// Slaves will generate @@.green;<<= App.Encyclopedia.Dialog.linkSC("reputation", "Arcologies and Reputation")>>@@ based on beauty and skills. Clubs can be the subject of an <<= App.Encyclopedia.Dialog.linkSC("ad campaign", "Advertising")>>. Clubs can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a tiny amount of future society progress for each citizen who visits.
-
-
-<<case "Dairy">>
-	//This is the very first //Free Cities Husbandry Weekly// ever. I'm Val Banaszewski, and I'm the FCHW staff writer for dairy and dairy-related subjects. So, why do I do this, and why should you? Human breast milk is never going to be as @@.yellowgreen;<<= App.Encyclopedia.Dialog.linkSC("cheap", "Money")>>@@ and common as normal milk. Why bother?
-
-	<br><br>First, it's really tasty! If you've never tried it, put FCHW no. 1 down now and go try it. Buy it bottled if you have to, but make an effort to take your first drink right from the teat. You'll only ever take your first sip of mother's milk once, and it should really be special. Everyone describes it a little differently, but I'd say it's a warm, rich and comforting milk with vanilla and nutty flavors.
-
-	<br><br>Second, it's sexy! Decadence is in, folks. Many people move to the Free Cities to get away from the old world, but some come here to experience real freedom. The experience of drinking a woman's milk before, during, and after you use her just isn't something you pass up. Try it today.
-
-	<br><br>— Banaszewski, Valerie P., //Free Cities Husbandry Weekly, February 2, 2032////
-
-	<br><br>The ''Dairy'' is the //<<= App.Encyclopedia.Dialog.linkSC("Milking", "Milking")>> facility.// Only lactating
-	<<if $seeDicks > 0>>
-		or semen producing
-	<</if>>
-	slaves can be assigned; will use drugs to increase natural breast size
-	<<if $seeDicks > 0>>
-		and ball size, if present
-	<</if>>.
-	All Dairy upgrades have three settings, once installed: Inactive, Active, and Industrial. Inactive and Active are self-explanatory. Industrial settings require that the restraint upgrade be installed and maximized, and that extreme content be enabled. They massively improve production, but will produce severe mental and physical damage. Younger slaves will be able to survive more intense industrial output, but drug side effects will eventually force an increasingly large fraction of drug focus towards curing the slave's ills, reducing production. Dairies can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a tiny amount of future society progress for each unit of fluid produced.
-
-
-<<case "Head Girl Suite">>
-	The ''Head Girl Suite'' is a //unique facility.// Only a single slave can be assigned, and this slave will be subject to the <<= App.Encyclopedia.Dialog.linkSC("Head Girl", "Head Girl")>>'s decisions rather than the player's.
-
-
-<<case "Master Suite">>
-	The ''Master Suite'' is the //<<= App.Encyclopedia.Dialog.linkSC("Fucktoy", "Fucktoy")>> facility.// Slaves will generate @@.green;<<= App.Encyclopedia.Dialog.linkSC("reputation", "Arcologies and Reputation")>>,@@ but at a lower efficiency than on the club. The Suite can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves serving there.
-
-
-<<case "Pit">>
-	The ''Pit'' is a //unique facility.// Unique in that slaves can perform standard duties in addition to being scheduled for fights in this facility.
-
-
-<<case "Schoolroom">>
-	The ''Schoolroom'' is the //<<= App.Encyclopedia.Dialog.linkSC("Learning", "Attending Classes")>> facility.// Will educate slaves and return them to the penthouse after they are educated. The Schoolroom can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves studying there.
-
-
-<<case "Servants' Quarters">>
-	The ''Servants' Quarters'' is the //<<= App.Encyclopedia.Dialog.linkSC("Servitude", "Servitude")>> facility.// Reduces weekly upkeep according to servants' obedience. Accepts most slaves and is insensitive to beauty and skills. The Quarters can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves serving there.
-
-
-<<case "Spa">>
-	The ''Spa'' is one of two //<<= App.Encyclopedia.Dialog.linkSC("Rest", "Rest")>> facilities;// it focuses on slaves' mental well-being. The Spa will heal, rest, and reassure slaves until they are at least reasonably <<= App.Encyclopedia.Dialog.linkSC("Healthy", "Health")>>, happy, and free of <<= App.Encyclopedia.Dialog.linkSC("Flaws", "Flaws")>>. The Spa can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so will add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves resting there.
-
-
-<<case "Nursery">>
-	The ''Nursery'' is used to raise children from birth naturally. Once a spot is reserved for the child, they will be placed in the Nursery upon birth and ejected once they are old enough. The Nursery can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so can add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves working there.
-
-
-<<case "Farmyard">>		/* TODO: this will need more information */
-	The ''Farmyard'' is where the majority of the <<= App.Encyclopedia.Dialog.linkSC("food", "Food")>> in your arcology is grown, once it is built. It also allows you to house animals<<if $seeBestiality == 1>>, which you can have interact with your slaves<</if>>. The Farmyard can be furnished according to <<= App.Encyclopedia.Dialog.linkSC("future society", "Future Societies")>> styles, and doing so can add a slight @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ boost to slaves working there. /* TODO: this may need to be changed */
-	<br>//This entry still needs work and will be updated with more information as it matures. If this message is still here, remind one of the devs to remove it.//
-
-
-/**********
-FACILITY BONUSES
-**********/
-<<case "Advertising">>
-	''Ad campaigns'' can be run for both the <<= App.Encyclopedia.Dialog.linkSC("Brothel", "Brothel")>> and the <<= App.Encyclopedia.Dialog.linkSC("Club", "Club")>>. Naturally, these advertisements will feature lots of naked girls, providing the opportunity to give either facility a cachet for offering a specific kind of girl. Under the default, nonspecific settings, all slaves in the facilities will receive minor bonuses to performance. If specific body types are advertised, slaves that match the advertisements will receive an enhanced bonus, while slaves that do not will get a small penalty. However, instituting a specific ad campaign will prevent slaves in that facility from getting <<= App.Encyclopedia.Dialog.linkSC("Variety", "Variety")>> bonuses.
-
-
-<<case "Variety">>
-	''Variety'' bonuses are available for slaves in the <<= App.Encyclopedia.Dialog.linkSC("Brothel", "Brothel")>> and the <<= App.Encyclopedia.Dialog.linkSC("Club", "Club")>>. Offering a variety of slaves will provide a small bonus to performance for everyone in the facility, regardless of which qualities they possess:
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;Slim vs. Stacked
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;Modded (heavily pierced and tattooed) vs. Unmodded
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;Natural Assets vs. Implants
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;Young vs. Old
-	<<if $seeDicks != 0>><br>- Pussies and Dicks<</if>>
-
-	<br><br>Variety bonuses, if any, will be called out in the facility report at the end of the week. <<= App.Encyclopedia.Dialog.linkSC("Advertising", "Advertising")>> that the facility specializes in any of these areas will supersede variety bonuses for the related qualities. Staffing a facility to appeal to all tastes can be more challenging than building a homogeneous stable and advertising it, but is both powerful and free.
-
 <<default>>
 	Error: bad title.
 <</switch>>
diff --git a/src/gui/Encyclopedia/encyclopediaFacilites.js b/src/gui/Encyclopedia/encyclopediaFacilites.js
new file mode 100644
index 0000000000000000000000000000000000000000..a161401c9b224b98fbe48e6a854472df14434b41
--- /dev/null
+++ b/src/gui/Encyclopedia/encyclopediaFacilites.js
@@ -0,0 +1,245 @@
+App.Encyclopedia.addArticle("Facilities Overview", function() {
+	const basic = [App.Encyclopedia.Dialog.linkDOM("Arcade"), App.Encyclopedia.Dialog.linkDOM("Brothel"), App.Encyclopedia.Dialog.linkDOM("Club"), App.Encyclopedia.Dialog.linkDOM("Dairy"), App.Encyclopedia.Dialog.linkDOM("Servants' Quarters")];
+	const unique = [App.Encyclopedia.Dialog.linkDOM("Head Girl Suite"), App.Encyclopedia.Dialog.linkDOM("Master Suite"), App.Encyclopedia.Dialog.linkDOM("Farmyard"), App.Encyclopedia.Dialog.linkDOM("Incubation Facility", "The Incubation Facility"), App.Encyclopedia.Dialog.linkDOM("Pit")];
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The arcology can be upgraded with a variety of facilities for slaves to live and work from. Each of the facilities is associated with an assignment. Sending a slave to a facility removes her from the main menu, removes her from the end of week report, and automates most management of her. Her clothes, drugs, rules, and other management tools are automatically run by the facility. However, her impact on your affairs will be substantially the same as if she were assigned to the corresponding assignment outside the facility. This means that things like", App.Encyclopedia.Dialog.linkDOM("reputation", "Arcologies and Reputation", "green"), "effects, future society developments, and branding are all still active.");
+	r.toParagraph();
+
+	r.push("Use facilities sparingly until you're familiar with what assignments do so you don't miss important information. When you're confident enough to ignore a slave for long periods, sending her to a facility becomes a good option. Sending a slave to a facility heavily reduces the player's interaction with her, keeps the main menu and end week report manageable, and prevents most events from featuring her, which can be useful when she's so well trained that events aren't as beneficial for her. Also, many facilities have leadership positions that can apply powerful multipliers to a slave's performance.");
+	r.toParagraph();
+
+	r.push("The", App.UI.DOM.toSentence(basic), "all correspond to basic productive assignments.");
+	r.push("The",  App.UI.DOM.toSentence([App.Encyclopedia.Dialog.linkDOM("Spa"), App.Encyclopedia.Dialog.linkDOM("Cellblock"), App.Encyclopedia.Dialog.linkDOM("Schoolroom")]), "are a little different in that they focus on improving their occupants rather than producing something useful, since they correspond to the rest, confinement, and class assignments.");
+	r.push("As such, only slaves that can benefit from these facilities' services can be sent to them. When slaves in these facilities have received all the benefits they can from the facility, they will be automatically ejected, assigned to rest, and returned to the main menu.");
+	r.push("The", App.UI.DOM.toSentence(unique), "are all completely unique.");
+	r.toParagraph();
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Arcade", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("It is every slave's final duty to go into the arcade, and to become one with all the arcology.");
+	r.toNode("div", ["note"]);
+	App.Events.addNode(f, ["— Anonymous slaveowner", "note"], "div", ["indent"]);
+
+	r.push(`The arcade (sometimes colloquially referred to as "the wallbutts") is an excellent example of one of the many ideas that was confined to the realm of erotic fantasy until modern slavery began to take shape. It has rapidly turned from an imaginary fetishistic construction into a common sight in the more 'industrial' slaveowning arcologies. Most arcades are built to do one thing: derive profit from the holes of low-value slaves.`);
+	r.toNode("p", ["note"]);
+
+	r.push("Upon entering an arcade, one is typically presented with a clean, utilitarian wall like in a well-kept public restroom. Some have stalls, but many do not. In either case, at intervals along this wall, slaves' naked hindquarters protrude through. They are completely restrained on the inside of the wall, and available for use. Usually, the wall has an opposite side on which the slaves' throats may be accessed. The slaves' holes are cleaned either by mechanisms that withdraw them into the wall for the purpose, shields which extend between uses, or rarely, by attendants.");
+	r.toNode("p", ["note"]);
+
+	r.push("Arcades have become so common that most arcade owners attempt to differentiate themselves with something special. Some arcades have only a low wall so that conversations may be had between persons using either end of a slave; business meetings are an advertised possibility. Many specialize in a specific genital arrangement; others shield the pubic area so as to completely disguise it, reducing the slaves' identities to an anus and a throat only. Some attempt to improve patrons' experiences by using slaves who retain enough competence to do more than simply accept penetration, while others pursue the same goal by applying muscular electrostimulus for a tightening effect.");
+	r.toNode("p", ["note"]);
+
+	App.Encyclopedia.addArticleSource(r.container(), "Guide to Modern Slavery, 2037 Edition", "Lawrence, W. G.");
+
+	r.push("The", App.UI.DOM.makeElement("span", "Arcade", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Glory hole"), " facility."));
+	r.push("Extracts", App.Encyclopedia.Dialog.linkDOM("money", "Money", "yellowgreen"), "from slaves; has extremely deleterious mental and physical effects.");
+	r.push("Arcades can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each customer who visits.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Brothel", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Brothel", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Whoring"), "facility."));
+	r.push("Slaves will make", App.Encyclopedia.Dialog.linkDOM("money", "Money", "yellowgreen"), "based on beauty and skills.");
+	r.push("Brothels can be the subject of an", App.Encyclopedia.Dialog.linkDOM("ad campaign.", "Advertising"));
+	r.push("Brothels can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each customer who visits.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Cellblock", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Cellblock", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Confinement"), "facility."));
+	r.push("Will break slaves and return them to the main menu after they are obedient.");
+	r.push("The Cellblock can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves incarcerated there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Clinic", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Clinic", ["bold"]), "is one of two", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Rest"), "facilities,"), "it focuses on slaves' health.");
+	r.push("The Clinic will treat slaves until they are", App.Encyclopedia.Dialog.linkDOM("Healthy", "Health"), ",", "and will cure both injuries and illness.");
+	r.push("The Clinic can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves getting treatment there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Club", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Club", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Public Service"), "facility."));
+	r.push("Slaves will generate", App.Encyclopedia.Dialog.linkDOM("reputation", "Arcologies and Reputation", "green"), "based on beauty and skills.");
+	r.push("Clubs can be the subject of an", App.Encyclopedia.Dialog.linkDOM("ad campaign.", "Advertising"));
+	r.push("Clubs can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each citizen who visits.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Dairy", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("This is the very first", App.UI.DOM.makeElement("span", "Free Cities Husbandry Weekly", ["note"]), "ever.");
+	r.push("I'm Val Banaszewski, and I'm the FCHW staff writer for dairy and dairy-related subjects. So, why do I do this, and why should you? Human breast milk is never going to be as", App.Encyclopedia.Dialog.linkDOM("cheap", "Money", "yellowgreen"), "and common as normal milk. Why bother?");
+	r.toNode("div", ["note"]);
+
+	r.push("First, it's really tasty! If you've never tried it, put FCHW no. 1 down now and go try it. Buy it bottled if you have to, but make an effort to take your first drink right from the teat. You'll only ever take your first sip of mother's milk once, and it should really be special. Everyone describes it a little differently, but I'd say it's a warm, rich and comforting milk with vanilla and nutty flavors.");
+	r.toNode("p", ["note"]);
+
+	r.push("Second, it's sexy! Decadence is in, folks. Many people move to the Free Cities to get away from the old world, but some come here to experience real freedom. The experience of drinking a woman's milk before, during, and after you use her just isn't something you pass up. Try it today.");
+	r.toNode("p", ["note"]);
+
+	App.Encyclopedia.addArticleSource(r.container(), "Free Cities Husbandry Weekly, February 2, 2032", "Banaszewski, Valerie P.");
+
+	r.push("The", App.UI.DOM.makeElement("span", "Dairy", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Milking"), "facility."));
+	r.push(`Only lactating ${V.seeDicks > 0 ? '' : 'or semen producing'} slaves can be assigned; will use drugs to increase natural breast size${V.seeDicks > 0 ? ' and ball size, if present<' : ''}.`);
+	r.push("All Dairy upgrades have three settings, once installed: Inactive, Active, and Industrial. Inactive and Active are self-explanatory. Industrial settings require that the restraint upgrade be installed and maximized, and that extreme content be enabled. They massively improve production, but will produce severe mental and physical damage. Younger slaves will be able to survive more intense industrial output, but drug side effects will eventually force an increasingly large fraction of drug focus towards curing the slave's ills, reducing production. Dairies can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a tiny amount of future society progress for each unit of fluid produced.");
+	r.toParagraph();
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Head Girl Suite", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Head Girl Suite"), "is a", App.UI.DOM.makeElement("span", "unique facility.", ["note"]));
+	r.push("Only a single slave can be assigned, and this slave will be subject to the", App.Encyclopedia.Dialog.linkDOM("Head Girl"), "'s decisions rather than the player's.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Master Suite", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Master Suite", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Fucktoy"), "facility."));
+	r.push("Slaves will generate", App.Encyclopedia.Dialog.linkDOM("reputation", "Arcologies and Reputation", "green"), "but at a lower efficiency than on the club. The Suite can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves serving there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Pit", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Pit", ["bold"]), "is a", App.UI.DOM.makeElement("span", "unique facility.", ["note"]));
+	r.push("Unique in that slaves can perform standard duties in addition to being scheduled for fights in this facility.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Schoolroom", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Schoolroom", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Learning", "Attending Classes"), "facility."));
+	r.push("Will educate slaves and return them to the penthouse after they are educated. The Schoolroom can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves studying there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Servants' Quarters", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Servants' Quarters", ["bold"]), "is the", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Servitude"), "facility."));
+	r.push("Reduces weekly upkeep according to servants' obedience. Accepts most slaves and is insensitive to beauty and skills. The Quarters can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves serving there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Spa", function() {
+	const spaConditions = [App.Encyclopedia.Dialog.linkDOM("Healthy", "Health"), "happy", App.Encyclopedia.Dialog.linkDOM("free of flaws.", "Flaws")];
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Spa", ["bold"]), "is one of two", noteFacilityName(App.Encyclopedia.Dialog.linkDOM("Rest"), "facilities;"), "it focuses on slaves' mental well-being.");
+	r.push("The Spa will heal, rest, and reassure slaves until they are at least reasonably", App.UI.DOM.toSentence(spaConditions), "The Spa can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so will add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves resting there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Nursery", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Nursery", ["bold"]), "is used to raise children from birth naturally. Once a spot is reserved for the child, they will be placed in the Nursery upon birth and ejected once they are old enough. The Nursery can be furnished according to", App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so can add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves working there.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Farmyard", function() {// TODO: this will need more information
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push("The", App.UI.DOM.makeElement("span", "Farmyard", ["bold"]), "is where the majority of the", App.Encyclopedia.Dialog.linkDOM("food"), `in your arcology is grown, once it is built. It also allows you to house animals${V.seeBestiality === 1 ? ', which you can have interact with your slaves' : ''}. The Farmyard can be furnished according to`, App.Encyclopedia.Dialog.linkDOM("future society", "Future Societies"), "styles, and doing so can add a slight", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "boost to slaves working there."); // TODO: this may need to be changed
+	r.toNode("div");
+
+	r.push("This entry still needs work and will be updated with more information as it matures. If this message is still here, remind one of the devs to remove it.");
+	r.toNode("div", ["note"]);
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Advertising", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push(App.UI.DOM.makeElement("span", "Ad campaigns", ["bold"]), "can be run for both the", App.Encyclopedia.Dialog.linkDOM("Brothel"), "and the", App.Encyclopedia.Dialog.linkDOM("Club.", "Club"));
+	r.push("Naturally, these advertisements will feature lots of naked girls, providing the opportunity to give either facility a cachet for offering a specific kind of girl.");
+	r.push("Under the default, nonspecific settings, all slaves in the facilities will receive minor bonuses to performance.");
+	r.push("If specific body types are advertised, slaves that match the advertisements will receive an enhanced bonus, while slaves that do not will get a small penalty.");
+	r.push("However, instituting a specific ad campaign will prevent slaves in that facility from getting", App.Encyclopedia.Dialog.linkDOM("Variety"), "bonuses.");
+	r.toNode("div");
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addArticle("Variety", function() {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	r.push(App.UI.DOM.makeElement("span", "Variety", ["bold"]), "bonuses are available for slaves in the", App.Encyclopedia.Dialog.linkDOM("Brothel"), "and the", App.Encyclopedia.Dialog.linkDOM("Club.", "Club"));
+	r.push("Offering a variety of slaves will provide a small bonus to performance for everyone in the facility, regardless of which qualities they possess:");
+	r.toNode("div");
+
+	App.Events.addNode(f, ["Slim vs. Stacked"], "div", ["indent"]);
+	App.Events.addNode(f, ["Modded (heavily pierced and tattooed) vs. Unmodded"], "div", ["indent"]);
+	App.Events.addNode(f, ["Natural Assets vs. Implants"], "div", ["indent"]);
+	App.Events.addNode(f, [`Young vs. Old${V.seeDicks !== 0 ? '- Pussies and Dicks' : ''}`], "div", ["indent"]);
+
+	r.push("Variety bonuses, if any, will be called out in the facility report at the end of the week.", App.Encyclopedia.Dialog.linkDOM("Advertising"), "that the facility specializes in any of these areas will supersede variety bonuses for the related qualities. Staffing a facility to appeal to all tastes can be more challenging than building a homogeneous stable and advertising it, but is both powerful and free.");
+	r.toParagraph();
+	return f;
+}, "facilities");
+
+App.Encyclopedia.addCategory("facilities", function() {
+	const f = new DocumentFragment();
+	let r = [];
+	r.push(App.Encyclopedia.Dialog.linkDOM("Overview", "Facilities Overview"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Arcade"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Brothel"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Cellblock"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Clinic"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Club"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Dairy"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Head Girl Suite"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Master Suite"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Pit"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Schoolroom"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Servants' Quarters"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Spa"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Nursery"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Farmyard"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("The Incubation Facility"));
+	App.Events.addNode(f, ["Arcology Facilities:", App.UI.DOM.generateLinksStrip(r)], "div");
+
+	r = [];
+	r.push(App.Encyclopedia.Dialog.linkDOM("Advertising"));
+	r.push(App.Encyclopedia.Dialog.linkDOM("Variety"));
+	App.Events.addNode(f, ["Facility Bonuses:", App.UI.DOM.generateLinksStrip(r)], "div", ["note"]);
+	return f;
+});
+
+function noteFacilityName(...text) {
+	const f = new DocumentFragment();
+	const r = new SpacedTextAccumulator(f);
+	App.Events.addNode(f, text, "span", ["note"]);
+	return f;
+}
diff --git a/src/gui/Encyclopedia/encyclopediaMods.js b/src/gui/Encyclopedia/encyclopediaMods.js
index 1ef8346bdd6bf4edc9b3c08d7e82fcd710cc598c..ca3076dd6a491908e2c67acc9690a29b59efa69a 100644
--- a/src/gui/Encyclopedia/encyclopediaMods.js
+++ b/src/gui/Encyclopedia/encyclopediaMods.js
@@ -283,7 +283,8 @@ App.Encyclopedia.addArticle("The Incubation Facility", function() {
 	const r = new SpacedTextAccumulator(f);
 	r.push("A facility used to rapidly age children kept within its aging tanks using a combination of growth hormones, accelerants, stem cells and other chemicals; slaves that come out of it are rarely healthy. The Incubator requires a massive amount of electricity to run, though once powered contains a battery backup that can last at least a day. It can be upgraded to combat malnutrition and thinness caused by a body growing far beyond any natural rate. Hormones can also be added to encourage puberty and even sex organ development. Growth control systems include cost saving overrides, though enabling them may result in bloated, sex crazed slaves barely capable of moving.");
 	r.toNode("div");
-
+	
+	App.Events.addNode(f, ["Please click", App.Encyclopedia.Dialog.linkDOM("here", "Facilities Overview"), "for an overview of other facilities."], "p");
 	return f;
 }, "Mods");
 
diff --git a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
index 26ea52d1f77b37d032b12229b368822a745f68c2..f218d01dc55f946566b18f4e78446db3386832bc 100644
--- a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
+++ b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw
@@ -83,30 +83,5 @@ INFLATION
 	| <<= App.Encyclopedia.Dialog.linkSC("Cervix Micropump Filter", "Cervix Micropump Filter")>>
 	| <<= App.Encyclopedia.Dialog.linkSC("Organic Mesh Breast Implant", "Organic Mesh Breast Implant")>>
 
-/**********
-ARCOLOGY FACILITIES
-**********/
-<<case "Advertising" "Arcade" "Brothel" "Cellblock" "Clinic" "Club" "Dairy" "Facilities" "Farmyard" "Head Girl Suite" "Master Suite" "Nursery" "Pit" "Schoolroom" "Servants' Quarters" "Spa" "The Incubation Facility" "Variety">>
-	//Arcology <<= App.Encyclopedia.Dialog.linkSC("Facilities", "Facilities")>>://
-	<<= App.Encyclopedia.Dialog.linkSC("Arcade", "Arcade")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Brothel", "Brothel")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Cellblock", "Cellblock")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Clinic", "Clinic")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Club", "Club")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Dairy", "Dairy")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Head Girl Suite", "Head Girl Suite")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Master Suite", "Master Suite")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Pit", "Pit")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Schoolroom", "Schoolroom")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Servants' Quarters", "Servants' Quarters")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Spa", "Spa")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Nursery", "Nursery")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Farmyard", "Farmyard")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("The Incubation Facility ", "The Incubation Facility")>>
-
-	<br>//Facility Bonuses://
-	<<= App.Encyclopedia.Dialog.linkSC("Advertising", "Advertising")>>
-	| <<= App.Encyclopedia.Dialog.linkSC("Variety", "Variety")>>
-
 <</switch>>
 <</if>>
diff --git a/src/gui/Encyclopedia/encyclopediaToC.js b/src/gui/Encyclopedia/encyclopediaToC.js
index 740362ac52706dd8941a422d94c30521626f9f23..28311d2de4e588140a42ab69d3ef284bdbebbc3e 100644
--- a/src/gui/Encyclopedia/encyclopediaToC.js
+++ b/src/gui/Encyclopedia/encyclopediaToC.js
@@ -38,7 +38,7 @@ App.Encyclopedia.addArticle("Table of Contents", function() {
 
 	App.UI.DOM.appendNewElement("h3", outerDiv, "Your Arcology");
 	lineLink(outerDiv, "The X-Series Arcology", "The X-Series Arcology");
-	lineLink(outerDiv, "Arcology Facilities", "Facilities");
+	lineLink(outerDiv, "Arcology Facilities", "Facilities Overview");
 	lineLink(outerDiv, "Terrain Types", "Terrain Types");
 	lineLink(outerDiv, "Future Societies", "Future Societies");
 	lineLink(outerDiv, "The Black Market", "The Black Market");
diff --git a/src/gui/Encyclopedia/encyclopediaX-SeriesArcology.js b/src/gui/Encyclopedia/encyclopediaX-SeriesArcology.js
index b0abc66286b5b78fa02a8f0a3b80734da1473cba..979fa95701ca068663db4722c32eeb433e993bc3 100644
--- a/src/gui/Encyclopedia/encyclopediaX-SeriesArcology.js
+++ b/src/gui/Encyclopedia/encyclopediaX-SeriesArcology.js
@@ -36,7 +36,7 @@ App.Encyclopedia.addArticle("What the Upgrades Do", function() {
 	r.toParagraph();
 
 	t.append(App.UI.DOM.makeElement("h3", "Facilities"));
-	r.push("These upgrades unlock the various facilities, which are detailed", link("here.", "Facilities"));
+	r.push("These upgrades unlock the various facilities, which are detailed", link("here.", "Facilities Overview"));
 	r.toParagraph();
 
 	t.append(App.UI.DOM.makeElement("h3", "Penthouse Improvements"));