directed graph.  supports dfs and bfs traversal.  WIP.