support for caching first_page updates, since the results are oldest-first
code cleanup