                (dom/button #js {:disabled (= (om/value (:current tools)) :line)
                                 :onClick (fn [e]
                                            (om/update! tools [:current] :line))} "Line")
+               (dom/button #js {:disabled (= (om/value (:current tools)) :square)
+                                :onClick (fn [e]
+                                           (om/update! tools [:current] :square))} "Square")
+               (dom/button #js {:disabled (= (om/value (:current tools)) :circle)
+                                :onClick (fn [e]
+                                           (om/update! tools [:current] :circle))} "Circle")
                ))))
 
 (defn app-component [app owner]

    (.stroke context)
    (.restore context)))

(defn new-line-action []
  (->LineAction [] (merge {:lineCap "round"
                           :lineJoin "round"} (get-in @app-state [:tools :props]))))
(def freehand-tool
  (reify
    ITool

      (adjust-points m points))
    points))

(defn next-point [points x y f]
  (if (zero? (count points))
    [[x y]]
    (let [points (assoc points 1 [x y])]
      (f points))))

(def straight-line-tool
  (reify
