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%.
probaby worth returning the original error so that the stack is retained