Why is this using its own ByteBuffer allocations instead of using the/a pool?