added an abstract filter