root processed first