Separated out testing logic into separate modules to make it easier to use.
Reimplemented report checking