Classes renamed
Add encodable capability
Separated messages encoding from decoding
Message encoder for messages originated locally