bottom-up simultaneous iteration
cleanup
reset defs after each run for efficiency
reorg