crawler.js now produces a proper promise