require
use buffer