If I were to refactor into recursive walker that calls function for each node