   ///   - startURL: The starting page URL (must contain http:// or https://).
   ///   - maximumPagesToVisit: The maximum number of web pages to visit.
   ///   - word: The word to look for.
-  ///   - visitingCallback: Fired each time the instance is about to visit a new
-  ///     webpage.
-  ///   - wordFoundCallback: Fired each time the instance finds `wordToSearch`
-  ///     in a web page (fired up to one time per page).
-  ///   - completion: Called when the instance ends its execution.
   public init(
     startURL: URL,
     maximumPagesToVisit: Int,
-    wordToSearch word: String,
-    visitingCallback: ((URL) -> Void)? = nil,
-    wordFoundCallback: @escaping (URL) -> Void,
-    completion: @escaping (Int) -> Void
+    wordToSearch word: String
   ) {
     self.startURL = startURL
     self.pagesToVisit = [startURL]
     self.maximumPagesToVisit = maximumPagesToVisit
     self.wordToSearch = word
-    self.wordFoundCallback = wordFoundCallback
-    self.visitingCallback = visitingCallback
-    self.completion = completion
   }
 
   /// Trigger the instance to start crawling the web.

  /// Immediately ends the crawling process.
  public func cancel() {
    currentTask?.cancel()
    completion(visitedPages.count)
  }

  /// Starts a new crawling cycle.

  /// The urls of pages found during crawling, but yet to visit.
  var pagesToVisit: Set<URL>

  /// The object that acts as the delegate of the crawler.
  public weak var delegate: CrawlerDelegate?

  /// The current `URLSessionDataTask`, if any.
  var currentTask: URLSessionDataTask?
