The refactoring is good.

Though, I think we should be more ambitious on this. *ignoreAttributes* is just a specific kind of filters which return all attributes and *allowedAttributes* is just another specific filter which returns only the attributes according to the given names.

Shouldn't we create a more global concept for the attributes filter ?