       (return
        (filter-system-map new-st)))))
 
-(defn m-constructor
+(defn- m-constructor
   "returns a monadic value which creates key k,
    and adds it to the system state"
   [k factory-fn arg-specs]

  [obj]
  (d/deferred? obj))

(defn construct-maybe-lift
  "construct an object given a factory-fn and args. if the
   object is already Deferred lift it into the config-ctx,
   otherwise wrap it"

                                   [obj-and-maybe-destructor-fn])]]
      (return [obj destructor-fn deps]))))

(defn- destroy-maybe-lift
  [st destructor-fn]
  (with-context config-ctx
    (try
