adding predicate contracts