+  $header  -> appendChild ($date);
+  $message -> appendChild ($header);
+
+  # return
+  #
+  $message;
+}
+
+### sub create_new_thread ($) ##################################################
+#
+# create a XML::DOM::Document object of a thread containing one posting
+#
+# Params: hash reference
+#         (dtd, thread, msg, body, ip, name, email, home,
+#          image, category, subject, time)
+#
+# Return: XML::DOM::Document object
+#
+sub create_new_thread ($) {
+  my $par = shift;
+
+  # new document
+  #
+  my $xml = new XML::DOM::Document;
+
+  # xml declaration
+  #
+  my $decl = new XML::DOM::XMLDecl;
+  $decl -> setVersion  ('1.0');
+  $decl -> setEncoding ('UTF-8');
+  $xml -> setXMLDecl ($decl);
+
+  # set doctype
+  #
+  my $dtd = $xml -> createDocumentType ('Forum' => $par -> {dtd});
+  $xml -> setDoctype ($dtd);
+
+  # create root element 'Forum'
+  # create element 'Thread'
+  # create 'Message' subtree
+  # create element 'ContentList'
+  # create 'MessageContent' subtree
+  #
+  my $forum    = $xml -> createElement ('Forum');
+  my $thread   = $xml -> createElement ('Thread');
+    $thread -> setAttribute ('id' => $par -> {thread});
+  my $message  = create_message ($xml,$par);
+  my $content  = $xml -> createElement ('ContentList');
+  my $mcontent = $xml -> createElement ('MessageContent');
+    $mcontent -> setAttribute ('mid' => $par -> {msg});
+    $mcontent -> appendChild (
+      $xml -> createCDATASection (${$par -> {body}})
+    );
+
+  # link all the nodes to
+  # their superior elements
+  #
+  $thread  -> appendChild ($message);
+  $forum   -> appendChild ($thread);
+  $content -> appendChild ($mcontent);
+  $forum   -> appendChild ($content);
+  $xml     -> appendChild ($forum);
+
+  # return
+  #
+  $xml;
+}
+
+### get_message_header () ######################################################
+#
+# Read message header, return as a hash
+#
+# Params: $node - XML message node
+# Return: hash reference (name, category, subject, email, home, image, time)
+#
+sub get_message_header ($)
+{