add color support, change buffer mechinism