progress + new predicate machinery