add a flag parameter determining whether to initialize the buffer