changed from device to PredicateProvider