extracted an abstract class with common methods for PredicateEvaluator