            :status :running
            :timeline timeline
            :scheduled-future (schedule-next
-                              clock
                               (first timeline)
-                              executor
-                              #(callback state timeline clock trigger executor promise))
+                              {:clock clock
+                               :executor executor
+                               :callback #(callback state timeline {:clock clock :trigger trigger :executor executor :promise promise})})
            :clock clock
            :executor executor)
     promise)

      (do
        (swap! state assoc
               :timeline next-timeline
               :scheduled-future (schedule-next clock (first next-timeline) executor #(callback state next-timeline clock trigger executor promise)))
        (dorun (map trigger due)))

      ;; Set status to :done

              clock (:clock st)]
          (swap! state (fn [st] (-> st (assoc :status :running
                                              :scheduled-future (schedule-next
                                                                 (first timeline)
                                                                 {:clock clock
                                                                  :executor executor
                                                                  :callback #(callback state timeline {:clock clock :trigger trigger :executor executor :promise promise})}))))))

        :ok)))

  (stop [_]
