move doIsSatisfied and doIsNotSatisfied to RuleAbstract and set them as protected