implemented outer predicates