change list to be circularly linked
irrelevant tests are irrelevant
irrelevant tests are irrelevant
use iterators and label tests
remove redundant code in phase 2 and use iterators more
remove phase1 export. make phase3 a separate method.