use internal buffer
cleanup
just in case - b.Fatal()
fix merge conflict