PlainMessage refactoring:

- add inheriting a type built super type

- remove the old hand-made de/serialize object 
implementation

- review test
Add inner message definition
Update the version to 0.4.1