     }
     
     public func play() {
-        queueJustInitialized = false
+        queueUninitialized = false
         MusicPlayer.player.play()
-        
-        // NOTE: Attempting to call play() immediately before or after
-        // setting currentPlaybackRate introduces a race condition
-        // that prevents currentPlaybackRate from taking effect.
-        // This async call seems to solve that issue.
-        DispatchQueue.main.async {
-            MusicPlayer.player.currentPlaybackRate = self.playbackRate
-            if self.isPlaying() {
-                self.delegate?.playbackStarted()
-            }
-        }
     }
     
     public func isPlaying() -> Bool {

            DispatchQueue.main.async {
                self.delegate?.playbackStopped(trackCompleted: false)
            }
        case .seekingForward:
            break
        case .seekingBackward:
            break
        @unknown default:
            break
        }

            // to test for playbackPosition > mediaItemDuration on .paused.
            if playbackPosition > mediaItemDuration {
                DispatchQueue.main.async {
                    //Indicate queue no longer initialized, fixes issues
                    // with track progress past end as the player likes to do.
                    self.queueUninitialized = true
                    self.delegate?.playbackStopped(trackCompleted: true)
                }
            }
