added an extended RuleCollection class and an abstractFilter class