             (mapv #(parser {:state (atom %)} (mapv om/ast->query (:children ast)))))))
 
    :user/favorite-fellow-user
-   (fn [context ast]
-     (p/alet [get-user (get-in context [:apis :get-user])
-              user (p/await (get-user {:name (:user/name context)}))]
+   (fn [env ast]
+     (p/alet [get-user (get-in env [:apis :get-user])
+              user (p/await (get-user {:name (:user/name env)}))]
        (resolve (chan)
-                (assoc context :user/name (:favorite-fellow-user-name user))
+                (assoc env :user/name (:favorite-fellow-user-name user))
                 ast)))})
 
 (deftest new-thing-works

                   #(parser {:state (atom %)} (mapv om/ast->query (:children ast)))))))

   :user/pets
   (fn [context ast]
     (p/alet [get-user-pets (get-in context [:apis :get-user-pets])
              pets (p/await (get-user-pets {:name (:user/name context)}))]
       (->> pets
            (map #(set/rename-keys % {:name :pet/name
                                      :species :pet/species

            :let [read-from-key (get-in ast [:params :<] (:key ast))]]
        (if (contains? resolvers read-from-key)
          (let [resolver (get resolvers read-from-key)]
            (pipe-values (resolver env ast)
                         (chan 1 (map #(hash-map (:key ast) %)))))
          (if-let [[keys resolver]
                   (first (filter #(contains? (key %) read-from-key) resolvers))]
            (pipe-values (resolver env ast)
                         (chan 1 (comp
                                  (map #(get % read-from-key))
                                  (map #(hash-map (:key ast) %)))))
