     (when playing?
       ((:stop state)))
     (let [new-state (-> state
-                        (assoc :current-time new-time :play-from new-time)
+                        (assoc :current-time new-time :start-at new-time)
                         (apply-diff diff))]
       (if playing?
         (start-playback new-state dispatch)

      (loop [cursor-blink-chan (make-cursor-blink-chan)]
        (let [[v c] (alts! [diff-chan timer-chan cursor-blink-chan stop-playback-chan])]
          (condp = c
            timer-chan (let [t (+ play-from (elapsed-time))]
                         (dispatch [:update-state assoc :current-time t])
                         (recur cursor-blink-chan))
            cursor-blink-chan (do

    (dispatch [:toggle-play]))
  (-> state
      (dissoc :stop)
      (assoc :start-at 0)
      (assoc :current-time (:duration state))))

(defn speed-up [speed]
