in practice page_def will be built at load time, not per-request, so do that in this prototype too