refactored checking infrastructure

adding more checks will not require as many changes elsewhere as it did
before.

fixes #72