Fix bug that meant not all test data was actually being checked
Refactored logic out of CLI and into Application class, and further siloed logic into standard and extended modes, so an application with only the implementation of the original requirements stays in tact.