supports API driven rules