Initial draft of version 3

I wanted to get more eyes on this at this point as the bulk of the rewrite is complete. Just needs some additional tests for the console reporter. Code coverage at 93.20%.
`reporters` no need to indicate its protected within the same function