start working on iterator