seed the stack with the first instance while (stack has entries) pop off top entry from stack process it take any potential new work as a result of processing, put it back on the stack