rewrite backup procedure, use XmlSerializer