start reading the code of graphx, add some comments to help understanding