Refactor around the crawl model