working depth first walk