reduce noise by guarding functions on predicates