Implement Iterator