partway through refactoring the page scraper