added String.format()