#15 simplified the rule interface
#15 finished the ruleset factory
#15 modified the return type of rule.validate
#15 implemented the blank rule