basic graph structure