add PredicateExtensions.cs