Refactor filter evaluation

Thanks for the help @josevalim and @christhekeele
Fix bug in applying multiple filters