Added updated Javadocs.
diff --git a/javadoc/hierarchy.html b/javadoc/hierarchy.html
old mode 100755
new mode 100644
index 244a086..a3cfff0
--- a/javadoc/hierarchy.html
+++ b/javadoc/hierarchy.html
@@ -142,9 +142,9 @@
     </select>
   </div>
   <script>
-   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
+   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0', 'Guice_4.0' ];
     
-    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
+    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0', 'Guice_4.0' ];
     buildApiLevelSelector();
     addLoadEvent(changeApiLevel);
   </script>
@@ -295,22 +295,6 @@
     <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="2">
     
-        <a href="./com/google/inject/grapher/GrapherModule.html">GrapherModule</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="2">
-    
         <a href="./com/google/inject/grapher/graphviz/GraphvizModule.html">GraphvizModule</a>
     
     </td>
@@ -501,13 +485,81 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
-        <a href="./com/google/inject/grapher/GraphingVisitor.html">GraphingVisitor</a>
+        <a href="./com/google/inject/grapher/AbstractInjectorGrapher.html">AbstractInjectorGrapher</a>
     
     </td>
     <td class="jd-hierarchy-data">
     
         
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
+            <a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
+         &nbsp;&nbsp;
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/graphviz/GraphvizGrapher.html">GraphvizGrapher</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/grapher/AbstractInjectorGrapher.GrapherParameters.html">AbstractInjectorGrapher.GrapherParameters</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/grapher/Alias.html">Alias</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/grapher/DefaultRootKeySetCreator.html">DefaultRootKeySetCreator</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+        
+            <a href="./com/google/inject/grapher/RootKeySetCreator.html">RootKeySetCreator</a>
          &nbsp;&nbsp;
     
     &nbsp;
@@ -521,7 +573,119 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
-        <a href="./com/google/inject/grapher/InjectorGrapher.html">InjectorGrapher</a>
+        <a href="./com/google/inject/grapher/Edge.html">Edge</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/grapher/Node.html">Node</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/InstanceNode.html">InstanceNode</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/grapher/NodeId.html">NodeId</a>
     
     </td>
     <td class="jd-hierarchy-data">
@@ -557,126 +721,6 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
-        <a href="./com/google/inject/grapher/StringNodeIdFactory.html">StringNodeIdFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeIdFactory.html">NodeIdFactory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.html">BindingEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.Factory.html">BindingEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/BindingEdgeFactory.GraphvizEdgeAdaptor.html">BindingEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/BindingEdge.html">BindingEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.html">DependencyEdgeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.Factory.html">DependencyEdge.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/DependencyEdgeFactory.GraphvizEdgeAdaptor.html">DependencyEdgeFactory.GraphvizEdgeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/DependencyEdge.html">DependencyEdge</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
         <a href="./com/google/inject/grapher/graphviz/GraphvizEdge.html">GraphvizEdge</a>
     
     </td>
@@ -709,110 +753,6 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
-        <a href="./com/google/inject/grapher/graphviz/GraphvizRenderer.html">GraphvizRenderer</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/NodeAliasFactory.html">NodeAliasFactory</a>
-         &nbsp;&nbsp;
-    
-        
-            <a href="./com/google/inject/grapher/Renderer.html">Renderer</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.html">ImplementationNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.Factory.html">ImplementationNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/ImplementationNodeFactory.GraphvizNodeAdaptor.html">ImplementationNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/ImplementationNode.html">ImplementationNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.html">InterfaceNodeFactory</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.Factory.html">InterfaceNode.Factory</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
-        <a href="./com/google/inject/grapher/graphviz/InterfaceNodeFactory.GraphvizNodeAdaptor.html">InterfaceNodeFactory.GraphvizNodeAdaptor</a>
-    
-    </td>
-    <td class="jd-hierarchy-data">
-    
-        
-            <a href="./com/google/inject/grapher/InterfaceNode.html">InterfaceNode</a>
-         &nbsp;&nbsp;
-    
-    &nbsp;
-    </td>
-</tr>
-
-
-
-
-<tr>
-    <td class="jd-hierarchy-spacer"></td>
-    <td class="jd-hierarchy-data" colspan="3">
-    
         <a href="./com/google/inject/grapher/graphviz/PortIdFactoryImpl.html">PortIdFactoryImpl</a>
     
     </td>
@@ -1047,6 +987,22 @@
 </tr>
 
 
+<tr>
+    <td class="jd-hierarchy-spacer"></td><td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="2">
+    
+        <a href="./com/google/inject/grapher/TransitiveDependencyVisitor.html">TransitiveDependencyVisitor</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
 
 
 <tr>
@@ -1089,6 +1045,22 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
+        <a href="./com/google/inject/spi/DependencyAndSource.html">DependencyAndSource</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
         <a href="./com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a>
     
     </td>
@@ -1109,6 +1081,22 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
+        <a href="./com/google/inject/spi/ElementSource.html">ElementSource</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
         <a href="./com/google/inject/spi/Elements.html">Elements</a>
     
     </td>
@@ -1245,6 +1233,82 @@
     <td class="jd-hierarchy-spacer"></td>
     <td class="jd-hierarchy-data" colspan="3">
     
+        <a href="./com/google/inject/spi/ProvisionListener.ProvisionInvocation.html">ProvisionListener.ProvisionInvocation</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/spi/ProvisionListenerBinding.html">ProvisionListenerBinding</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+        
+            <a href="./com/google/inject/spi/Element.html">Element</a>
+         &nbsp;&nbsp;
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/spi/RequireAtInjectOnConstructorsOption.html">RequireAtInjectOnConstructorsOption</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+        
+            <a href="./com/google/inject/spi/Element.html">Element</a>
+         &nbsp;&nbsp;
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
+        <a href="./com/google/inject/spi/RequireExactBindingAnnotationsOption.html">RequireExactBindingAnnotationsOption</a>
+    
+    </td>
+    <td class="jd-hierarchy-data">
+    
+        
+            <a href="./com/google/inject/spi/Element.html">Element</a>
+         &nbsp;&nbsp;
+    
+    &nbsp;
+    </td>
+</tr>
+
+
+
+
+<tr>
+    <td class="jd-hierarchy-spacer"></td>
+    <td class="jd-hierarchy-data" colspan="3">
+    
         <a href="./com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a>
     
     </td>