iteratively
not defined yet