Turned the CrawlDataIterator abstract into an interface