introduce Buffer