              space-before space-after space-line   
              indent-left indent-right indent-first-line mirror-indents?]}]
   (let [font-style-name (str "character-style-of-" name)]
-    (remove-nil
-      [;; paragraph style
-       {:tag :w:style
-        :attrs {:w:type "paragraph"
-                :w:styleId "normal"
-                :w:customStyle "true"}
-        :content
-        (remove-nil
-          [{:tag :w:name
-            :attrs {:w:val name}}
-           {:tag :w:basedOn
-            :attrs {:w:val "a"}}
-           (when font {:tag :w:link
-                       :attrs {:w:val font-style-name}})
-           {:tag :w:qFormat}
+    [;; paragraph style
+     (node :w:style {:w:type "paragraph"
+                     :w:styleId "normal"
+                     :w:customStyle "true"}
+           (node :w:name {:w:val name})
+           (node :w:basedOn {:w:val "a"})
+           (when font
+             (node :w:link {:w:val font-style-name}))
+           (node :w:qFormat)
            (when (or align
                      space-before space-after space-line
                      indent-left indent-right indent-first-line mirror-indents?)
              (ppr options))
            (when (or font font-size font-color bold? italic? underline?)
-             (rpr options))])}
-       ;; font style of the paragraph style
-       (when font
-         {:tag :w:style
-          :attrs {:w:type "character"
-                  :w:styleId font-style-name
-                  :w:customStyle "true"}
-          :content
-          [{:tag :w:name
-            :attrs {:w:val font-style-name}}
-           {:tag :w:basedOn
-            :attrs {:w:val "a0"}}
-           (rpr options)]})])))
+             (rpr options)))
+     ;; font style of the paragraph style
+     (when font
+       (node :w:style {:w:type "character"
+                       :w:styleId font-style-name
+                       :w:customStyle "true"}
+             (node :w:name {:w:val font-style-name})
+             (node :w:basedOn {:w:val "a0"})
+             (rpr options)))]))
 
 (defn word-styles-xml
   "descripted on: http://officeopenxml.com/WPstyles.php"
   [& styles]
-  {:tag :w:styles
-   :attrs word-xmlns
-   :content (remove-nil (flatten [default-styles styles]))})
+  (node :w:styles word-xmlns
+        (flatten [default-styles styles])))
 
 (defn word-media-resources
   "Creates a vector of resource data map. Each map has :path and :byte-array

  Parameters:
  - & body: content of row (td is expected)"
  [& body]
  {:tag :w:tr
   :content (remove-nil body)})

(defn td
  "Returns XML tag node of table.

  - (doc-props-app-xml :application \"Microsoft Office Word\" :app-version \"12.0000\")"
  [& {:as options
      :keys [application app-version]}]
  (node :properties:Properties doc-props-app-xml-xmlns
        (map when-v-node
             [application app-version]
             [:properties:Application :properties:AppVersion])))

(defn rels-rels
  "Creates XML data for _rels/.rels file in DOCX package."
  []
  (node :Relationships relationships-xmlns
        (node :Relationship {:Id "rId1"
                             :Type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" 
                             :Target "word/document.xml"})
        (node :Relationship {:Id "rId2"
                             :Type "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties"
                             :Target "docProps/core.xml"})
        (node :Relationship {:Id "rId3"
                             :Target "docProps/app.xml"
                             :Type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"})))

(defn doc-props-core-xml
  "Creates XML data for docProps/core.xml file in DOCX pakcage.
