move CustomFilter to core