make Check a real class instead of gluing on private methods to Rule