use byte to handle the buffer things