refactored filter strategy