add erase(...) to ByteBuffer
new class and implementation: ClientAdapter
new class ServerAdapter