added FormatterInterface and default formatters