adding predicate composition tools