Iterator State Pattern In Design