Fixes

- split message and key decoders to fix ClassCastException
- use ByteBuffer, not Slice (slice seems to have wrong byte ordering)