Add -o/--out option
Refactor and style
Allow multiple formatters
Allow custom formatter class