Use JAXB annotations; cleaned up responsibilities