                     errorCallBack(requestResponseError, httpResponse)
                 }
             }
-        } as! (Data?, URLResponse?, Error?) -> Void)
+        })
         
         task.resume()
     }

            
            if let errorCallBack = errorBlock {
                
                if let error = error { // How should this Error be NSError?
                    
                    let nserror = NSError(domain: "Theo Request", code: 1, userInfo: nil)
                    errorCallBack(nserror, httpResponse)

        
        self.httpRequest = request
        
        let task : URLSessionDataTask = self.httpSession.session.dataTask(with: self.httpRequest, completionHandler: {(data: Data?, response: URLResponse?, error: Error?) -> Void in
            
            var dataResp: Data? = data
            let httpResponse: HTTPURLResponse = response as! HTTPURLResponse
