needs to be self._data_buffer