Make checks more extensible (refactoring to support issue #17)