add readbuffer
merged