now toString methods use StringBuffer and String.format()