                              {::streak-count next-streak
                               ::ex-answer    nil}))]
            (swap! state assoc-in ref new-props)
-           (play-notes (::notes new-props)))
+           ((play-fn new-props) (::notes new-props)))
          (swap! state update-in ref assoc ::streak-count 0))))
 
    :remote

  [{:keys [state ref]} _ _]
  {:action
   (fn []
     (let [{:keys [::ex-answer ::correct-answer ::streak-count ::class ::ex-total-questions] :as props} (get-in @state ref)]
       (if (= ex-answer correct-answer)
         (let [next-streak (inc streak-count)
               new-props (new-round class

            [untangled.client.mutations :as um]
            [cljs.spec :as s]
            [daveconservatoire.audio.core :as audio]
            [daveconservatoire.site.ui.vexflow :as vf]
            [daveconservatoire.site.ui.util :as u]))

(defprotocol IExercise
