anchor.diff:  [source,java]
   ----
   final Graph g = TinkerFactory.createClassic();
  +g.io().writeGraphSON("tinkerpop-classic.json");
  +
  +final Graph newGraph = TinkerGraph.open();
  +newGraph.io().readGraphSON("tinkerpop-classic.json")'
  +----
  +
  +If a custom configuration is required, then have the `Graph` generate a `GraphReader` or `GraphWriter` "builder" instance:
  +
  +[source,java]
  +----
  +final Graph g = TinkerFactory.createClassic();
   try (final OutputStream os = new FileOutputStream("tinkerpop-classic.json")) {
  -    GraphSONWriter.build().create().writeGraph(os, g);
  +    g.io().graphSONWriter().normalize(true).create().writeGraph(os);
   }
   
  -final GraphReader reader = GraphSONReader.build().create();
  +final Graph newGraph = TinkerGraph.open();
   try (final InputStream stream = new FileInputStream("tinkerpop-classic.json")) {
  -    reader.readGraph(stream, g);
  +    newGraph.io().graphSONReader().vertexIdKey("name").create().readGraph(stream);
   }
   ----
   
  -The `GraphSONReader` and `GraphSONWriter` have a number of options that they can be configured with.  One of the important options is the ability to embed type information into the output.  By embedding the types, it becomes possible to serialize a graph without losing type information that might be important when being consumed by another source.  The importance of this concept is demonstrated in the following example where a single `Vertex` is written to GraphSON using the Gremlin Console:
  +One of the important configuration options of the `GraphSONReader` and `GraphSONWriter` is the ability to embed type information into the output.  By embedding the types, it becomes possible to serialize a graph without losing type information that might be important when being consumed by another source.  The importance of this concept is demonstrated in the following example where a single `Vertex` is written to GraphSON using the Gremlin Console:
   
   [source,groovy]
   ----
   gremlin> g = TinkerFactory.createClassic()
   ==>tinkergraph[vertices:6 edges:6]
  -gremlin> w = GraphSONWriter.build().create()
  -==>com.tinkerpop.gremlin.structure.io.graphson.GraphSONWriter@1af146
  -gremlin> f = new FileOutputStream('test.txt')
  -==>java.io.FileOutputStream@5c8eee0f
  -gremlin> w.writeVertex(f, g.V(1).next(), Direction.BOTH)
  +gremlin> g.io().graphSONWriter().create().writeVertex(f, g.V(1).next(), BOTH)
   ==>null
   gremlin> f.close()
  +==>null
   ----
   
   The following GraphSON example shows the output of `GraphSonWriter.writeVertex()` with associated edges:
  
positive.code:             "label": "knows",
              "type": "edge",
              "outV": 1,
              "hiddens": {},
              "properties": {
                  "weight": 1
              }
  
negative.code:     "id": 1,
      "label": "vertex",
      "type": "vertex",
      "properties": {
          "@class": "java.util.HashMap",
          "name": [
  