start to create a custom iterator