Strong refactoring: add filter object
Strong refactoring: add filter object