   ([x visitor-fn]
      (apply escape-html (flatten (dalap.walk/walk [x] visitor-fn)))))
 
-;;; helpers
-;;; maybe these should be in a different module
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; HTML Builder helpers
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
 (def doctype
   {:html4
    (safe "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" "

  (:import [dalap.escape PreEscaped]))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defprotocol HtmlSerializable
  (visit [x w]))

          close-tag [(safe "</") tag-name (safe \>)]]
      (w [open-tag (if-not is-empty [content close-tag])]) )))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; DomNode builder helpers

(defn- merge-tag-attrs [tag-attrs id clazz]
  (let [
