cleaner version, not using extra Formatter indirection