add circularbuf