introduced dynamic buffer