added Formatter and FormatterFactory (#12)