predicate work and fixes