Changed so that it does not use Tuple's iterator