That's correct...the Messenger uses reflection to create an object and then call setters on that object.  To reconstruct an IMessage implementation that has been sent across the wire, the Message needs a default constructor and setters for any fields you want set