avoid String.format()