rebuilt scraper using promises