I found it confusing, not knowing which type the `page` variable was in the caller function. After adding the `setPage*` functions, maybe an intelligent `lookupPage(int/string)` (that errors on invalid string, out-of-bounds, etc) would be more explicit but didn't add it in this PR.