def next(self):
        """Move to the next valid locus.

        Will only return valid loci or exit via StopIteration exception

        """
        while True:
            self.cur_idx += 1
            if self.__datasource.populate_iteration(self):
                return self

        raise StopIteration