#enh use buffer