   (look [this arguments]))
 
 (defrecord Story [player rooms]
-  (get-current-room [this]
-    (first (filter (fn [x] (= (:order x) (:current-room player))) rooms)))
   Queryable
   (get-all-items [this]
     (concat (map (fn [x] (:items x)) rooms)))


(declare types name-into-objs extract-by-class get-story-ctx)

  (get-current-room [this])
(defprotocol Queryable
  (get-all-items [this])
  (get-item [this name]))

  ;;   (println "move!"))
  (look [this arguments]
    (if (nil? arguments)
      (:summary (get player :room))
      (let [arguments-vec (str/split arguments #" ")]
        (if (= "at" (first arguments-vec))
          (if-let [item (get-item this (second arguments-vec))]
