Starting on refactor for allowing different reporters.

Work in progress.