     // MARK: Navigation
 
     private var navigationCompleted = false
-    private var navigationCallback: (() -> ())?
+    private var navigationCallback: (() -> Void)?
 
     func completeNavigation() {
         if state == .Started && !navigationCompleted {
-            self.navigationCompleted = true
+            navigationCompleted = true
             navigationCallback?()
         }
     }
 
-    private func afterNavigationCompletion(callback: () -> ()) {
+    private func afterNavigationCompletion(callback: () -> Void) {
         if navigationCompleted {
             callback()
         } else {
             let previousNavigationCallback = navigationCallback
-            self.navigationCallback = { _ in
+            navigationCallback = { [unowned self] in
                 previousNavigationCallback?()
                 if self.state != .Canceled {
                     callback()

        delegate?.visitDidStart(self)
        webView.issueRequestForVisitWithIdentifier(identifier)

        afterNavigationCompletion {
            self.webView.changeHistoryForVisitWithIdentifier(identifier)
            self.webView.loadCachedSnapshotForVisitWithIdentifier(identifier)
        }


    private func finishRequest() {
        if requestStarted && !requestFinished {
            requestFinished = true
            delegate?.visitRequestDidFinish(self)
        }
    }
