This setter performs a lot of work. Perhaps make it a more explicit method? Something like `performFilter()`.