move scrape logic to own helper