add finter with predicate