refactored how scrapers work to be more extensible