make IterableProvider abstract