 (ns c2.dom
   (:use-macros [c2.util :only [p pp timeout bind!]]
-               [clojure.core.match.js :only [match]]
-               [iterate :only [iter]])
+               [clojure.core.match.js :only [match]])
   (:require [clojure.string :as string]
+            [singult.core :as singult]
             [goog.dom :as gdom]
             [goog.dom.classes :as gclasses]
             [goog.style :as gstyle]))

  [old new]
  (let [new (condp = (node-type new)
              :dom new
              :hiccup (build-dom-elem new)
              :selector (select new))]
    (gdom/replaceNode new (select old))))


(extend-type js/Node
  IHash
  (-hash [x] x))


(defn dom-element?
