   SDH-HLA
     (active-var-set  []  (leaf-var-set inactive-leaf))
     (leaf-var-set    []  (active-var-set inactive-leaf))
-    (needs-expand?   []  (not (satisfied? this)))
+    (needs-expand?   []  (not (satisfied? this :dummy)))
     (expand          [lv] 
-      (let [{:keys [hierarchy var dst-val]} inactive-leaf]               
+      (let [{:keys [hierarchy var dst-val dtg]} inactive-leaf]               
        (cond (empty? (clojure.set/intersection lv ((:interfering-set hierarchy) var)))
                [[[inactive-leaf] (advance-active-leaf-precond-hla this dst-val)]]
              (= cur-val dst-val)

        (assert (seq val-options))
        (assert (<= (count shallow) 1))
        (for [idx         val-options,
              next        (select-leaf (precond-hlas idx) s v a v lv)
              :let [new-precond-hlas (assoc precond-hlas idx next)]]
          (SDH-Action-HLA. hierarchy [:!A* (env/action-name action) (map env/action-name new-precond-hlas)]
                           action precond-var-set new-precond-hlas idx))))

    (precondition-context [s] precond-var-set)
  hierarchy/HighLevelAction
    (immediate-refinements- [s]
      (let [var-leaves  (leaf-var-set this)]
       (if (needs-expand? this)
         (let [[prefix next] (expand this var-leaves)]
           (if next (conj prefix next) prefix))
         (let [var-actives (active-var-set this)
               var-options (clojure.set/difference var-leaves var-actives)]
           (if (empty? var-options)
             (println "Dead end!")
             (select-leaf this s (util/first-maximal-element (:var-levels hierarchy) var-options) var-actives))))))
    (cycle-level-           [s] nil))

(defn- make-action-hla [hierarchy action]
