Added Predicate classes and interface