moved the augment buffer code into a trait called AugmentBuffer