Can you add more documentation here describing the parameters and how `first_page_size` is used (and how later "pages" are sized)?