diff --git a/guice.iws b/guice.iws
index adbbe75..52945be 100644
--- a/guice.iws
+++ b/guice.iws
@@ -18,8 +18,20 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/NotRequiredTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/NotRequiredTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/SuperclassTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/SuperclassTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/google/inject/Key.java" afterPath="$PROJECT_DIR$/src/com/google/inject/Key.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/GenericInjectionTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/GenericInjectionTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/google/inject/ContainerImpl.java" afterPath="$PROJECT_DIR$/src/com/google/inject/ContainerImpl.java" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/src/com/google/inject/SourceProvider.java" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/ConstantConversionTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/ConstantConversionTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/guice.ipr" afterPath="$PROJECT_DIR$/guice.ipr" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/FactoryInjectionTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/FactoryInjectionTest.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/guice.iws" afterPath="$PROJECT_DIR$/guice.iws" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/google/inject/Container.java" afterPath="$PROJECT_DIR$/src/com/google/inject/Container.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/FactoryTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/FactoryTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/ContainerTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/ContainerTest.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/com/google/inject/CircularDependencyTest.java" afterPath="$PROJECT_DIR$/test/com/google/inject/CircularDependencyTest.java" />
     </list>
   </component>
   <component name="ChangeListSynchronizer" />
@@ -188,7 +200,125 @@
     <option name="myCurrentFavoritesList" value="guice" />
   </component>
   <component name="FileEditorManager">
-    <leaf />
+    <leaf>
+      <file leaf-file-name="ContextualFactory.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContextualFactory.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="23" column="17" selection-start="726" selection-end="726" vertical-scroll-proportion="0.20536913">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ContainerImpl.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="137" column="28" selection-start="4578" selection-end="4578" vertical-scroll-proportion="0.3328859">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="CircularDependencyTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/CircularDependencyTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="67" column="0" selection-start="1549" selection-end="1549" vertical-scroll-proportion="0.86308724">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="GenericInjectionTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/GenericInjectionTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="19" column="50" selection-start="582" selection-end="582" vertical-scroll-proportion="0.36510068">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SuperclassTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/SuperclassTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="31" column="22" selection-start="1042" selection-end="1042" vertical-scroll-proportion="0.36107382">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="NotRequiredTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/NotRequiredTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="29" column="43" selection-start="956" selection-end="956" vertical-scroll-proportion="0.3328859">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ConstantConversionTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/ConstantConversionTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="14" column="3" selection-start="595" selection-end="595" vertical-scroll-proportion="0.0">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="FactoryInjectionTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/FactoryInjectionTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="19" column="51" selection-start="499" selection-end="499" vertical-scroll-proportion="0.4067114">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="FactoryTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/FactoryTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="85" column="0" selection-start="2663" selection-end="2663" vertical-scroll-proportion="0.58389264">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ContainerTest.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/test/com/google/inject/ContainerTest.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="151" column="0" selection-start="3306" selection-end="3306" vertical-scroll-proportion="0.013422819">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="ContainerBuilder.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerBuilder.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="581" column="55" selection-start="17538" selection-end="17538" vertical-scroll-proportion="0.3328859">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Key.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/com/google/inject/Key.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="132" column="0" selection-start="3391" selection-end="3391" vertical-scroll-proportion="0.3785235">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="Container.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/com/google/inject/Container.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="76" column="0" selection-start="2156" selection-end="2210" vertical-scroll-proportion="0.52080536">
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
   </component>
   <component name="FindManager">
     <FindUsagesManager>
@@ -624,9 +754,9 @@
       <window_info id="Mach" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919848" order="9" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="7" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.15854311" order="0" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.29517502" order="1" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.29517502" order="1" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.16236559" order="1" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.27909178" order="10" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.27909178" order="10" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
       <window_info id="Profile" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32890996" order="13" />
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
@@ -733,97 +863,6 @@
     <option name="myLastEditedConfigurable" value="Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/util/Function.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="40" column="34" selection-start="1577" selection-end="1577" vertical-scroll-proportion="0.60714287">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/SingletonScope.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="22" column="27" selection-start="591" selection-end="591" vertical-scroll-proportion="0.51373625">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/com/google/inject/AllTests.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="29" column="13" selection-start="964" selection-end="964" vertical-scroll-proportion="0.21016483">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$PROJECT_DIR$/lib/cglib-nodep-2.1_3.jar!/net/sf/cglib/reflect/FastClass.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="47" selection-start="386" selection-end="386" vertical-scroll-proportion="0.023842918">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/Key.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="188" column="9" selection-start="4748" selection-end="4748" vertical-scroll-proportion="0.98214287">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerBuilder.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="0" selection-start="625" selection-end="625" vertical-scroll-proportion="0.023351649">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="50" column="6" selection-start="1570" selection-end="1570" vertical-scroll-proportion="0.023351649">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ConstantFactory.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="21" column="6" selection-start="680" selection-end="680" vertical-scroll-proportion="0.16346154">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/com/google/inject/ContainerTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="63" column="68" selection-start="1990" selection-end="1990" vertical-scroll-proportion="0.023351649">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/com/google/inject/SpringPerformanceComparison.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="108" column="27" selection-start="3948" selection-end="3948" vertical-scroll-proportion="0.023351649">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/Container.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="71" column="0" selection-start="2050" selection-end="2050" vertical-scroll-proportion="0.88873625">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/com/google/inject/TypeTokenTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="25" column="13" selection-start="745" selection-end="745" vertical-scroll-proportion="0.21016483">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/com/google/inject/TypeToken.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="32" column="22" selection-start="1101" selection-end="1101" vertical-scroll-proportion="0.023351649">
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/com/google/inject/Scoped.java">
       <provider selected="true" editor-type-id="text-editor">
         <state line="31" column="18" selection-start="1024" selection-end="1024" vertical-scroll-proportion="0.32692307">
@@ -838,6 +877,97 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContextualFactory.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="23" column="17" selection-start="726" selection-end="726" vertical-scroll-proportion="0.20536913">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/CircularDependencyTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="67" column="0" selection-start="1549" selection-end="1549" vertical-scroll-proportion="0.86308724">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/GenericInjectionTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="19" column="50" selection-start="582" selection-end="582" vertical-scroll-proportion="0.36510068">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/SuperclassTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="31" column="22" selection-start="1042" selection-end="1042" vertical-scroll-proportion="0.36107382">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/ConstantConversionTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="14" column="3" selection-start="595" selection-end="595" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/FactoryInjectionTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="19" column="51" selection-start="499" selection-end="499" vertical-scroll-proportion="0.4067114">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/FactoryTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="85" column="0" selection-start="2663" selection-end="2663" vertical-scroll-proportion="0.58389264">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/google/inject/Container.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="76" column="0" selection-start="2156" selection-end="2210" vertical-scroll-proportion="0.52080536">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/NotRequiredTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="29" column="43" selection-start="956" selection-end="956" vertical-scroll-proportion="0.3328859">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/test/com/google/inject/ContainerTest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="151" column="0" selection-start="3306" selection-end="3306" vertical-scroll-proportion="0.013422819">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="137" column="28" selection-start="4578" selection-end="4578" vertical-scroll-proportion="0.3328859">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/google/inject/ContainerBuilder.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="581" column="55" selection-start="17538" selection-end="17538" vertical-scroll-proportion="0.3328859">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/com/google/inject/Key.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="132" column="0" selection-start="3391" selection-end="3391" vertical-scroll-proportion="0.3785235">
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
 
diff --git a/src/com/google/inject/Container.java b/src/com/google/inject/Container.java
index 44f8e33..9285348 100644
--- a/src/com/google/inject/Container.java
+++ b/src/com/google/inject/Container.java
@@ -71,9 +71,10 @@
   void injectMembers(Object o);
 
   /**
-   * Creates and injects a new instance of type {@code implementation}.
+   * Gets a factory which injects the given class's constructor creating new
+   * instances.
    */
-  <T> T newInstance(Class<T> implementation);
+  <T> Factory<T> getCreator(Class<T> implementation);
 
   /**
    * Gets the factory bound to the given key.
diff --git a/src/com/google/inject/ContainerImpl.java b/src/com/google/inject/ContainerImpl.java
index 530dff0..9448798 100644
--- a/src/com/google/inject/ContainerImpl.java
+++ b/src/com/google/inject/ContainerImpl.java
@@ -135,7 +135,7 @@
       return null;
     }
 
-    Class<T> type = key.getRawType();
+    Class<?> type = key.getRawType();
 
     // We don't need do pass in an InternalContext because we know this is
     // a ConstantFactory which will not use it.
@@ -409,7 +409,7 @@
         }
       };
 
-  static class ConstructorInjector<T> {
+  class ConstructorInjector<T> implements Factory<T> {
 
     final Class<T> implementation;
     final List<Injector> injectors;
@@ -524,6 +524,21 @@
     private T newInstance(Object[] parameters) throws InvocationTargetException {
       return (T) fastConstructor.newInstance(parameters);
     }
+
+    public T get() {
+      try {
+        return callInContext(new ContextualCallable<T>() {
+          @SuppressWarnings({"unchecked"})
+          public T call(InternalContext context) {
+            return (T) construct(context, implementation);
+          }
+        });
+      } catch (RuntimeException e) {
+        throw e;
+      } catch (Exception e) {
+        throw new RuntimeException(e);
+      }
+    }
   }
 
   static class ParameterInjector<T> {
@@ -568,16 +583,8 @@
     }
   }
 
-  <T> T newInstance(Class<T> implementation, InternalContext context) {
-    try {
-      ConstructorInjector<T> constructor = getConstructor(implementation);
-      return implementation.cast(
-          constructor.construct(context, implementation));
-    } catch (RuntimeException e) {
-      throw e;
-    } catch (Exception e) {
-      throw new RuntimeException(e);
-    }
+  public <T> Factory<T> getCreator(final Class<T> implementation) {
+    return getConstructor(implementation);
   }
 
   public boolean hasBindingFor(Key<?> key) {
@@ -597,14 +604,6 @@
     });
   }
 
-  public <T> T newInstance(final Class<T> implementation) {
-    return callInContext(new ContextualCallable<T>() {
-      public T call(InternalContext context) {
-        return newInstance(implementation, context);
-      }
-    });
-  }
-
   public <T> Factory<T> getFactory(final Key<T> key) {
     final InternalFactory<? extends T> factory = getFactory(null, key);
 
diff --git a/src/com/google/inject/Key.java b/src/com/google/inject/Key.java
index ae1404e..2949e7b 100644
--- a/src/com/google/inject/Key.java
+++ b/src/com/google/inject/Key.java
@@ -127,9 +127,8 @@
     return this.hashCode;
   }
 
-  @Deprecated
-  Class<T> getRawType() {
-    return (Class<T>) typeToken.getRawType();
+  Class<? super T> getRawType() {
+    return typeToken.getRawType();
   }
 
   public boolean equals(Object o) {
diff --git a/test/com/google/inject/CircularDependencyTest.java b/test/com/google/inject/CircularDependencyTest.java
index ac025ab..9f3b205 100644
--- a/test/com/google/inject/CircularDependencyTest.java
+++ b/test/com/google/inject/CircularDependencyTest.java
@@ -31,7 +31,7 @@
     builder.bind(B.class).to(BImpl.class);
 
     Container container = builder.create(false);
-    A a = container.newInstance(AImpl.class);
+    A a = container.getCreator(AImpl.class).get();
     assertNotNull(a.getB().getA());
   }
 
diff --git a/test/com/google/inject/ConstantConversionTest.java b/test/com/google/inject/ConstantConversionTest.java
index c46142b..e2958a0 100644
--- a/test/com/google/inject/ConstantConversionTest.java
+++ b/test/com/google/inject/ConstantConversionTest.java
@@ -60,7 +60,7 @@
     ContainerBuilder b = new ContainerBuilder();
     b.bindProperties(properties);
     Container c = b.create(false);
-    Foo foo = c.newInstance(Foo.class);
+    Foo foo = c.getCreator(Foo.class).get();
 
     checkNumbers(
       foo.integerField,
@@ -92,7 +92,7 @@
     b.bind("#").to("invalid");
     Container c = b.create(false);
     try {
-      c.newInstance(InvalidInteger.class);
+      c.getCreator(InvalidInteger.class).get();
       fail();
     } catch (ConstantConversionException e) {
       assertTrue(e.getMessage().startsWith(
@@ -110,7 +110,7 @@
     b.bind("foo").to("invalid");
     Container c = b.create(false);
     try {
-      c.newInstance(InvalidCharacter.class);
+      c.getCreator(InvalidCharacter.class).get();
       fail();
     } catch (ConstantConversionException e) {
       assertTrue(e.getMessage().startsWith(
@@ -128,7 +128,7 @@
     b.bind("foo").to("invalid");
     Container c = b.create(false);
     try {
-      c.newInstance(InvalidEnum.class);
+      c.getCreator(InvalidEnum.class).get();
       fail();
     } catch (ConstantConversionException e) {
       assertTrue(e.getMessage().startsWith(
diff --git a/test/com/google/inject/ContainerTest.java b/test/com/google/inject/ContainerTest.java
index 7a5a164..0a48d54 100644
--- a/test/com/google/inject/ContainerTest.java
+++ b/test/com/google/inject/ContainerTest.java
@@ -27,7 +27,7 @@
 
   public void testInjection() {
     Container container = createFooContainer();
-    Foo foo = container.newInstance(Foo.class);
+    Foo foo = container.getCreator(Foo.class).get();
 
     assertEquals("test", foo.s);
     assertEquals("test", foo.bar.getTee().getS());
@@ -61,7 +61,7 @@
     ContainerBuilder builder = new ContainerBuilder();
     builder.bind("i").to(5);
     Container container = builder.create(false);
-    IntegerWrapper iw = container.newInstance(IntegerWrapper.class);
+    IntegerWrapper iw = container.getCreator(IntegerWrapper.class).get();
     assertEquals(5, (int) iw.i);
   }
 
@@ -142,7 +142,7 @@
     builder.bind(B.class).to(BImpl.class);
 
     Container container = builder.create(false);
-    A a = container.newInstance(AImpl.class);
+    A a = container.getCreator(AImpl.class).get();
     assertNotNull(a.getB().getA());
   }
 
diff --git a/test/com/google/inject/FactoryInjectionTest.java b/test/com/google/inject/FactoryInjectionTest.java
index a73c21a..bd93e65 100644
--- a/test/com/google/inject/FactoryInjectionTest.java
+++ b/test/com/google/inject/FactoryInjectionTest.java
@@ -17,7 +17,7 @@
 
     Container container = builder.create(false);
 
-    Foo foo = container.newInstance(Foo.class);
+    Foo foo = container.getCreator(Foo.class).get();
 
     Bar bar = foo.barFactory.get();
     assertNotNull(bar);
diff --git a/test/com/google/inject/FactoryTest.java b/test/com/google/inject/FactoryTest.java
index b745c4a..103ba0e 100644
--- a/test/com/google/inject/FactoryTest.java
+++ b/test/com/google/inject/FactoryTest.java
@@ -72,7 +72,7 @@
         assertEquals(expectedMember, context.getMember());
         assertEquals(name, context.getKey().getName());
         assertEquals(type, context.getKey().getTypeToken().getType());
-        return context.getContainer().newInstance(type);
+        return context.getContainer().getCreator(type).get();
       }
     };
   }
diff --git a/test/com/google/inject/GenericInjectionTest.java b/test/com/google/inject/GenericInjectionTest.java
index 27e7e95..d75ec90 100644
--- a/test/com/google/inject/GenericInjectionTest.java
+++ b/test/com/google/inject/GenericInjectionTest.java
@@ -17,7 +17,7 @@
     ContainerBuilder builder = new ContainerBuilder();
     builder.bind(new TypeToken<List<String>>() {}).to(names);
     Container container = builder.create(false);
-    Foo foo = container.newInstance(Foo.class);
+    Foo foo = container.getCreator(Foo.class).get();
     assertEquals(names, foo.names);
   }
 
diff --git a/test/com/google/inject/NotRequiredTest.java b/test/com/google/inject/NotRequiredTest.java
index 24582ec..27e5c39 100644
--- a/test/com/google/inject/NotRequiredTest.java
+++ b/test/com/google/inject/NotRequiredTest.java
@@ -27,7 +27,7 @@
     ContainerBuilder builder = new ContainerBuilder();
     builder.bind(Bar.class);
     Container c = builder.create(false);
-    Foo foo = c.newInstance(Foo.class);
+    Foo foo = c.getCreator(Foo.class).get();
     assertNotNull(foo.bar);
     assertNotNull(foo.fromMethod);
   }
@@ -35,7 +35,7 @@
   public void testNotProvided() {
     Container c = new ContainerBuilder()
         .create(false);
-    Foo foo = c.newInstance(Foo.class);
+    Foo foo = c.getCreator(Foo.class).get();
     assertNull(foo.bar);
     assertNull(foo.fromMethod);
   }
diff --git a/test/com/google/inject/SuperclassTest.java b/test/com/google/inject/SuperclassTest.java
index 8205964..25bc374 100644
--- a/test/com/google/inject/SuperclassTest.java
+++ b/test/com/google/inject/SuperclassTest.java
@@ -27,11 +27,12 @@
     ContainerBuilder builder = new ContainerBuilder();
     builder.bind(Foo.class);
     Container container = builder.create(false);
-    Sub sub = container.newInstance(Sub.class);
-    sub = container.newInstance(Sub.class);
-    sub = container.newInstance(Sub.class);
-    sub = container.newInstance(Sub.class);
-    sub = container.newInstance(Sub.class);
+    Factory<Sub> creator = container.getCreator(Sub.class);
+    Sub sub = creator.get();
+    sub = creator.get();
+    sub = creator.get();
+    sub = creator.get();
+    sub = creator.get();
     assertNotNull(sub.field);
     assertNotNull(sub.fromMethod);
   }
