Refactored message details - made them immutable, added JAXB annotations, removed messageless constructors.