make FilterIterator abstract