lots of XML stuff