modified: graph.go and driver.go