 
 private final class TrackWorker: Worker {
 
+    typealias Response = PlayerImpl.QueueResponse
+
     var canPop: Bool = false
 
     let track: Model.Track


    fileprivate let previewer: Preview

    fileprivate var queueController: QueueController<URL>!
    private let queueuingCount = Variable<Int>(0)

    init(previewer: Preview) {
        self.previewer = previewer
        super.init()

        queueController = QueueController(queueingCount: queueuingCount.asObservable()) { [weak self] url in
            if let (id, duration) = self?.tracks[url] {
                self?.configureNextPlayerItem(id: id, url: url, duration: duration)
            }
        }
        #if (arch(i386) || arch(x86_64)) && os(iOS)
            _player.volume = 0.02


final class PlayerImpl: NSObject, Player {

    typealias QueueResponse = (id: Int, url: URL, duration: Double)

    var playlists: [PlaylistType] { return [] }

    fileprivate let _player = AVQueuePlayer()

