refactored scraper factory method