For more convenience, we implement a **Graph** based on `networkx.Graph`.
And we also fix some bugs and adjust other function relative to graph (actually we almost change most of the code because it will be used everywhere.)
After we check and implement some `test.py`, we think we have solved most of the obvious bugs but we also think there are lots of potential errors.
So welcome report any bugs to us.