using String format instead of StringBuilder