- Split the 'Message' class into 'Message' and 'RootMessage' for clarity
- Ensure the message order is respected