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%.
probably safer to check if its an object and not null