 
     private let session: URLSession
 
-    private var dataTask: URLSessionDataTask?
-    private var streamTask: URLSessionStreamTask?
+    private var task: URLSessionDataTask?
 
     private var metadataInterval: Int?
     private var nextMetadataInterval: Int?
+
+    private var unprocessedMetadataCount: Int?
+    private var unprocessedMetadata: Data?
 
     init(url: URL, mimeType expectedMimeType: String) {
         self.url = url

    let url: URL
    let expectedMimeType: String

    private let queue = { () -> OperationQueue in
        var queue = OperationQueue()
        queue.maxConcurrentOperationCount = 1

    }

    private func makeURLRequest() -> URLRequest {
        var request = URLRequest(url: url)
        request.setValue("1", forHTTPHeaderField: "icy-metadata")
        return request
    }

