refine the crawlImpl