no struct, just a class for the buffer