should use the right buffer size