refactored predicate and post filter