   (pessimistic-map- [_ s] {})
 
   angelic/ImplicitAngelicAction 
-  (precondition-context-set [a ss] (env/precondition-context a (state-set/some-element ss)))  
+  (precondition-context-set [a ss]
+    (conj (reach-to-context (state-set/get-known-var ss :const) o-dst) [:holding] [:object-at o-dst]))  
   (can-refine-from-set? [a ss] true)
   (immediate-refinements-set- [a ss]
     (let [const (state-set/get-known-var ss :const)

  (pessimistic-map- [_ s] {})

  angelic/ImplicitAngelicAction 
  (precondition-context-set [a ss] (env/precondition-context a (state-set/some-element ss)))  
  (can-refine-from-set? [a ss] true)
  (immediate-refinements-set- [a ss]
   (for [p (hierarchy/immediate-refinements- a (state-set/some-element ss))][{} p]))

  angelic/ImplicitAngelicAction 
  (precondition-context-set [a ss] (env/precondition-context a :dummy))  
  (can-refine-from-set? [a ss] true)
  (immediate-refinements-set- [this ss]
    (let [const (state-set/get-known-var ss :const)
          base  (state-set/get-known-var ss [:base])]
      (if (= dst base) [[{} []]]
          (for [dir dirs :let [a (make-base-dir const base dir)] :when a]
            [{} [a this]])))    
   #_    (for [p (hierarchy/immediate-refinements- a (state-set/some-element ss))] [{} p])) ;slower
  (optimistic-set-and-reward- [a ss]
    (assert (state-set/vars-known? ss [[:base]]))                              
    [(state/set-var ss [:base] #{dst})
