complete with predicate