   private let player: AVQueuePlayer
   private let items: [AVPlayerItem]
 
-  private struct Status {
+  private class Status {
     var shuffledItems: [AVPlayerItem]? = nil
     var currentIndex: Int? = nil
   }
-  private var status = Status()
+  private let status = Status()
 
   public init(path: String) {
     let audioFiles = FileManager.default().filteredMusicFileURLs(inDirectory: path)

private extension Player {
  
  private func jump(toIndex index: Int) {
    refill()
    for _ in 0..<index {
      player.advanceToNextItem()
    }
    player.play()
    if let currentItem = player.currentItem {
      logger.playerDidStartPlayingItem(currentItem)
    }

        return
      }
      jump(toIndex: 0)   
    case .playNext:
      guard let currentIndex = status.currentIndex else {
        return
      }
      jump(toIndex: currentIndex + 1)
    case .playPrevious:
      guard let currentIndex = status.currentIndex else {
        return
      }
      jump(toIndex: currentIndex - 1)
    case .toggleShuffle:
      break // FIXME: unimplemented
    case .jumpToItem(let index):
      jump(toIndex: index)
    case .itemFinishedPlaying(let item):
      guard let index = itemsForPlay.index(of: item) else {
        return
      }
      jump(toIndex: index + 1)
    }
  }
}
