Make MessageReceiver an interface.
Don't return and use externally mutable objects.

This is a security vulnerability.