          (seek-time)))
 
      enable-preload
-     #(go (>! (:chan @st) [:preload src]))]
+     #((:command @st) [:preload src])]
 
     (into
       [:div.audio-player (r/merge-props

                 (prn "audio player: status changed")
                 (prn "   - source: " (:src @st))
                 (prn "   - status: " status)
                 (swap! st assoc-in [:status] status))]

           (reset! st (state))
           (reset!
             events
             [(events/listen audio "durationchange" update-time)

           (pos? (:current-time @st)))

     toggle-play
     #((:command @st) (if (is-playing)
                        :pause
                        [:play src]))

     seek-time
     #((:command @st) [:seek @mouse-time])

     update-mouse-time
     (fn [ev]
