always create the right size buffer