Refactor and functional Crawler