Reportstate 11

Provisionally fixes #11
Opening PR with the expectation that there is probably a bit more stuff to do, but some comments would be appreciated.
Backwards compatibility is not a goal at the moment. And, I'm not sure you actually need to have a class object instead of an object. I'll take a closer look at the code.