implement stringbuilder