sometimes uses in-list iterator and sometimes OR depends