hopefully final changes on the iterator / iterable complement