updated to support xml representations via JAXB 2