only init buffer if used
more doc