TODO: doc for Graph