 
 (defn element-node
   [name attributes content]
-  (ElementNode. name attributes content))
+  (Element. name attributes content))
 
 (defn raw-node
   "Wraps a string as a text DOM node, but does not do any filtering of the value."
   [s]
-  (RawNode. s))
+  (Text. s))
 
 (defn text-node
   "Creates a text node from the string. The string is encoded when the node is constructed."

  (doseq [node dom-nodes]
    (stream node strategy out)))

(defrecord ElementNode [name attributes content]

  NodeStreaming
  (stream [node strategy out]

  (stream-nodes dom-nodes html-strategy out))

(defn element?
  "Is the node a DOM Element?"
  [node]
  (instance? Element node))

(defn dom-node?
  "Is the object some kind of DOM node?"
  [node]
  (or (element? node)
    (instance? Text node)
    (instance? Comment node)))

(defn dom-zipper
