What does ```pu``` stand for? Would it make sense to replace these cbt->page->XXX dereferences with macros? I find them hard to read as they are, and it'll save making such wide spread changes if we change the name of page variables in the future.

I know there would be quite a few macros (or at least some parameterized macros), but I still think it would make the code easier to read.