Factor out the symtable walker, no functional changes but much reshuffling