square iterator