start of "user defined predicate" feature