         }
     }
     
-    func loadPlayerHistoryItem(item: PlayerHistoryItem) {
+    func loadPlayerHistoryItem(item: PlayerHistoryItem, startFromLastPlaybackPosition: Bool = false) {
         
         self.audioPlayer.dispose()
         self.audioPlayer = STKAudioPlayer()

            self.hasErrored = false
        }
        
        // If you are loading a clip, or an episode from the beginning, the item.lastPlaybackPosition will be overridden in the observeValue or seek method.
        if let lastPlaybackPosition = item.lastPlaybackPosition, !self.shouldSetupClip {
            self.shouldStartFromTime = lastPlaybackPosition
        }

    
    fileprivate func addObservers() {
        NotificationCenter.default.addObserver(self, selector: #selector(headphonesWereUnplugged), name: .AVAudioSessionRouteChange, object: AVAudioSession.sharedInstance())
        NotificationCenter.default.addObserver(self, selector: #selector(playInterrupted), name: .AVAudioSessionInterruption, object: AVAudioSession.sharedInstance())
    }
    
    fileprivate func removeObservers() {
        NotificationCenter.default.removeObserver(self, name: .AVAudioSessionRouteChange, object: AVAudioSession.sharedInstance())
        NotificationCenter.default.removeObserver(self, name: .AVAudioSessionInterruption, object: AVAudioSession.sharedInstance())
    }
    
    @objc private func stopAtEndTime() {
