Updated implementation to allow consumable bytes from the receiver, which makes it much easier to implement the protocol.
Updated tests and protocol implementation