moving CircularByteBuffer to its own class