     >r tag-children r> <q/a> ;
 
 : q/a>li ( q/a -- li )
-    [ q/a-question "strong" build-tag* f "br" build-tag* 2array ] keep
-    q/a-answer append "li" build-tag* ;
+    [ question>> "strong" build-tag* f "br" build-tag* 2array ] keep
+    answer>> append "li" build-tag* ;
 
 : xml>q/a ( xml -- q/a )
     [ "question" tag-named tag-children ] keep
     "answer" tag-named tag-children <q/a> ;
 
 : q/a>xml ( q/a -- xml )
-    [ q/a-question "question" build-tag* ] keep
-    q/a-answer "answer" build-tag*
+    [ question>> "question" build-tag* ] keep
+    answer>> "answer" build-tag*
     "\n" swap 3array "qa" build-tag* ;
 
 ! Lists of questions

    <question-list> ;

: question-list>xml ( question-list -- list )
    [ question-list-seq [ q/a>xml "\n" swap 2array ]
      map concat "list" build-tag* ] keep
    question-list-title [ "title" pick set-at ] when* ;

: html>question-list ( h3 ol -- question-list )
    >r [ children>string ] [ f ] if* r>
    children-tags [ li>q/a ] map <question-list> ;

: question-list>h3 ( id question-list -- h3 )
    question-list-title [
        "h3" build-tag
        swap number>string "id" pick set-at
    ] [ drop f ] if* ;

: question-list>html ( question-list start id -- h3/f ol )
    -rot >r [ question-list>h3 ] keep
    question-list-seq [ q/a>li ] map "ol" build-tag* r>
    number>string "start" pick set-at
    "margin-left: 5em" "style" pick set-at ;



: faq>xml ( faq -- xml )
    "faq" [
        "header" [ dup header>> , ] tag,
        lists>> [ question-list>xml , nl, ] each
    ] make-xml ;

: read-write-faq ( xml-stream -- )
