refactored filters and dispatcher