use byte slice to reduce gc pressure