diff --git a/content/about.tree b/content/about.tree
index 02035a4..750bfea 100644
--- a/content/about.tree
+++ b/content/about.tree
@@ -1,4 +1,5 @@
 %% title = "who that! (about me)"
+visibility = "Private"
 
 % id = "01J09B2BZXJ989S2SGWBNZ397C"
 + my name's *riki!*
diff --git a/content/about/v1.tree b/content/about/v1.tree
index abf0848..6b1031f 100644
--- a/content/about/v1.tree
+++ b/content/about/v1.tree
@@ -1,4 +1,5 @@
 %% title = "who that! (about me) (version 1, archived 2024-06-13)"
+visibility = "Private"
 
 % id = "01H89P3CH836K8WKQ9BPR6RE3C"
 - hello! I am liquidex
diff --git a/content/design.tree b/content/design.tree
index 1c3cfd3..b90a236 100644
--- a/content/design.tree
+++ b/content/design.tree
@@ -1,4 +1,5 @@
 %% title = "thoughts on user interfaces and user experiences"
+visibility = "Private"
 
 % id = "01HQ8KV8RW077VSHHZ7CXPBDA8"
 + despite not being a UX designer, I care deeply about user experience. it's become somewhat of a hobby of mine, applying UX design to basically everything.
@@ -19,31 +20,3 @@ this branch is about that.
 
             % id = "01HQ8KV8RWS99XKPBKCTZ3NEJM"
             - that ain't default behavior. :hat_smug:
-
-% content.link = "design/freehouse"
-  id = "01JHGXGPFWXYR8G8EDFJKPA79F"
-+ :page: idea: freeing the hobby corners
-
-% content.link = "design/for-the-free-soul"
-  id = "01JG6Y6H0JY3EZXQ3ZMQ5154V4"
-+ :page: design for the free soul
-
-% content.link = "design/animations"
-  id = "01JEPCR1WBRXCVMHNRRSG1MW3Y"
-+ :page: animations & perception of sluggishness
-
-% content.link = "design/touch-panels"
-  id = "01JE75K3MPAHR40TZR1Q92YYN7"
-+ :page: touch panels
-
-% content.link = "design/sidebars"
-  id = "01HR9ZTS6T2ZBWGMJP8376NGX1"
-+ :page: sidebars
-
-% content.link = "design/digital-textures"
-  id = "01HQ8JHZ5QTZXQW3M26CXPFQDF"
-+ :page: on digital textures
-
-
-
-
diff --git a/content/games.tree b/content/games.tree
index 77b0f96..9798f68 100644
--- a/content/games.tree
+++ b/content/games.tree
@@ -1,11 +1,8 @@
 %% title = "Gaming."
+visibility = "Private"
 
 % id = "01JGSNPRR7AMX41ADKYNVPJF6F"
 + I don't really have an introduction for this section but it is about video games, alright
 
     % id = "01JGSNPRR75RRGHJ97DHMFZ1F2"
     - I'm sorry
-
-% content.link = "games/minecraft-zen"
-  id = "01JGSP12V7FWG6B7H2BD16W4ZD"
-+ :page: reflections on Minecraft
diff --git a/content/index.tree b/content/index.tree
index 5011bcc..7f437f2 100644
--- a/content/index.tree
+++ b/content/index.tree
@@ -1,5 +1,11 @@
 %% title = "riki's house"
-   styles = ["page/index.css"]
+styles = ["page/index.css"]
+
+# An interesting behaviour: because the main page is generated from the root path, the root path is
+# indexed to obtain a listing of pages. This causes index to nest itself, and if you expand it, well...
+#
+# It explodes.
+visibility = "Private"
 
 % id = "01H8V556P1PND8DQ73XBTZZJH7"
 - welcome! make yourself at home. [= --w-- =]{style="white-space: nowrap;"}
diff --git a/content/kuroneko.tree b/content/kuroneko.tree
index b9d4d31..d121989 100644
--- a/content/kuroneko.tree
+++ b/content/kuroneko.tree
@@ -1,6 +1,7 @@
 %% title = "back porch"
-   scripts = ["treehouse/components/chat.js"]
-   styles = ["components/chat.css"]
+scripts = ["treehouse/components/chat.js"]
+styles = ["components/chat.css"]
+visibility = "Private"
 
 % template = true
   cast = "chat js"
diff --git a/content/music.tree b/content/music.tree
index 6be95ef..1144475 100644
--- a/content/music.tree
+++ b/content/music.tree
@@ -1,4 +1,5 @@
 %% title = "virtual insanity"
+visibility = "Private"
 
 % id = "01H969NN1BQX2N77XWQ5CY5QBH"
 + hello! this is the Nice Sounds for Your Ears section. :musical_score: :guitar:
@@ -7,51 +8,8 @@
     - this is my blog and various loose notes on music.
     I listen to a lot of music, just... almost never write about it. ---w---
 
-% id = "01J8YY31QJQJYW1TTYSHKB2AV1"
-- :folder: *blog*
-
-    % content.link = "music/blue-calx"
-      id = "01JCY18RY6B6CTC3H8ME0FRZXC"
-    + :page: Blue Calx
-
-    % id = "01JBAGSJCWP15GCG8PJYPJYJY8"
-      content.link = "music/creatures"
-    + :page: the curious case of Amon Tobin's Creatures
-
-    % id = "01J8ZKEPGF9HDMRK2ERNM23FE2"
-      content.link = "music/i-dont-love-me-anymore"
-    + :page: I Don't Love Me Anymore
-
-    % id = "01J73BSW850Z2SDVM832FB60QT"
-      content.link = "music/brainz"
-    + :page: the ListenBrainz dataset
-
-    % content.link = "music/map-of-what-is-effortless"
-      id = "01H9R1NKBBFTWT6FT2MVWHETR6"
-    + :page: Telefon Tel Aviv - Map of What Is Effortless
-
-    % content.link = "music/a-moon-shaped-pool"
-      id = "01H9JB094CA55NT8QR1AYNXDBT"
-    + :page: Radiohead - A Moon Shaped Pool
-    
-    % content.link = "music/syro"
-      id = "01H9DQNG9APD9BSDTP3N3QQFG3"
-    + :page: Aphex Twin - Syro
-
-    % content.link = "music/ok-computer"
-      id = "01H969NN1ADGRWRQTT2NE5TJZ1"
-    + :page: Radiohead - OK Computer
-
-% content.link = "music/fuck-drm"
-  id = "01HPECQ3ZE1YKC1FS2X23H77R2"
-+ :folder: *fuck DRM*
-
-% content.link = "music/spotify"
-  id = "01HVNX7FMW6KJC9H3CQ7TX8ST6"
-+ :folder: *Spotify*
-
 % id = "01H969NN1BR7BH7M7SXBPGB0WC"
-+ in the future this section may grow another branch related to music making.
++ in the future this section may grow some branches related to music making.
 
     % id = "01J8YY31QJXGNQES5E5BS3WA26"
     - I don't want to be tied to SoundCloud with where I host my music, but don't currently have any infrastructure set up for where I could host it for people to listen to.
diff --git a/content/music/blue-calx.tree b/content/music/blue-calx.tree
index c73f8c8..4ffec5f 100644
--- a/content/music/blue-calx.tree
+++ b/content/music/blue-calx.tree
@@ -1,3 +1,5 @@
+%% title = "Aphex Twin - Blue Calx"
+
 % id = "01JCY18RY6T32XGTM21T6581Z5"
 - overcoming [fear of the unknown][page:philosophy/fear-of-the-unknown], episode 1.
 
diff --git a/content/music/fuck-drm.tree b/content/music/fuck-drm.tree
index 9141794..8ef75c8 100644
--- a/content/music/fuck-drm.tree
+++ b/content/music/fuck-drm.tree
@@ -1,4 +1,5 @@
 %% title = "kill DRM with a 1000 knives sincerely"
+icon = "folder"
 
 % id = "01HPECQ3Z1MSJXQ5C1R2A0A17C"
 - this section is dedicated to all those business pinheads working at music distribution companies who think DRM is good in any way shape or form.
diff --git a/content/music/reviews.tree b/content/music/reviews.tree
index 122c0d7..1ca9302 100644
--- a/content/music/reviews.tree
+++ b/content/music/reviews.tree
@@ -1,3 +1,6 @@
+%% title = "reviews"
+visibility = "Private"
+
 % id = "01JBAGZAZ9PPNSMWC8PES2CW0M"
 - welcome to the purgatory!
 this page used to host all my music reviews, but those have since been moved to [the music blog][branch:01J8YY31QJQJYW1TTYSHKB2AV1].
diff --git a/content/music/spotify.tree b/content/music/spotify.tree
index f282a56..8a0cfbf 100644
--- a/content/music/spotify.tree
+++ b/content/music/spotify.tree
@@ -1,4 +1,5 @@
 %% title = "Spot(the user hostil)ify"
+icon = "folder"
 
 % id = "01HVNX7FMSVXFKZDB0K54S96CR"
 - this page is dedicated to pointing out stupid design flaws in Spotify's user experience.
diff --git a/content/philosophy.tree b/content/philosophy.tree
index 7531d3f..e8da184 100644
--- a/content/philosophy.tree
+++ b/content/philosophy.tree
@@ -1,4 +1,5 @@
 %% title = "the life and will of Dr Phil Osophy"
+visibility = "Private"
 
 % id = "01HFYZKREVNWZMAJSYCYBEPK6C"
 - this is where I get all existential and stuff
@@ -9,47 +10,3 @@
         % id = "01JCGZ4E7F5XPJHGWCY0N6A03Q"
         - hey don't make this weird, okay.
         showers are good for having thoughts.
-
-% content.link = "philosophy/riki"
-  id = "01JGXMY2P2AX2GCVHQ2BPECJZF"
-+ :page: nickname change!
-
-% content.link = "philosophy/light-streaks"
-  id = "01JG55SH9HYR7TK5G1RVAGYQWR"
-+ :page: my weird stim: writing with light streaks
-
-% content.link = "philosophy/responsibility"
-  id = "01JDJ0RF3KJ2DT7E4RFVB79ZJH"
-+ :page: on responsibility & conformity
-
-% content.link = "philosophy/furry"
-  id = "01JCGVBXVME8DC9T79GQPXFZ3C"
-+ :page: furry! ---w---
-
-% content.link = "philosophy/fear-of-the-unknown"
-  id = "01JCGVBXVMAENDV2T47XH7Y534"
-+ :page: fear of the unknown
-
-% content.link = "philosophy/nicknames"
-  id = "01JBWJ0475CPPP1FTWY1BRDWA6"
-+ :page: on nicknames
-
-% id = "01JBAK3T1ZFWVQS5GK6B28MG3M"
-  content.link = "philosophy/i-build-things"
-+ :page: "I build things"
-
-% id = "01J1Q8SBGFVPDBKKZPWDSV1D5G"
-  content.link = "philosophy/in-wisdom-you-become-old"
-+ :page: in wisdom you become old
-
-% id = "01HREVZNAHB1H9VMD0NPPFTEQ0"
-  content.link = "philosophy/shut-up"
-+ :page: just shut up sometimes
-
-% id = "01HFYZKREV634J021ZMCDSP7G4"
-  content.link = "philosophy/hedonic-treadmill"
-+ :page: hedonic treadmill ([wikipedia](https://en.wikipedia.org/wiki/Hedonic_treadmill))
-
-
-
-
diff --git a/content/programming.tree b/content/programming.tree
index edbfd36..57755b2 100644
--- a/content/programming.tree
+++ b/content/programming.tree
@@ -1,81 +1,8 @@
 %% title = "tower of computer wizardry"
+visibility = "Private"
 
 % id = "01H8Y427B4ADTNBGZ6RJRC86XP"
 - this is the bit magic shift-twiddle wizardry zone
 
     % id = "01H8Y427B4WC1CF9RHPZPXE77W"
     - and also more than just bit magic but I like how that sounds
-
-% id = "01HPD4XQQ5GPQ20C6BPA8G670F"
-- :folder: *blog*
-
-    % content.link = "programming/aoc"
-      id = "01JDZKMPHT02WJBF2TC5YBWGMB"
-    + :page: Advent of Code feels
-
-    % content.link = "programming/vfs"
-      id = "01JDJJHCGTAJ78K8WRXV00ZEJC"
-    + :page: composable virtual file systems
-
-    % content.link = "programming/cstring-starts-with"
-      id = "01JCGAM56KS2C6D4XZ1MRATXH4"
-    + :page: prefix matches with C strings
-
-    % content.link = "programming/buildsome"
-      id = "01J7BYKQHZKYQ969T3PH3V8HF1"
-    + :page: not quite buildless
-
-    % content.link = "programming/haku"
-      id = "01J4J4PAXRWZDP9PAZNGCQ9S3D"
-    + :page: haku - writing a little programming language for fun
-
-    % content.link = "programming/lvalues"
-      id = "01HY5R1ZW0M0Y5KQ1E8F0Q73ZT"
-    + :page: places, or what is up with `*x` not always meaning the same thing
-
-    % content.link = "programming/systems"
-      id = "01J0PBKY1AAPGXG6NSRDTMV48F"
-    + :page: systems are just a bunch of code
-
-    % content.link = "programming/or-types"
-      id = "01HTWN4XB2YMF3615BE8V6Y76A"
-    + :page: OR-types
-
-    % content.link = "programming/tairu"
-      id = "01HPD4XQQ5WM0APCAX014HM43V"
-    + :page: tairu - an interactive exploration of 2D autotiling techniques
-
-    % content.link = "programming/about-treehouse"
-      id = "01H89RFHCQ1YB7CXBBR6NDDAC1"
-      redirect_from = ["about-treehouse"]
-    + :page: about the treehouse
-
-% id = "01HRG2RJCNKT9JJJVQ8WVRC9CA"
-- :folder: *languages*
-
-    % content.link = "programming/cxx"
-      id = "programming/languages/cxx"
-    + :folder: C++
-
-    % content.link = "programming/javascript"
-      id = "programming/languages/javascript"
-    + :page: JavaScript
-
-    % content.link = "programming/lua"
-      id = "programming/languages/lua"
-    + :page: Lua
-
-% id = "01HRG2RJCN8J42NK0KWD3SBSJA"
-- :folder: *technologies*
-
-    % content.link = "programming/unreal-engine"
-      id = "programming/technologies/unreal-engine"
-    + :folder: Unreal Engine
-
-% content.link = "programming/opinions"
-  id = "programming/opinions"
-+ :folder: *opinions*
-
-
-
-
diff --git a/content/programming/cxx.tree b/content/programming/cxx.tree
index 20e8f42..6d55a6c 100644
--- a/content/programming/cxx.tree
+++ b/content/programming/cxx.tree
@@ -1,13 +1,5 @@
 %% title = "C++"
+icon = "folder"
 
 % id = "01H9R1KJESR2F420HE67HW4AVR"
 - notes and design lessons from the best programming language of all time that everyone loves (not really)
-
-% content.link = "programming/cxx/access-modifiers-as-labels"
-  redirect_from = ["programming/cxx/access-modifiers-as-labels"]
-  id = "01H9R1KJESGGM35KT8ANEA2B9Q"
-+ :page: access modifiers as labels (`private:`, `protected:`, and `public:`)
-
-% content.link = "programming/cxx/shared-unique-ptr-deleter"
-  id = "01J0VN48AZYH6KJGK7PSKN0PCA"
-+ :page: freeing C memory automatically using `std::unique_ptr` and `std::shared_ptr`
diff --git a/content/programming/lvalues.tree b/content/programming/lvalues.tree
index d41926d..21f2bb8 100644
--- a/content/programming/lvalues.tree
+++ b/content/programming/lvalues.tree
@@ -1,4 +1,4 @@
-%% title = "places, or what is up with *x not always meaning the same thing in different contexts"
+%% title = "places, or what is up with `*x` not always meaning the same thing in different contexts"
 
 % id = "01HY5R1ZV9DD7BV0F66Y0DHAEA"
 - I recently got a question from my someone telling me they doesn't understand why `*x` does not read from the pointer `x` when on the left-hand side of an assignment.
diff --git a/content/programming/opinions.tree b/content/programming/opinions.tree
index a1e8e66..106bcff 100644
--- a/content/programming/opinions.tree
+++ b/content/programming/opinions.tree
@@ -1,4 +1,5 @@
 %% title = "Hotland - Bad Opinion Zone"
+icon = "folder"
 
 % id = "01HBTSXTTAAAHGKD4TZZW14KFK"
 - ``` =html
diff --git a/content/programming/opinions/refcell.tree b/content/programming/opinions/refcell.tree
index 2fef7e4..875084f 100644
--- a/content/programming/opinions/refcell.tree
+++ b/content/programming/opinions/refcell.tree
@@ -1,4 +1,4 @@
-%% title = "don't use RefCell<T>"
+%% title = "don't use `RefCell<T>`"
 
 % id = "01HCD90XT3X82R37WTJJABZF4Y"
 + usually if you have to resort to [`RefCell<T>`](https://doc.rust-lang.org/std/cell/struct.RefCell.html), it means something is wrong with your architecture
diff --git a/content/programming/projects.tree b/content/programming/projects.tree
index ed89698..facbe45 100644
--- a/content/programming/projects.tree
+++ b/content/programming/projects.tree
@@ -1,3 +1,5 @@
+%% visibility = "Private"
+
 % id = "01JEM34P6VYJWAPSJN1WB1WBJZ"
 - note: I haven't updated this in a while, because I hardly ever do projects outside the treehouse nowadays ---w---
 
diff --git a/content/programming/unreal-engine.tree b/content/programming/unreal-engine.tree
index bc3ab92..df91c09 100644
--- a/content/programming/unreal-engine.tree
+++ b/content/programming/unreal-engine.tree
@@ -1,4 +1,5 @@
 %% title = "Unreal Engine"
+icon = "folder"
 
 % id = "01H8Y0CKD0ZDHAH1ET3BJNDS4E"
 - this is that really cool game engine I work with on a daily basis
@@ -8,19 +9,3 @@
 
         % id = "01H8YGXP0ZWG6X3PB6GWSGKAT0"
         - both the fun and the good, and that which ruins my mood
-
-% id = "programming/unreal-engine/blueprint"
-  content.link = "programming/unreal-engine/blueprint"
-+ :page: thoughts on Blueprint
-
-% id = "01HP1FESY5WVJG4X80AZ4ZBX5D"
-- :folder: random but cool things
-
-    % content.link = "programming/unreal-engine/generated-body"
-      id = "01HV1DGFHP6GB268MDGGDXMR12"
-    + :page: how does `GENERATED_BODY()` work exactly?
-
-    % content.link = "programming/unreal-engine/fixes"
-      id = "01HP1FESY5ZS6YTZXA8QTT5V1Z"
-    + :page: data validation quick fixes
-
diff --git a/content/secret.tree b/content/secret.tree
index c5fa966..dc92263 100644
--- a/content/secret.tree
+++ b/content/secret.tree
@@ -1,2 +1,4 @@
+%% visibility = "Private"
+
 % id = "man"
 + The man waved at you. He looks happy.
diff --git a/content/the-end-is-never.tree b/content/the-end-is-never.tree
index 076fd42..ff1d006 100644
--- a/content/the-end-is-never.tree
+++ b/content/the-end-is-never.tree
@@ -1,4 +1,5 @@
 %% title = "the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end is never the end"
+visibility = "Private"
 
 % content.link = "the-end-is-never"
   do_not_persist = true
diff --git a/content/treehouse.tree b/content/treehouse.tree
index db8af6a..52efea7 100644
--- a/content/treehouse.tree
+++ b/content/treehouse.tree
@@ -1,4 +1,5 @@
 %% title = "the Construct"
+visibility = "Private"
 
 % id = "01HP5AKRNQM1W672XM435DPDJD"
 - you managed to click on the tree, hooray!
diff --git a/static/css/tree.css b/static/css/tree.css
index a8d1dd8..35ca211 100644
--- a/static/css/tree.css
+++ b/static/css/tree.css
@@ -404,6 +404,7 @@ th-bd {
     padding-top: 0.8rem;
     padding-bottom: 0.8rem;
     border-top: 0.1rem solid var(--border-1);
+    border-bottom: 0.1rem solid var(--border-1);
 
     & > ul {
         /* Show child page lists without an indent.