We should separate the implementation of the Crawl service. There are different services for the application, you can check it here: #1.