         }
         
         let dataTask = handler.dataTaskForURL(url, callback: callback)
-        self.addSessionTask(request: urlSchemeTask.request, dataTask: dataTask)
+        addSessionTask(request: urlSchemeTask.request, dataTask: dataTask)
         dataTask.resume()
     }
     

        
        switch baseComponent {
        case FileHandler.basePath:
            self.fileHandler.handle(pathComponents: pathComponents, requestURL: requestURL, completion: localCompletionBlock)
        case ArticleSectionHandler.basePath:
            self.articleSectionHandler.handle(pathComponents: pathComponents, requestURL: requestURL, completion: localCompletionBlock)
        case APIHandler.basePath:
            guard let apiURL = self.apiHandler.urlForPathComponents(pathComponents, requestURL: requestURL) else {
                 urlSchemeTask.didFailWithError(SchemeHandlerError.invalidParameters)
                return
            }
            self.kickOffDataTask(handler: self.apiHandler, url: apiURL, urlSchemeTask: urlSchemeTask)
        default:
            guard let defaultURL = self.defaultHandler.urlForPathComponents(pathComponents, requestURL: requestURL) else {
                urlSchemeTask.didFailWithError(SchemeHandlerError.invalidParameters)
                self.removeSchemeTask(urlSchemeTask: urlSchemeTask)
                return
            }
            DispatchQueue.global(qos: .userInitiated).async {


private extension SchemeHandler {
    func kickOffDataTask(handler: RemoteSubHandler, url: URL, urlSchemeTask: WKURLSchemeTask) {
        guard schemeTaskIsActive(urlSchemeTask: urlSchemeTask) else {
            return
        }
        
