better way even without StringBuffer