                            #{sas/goal-var-name} [])
            dtgs          (sas-analysis/domain-transition-graphs sas-problem)
            simple-dtgs   (util/map-vals (fn [dtg] (for [[pval emap] dtg, [eval _] emap] [pval eval])) dtgs)           
-           acyclic-succ-fn (partial possibly-acyclic-successors (HashMap.) simple-dtgs)]
+           acyclic-succ-fn (partial possibly-acyclic-successors (HashMap.) simple-dtgs)
+           teleport-fn   (when teleport? (partial teleport-to-val (HashMap.) dtgs))]
 ;       (assert (graphs/dag? causal-graph))    
 ;       (assert (sas-analysis/unary? sas-problem))
        (assert (contains? clusters #{sas/goal-var-name}))


       ;;     (doseq [a (:actions sas-problem)] (assert (every? #(contains? (:precond-map a) %) (keys (:effect-map a)))))
       ;; TODO: Need this for real generalization, here it only has to be true on cluster!
       (doseq [a (:actions sas-problem)] (assert (some (var->cluster (first (keys (:effect-map a))))
                                                        (keys (:precond-map a)))))
       (doseq [c clusters] (println c))
       (println )
       (ASPlanEnv.
        sas-problem
        (expand-initial-state (env/initial-state sas-problem) clusters cc-map (goal-action dtgs))

       Greedy means we forget about reserving preconditions when free and we can fire right now (less branching).
       Sloppy means we ignore if preconditions are free, but require no action on them.
       Extra-sloppy means anything goes -- if you can execute ignoring commitments, go for it."
  ([sas-problem & {:keys [directed? greedy? deadlock? dead-vars? components? teleport?] :as m
                   :or   {directed? true greedy? true deadlock? true dead-vars? true components? false teleport? true}}]
     (assert (every? #{:directed? :greedy? :deadlock? :dead-vars? :components? :teleport?} (keys m)))
     (let [edge-rule     (if greedy? :greedy :naive)
           cluster-cg    (remove #(apply = %) (sas-analysis/effect-clustered-causal-graph sas-problem))
           clusters      (graphs/ancestor-set cluster-cg [#{sas/goal-var-name}])
