yeah - I almost refactored this to also be able to completely remove `BaseFilter`, but the PR was already enormous.