Filtering and data transferring should be separated and filtering should be injected from IoC container.