diff --git a/tools/api-checker/config/gwt22_23userApi.conf b/tools/api-checker/config/gwt22_23userApi.conf
index e1c2e38..2501873 100644
--- a/tools/api-checker/config/gwt22_23userApi.conf
+++ b/tools/api-checker/config/gwt22_23userApi.conf
@@ -14,6 +14,7 @@
 :**/rebind/**\
 :**/server/**\
 :**/tools/**\
+:**/vm/**\
 :com/google/gwt/regexp/shared/**\
 :com/google/gwt/autobean/**/impl/**\
 :com/google/gwt/autobean/shared/ValueCodex.java\
@@ -78,9 +79,10 @@
 :**/rebind/**\
 :**/server/**\
 :**/tools/**\
+:**/vm/**\
 :user/src/com/google/gwt/regexp/shared/**\
-:user/src/com/google/gwt/autobean/shared/ValueCodexHelper.java\
-:user/src/com/google/gwt/autobean/**/impl/**\
+:user/src/com/google/web/bindery/autobean/shared/ValueCodexHelper.java\
+:user/src/com/google/web/bindery/autobean/**/impl/**\
 :user/src/com/google/gwt/core/client/impl/WeakMapping.java\
 :user/src/com/google/gwt/junit/*.java\
 :user/src/com/google/gwt/junit/client/GWTTestCase.java\
@@ -124,5 +126,9 @@
 # Renamed CellBasedWidgetImplSafari to CellBasedWidgetImplStandardBase.
 com.google.gwt.user.cellview.client.CellBasedWidgetImplSafari MISSING
 
+# Package moved to com.google.web.bindery
+com.google.gwt.autobean.shared MISSING
+
 # Adding protected Video(Element) that conflicts with existing (now deprecated) public Video(String)
 com.google.gwt.media.client.Video::Video(Ljava/lang/String;) OVERLOADED_METHOD_CALL
+
diff --git a/user/src/com/google/gwt/editor/rebind/model/ModelUtils.java b/user/src/com/google/gwt/editor/rebind/model/ModelUtils.java
index 310b9dd..241a1c5 100644
--- a/user/src/com/google/gwt/editor/rebind/model/ModelUtils.java
+++ b/user/src/com/google/gwt/editor/rebind/model/ModelUtils.java
@@ -15,7 +15,7 @@
  */
 package com.google.gwt.editor.rebind.model;
 
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.ValueCodex;
 import com.google.gwt.core.ext.typeinfo.JArrayType;
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JParameterizedType;
diff --git a/user/src/com/google/gwt/autobean/AutoBean.gwt.xml b/user/src/com/google/web/bindery/autobean/AutoBean.gwt.xml
similarity index 78%
rename from user/src/com/google/gwt/autobean/AutoBean.gwt.xml
rename to user/src/com/google/web/bindery/autobean/AutoBean.gwt.xml
index cc23165..88b8981 100644
--- a/user/src/com/google/gwt/autobean/AutoBean.gwt.xml
+++ b/user/src/com/google/web/bindery/autobean/AutoBean.gwt.xml
@@ -15,10 +15,10 @@
 <module>
   <inherits name="com.google.gwt.core.Core" />
   <inherits name="com.google.gwt.user.User" />
-  <source path="client" />
+  <source path="gwt/client" />
   <source path="shared" />
   <super-source path="super" />
-  <generate-with class="com.google.gwt.autobean.rebind.AutoBeanFactoryGenerator">
-    <when-type-assignable class="com.google.gwt.autobean.shared.AutoBeanFactory" />
+  <generate-with class="com.google.web.bindery.autobean.gwt.rebind.AutoBeanFactoryGenerator">
+    <when-type-assignable class="com.google.web.bindery.autobean.shared.AutoBeanFactory" />
   </generate-with>
-</module>
\ No newline at end of file
+</module>
diff --git a/user/src/com/google/gwt/autobean/client/impl/AbstractAutoBeanFactory.java b/user/src/com/google/web/bindery/autobean/gwt/client/impl/AbstractAutoBeanFactory.java
similarity index 91%
rename from user/src/com/google/gwt/autobean/client/impl/AbstractAutoBeanFactory.java
rename to user/src/com/google/web/bindery/autobean/gwt/client/impl/AbstractAutoBeanFactory.java
index f8f9e3e..fc3a0cd 100644
--- a/user/src/com/google/gwt/autobean/client/impl/AbstractAutoBeanFactory.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/client/impl/AbstractAutoBeanFactory.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.client.impl;
+package com.google.web.bindery.autobean.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.impl.EnumMap;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.impl.EnumMap;
 
 import java.util.HashMap;
 import java.util.List;
diff --git a/user/src/com/google/gwt/autobean/client/impl/ClientPropertyContext.java b/user/src/com/google/web/bindery/autobean/gwt/client/impl/ClientPropertyContext.java
similarity index 88%
rename from user/src/com/google/gwt/autobean/client/impl/ClientPropertyContext.java
rename to user/src/com/google/web/bindery/autobean/gwt/client/impl/ClientPropertyContext.java
index 620c9ec..08c753c 100644
--- a/user/src/com/google/gwt/autobean/client/impl/ClientPropertyContext.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/client/impl/ClientPropertyContext.java
@@ -13,13 +13,13 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.client.impl;
+package com.google.web.bindery.autobean.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.AutoBeanVisitor.CollectionPropertyContext;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.MapPropertyContext;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.PropertyContext;
-import com.google.gwt.autobean.shared.impl.AbstractAutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.CollectionPropertyContext;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.MapPropertyContext;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.PropertyContext;
+import com.google.web.bindery.autobean.shared.impl.AbstractAutoBean;
 import com.google.gwt.core.client.JavaScriptObject;
 
 import java.util.List;
@@ -42,7 +42,7 @@
      */
     public static native Setter beanSetter(AbstractAutoBean<?> bean, String key) /*-{
       return function(value) {
-        bean.@com.google.gwt.autobean.shared.impl.AbstractAutoBean::setProperty(*)(key, value);
+        bean.@com.google.web.bindery.autobean.shared.impl.AbstractAutoBean::setProperty(*)(key, value);
       };
     }-*/;
 
diff --git a/user/src/com/google/gwt/autobean/client/impl/JsniCreatorMap.java b/user/src/com/google/web/bindery/autobean/gwt/client/impl/JsniCreatorMap.java
similarity index 94%
rename from user/src/com/google/gwt/autobean/client/impl/JsniCreatorMap.java
rename to user/src/com/google/web/bindery/autobean/gwt/client/impl/JsniCreatorMap.java
index 494ab70..d6e4468 100644
--- a/user/src/com/google/gwt/autobean/client/impl/JsniCreatorMap.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/client/impl/JsniCreatorMap.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.client.impl;
+package com.google.web.bindery.autobean.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBean;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.JsArray;
 
diff --git a/user/src/com/google/gwt/autobean/client/impl/JsoSplittable.java b/user/src/com/google/web/bindery/autobean/gwt/client/impl/JsoSplittable.java
similarity index 92%
rename from user/src/com/google/gwt/autobean/client/impl/JsoSplittable.java
rename to user/src/com/google/web/bindery/autobean/gwt/client/impl/JsoSplittable.java
index 008f3f9..33eba24 100644
--- a/user/src/com/google/gwt/autobean/client/impl/JsoSplittable.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/client/impl/JsoSplittable.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.client.impl;
+package com.google.web.bindery.autobean.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.HasSplittable;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.HasSplittable;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 import com.google.gwt.core.client.GwtScriptOnly;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.JsonUtils;
@@ -253,8 +253,8 @@
     if (_ == null) {
       return null;
     }
-    if (@com.google.gwt.autobean.client.impl.JsoSplittable::isUnwrappedString(*)(_)) {
-      return @com.google.gwt.autobean.client.impl.JsoSplittable::create(Ljava/lang/String;)(_);
+    if (@com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable::isUnwrappedString(*)(_)) {
+      return @com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable::create(Ljava/lang/String;)(_);
     }
     return Object(_);
   }-*/;
@@ -264,8 +264,8 @@
     if (_ == null) {
       return null;
     }
-    if (@com.google.gwt.autobean.client.impl.JsoSplittable::isUnwrappedString(*)(_)) {
-      return @com.google.gwt.autobean.client.impl.JsoSplittable::create(Ljava/lang/String;)(_);
+    if (@com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable::isUnwrappedString(*)(_)) {
+      return @com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable::create(Ljava/lang/String;)(_);
     }
     return Object(_);
   }-*/;
diff --git a/user/src/com/google/gwt/autobean/rebind/AutoBeanFactoryGenerator.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java
similarity index 95%
rename from user/src/com/google/gwt/autobean/rebind/AutoBeanFactoryGenerator.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java
index 1ec4f78..0ec39b4 100644
--- a/user/src/com/google/gwt/autobean/rebind/AutoBeanFactoryGenerator.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java
@@ -13,23 +13,23 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind;
+package com.google.web.bindery.autobean.gwt.rebind;
 
-import com.google.gwt.autobean.client.impl.AbstractAutoBeanFactory;
-import com.google.gwt.autobean.client.impl.ClientPropertyContext;
-import com.google.gwt.autobean.client.impl.JsniCreatorMap;
-import com.google.gwt.autobean.rebind.model.AutoBeanFactoryMethod;
-import com.google.gwt.autobean.rebind.model.AutoBeanFactoryModel;
-import com.google.gwt.autobean.rebind.model.AutoBeanMethod;
-import com.google.gwt.autobean.rebind.model.AutoBeanType;
-import com.google.gwt.autobean.rebind.model.JBeanMethod;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AbstractAutoBean;
-import com.google.gwt.autobean.shared.impl.AbstractAutoBean.OneShotContext;
+import com.google.web.bindery.autobean.gwt.client.impl.AbstractAutoBeanFactory;
+import com.google.web.bindery.autobean.gwt.client.impl.ClientPropertyContext;
+import com.google.web.bindery.autobean.gwt.client.impl.JsniCreatorMap;
+import com.google.web.bindery.autobean.gwt.rebind.model.AutoBeanFactoryMethod;
+import com.google.web.bindery.autobean.gwt.rebind.model.AutoBeanFactoryModel;
+import com.google.web.bindery.autobean.gwt.rebind.model.AutoBeanMethod;
+import com.google.web.bindery.autobean.gwt.rebind.model.AutoBeanType;
+import com.google.web.bindery.autobean.gwt.rebind.model.JBeanMethod;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AbstractAutoBean;
+import com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.OneShotContext;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.JsArray;
 import com.google.gwt.core.client.impl.WeakMapping;
diff --git a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryMethod.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryMethod.java
similarity index 97%
rename from user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryMethod.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryMethod.java
index ee9cdae..4069a57 100644
--- a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryMethod.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind.model;
+package com.google.web.bindery.autobean.gwt.rebind.model;
 
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JMethod;
diff --git a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryModel.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryModel.java
similarity index 97%
rename from user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryModel.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryModel.java
index 1ec0452..6122dfc 100644
--- a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanFactoryModel.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanFactoryModel.java
@@ -13,13 +13,13 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind.model;
+package com.google.web.bindery.autobean.gwt.rebind.model;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanFactory.Category;
-import com.google.gwt.autobean.shared.AutoBeanFactory.NoWrap;
-import com.google.gwt.autobean.shared.impl.EnumMap.ExtraEnums;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.NoWrap;
+import com.google.web.bindery.autobean.shared.impl.EnumMap.ExtraEnums;
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.typeinfo.JClassType;
diff --git a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanMethod.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanMethod.java
similarity index 97%
rename from user/src/com/google/gwt/autobean/rebind/model/AutoBeanMethod.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanMethod.java
index e936479..43763df 100644
--- a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanMethod.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanMethod.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind.model;
+package com.google.web.bindery.autobean.gwt.rebind.model;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JEnumConstant;
 import com.google.gwt.core.ext.typeinfo.JEnumType;
@@ -216,4 +216,4 @@
   public String toString() {
     return method.toString();
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanType.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanType.java
similarity index 98%
rename from user/src/com/google/gwt/autobean/rebind/model/AutoBeanType.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanType.java
index 5fd64e5..da40afe 100644
--- a/user/src/com/google/gwt/autobean/rebind/model/AutoBeanType.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/AutoBeanType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind.model;
+package com.google.web.bindery.autobean.gwt.rebind.model;
 
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JMethod;
@@ -165,4 +165,4 @@
   public String toString() {
     return peerType.toString();
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/rebind/model/JBeanMethod.java b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/JBeanMethod.java
similarity index 90%
rename from user/src/com/google/gwt/autobean/rebind/model/JBeanMethod.java
rename to user/src/com/google/web/bindery/autobean/gwt/rebind/model/JBeanMethod.java
index 9880b61..d600c19 100644
--- a/user/src/com/google/gwt/autobean/rebind/model/JBeanMethod.java
+++ b/user/src/com/google/web/bindery/autobean/gwt/rebind/model/JBeanMethod.java
@@ -13,12 +13,12 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.rebind.model;
+package com.google.web.bindery.autobean.gwt.rebind.model;
 
-import static com.google.gwt.autobean.server.impl.BeanMethod.GET_PREFIX;
-import static com.google.gwt.autobean.server.impl.BeanMethod.HAS_PREFIX;
-import static com.google.gwt.autobean.server.impl.BeanMethod.IS_PREFIX;
-import static com.google.gwt.autobean.server.impl.BeanMethod.SET_PREFIX;
+import static com.google.web.bindery.autobean.vm.impl.BeanMethod.GET_PREFIX;
+import static com.google.web.bindery.autobean.vm.impl.BeanMethod.HAS_PREFIX;
+import static com.google.web.bindery.autobean.vm.impl.BeanMethod.IS_PREFIX;
+import static com.google.web.bindery.autobean.vm.impl.BeanMethod.SET_PREFIX;
 
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JMethod;
@@ -31,7 +31,7 @@
  * Common utility code for matching {@link JMethod} and against bean-style
  * accessor semantics.
  * 
- * @see com.google.gwt.autobean.server.impl.BeanMethod
+ * @see com.google.web.bindery.autobean.vm.impl.BeanMethod
  */
 public enum JBeanMethod {
   GET {
@@ -151,4 +151,4 @@
    * Returns {@code true} if the BeanLikeMethod matches the method.
    */
   public abstract boolean matches(JMethod method);
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/shared/AutoBean.java b/user/src/com/google/web/bindery/autobean/shared/AutoBean.java
similarity index 98%
rename from user/src/com/google/gwt/autobean/shared/AutoBean.java
rename to user/src/com/google/web/bindery/autobean/shared/AutoBean.java
index 3af5128..9aa94fc 100644
--- a/user/src/com/google/gwt/autobean/shared/AutoBean.java
+++ b/user/src/com/google/web/bindery/autobean/shared/AutoBean.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/user/src/com/google/gwt/autobean/shared/AutoBeanCodex.java b/user/src/com/google/web/bindery/autobean/shared/AutoBeanCodex.java
similarity index 91%
rename from user/src/com/google/gwt/autobean/shared/AutoBeanCodex.java
rename to user/src/com/google/web/bindery/autobean/shared/AutoBeanCodex.java
index 9797984..2f07b1a 100644
--- a/user/src/com/google/gwt/autobean/shared/AutoBeanCodex.java
+++ b/user/src/com/google/web/bindery/autobean/shared/AutoBeanCodex.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 
 /**
  * Utility methods for encoding an AutoBean graph into a JSON-compatible string.
diff --git a/user/src/com/google/gwt/autobean/shared/AutoBeanFactory.java b/user/src/com/google/web/bindery/autobean/shared/AutoBeanFactory.java
similarity index 98%
rename from user/src/com/google/gwt/autobean/shared/AutoBeanFactory.java
rename to user/src/com/google/web/bindery/autobean/shared/AutoBeanFactory.java
index 5f1a8f9..44496a5 100644
--- a/user/src/com/google/gwt/autobean/shared/AutoBeanFactory.java
+++ b/user/src/com/google/web/bindery/autobean/shared/AutoBeanFactory.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/user/src/com/google/gwt/autobean/shared/AutoBeanUtils.java b/user/src/com/google/web/bindery/autobean/shared/AutoBeanUtils.java
similarity index 99%
rename from user/src/com/google/gwt/autobean/shared/AutoBeanUtils.java
rename to user/src/com/google/web/bindery/autobean/shared/AutoBeanUtils.java
index ca8de60..e97c438 100644
--- a/user/src/com/google/gwt/autobean/shared/AutoBeanUtils.java
+++ b/user/src/com/google/web/bindery/autobean/shared/AutoBeanUtils.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 import com.google.gwt.core.client.impl.WeakMapping;
 
diff --git a/user/src/com/google/gwt/autobean/shared/AutoBeanVisitor.java b/user/src/com/google/web/bindery/autobean/shared/AutoBeanVisitor.java
similarity index 99%
rename from user/src/com/google/gwt/autobean/shared/AutoBeanVisitor.java
rename to user/src/com/google/web/bindery/autobean/shared/AutoBeanVisitor.java
index 8f82b74..bff9d4a 100644
--- a/user/src/com/google/gwt/autobean/shared/AutoBeanVisitor.java
+++ b/user/src/com/google/web/bindery/autobean/shared/AutoBeanVisitor.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 import java.util.Collection;
 import java.util.Map;
diff --git a/user/src/com/google/gwt/autobean/shared/Splittable.java b/user/src/com/google/web/bindery/autobean/shared/Splittable.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/shared/Splittable.java
rename to user/src/com/google/web/bindery/autobean/shared/Splittable.java
index 9011fc7..2698345 100644
--- a/user/src/com/google/gwt/autobean/shared/Splittable.java
+++ b/user/src/com/google/web/bindery/autobean/shared/Splittable.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 
 import java.util.List;
 
@@ -149,4 +149,4 @@
    * Returns the size of an indexed Splittable.
    */
   int size();
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/shared/ValueCodex.java b/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java
similarity index 98%
rename from user/src/com/google/gwt/autobean/shared/ValueCodex.java
rename to user/src/com/google/web/bindery/autobean/shared/ValueCodex.java
index 8234ee6..4bcb304 100644
--- a/user/src/com/google/gwt/autobean/shared/ValueCodex.java
+++ b/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
diff --git a/user/src/com/google/gwt/autobean/shared/ValueCodexHelper.java b/user/src/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
similarity index 95%
rename from user/src/com/google/gwt/autobean/shared/ValueCodexHelper.java
rename to user/src/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
index c6f72c8..fb9fcc9 100644
--- a/user/src/com/google/gwt/autobean/shared/ValueCodexHelper.java
+++ b/user/src/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 import com.google.gwt.core.client.GWT;
 
diff --git a/user/src/com/google/gwt/autobean/shared/impl/AbstractAutoBean.java b/user/src/com/google/web/bindery/autobean/shared/impl/AbstractAutoBean.java
similarity index 92%
rename from user/src/com/google/gwt/autobean/shared/impl/AbstractAutoBean.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/AbstractAutoBean.java
index d45da29..4e801d9 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/AbstractAutoBean.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/AbstractAutoBean.java
@@ -13,16 +13,16 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.Context;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.Context;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
 import com.google.gwt.core.client.impl.WeakMapping;
 
 import java.util.HashMap;
diff --git a/user/src/com/google/gwt/autobean/shared/impl/AutoBeanCodexImpl.java b/user/src/com/google/web/bindery/autobean/shared/impl/AutoBeanCodexImpl.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/shared/impl/AutoBeanCodexImpl.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/AutoBeanCodexImpl.java
index 3fbb4d8..78b4f2e 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/AutoBeanCodexImpl.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/AutoBeanCodexImpl.java
@@ -13,15 +13,15 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/user/src/com/google/gwt/autobean/shared/impl/EnumMap.java b/user/src/com/google/web/bindery/autobean/shared/impl/EnumMap.java
similarity index 94%
rename from user/src/com/google/gwt/autobean/shared/impl/EnumMap.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/EnumMap.java
index 0a3d298..8356831 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/EnumMap.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/EnumMap.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
 /**
  * This interface is implemented by our generated AutoBeanFactory types to
diff --git a/user/src/com/google/gwt/autobean/shared/impl/HasSplittable.java b/user/src/com/google/web/bindery/autobean/shared/impl/HasSplittable.java
similarity index 87%
rename from user/src/com/google/gwt/autobean/shared/impl/HasSplittable.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/HasSplittable.java
index 7ae4a33..41b39d2 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/HasSplittable.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/HasSplittable.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.Splittable;
 
 /**
  * Allows reified type facades to return their underlying Splittable
diff --git a/user/src/com/google/gwt/autobean/shared/impl/SplittableComplexMap.java b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableComplexMap.java
similarity index 94%
rename from user/src/com/google/gwt/autobean/shared/impl/SplittableComplexMap.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/SplittableComplexMap.java
index 4225512..c118d29 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/SplittableComplexMap.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableComplexMap.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
 
 import java.util.AbstractCollection;
 import java.util.AbstractSet;
diff --git a/user/src/com/google/gwt/autobean/shared/impl/SplittableList.java b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableList.java
similarity index 92%
rename from user/src/com/google/gwt/autobean/shared/impl/SplittableList.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/SplittableList.java
index 0a7df50..48fe0f6 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/SplittableList.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableList.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
 
 import java.util.AbstractList;
 
diff --git a/user/src/com/google/gwt/autobean/shared/impl/SplittableSet.java b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableSet.java
similarity index 85%
rename from user/src/com/google/gwt/autobean/shared/impl/SplittableSet.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/SplittableSet.java
index fbd3f5d..9b6d8ab 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/SplittableSet.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableSet.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
 
 import java.util.AbstractSet;
 import java.util.Iterator;
diff --git a/user/src/com/google/gwt/autobean/shared/impl/SplittableSimpleMap.java b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableSimpleMap.java
similarity index 95%
rename from user/src/com/google/gwt/autobean/shared/impl/SplittableSimpleMap.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/SplittableSimpleMap.java
index edfeff4..fc4dc0f 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/SplittableSimpleMap.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/SplittableSimpleMap.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
 
 import java.util.AbstractCollection;
 import java.util.AbstractSet;
diff --git a/user/src/com/google/gwt/autobean/shared/impl/StringQuoter.java b/user/src/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
similarity index 93%
rename from user/src/com/google/gwt/autobean/shared/impl/StringQuoter.java
rename to user/src/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
index 559e2af..d30fb3e 100644
--- a/user/src/com/google/gwt/autobean/shared/impl/StringQuoter.java
+++ b/user/src/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.server.impl.JsonSplittable;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.vm.impl.JsonSplittable;
 
 import org.json.JSONObject;
 
diff --git a/user/src/com/google/gwt/autobean/shared/package-info.java b/user/src/com/google/web/bindery/autobean/shared/package-info.java
similarity index 85%
rename from user/src/com/google/gwt/autobean/shared/package-info.java
rename to user/src/com/google/web/bindery/autobean/shared/package-info.java
index 5c13167..4dec6fa 100644
--- a/user/src/com/google/gwt/autobean/shared/package-info.java
+++ b/user/src/com/google/web/bindery/autobean/shared/package-info.java
@@ -23,9 +23,9 @@
  * @see <a
  *      href="http://code.google.com/p/google-web-toolkit/wiki/AutoBean">AutoBean
  *      wiki page</a>
- * @see com.google.gwt.autobean.shared.AutoBeanFactory
- * @see com.google.gwt.autobean.server.AutoBeanFactoryMagic
+ * @see com.google.web.bindery.autobean.shared.AutoBeanFactory
+ * @see com.google.web.bindery.autobean.vm.AutoBeanFactorySource
  */
 @com.google.gwt.util.PreventSpuriousRebuilds
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
diff --git a/user/src/com/google/gwt/autobean/server/AutoBeanFactoryMagic.java b/user/src/com/google/web/bindery/autobean/vm/AutoBeanFactorySource.java
similarity index 78%
rename from user/src/com/google/gwt/autobean/server/AutoBeanFactoryMagic.java
rename to user/src/com/google/web/bindery/autobean/vm/AutoBeanFactorySource.java
index 994a6b0..eaba1d0 100644
--- a/user/src/com/google/gwt/autobean/server/AutoBeanFactoryMagic.java
+++ b/user/src/com/google/web/bindery/autobean/vm/AutoBeanFactorySource.java
@@ -13,15 +13,15 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
-import com.google.gwt.autobean.server.impl.FactoryHandler;
-import com.google.gwt.autobean.server.impl.ProxyAutoBean;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanFactory.Category;
-import com.google.gwt.autobean.shared.AutoBeanFactory.NoWrap;
-import com.google.gwt.autobean.shared.impl.EnumMap;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.NoWrap;
+import com.google.web.bindery.autobean.shared.impl.EnumMap;
+import com.google.web.bindery.autobean.vm.impl.FactoryHandler;
+import com.google.web.bindery.autobean.vm.impl.ProxyAutoBean;
 
 /**
  * Generates JVM-compatible implementations of AutoBeanFactory and AutoBean
@@ -30,8 +30,10 @@
  * This implementation is written assuming that the AutoBeanFactory and
  * associated declarations will validate if compiled and used with the
  * AutoBeanFactoyModel.
+ * <p>
+ * <span style='color: red'>This is experimental, unsupported code.</span>
  */
-public class AutoBeanFactoryMagic {
+public class AutoBeanFactorySource {
   /*
    * NB: This implementation is excessively dynamic, however the inability to
    * create a TypeOracle fram a ClassLoader prevents re-using the existing model
diff --git a/user/src/com/google/gwt/autobean/server/Configuration.java b/user/src/com/google/web/bindery/autobean/vm/Configuration.java
similarity index 80%
rename from user/src/com/google/gwt/autobean/server/Configuration.java
rename to user/src/com/google/web/bindery/autobean/vm/Configuration.java
index b38cfd2..593ad52 100644
--- a/user/src/com/google/gwt/autobean/server/Configuration.java
+++ b/user/src/com/google/web/bindery/autobean/vm/Configuration.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
-import com.google.gwt.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBean;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -25,9 +25,11 @@
 import java.util.Set;
 
 /**
- * Used by {@link AutoBeanFactoryMagic#createBean(Class, Configuration)}. This
+ * Used by {@link AutoBeanFactorySource#createBean(Class, Configuration)}. This
  * type replicates the annotations that may be applied to an AutoBeanFactory
  * declaration.
+ * <p>
+ * <span style='color: red'>This is experimental, unsupported code.</span>
  */
 public class Configuration {
   /**
@@ -48,8 +50,8 @@
 
     /**
      * Equivalent to applying a
-     * {@link com.google.gwt.autobean.shared.AutoBeanFactory.Category Category}
-     * annotation to an AutoBeanFactory declaration.
+     * {@link com.google.web.bindery.autobean.shared.AutoBeanFactory.Category
+     * Category} annotation to an AutoBeanFactory declaration.
      * 
      * @param categories the category types that should be searched for static
      *          implementations of non-property methods
@@ -63,8 +65,8 @@
 
     /**
      * Equivalent to applying a
-     * {@link com.google.gwt.autobean.shared.AutoBeanFactory.NoWrap NoWrap}
-     * annotation to an AutoBeanFactory declaration.
+     * {@link com.google.web.bindery.autobean.shared.AutoBeanFactory.NoWrap
+     * NoWrap} annotation to an AutoBeanFactory declaration.
      * 
      * @param noWrap the types that should be excluded from wrapping
      * @return the Builder
diff --git a/user/src/com/google/gwt/autobean/server/impl/BeanMethod.java b/user/src/com/google/web/bindery/autobean/vm/impl/BeanMethod.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/server/impl/BeanMethod.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/BeanMethod.java
index 32b4a1b..f165239 100644
--- a/user/src/com/google/gwt/autobean/server/impl/BeanMethod.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/BeanMethod.java
@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -25,7 +25,7 @@
  * Breakout of method types that an AutoBean shim interface can implement. The
  * order of the values of the enum is important.
  * 
- * @see com.google.gwt.autobean.rebind.model.JBeanMethod
+ * @see com.google.web.bindery.autobean.gwt.rebind.model.JBeanMethod
  */
 public enum BeanMethod {
   /**
@@ -245,4 +245,4 @@
    * Determine if the method maches the given type.
    */
   abstract boolean matches(SimpleBeanHandler<?> handler, Method method);
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/BeanPropertyContext.java b/user/src/com/google/web/bindery/autobean/vm/impl/BeanPropertyContext.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/server/impl/BeanPropertyContext.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/BeanPropertyContext.java
index c1f4be9..a4fe31f 100644
--- a/user/src/com/google/gwt/autobean/server/impl/BeanPropertyContext.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/BeanPropertyContext.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
 import java.lang.reflect.Method;
 
diff --git a/user/src/com/google/gwt/autobean/server/impl/FactoryHandler.java b/user/src/com/google/web/bindery/autobean/vm/impl/FactoryHandler.java
similarity index 92%
rename from user/src/com/google/gwt/autobean/server/impl/FactoryHandler.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/FactoryHandler.java
index 4d21c6d..8532f41 100644
--- a/user/src/com/google/gwt/autobean/server/impl/FactoryHandler.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/FactoryHandler.java
@@ -13,12 +13,12 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.server.Configuration;
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.vm.Configuration;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationHandler;
@@ -126,4 +126,4 @@
       return e.name();
     }
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/GetterPropertyContext.java b/user/src/com/google/web/bindery/autobean/vm/impl/GetterPropertyContext.java
similarity index 97%
rename from user/src/com/google/gwt/autobean/server/impl/GetterPropertyContext.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/GetterPropertyContext.java
index fac60fa..d00b8ed 100644
--- a/user/src/com/google/gwt/autobean/server/impl/GetterPropertyContext.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/GetterPropertyContext.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -65,4 +65,4 @@
       throw new RuntimeException(e.getCause());
     }
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/JsonSplittable.java b/user/src/com/google/web/bindery/autobean/vm/impl/JsonSplittable.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/server/impl/JsonSplittable.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/JsonSplittable.java
index 04b77a6..8fdad79 100644
--- a/user/src/com/google/gwt/autobean/server/impl/JsonSplittable.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/JsonSplittable.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.impl.HasSplittable;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.impl.HasSplittable;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -348,4 +348,4 @@
     }
     throw new RuntimeException("No data");
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/MethodPropertyContext.java b/user/src/com/google/web/bindery/autobean/vm/impl/MethodPropertyContext.java
similarity index 90%
rename from user/src/com/google/gwt/autobean/server/impl/MethodPropertyContext.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/MethodPropertyContext.java
index efbf8f7..10ce579 100644
--- a/user/src/com/google/gwt/autobean/server/impl/MethodPropertyContext.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/MethodPropertyContext.java
@@ -13,11 +13,11 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.shared.AutoBeanVisitor.CollectionPropertyContext;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.MapPropertyContext;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.CollectionPropertyContext;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.MapPropertyContext;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
diff --git a/user/src/com/google/gwt/autobean/server/impl/ProxyAutoBean.java b/user/src/com/google/web/bindery/autobean/vm/impl/ProxyAutoBean.java
similarity index 95%
rename from user/src/com/google/gwt/autobean/server/impl/ProxyAutoBean.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/ProxyAutoBean.java
index de65b5e..cdf61dc 100644
--- a/user/src/com/google/gwt/autobean/server/impl/ProxyAutoBean.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/ProxyAutoBean.java
@@ -13,14 +13,14 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.server.Configuration;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.impl.AbstractAutoBean;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.impl.AbstractAutoBean;
+import com.google.web.bindery.autobean.vm.Configuration;
 import com.google.gwt.core.client.impl.WeakMapping;
 
 import java.lang.reflect.InvocationHandler;
@@ -313,4 +313,4 @@
     WeakMapping.set(toReturn, AutoBean.class.getName(), this);
     return toReturn;
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/ShimHandler.java b/user/src/com/google/web/bindery/autobean/vm/impl/ShimHandler.java
similarity index 95%
rename from user/src/com/google/gwt/autobean/server/impl/ShimHandler.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/ShimHandler.java
index dc920a7..95dabe8 100644
--- a/user/src/com/google/gwt/autobean/server/impl/ShimHandler.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/ShimHandler.java
@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
@@ -128,4 +128,4 @@
         new ProxyAutoBean<Object>(bean.getFactory(), intf, bean.getConfiguration(), toReturn);
     return newBean.as();
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/SimpleBeanHandler.java b/user/src/com/google/web/bindery/autobean/vm/impl/SimpleBeanHandler.java
similarity index 96%
rename from user/src/com/google/gwt/autobean/server/impl/SimpleBeanHandler.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/SimpleBeanHandler.java
index 766d26b..a6624a6 100644
--- a/user/src/com/google/gwt/autobean/server/impl/SimpleBeanHandler.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/SimpleBeanHandler.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
@@ -54,4 +54,4 @@
   public String toString() {
     return bean.getSplittable().getPayload();
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/autobean/server/impl/TypeUtils.java b/user/src/com/google/web/bindery/autobean/vm/impl/TypeUtils.java
similarity index 98%
rename from user/src/com/google/gwt/autobean/server/impl/TypeUtils.java
rename to user/src/com/google/web/bindery/autobean/vm/impl/TypeUtils.java
index 2503696..73b977e 100644
--- a/user/src/com/google/gwt/autobean/server/impl/TypeUtils.java
+++ b/user/src/com/google/web/bindery/autobean/vm/impl/TypeUtils.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server.impl;
+package com.google.web.bindery.autobean.vm.impl;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.GenericArrayType;
diff --git a/user/src/com/google/gwt/autobean/server/package-info.java b/user/src/com/google/web/bindery/autobean/vm/package-info.java
similarity index 84%
rename from user/src/com/google/gwt/autobean/server/package-info.java
rename to user/src/com/google/web/bindery/autobean/vm/package-info.java
index 88e1b04..ef1a6ee 100644
--- a/user/src/com/google/gwt/autobean/server/package-info.java
+++ b/user/src/com/google/web/bindery/autobean/vm/package-info.java
@@ -16,13 +16,13 @@
 
 /**
  * Contains JVM-compatible implementations of the AutoBean framework.
+ * <p>
+ * <span style='color: red'>This is experimental, unsupported code.</span>
  * 
  * @see <a
  *      href="http://code.google.com/p/google-web-toolkit/wiki/AutoBean">AutoBean
  *      wiki page</a>
- * @see com.google.gwt.autobean.shared.AutoBeanFactory
- * @see com.google.gwt.autobean.server.AutoBeanFactoryMagic
  */
 @com.google.gwt.util.PreventSpuriousRebuilds
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/RequestFactory.gwt.xml b/user/src/com/google/web/bindery/requestfactory/RequestFactory.gwt.xml
index 279acc4..f55cc8d 100644
--- a/user/src/com/google/web/bindery/requestfactory/RequestFactory.gwt.xml
+++ b/user/src/com/google/web/bindery/requestfactory/RequestFactory.gwt.xml
@@ -17,7 +17,7 @@
 -->
 <module>
   <inherits name='com.google.gwt.core.Core'/>
-  <inherits name='com.google.gwt.autobean.AutoBean'/>
+  <inherits name='com.google.web.bindery.autobean.AutoBean'/>
   <inherits name='com.google.gwt.editor.Editor'/>
   <inherits name='com.google.gwt.http.HTTP'/>
   <inherits name='com.google.gwt.logging.LoggingDisabled'/>
diff --git a/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/AbstractRequestFactoryEditorDriver.java b/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/AbstractRequestFactoryEditorDriver.java
index a4c10dd..df21135 100644
--- a/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/AbstractRequestFactoryEditorDriver.java
+++ b/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/AbstractRequestFactoryEditorDriver.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 import com.google.gwt.editor.client.Editor;
 import com.google.gwt.editor.client.EditorContext;
 import com.google.gwt.editor.client.EditorVisitor;
diff --git a/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/PathCollector.java b/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/PathCollector.java
index e14d3b2..ab4f8aa 100644
--- a/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/PathCollector.java
+++ b/user/src/com/google/web/bindery/requestfactory/gwt/client/impl/PathCollector.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.gwt.client.impl;
 
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.ValueCodex;
 import com.google.gwt.editor.client.EditorContext;
 import com.google.gwt.editor.client.EditorVisitor;
 
@@ -62,4 +62,4 @@
     }
     return true;
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/web/bindery/requestfactory/gwt/rebind/RequestFactoryGenerator.java b/user/src/com/google/web/bindery/requestfactory/gwt/rebind/RequestFactoryGenerator.java
index 834b5c0..e6d7f5c 100644
--- a/user/src/com/google/web/bindery/requestfactory/gwt/rebind/RequestFactoryGenerator.java
+++ b/user/src/com/google/web/bindery/requestfactory/gwt/rebind/RequestFactoryGenerator.java
@@ -15,13 +15,13 @@
  */
 package com.google.web.bindery.requestfactory.gwt.rebind;
 
-import com.google.gwt.autobean.rebind.model.JBeanMethod;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanFactory.Category;
-import com.google.gwt.autobean.shared.AutoBeanFactory.NoWrap;
-import com.google.gwt.autobean.shared.impl.EnumMap.ExtraEnums;
+import com.google.web.bindery.autobean.gwt.rebind.model.JBeanMethod;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.NoWrap;
+import com.google.web.bindery.autobean.shared.impl.EnumMap.ExtraEnums;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.ext.Generator;
 import com.google.gwt.core.ext.GeneratorContext;
diff --git a/user/src/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModel.java b/user/src/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModel.java
index ef1d7e8..6af1dbb 100644
--- a/user/src/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModel.java
+++ b/user/src/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModel.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.gwt.rebind.model;
 
-import com.google.gwt.autobean.rebind.model.JBeanMethod;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.gwt.rebind.model.JBeanMethod;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.typeinfo.JClassType;
diff --git a/user/src/com/google/web/bindery/requestfactory/server/ReflectiveServiceLayer.java b/user/src/com/google/web/bindery/requestfactory/server/ReflectiveServiceLayer.java
index f25e0ae..3433518 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/ReflectiveServiceLayer.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/ReflectiveServiceLayer.java
@@ -15,9 +15,9 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.server.impl.BeanMethod;
-import com.google.gwt.autobean.server.impl.TypeUtils;
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.vm.impl.BeanMethod;
+import com.google.web.bindery.autobean.vm.impl.TypeUtils;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.InstanceRequest;
 import com.google.web.bindery.requestfactory.shared.Request;
diff --git a/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidator.java b/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidator.java
index dc69783..b6841ab 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidator.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidator.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.ValueCodex;
 import com.google.gwt.dev.asm.AnnotationVisitor;
 import com.google.gwt.dev.asm.ClassReader;
 import com.google.gwt.dev.asm.ClassVisitor;
diff --git a/user/src/com/google/web/bindery/requestfactory/server/RequestState.java b/user/src/com/google/web/bindery/requestfactory/server/RequestState.java
index 988250f..e167c41 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/RequestState.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/RequestState.java
@@ -15,12 +15,12 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.server.AutoBeanFactoryMagic;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanCodex;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanCodex;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.vm.AutoBeanFactorySource;
 import com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.IdToEntityMap;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
@@ -210,7 +210,7 @@
    */
   private <Q extends BaseProxy> AutoBean<Q> createProxyBean(
       SimpleProxyId<Q> id, Object domainObject) {
-    AutoBean<Q> toReturn = AutoBeanFactoryMagic.createBean(id.getProxyClass(),
+    AutoBean<Q> toReturn = AutoBeanFactorySource.createBean(id.getProxyClass(),
         SimpleRequestProcessor.CONFIGURATION);
     toReturn.setTag(Constants.STABLE_ID, id);
     toReturn.setTag(Constants.DOMAIN_OBJECT, domainObject);
diff --git a/user/src/com/google/web/bindery/requestfactory/server/Resolver.java b/user/src/com/google/web/bindery/requestfactory/server/Resolver.java
index 086adbf..9f641eb 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/Resolver.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/Resolver.java
@@ -15,12 +15,12 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.server.impl.TypeUtils;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.vm.impl.TypeUtils;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
@@ -447,4 +447,4 @@
     throw new ReportableException("Unsupported domain type "
         + returnClass.getCanonicalName());
   }
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/web/bindery/requestfactory/server/ResolverServiceLayer.java b/user/src/com/google/web/bindery/requestfactory/server/ResolverServiceLayer.java
index e9f6914..f95e896 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/ResolverServiceLayer.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/ResolverServiceLayer.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.server.impl.TypeUtils;
+import com.google.web.bindery.autobean.vm.impl.TypeUtils;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
diff --git a/user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java b/user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java
index c09a46a..a763dbb 100644
--- a/user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java
+++ b/user/src/com/google/web/bindery/requestfactory/server/SimpleRequestProcessor.java
@@ -15,16 +15,16 @@
  */
 package com.google.web.bindery.requestfactory.server;
 
-import com.google.gwt.autobean.server.AutoBeanFactoryMagic;
-import com.google.gwt.autobean.server.Configuration;
-import com.google.gwt.autobean.server.impl.TypeUtils;
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanCodex;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
 import com.google.gwt.user.server.Base64Utils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanCodex;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.vm.AutoBeanFactorySource;
+import com.google.web.bindery.autobean.vm.Configuration;
+import com.google.web.bindery.autobean.vm.impl.TypeUtils;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
 import com.google.web.bindery.requestfactory.shared.InstanceRequest;
@@ -37,6 +37,7 @@
 import com.google.web.bindery.requestfactory.shared.impl.EntityProxyCategory;
 import com.google.web.bindery.requestfactory.shared.impl.SimpleProxyId;
 import com.google.web.bindery.requestfactory.shared.impl.ValueProxyCategory;
+import com.google.web.bindery.requestfactory.shared.messages.IdMessage.Strength;
 import com.google.web.bindery.requestfactory.shared.messages.InvocationMessage;
 import com.google.web.bindery.requestfactory.shared.messages.MessageFactory;
 import com.google.web.bindery.requestfactory.shared.messages.OperationMessage;
@@ -44,7 +45,6 @@
 import com.google.web.bindery.requestfactory.shared.messages.ResponseMessage;
 import com.google.web.bindery.requestfactory.shared.messages.ServerFailureMessage;
 import com.google.web.bindery.requestfactory.shared.messages.ViolationMessage;
-import com.google.web.bindery.requestfactory.shared.messages.IdMessage.Strength;
 
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Method;
@@ -86,7 +86,7 @@
   /**
    * Vends message objects.
    */
-  static final MessageFactory FACTORY = AutoBeanFactoryMagic.create(MessageFactory.class);
+  static final MessageFactory FACTORY = AutoBeanFactorySource.create(MessageFactory.class);
 
   static String fromBase64(String encoded) {
     try {
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/DefaultProxyStore.java b/user/src/com/google/web/bindery/requestfactory/shared/DefaultProxyStore.java
index f594bdc..44dcbce 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/DefaultProxyStore.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/DefaultProxyStore.java
@@ -15,9 +15,9 @@
  */
 package com.google.web.bindery.requestfactory.shared;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanCodex;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanCodex;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.web.bindery.requestfactory.shared.impl.MessageFactoryHolder;
 import com.google.web.bindery.requestfactory.shared.messages.OperationMessage;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/ProxyStore.java b/user/src/com/google/web/bindery/requestfactory/shared/ProxyStore.java
index 4040217..ffb3f87 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/ProxyStore.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/ProxyStore.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared;
 
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.Splittable;
 
 /**
  * A ProxyStore provides a {@link ProxySerializer} with access to a low-level
@@ -50,4 +50,4 @@
    * @see Splittable#getPayload()
    */
   void put(String key, Splittable value);
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java
index fad1919..f7faed5 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequest.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.impl;
 
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.InstanceRequest;
 import com.google.web.bindery.requestfactory.shared.Receiver;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestContext.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestContext.java
index 429dd6f..dd61fa2 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestContext.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestContext.java
@@ -19,16 +19,16 @@
 import static com.google.web.bindery.requestfactory.shared.impl.Constants.REQUEST_CONTEXT;
 import static com.google.web.bindery.requestfactory.shared.impl.Constants.STABLE_ID;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanCodex;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
-import com.google.gwt.autobean.shared.impl.AbstractAutoBean;
-import com.google.gwt.autobean.shared.impl.EnumMap;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanCodex;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.impl.AbstractAutoBean;
+import com.google.web.bindery.autobean.shared.impl.EnumMap;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 import com.google.gwt.event.shared.UmbrellaException;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestFactory.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestFactory.java
index 37a9c3d..a13e62d 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestFactory.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/AbstractRequestFactory.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.impl;
 
-import com.google.gwt.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
 import com.google.gwt.event.shared.EventBus;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/BaseProxyCategory.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/BaseProxyCategory.java
index 7dea94b..481f4c8 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/BaseProxyCategory.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/BaseProxyCategory.java
@@ -18,8 +18,8 @@
 import static com.google.web.bindery.requestfactory.shared.impl.Constants.REQUEST_CONTEXT;
 import static com.google.web.bindery.requestfactory.shared.impl.Constants.STABLE_ID;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 
 /**
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityCodex.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityCodex.java
index 8aca80f..f498ac3 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityCodex.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityCodex.java
@@ -15,11 +15,11 @@
  */
 package com.google.web.bindery.requestfactory.shared.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.ValueCodex;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.ValueCodex;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityProxyCategory.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityProxyCategory.java
index bc5e04a..4349d23 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityProxyCategory.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/EntityProxyCategory.java
@@ -18,8 +18,8 @@
 import static com.google.web.bindery.requestfactory.shared.impl.BaseProxyCategory.requestContext;
 import static com.google.web.bindery.requestfactory.shared.impl.Constants.STABLE_ID;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
 
 /**
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/MessageFactoryHolder.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/MessageFactoryHolder.java
index 160a2eb..9dc6b4a 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/MessageFactoryHolder.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/MessageFactoryHolder.java
@@ -15,12 +15,12 @@
  */
 package com.google.web.bindery.requestfactory.shared.impl;
 
-import com.google.gwt.autobean.server.AutoBeanFactoryMagic;
+import com.google.web.bindery.autobean.vm.AutoBeanFactorySource;
 import com.google.web.bindery.requestfactory.shared.messages.MessageFactory;
 
 /**
  * This class has a super-source version with a client-only implementation.
  */
 public interface MessageFactoryHolder {
-  MessageFactory FACTORY = AutoBeanFactoryMagic.create(MessageFactory.class);
+  MessageFactory FACTORY = AutoBeanFactorySource.create(MessageFactory.class);
 }
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/ProxySerializerImpl.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/ProxySerializerImpl.java
index 9b3797c..f13942b 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/ProxySerializerImpl.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/ProxySerializerImpl.java
@@ -15,12 +15,12 @@
  */
 package com.google.web.bindery.requestfactory.shared.impl;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanCodex;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanCodex;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxyId;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/impl/ValueProxyCategory.java b/user/src/com/google/web/bindery/requestfactory/shared/impl/ValueProxyCategory.java
index 775673a..95c5ca2 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/impl/ValueProxyCategory.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/impl/ValueProxyCategory.java
@@ -17,8 +17,8 @@
 
 import static com.google.web.bindery.requestfactory.shared.impl.BaseProxyCategory.stableId;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 import com.google.web.bindery.requestfactory.shared.ValueProxy;
 
 /**
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/IdMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/IdMessage.java
index 48e42b2..6d1d6c1 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/IdMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/IdMessage.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 /**
  * Used as a base type for messages that are about a particular id.
@@ -81,4 +81,4 @@
 
   @PropertyName(TYPE_TOKEN)
   void setTypeToken(String value);
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/InvocationMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/InvocationMessage.java
index 38a124f..00fcac3 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/InvocationMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/InvocationMessage.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.Splittable;
 
 import java.util.List;
 import java.util.Set;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/JsonRpcRequest.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/JsonRpcRequest.java
index 399a214..275c7d5 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/JsonRpcRequest.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/JsonRpcRequest.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.Splittable;
 
 import java.util.Map;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/MessageFactory.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/MessageFactory.java
index 09fe6d6..e22048b 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/MessageFactory.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/MessageFactory.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
 
 /**
  * The factory for creating RequestFactory wire messages.
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/OperationMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/OperationMessage.java
index 0fff04f..9ed7e67 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/OperationMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/OperationMessage.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.Splittable;
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 import com.google.web.bindery.requestfactory.shared.WriteOperation;
 
 import java.util.Map;
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/RequestMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/RequestMessage.java
index d8dc38d..8f35588 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/RequestMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/RequestMessage.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 import java.util.List;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/ResponseMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/ResponseMessage.java
index 08d9a91..47efd4d 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/ResponseMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/ResponseMessage.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.Splittable;
 
 import java.util.List;
 
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/ServerFailureMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/ServerFailureMessage.java
index cda32c3..7e101e3 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/ServerFailureMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/ServerFailureMessage.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 /**
  * Encapsulates a ServerFailure object.
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/VersionedMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/VersionedMessage.java
index ea3d06b..51fe40e 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/VersionedMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/VersionedMessage.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 /**
  * Describes a message that contains version information.
diff --git a/user/src/com/google/web/bindery/requestfactory/shared/messages/ViolationMessage.java b/user/src/com/google/web/bindery/requestfactory/shared/messages/ViolationMessage.java
index e7b86d2..5b7725f 100644
--- a/user/src/com/google/web/bindery/requestfactory/shared/messages/ViolationMessage.java
+++ b/user/src/com/google/web/bindery/requestfactory/shared/messages/ViolationMessage.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.shared.messages;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
 
 /**
  * Represents a ConstraintViolation.
diff --git a/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestContext.java b/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestContext.java
index cd63ab9..bcdb434 100644
--- a/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestContext.java
+++ b/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestContext.java
@@ -15,10 +15,10 @@
  */
 package com.google.web.bindery.requestfactory.vm;
 
-import com.google.gwt.autobean.server.impl.BeanMethod;
-import com.google.gwt.autobean.server.impl.TypeUtils;
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.vm.impl.BeanMethod;
+import com.google.web.bindery.autobean.vm.impl.TypeUtils;
 import com.google.web.bindery.requestfactory.shared.InstanceRequest;
 import com.google.web.bindery.requestfactory.shared.JsonRpcContent;
 import com.google.web.bindery.requestfactory.shared.JsonRpcWireName;
diff --git a/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestFactory.java b/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestFactory.java
index 718c324..3d931ca 100644
--- a/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestFactory.java
+++ b/user/src/com/google/web/bindery/requestfactory/vm/InProcessRequestFactory.java
@@ -15,10 +15,10 @@
  */
 package com.google.web.bindery.requestfactory.vm;
 
-import com.google.gwt.autobean.server.AutoBeanFactoryMagic;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanFactory.Category;
-import com.google.gwt.autobean.shared.AutoBeanFactory.NoWrap;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.NoWrap;
+import com.google.web.bindery.autobean.vm.AutoBeanFactorySource;
 import com.google.gwt.event.shared.EventBus;
 import com.google.web.bindery.requestfactory.shared.BaseProxy;
 import com.google.web.bindery.requestfactory.shared.EntityProxy;
@@ -92,7 +92,7 @@
 
   @Override
   protected AutoBeanFactory getAutoBeanFactory() {
-    return AutoBeanFactoryMagic.create(Factory.class);
+    return AutoBeanFactorySource.create(Factory.class);
   }
 
   @Override
diff --git a/user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/ValueCodexHelper.java b/user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
similarity index 94%
rename from user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/ValueCodexHelper.java
rename to user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
index 42c87e3..bab08af 100644
--- a/user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/ValueCodexHelper.java
+++ b/user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/ValueCodexHelper.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
 /**
  * A no-op super-source version of ValueCodexHelper for web-mode compilations.
diff --git a/user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/impl/StringQuoter.java b/user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
similarity index 92%
rename from user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/impl/StringQuoter.java
rename to user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
index bfd0300..d92b3bf 100644
--- a/user/super/com/google/gwt/autobean/super/com/google/gwt/autobean/shared/impl/StringQuoter.java
+++ b/user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/impl/StringQuoter.java
@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared.impl;
+package com.google.web.bindery.autobean.shared.impl;
 
-import com.google.gwt.autobean.client.impl.JsoSplittable;
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.GwtScriptOnly;
 import com.google.gwt.core.client.JavaScriptException;
diff --git a/user/test/com/google/gwt/autobean/AutoBeanSuite.java b/user/test/com/google/web/bindery/autobean/AutoBeanSuite.java
similarity index 75%
rename from user/test/com/google/gwt/autobean/AutoBeanSuite.java
rename to user/test/com/google/web/bindery/autobean/AutoBeanSuite.java
index f8f8d6e..387dc9d 100644
--- a/user/test/com/google/gwt/autobean/AutoBeanSuite.java
+++ b/user/test/com/google/web/bindery/autobean/AutoBeanSuite.java
@@ -13,14 +13,14 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean;
+package com.google.web.bindery.autobean;
 
-import com.google.gwt.autobean.client.AutoBeanTest;
-import com.google.gwt.autobean.server.AutoBeanCodexJreTest;
-import com.google.gwt.autobean.server.AutoBeanJreTest;
-import com.google.gwt.autobean.server.SplittableJreTest;
-import com.google.gwt.autobean.shared.AutoBeanCodexTest;
-import com.google.gwt.autobean.shared.SplittableTest;
+import com.google.web.bindery.autobean.gwt.client.AutoBeanTest;
+import com.google.web.bindery.autobean.shared.AutoBeanCodexTest;
+import com.google.web.bindery.autobean.shared.SplittableTest;
+import com.google.web.bindery.autobean.vm.AutoBeanCodexJreTest;
+import com.google.web.bindery.autobean.vm.AutoBeanJreTest;
+import com.google.web.bindery.autobean.vm.SplittableJreTest;
 import com.google.gwt.junit.tools.GWTTestSuite;
 
 import junit.framework.Test;
diff --git a/user/test/com/google/gwt/autobean/client/AutoBeanTest.java b/user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java
similarity index 96%
rename from user/test/com/google/gwt/autobean/client/AutoBeanTest.java
rename to user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java
index e83e46d..3124590 100644
--- a/user/test/com/google/gwt/autobean/client/AutoBeanTest.java
+++ b/user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java
@@ -13,14 +13,14 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.client;
+package com.google.web.bindery.autobean.gwt.client;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanFactory;
-import com.google.gwt.autobean.shared.AutoBeanFactory.Category;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
-import com.google.gwt.autobean.shared.AutoBeanVisitor;
-import com.google.gwt.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory;
+import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor;
+import com.google.web.bindery.autobean.shared.AutoBeanVisitor.ParameterizationVisitor;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -225,7 +225,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.autobean.AutoBean";
+    return "com.google.web.bindery.autobean.AutoBean";
   }
 
   public void testBooleanIsHasMethods() {
diff --git a/user/test/com/google/gwt/autobean/shared/AutoBeanCodexTest.java b/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java
similarity index 97%
rename from user/test/com/google/gwt/autobean/shared/AutoBeanCodexTest.java
rename to user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java
index 43bfb35..13f69b3 100644
--- a/user/test/com/google/gwt/autobean/shared/AutoBeanCodexTest.java
+++ b/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java
@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
-import com.google.gwt.autobean.shared.AutoBean.PropertyName;
-import com.google.gwt.autobean.shared.impl.EnumMap;
+import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;
+import com.google.web.bindery.autobean.shared.impl.EnumMap;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -172,7 +172,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.autobean.AutoBean";
+    return "com.google.web.bindery.autobean.AutoBean";
   }
 
   public void testCycle() {
diff --git a/user/test/com/google/gwt/autobean/shared/SplittableTest.java b/user/test/com/google/web/bindery/autobean/shared/SplittableTest.java
similarity index 95%
rename from user/test/com/google/gwt/autobean/shared/SplittableTest.java
rename to user/test/com/google/web/bindery/autobean/shared/SplittableTest.java
index 46c515b..46a6baf 100644
--- a/user/test/com/google/gwt/autobean/shared/SplittableTest.java
+++ b/user/test/com/google/web/bindery/autobean/shared/SplittableTest.java
@@ -13,15 +13,15 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.shared;
+package com.google.web.bindery.autobean.shared;
 
-import com.google.gwt.autobean.client.impl.JsoSplittable;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.Coder;
-import com.google.gwt.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
-import com.google.gwt.autobean.shared.impl.SplittableList;
-import com.google.gwt.autobean.shared.impl.SplittableSimpleMap;
-import com.google.gwt.autobean.shared.impl.StringQuoter;
+import com.google.web.bindery.autobean.gwt.client.impl.JsoSplittable;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.Coder;
+import com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.EncodeState;
+import com.google.web.bindery.autobean.shared.impl.SplittableList;
+import com.google.web.bindery.autobean.shared.impl.SplittableSimpleMap;
+import com.google.web.bindery.autobean.shared.impl.StringQuoter;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -44,7 +44,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.autobean.AutoBean";
+    return "com.google.web.bindery.autobean.AutoBean";
   }
 
   public void testBasicProperties() {
diff --git a/user/test/com/google/gwt/autobean/server/AutoBeanCodexJreTest.java b/user/test/com/google/web/bindery/autobean/vm/AutoBeanCodexJreTest.java
similarity index 83%
rename from user/test/com/google/gwt/autobean/server/AutoBeanCodexJreTest.java
rename to user/test/com/google/web/bindery/autobean/vm/AutoBeanCodexJreTest.java
index 940331f..46adb69 100644
--- a/user/test/com/google/gwt/autobean/server/AutoBeanCodexJreTest.java
+++ b/user/test/com/google/web/bindery/autobean/vm/AutoBeanCodexJreTest.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
-import com.google.gwt.autobean.shared.AutoBeanCodexTest;
+import com.google.web.bindery.autobean.shared.AutoBeanCodexTest;
 
 /**
  * Runs AutoBeanCodexTest in pure-JRE mode.
@@ -29,7 +29,7 @@
 
   @Override
   protected void gwtSetUp() throws Exception {
-    f = AutoBeanFactoryMagic.create(Factory.class);
+    f = AutoBeanFactorySource.create(Factory.class);
   }
 
 }
diff --git a/user/test/com/google/gwt/autobean/server/AutoBeanJreTest.java b/user/test/com/google/web/bindery/autobean/vm/AutoBeanJreTest.java
similarity index 83%
rename from user/test/com/google/gwt/autobean/server/AutoBeanJreTest.java
rename to user/test/com/google/web/bindery/autobean/vm/AutoBeanJreTest.java
index 2f35a1a..e56be29 100644
--- a/user/test/com/google/gwt/autobean/server/AutoBeanJreTest.java
+++ b/user/test/com/google/web/bindery/autobean/vm/AutoBeanJreTest.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
-import com.google.gwt.autobean.client.AutoBeanTest;
+import com.google.web.bindery.autobean.gwt.client.AutoBeanTest;
 
 /**
  * Runs the AutoBeanTests against the JRE implementation.
@@ -29,6 +29,6 @@
 
   @Override
   protected void gwtSetUp() throws Exception {
-    factory = AutoBeanFactoryMagic.create(Factory.class);
+    factory = AutoBeanFactorySource.create(Factory.class);
   }
 }
diff --git a/user/test/com/google/gwt/autobean/server/SplittableJreTest.java b/user/test/com/google/web/bindery/autobean/vm/SplittableJreTest.java
similarity index 87%
rename from user/test/com/google/gwt/autobean/server/SplittableJreTest.java
rename to user/test/com/google/web/bindery/autobean/vm/SplittableJreTest.java
index af1c93a..ddb9126 100644
--- a/user/test/com/google/gwt/autobean/server/SplittableJreTest.java
+++ b/user/test/com/google/web/bindery/autobean/vm/SplittableJreTest.java
@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.autobean.server;
+package com.google.web.bindery.autobean.vm;
 
-import com.google.gwt.autobean.shared.SplittableTest;
+import com.google.web.bindery.autobean.shared.SplittableTest;
 
 /**
  * A JRE-only version of SplittableTest.
diff --git a/user/test/com/google/web/bindery/requestfactory/gwt/client/RequestFactoryTestBase.java b/user/test/com/google/web/bindery/requestfactory/gwt/client/RequestFactoryTestBase.java
index 17958d7..02a347b 100644
--- a/user/test/com/google/web/bindery/requestfactory/gwt/client/RequestFactoryTestBase.java
+++ b/user/test/com/google/web/bindery/requestfactory/gwt/client/RequestFactoryTestBase.java
@@ -15,8 +15,8 @@
  */
 package com.google.web.bindery.requestfactory.gwt.client;
 
-import com.google.gwt.autobean.shared.AutoBean;
-import com.google.gwt.autobean.shared.AutoBeanUtils;
+import com.google.web.bindery.autobean.shared.AutoBean;
+import com.google.web.bindery.autobean.shared.AutoBeanUtils;
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.event.shared.SimpleEventBus;
diff --git a/user/test/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModelTest.java b/user/test/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModelTest.java
index c548a6c..14af62b 100644
--- a/user/test/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModelTest.java
+++ b/user/test/com/google/web/bindery/requestfactory/gwt/rebind/model/RequestFactoryModelTest.java
@@ -15,7 +15,7 @@
  */
 package com.google.web.bindery.requestfactory.gwt.rebind.model;
 
-import com.google.gwt.autobean.shared.Splittable;
+import com.google.web.bindery.autobean.shared.Splittable;
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.dev.javac.CompilationState;
