use iter instead of tuple