         self.session = URLSession(configuration: configuration, delegate: impl, delegateQueue: impl.queue)
         self.impl.session = self.session
         self.impl.validate = validate
-        self.impl.didReciveData = {[weak self] data, error in
+        self.impl.didReceiveData = {[weak self] data, error in
             guard let _strongSelf = self else { return }
-            _strongSelf.didReciveData?(data, error)
+            _strongSelf.didReceiveData?(data, error)
         }
     }
 

public final class DataLoader: DataLoading {
    public let session: URLSession
    private let impl: _DataLoader
    public var didReciveData: ((_ data: Data?, _ error: Swift.Error?)->())?
    /// Initializes `DataLoader` with the given configuration.
    /// - parameter configuration: `URLSessionConfiguration.default` with
    /// `URLCache` with 0 MB memory capacity and 150 MB disk capacity.

    var validate: (URLResponse) -> Swift.Error? = DataLoader.validate
    let queue = OperationQueue()
    private var handlers = [URLSessionTask: _Handler]()
    var didReceiveData: ((_ data: Data?, _ error: Error?)->())?
    override init() {
        self.queue.maxConcurrentOperationCount = 1
    }
