predicates update refactoring