Made it possible to pass in different output formats and easily add in new input formats.