from buffer