now using a regexp filter with caching, as far as I can tell, not much performance difference, but it seems to be working well!