limits instead of page numbers, now uses enumerator pattern