(a) added a 'Bag', (b) added directed graph AST + DFS