         (dom/div #js {:className "definition"}
                  (dom/h3 nil (first (item d/definition-text)))
                  (dom/p nil (second (item d/definition-text)))
-                 (om/build item-detail app)
-                 (om/build item-props (get-in app [:prop-map (:item app)]))
+                 (om/build item-detail app {:opts opts})
+                 ;; (om/build item-props (get-in app [:prop-map (:item app)]))
                  )))))
 
 (om/root

      (let [_ (println "mounting item-controller")
            event-chan (:event-chan opts)
            control-chan (:control-chan opts)]

        (go (loop [type :none state {:step 0}]

              (let [[event port] (alts! [event-chan control-chan])]
                (if (= port control-chan)
                  (recur event {:step 0})
                  (let [new-state (h/triangle-transitioner event state)]
                    (if (= (:step new-state) 3)
                      (let [{:keys [p1 p2 p3]} new-state]

        (dom/span nil
                  (str "[" x  " " y "] "))))))

(defn item-detail [app owner opts]
  (reify
    om/IRender
    (render [_]
      (let [points (:triangle app)
            control-chan (:control-chan opts)
            _ (prn points)]
        (when points
          (apply dom/div #js {:className "item-detail"}
                 (dom/div #js {:className "button"
                               :onClick #(do
                                           (om/update! app :triangle nil)
                                           (put! control-chan :triangle))}
                          "new triangle")
                 (dom/div #js {:onClick #(println "redraw triangle")} "redraw triangle")
                 "vertices "
                 (om/build-all point-detail points)))))))

(defn item-props [props owner]
  (reify
