move to updated cleanup, saves a prewalk
use new collect pass