added digraph, created graph from digraph but realized that this strategy would turn out problematic, so kept two separate graph and digraph objects