traditional DFS, evaluate as we get to the node, instead of post order