         (dom/h2 nil "Contact list")
         (apply dom/ul nil
           (om/build-all contact-view (:contacts app)
-            {:init-state {:delete delete}}))))))
+            {:init-state {:delete delete}}))
+        (dom/div nil
+          (dom/input #js {:type "text" :ref "new-contact"})
+          (dom/button #js {:onClick #(add-contact app owner)} "Add contact"))
+        ))))
 
 (defn main []
 (om/root

  (reify
    om/IInitState
    (init-state [_]
      {:delete (chan)})
    om/IWillMount
    (will-mount [_]
      (let [delete (om/get-state owner :delete)]

        (>= c 2) (assoc :middle middle)))))

(defn add-contact [app owner]
  (let [input (om/get-node owner "new-contact")
        new-contact (-> input
                        .-value
                        parse-contact)]
    (when new-contact
      (om/transact! app :contacts #(conj % new-contact))
      (set! (.-value input) "")
      )))

(defn middle-name [{:keys [middle middle-initial]}]
  (cond
