change to StringBuffer