add limiter functionality based on predicates