added abstract filter