diff --git a/src/render.cpp b/src/render.cpp
index 05ed1fb..3be6513 100644
--- a/src/render.cpp
+++ b/src/render.cpp
@@ -447,7 +447,7 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
         }
       }
 
-      // Repeated sections: allow jumping to the N-th
+      // Special cases
       ImGui::ColorEdit3("_TKey Header", app.viewer.col_key, edit_flags);
       ImGui::SameLine(); 
       if (ImGui::Button("TKey Header")) {} // TODO: jump to next key
@@ -476,8 +476,8 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
         }
         ImGui::SameLine();
         String8 this_page_width = app.viewer.latest_page 
-                                  ? push_str8f(scratch.arena, " (this page: %s)", 
-                                               to_pretty_size(scratch.arena, app.viewer.latest_page->range.len).c()) 
+                                  ? push_str8f(scratch.arena, " / %" PRIu64 " (this page: %s)", 
+                                               app.rndata.n_pages, to_pretty_size(scratch.arena, app.viewer.latest_page->range.len).c()) 
                                   : str8("");
         ImGui::Text("%s%s", to_pretty_size(scratch.arena, app.rndata.tot_page_comp_size).c(), this_page_width.c());
       }
diff --git a/src/tfile.cpp b/src/tfile.cpp
index 84ecd1b..0d7a50f 100644
--- a/src/tfile.cpp
+++ b/src/tfile.cpp
@@ -215,7 +215,15 @@ b8 walk_tkeys(Arena *arena, const u8 *data, u64 data_len, u32 flags, TFile_Data
       fprintf(stderr, "Error: found key or obj with len 0. Bailing out...\n");
       break;
     }
+
+    printf("cur: 0x%lX, nbytes: %lu (/ 0x%lX)\n", cur, n_bytes, sections[Sec_TFile_FreeList].head->range.start);
     
+    if (is_free_slot) {
+      // don't try to read the rest of the data
+      cur += n_bytes;
+      continue;
+    }
+
     u16 key_version = read_be<u16>(data + cur + key_version_off);
     u16 keylen = read_be<u16>(data + cur + keylen_off);
     if (!keylen) {
@@ -230,17 +238,10 @@ b8 walk_tkeys(Arena *arena, const u8 *data, u64 data_len, u32 flags, TFile_Data
       char cname[256];
       cname[cname_len] = 0;
       memcpy(cname, data + cname_off + 1, cname_len);
-      printf("TKey '%s' at 0x%lX, len: %d (%s)%s\n", cname, cur, n_bytes, to_pretty_size(scratch.arena, n_bytes).c(),
-             is_free_slot ? " [freed]" : "");
+      printf("TKey '%s' at 0x%lX, len: %d (%s)\n", cname, cur, n_bytes, to_pretty_size(scratch.arena, n_bytes).c());
       ++n_keys;
     }
 
-    if (is_free_slot) {
-      // don't try to read the rest of the data
-      cur += n_bytes;
-      continue;
-    }
-
     if (cur == sections[Sec_TKey_List].head->range.start - sections[Sec_TKey_List].head->pre_size) {
       if (keylen != sections[Sec_TKey_List].head->pre_size ||
           (u64)(n_bytes - keylen) != sections[Sec_TKey_List].head->range.len) 
@@ -257,6 +258,7 @@ b8 walk_tkeys(Arena *arena, const u8 *data, u64 data_len, u32 flags, TFile_Data
     } else if (cur == sections[Sec_TFile_FreeList].head->range.start) {
       sections[Sec_TFile_FreeList].head->pre_size = keylen;
       sections[Sec_TFile_FreeList].head->range.start += keylen;
+      printf("keylen %lu\n", keylen);
       sections[Sec_TFile_FreeList].head->range.len = n_bytes - keylen;
     } else {
       // Check if this is a RNTuple anchor
@@ -346,6 +348,7 @@ b8 walk_tkeys(Arena *arena, const u8 *data, u64 data_len, u32 flags, TFile_Data
   u64 free_slots_start = sec_tfile_freelist->range.start;
   u64 free_slots_end = sec_tfile_freelist->range.end();
   u64 n_free_slots = (free_slots_end - free_slots_start) / free_slot_size;
+  printf("start: 0x%lX\n", free_slots_start);
   for (u64 i = 0; i < n_free_slots; ++i) {
     u64 cur = free_slots_start + i * free_slot_size;
     memcpy(&fs, data + cur, free_slot_size);
@@ -364,6 +367,7 @@ b8 walk_tkeys(Arena *arena, const u8 *data, u64 data_len, u32 flags, TFile_Data
       Section *sec_free_slot = push_section(arena, tfile_data, Sec_Free_Slot);
       sec_free_slot->range.start = start;
       sec_free_slot->range.len = end - start + 1; // +1 because `end` is inclusive
+      printf("free slot @0x%lX: 0x%lX - 0x%lX\n", cur, start, end);
     }
   }