   {:lines (vt/compact-lines lines)
    :cursor cursor})
 
-(defmulti initialize-asciicast (fn [dispatch state asciicast]
+(defmulti initialize-asciicast (fn [state asciicast]
                                  (if (vector? asciicast)
                                    0
                                    (:version asciicast))))
 
-(defmethod initialize-asciicast 0 [dispatch state asciicast]
+(defmethod initialize-asciicast 0 [state asciicast]
   (let [frame-0-lines (-> asciicast first last :lines)
         width (->> frame-0-lines vals first (map #(count (first %))) (reduce +))
         height (count frame-0-lines)]

  "Returns Reagent atom with fresh player state."
  [& args]
  (atom (apply make-player args)))

(defn elapsed-time-since
  "Returns wall time (in seconds) elapsed since then."

           :duration (reduce #(+ %1 (first %2)) 0 asciicast)
           :frames (build-v0-frames asciicast))))

(defmethod initialize-asciicast 1 [state asciicast]
  (assoc state
         :loading false
         :width (or (:width state) (:width asciicast))
