diff --git a/user/BUILD b/user/BUILD
index cc036cc..b504ef2 100644
--- a/user/BUILD
+++ b/user/BUILD
@@ -558,7 +558,6 @@
             "test/**/ConstraintDefinitionsGwtSuite.java",
             "test/**/*JreSuite.java",
             "test/**/*Java8Suite.java",
-            "test/**/*JsInteropExportsSuite.java",
         ],
     ),
 )
@@ -569,11 +568,6 @@
 )
 
 filegroup(
-    name = "jsinterop_exports_suite_files",
-    srcs = glob(["test/**/*JsInteropExportsSuite.java"]),
-)
-
-filegroup(
     name = "nobrowser_suite_files",
     srcs = glob(["test/**/*JreSuite.java"]),
 )
@@ -588,7 +582,6 @@
             "test/**/RunAsyncSuite.java",
             "test/**/*JreSuite.java",
             "test/**/*JsInteropSuite.java",
-            "test/**/*JsInteropExportsSuite.java",
             "test/**/*Java8Suite.java",
         ],
     ),
diff --git a/user/build.xml b/user/build.xml
index f174025..8108af3 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -29,8 +29,8 @@
 
   <property name="gwt.junit.testcase.dev.includes" value="${gwt.junit.testcase.includes}"/>
   <condition property="gwt.junit.testcase.dev.excludes"
-            value="**/*JsInteropSuite.class,**/*JsInteropExportsSuite.class,**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
-            else="**/*JsInteropSuite.class,**/*JsInteropExportsSuite.class,**/*JreSuite.class,**/OptimizedOnly*">
+            value="**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*,**/*Java8Suite.class"
+            else="**/*JsInteropSuite.class,**/*JreSuite.class,**/OptimizedOnly*">
     <equals arg1="${javac.source}" arg2="1.7" />
   </condition>
 
diff --git a/user/test/com/google/gwt/core/CoreJsInteropSuite.java b/user/test/com/google/gwt/core/CoreJsInteropSuite.java
index 9a01dd0..4285000 100644
--- a/user/test/com/google/gwt/core/CoreJsInteropSuite.java
+++ b/user/test/com/google/gwt/core/CoreJsInteropSuite.java
@@ -15,12 +15,13 @@
  */
 package com.google.gwt.core;
 
-import com.google.gwt.core.client.interop.JsFunctionTest;
-import com.google.gwt.core.client.interop.JsMethodTest;
-import com.google.gwt.core.client.interop.JsPropertyTest;
-import com.google.gwt.core.client.interop.JsTypeArrayTest;
-import com.google.gwt.core.client.interop.JsTypeBridgeTest;
-import com.google.gwt.core.client.interop.JsTypeTest;
+import com.google.gwt.core.interop.JsExportTest;
+import com.google.gwt.core.interop.JsFunctionTest;
+import com.google.gwt.core.interop.JsMethodTest;
+import com.google.gwt.core.interop.JsPropertyTest;
+import com.google.gwt.core.interop.JsTypeArrayTest;
+import com.google.gwt.core.interop.JsTypeBridgeTest;
+import com.google.gwt.core.interop.JsTypeTest;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -32,6 +33,7 @@
   public static Test suite() {
     TestSuite suite = new TestSuite("All core js interop tests");
 
+    suite.addTestSuite(JsExportTest.class);
     suite.addTestSuite(JsTypeTest.class);
     suite.addTestSuite(JsTypeBridgeTest.class);
     suite.addTestSuite(JsPropertyTest.class);
diff --git a/user/test/com/google/gwt/core/Interop.gwt.xml b/user/test/com/google/gwt/core/Interop.gwt.xml
new file mode 100644
index 0000000..c92bef6
--- /dev/null
+++ b/user/test/com/google/gwt/core/Interop.gwt.xml
@@ -0,0 +1,18 @@
+<!--                                                                        -->
+<!-- Copyright 2014 Google Inc.                                             -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
+<!-- may not use this file except in compliance with the License. You may   -->
+<!-- may obtain a copy of the License at                                    -->
+<!--                                                                        -->
+<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
+<!--                                                                        -->
+<!-- Unless required by applicable law or agreed to in writing, software    -->
+<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
+<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
+<!-- implied. License for the specific language governing permissions and   -->
+<!-- limitations under the License.                                         -->
+
+<module>
+  <inherits name="com.google.gwt.core.Core" />
+  <source path="interop"/>
+</module>
diff --git a/user/test/com/google/gwt/core/JsInteropExportsSuite.java b/user/test/com/google/gwt/core/JsInteropExportsSuite.java
deleted file mode 100644
index cdc16de..0000000
--- a/user/test/com/google/gwt/core/JsInteropExportsSuite.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.core;
-
-import com.google.gwt.core.client.interop.JsExportTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * All core tests that require js interop and -generateJsInteropExports.
- */
-public class JsInteropExportsSuite {
-  public static Test suite() {
-    TestSuite suite =
-        new TestSuite("All core js interop tests that require -generateJsInteropExports");
-    suite.addTestSuite(JsExportTest.class);
-    return suite;
-  }
-}
diff --git a/user/test/com/google/gwt/core/client/interop/AbstractJsType.java b/user/test/com/google/gwt/core/interop/AbstractJsType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/AbstractJsType.java
rename to user/test/com/google/gwt/core/interop/AbstractJsType.java
index 8e07404..538a3b2 100644
--- a/user/test/com/google/gwt/core/client/interop/AbstractJsType.java
+++ b/user/test/com/google/gwt/core/interop/AbstractJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java b/user/test/com/google/gwt/core/interop/ConcreteJsType.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/ConcreteJsType.java
rename to user/test/com/google/gwt/core/interop/ConcreteJsType.java
index cfb6dfc..70e8b17 100644
--- a/user/test/com/google/gwt/core/client/interop/ConcreteJsType.java
+++ b/user/test/com/google/gwt/core/interop/ConcreteJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java b/user/test/com/google/gwt/core/interop/ConcreteJsTypeJsSubclass.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java
rename to user/test/com/google/gwt/core/interop/ConcreteJsTypeJsSubclass.java
index f9506ec..b25a800 100644
--- a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeJsSubclass.java
+++ b/user/test/com/google/gwt/core/interop/ConcreteJsTypeJsSubclass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * This test class exposes parent jsmethod as non-jsmethod.
diff --git a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeSubclass.java b/user/test/com/google/gwt/core/interop/ConcreteJsTypeSubclass.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/ConcreteJsTypeSubclass.java
rename to user/test/com/google/gwt/core/interop/ConcreteJsTypeSubclass.java
index 789fb02..cd761a3 100644
--- a/user/test/com/google/gwt/core/client/interop/ConcreteJsTypeSubclass.java
+++ b/user/test/com/google/gwt/core/interop/ConcreteJsTypeSubclass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * This concrete test class is not annotated as a @JsType but its parent is.
diff --git a/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java b/user/test/com/google/gwt/core/interop/ElementLikeNativeInterface.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java
rename to user/test/com/google/gwt/core/interop/ElementLikeNativeInterface.java
index 2881058..6d6ac09 100644
--- a/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterface.java
+++ b/user/test/com/google/gwt/core/interop/ElementLikeNativeInterface.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 
 import jsinterop.annotations.JsProperty;
diff --git a/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java b/user/test/com/google/gwt/core/interop/ElementLikeNativeInterfaceImpl.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java
rename to user/test/com/google/gwt/core/interop/ElementLikeNativeInterfaceImpl.java
index 8821150..133094a 100644
--- a/user/test/com/google/gwt/core/client/interop/ElementLikeNativeInterfaceImpl.java
+++ b/user/test/com/google/gwt/core/interop/ElementLikeNativeInterfaceImpl.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * Implements ElementLikeJsInterface.
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLButtonElementConcreteNativeJsType.java b/user/test/com/google/gwt/core/interop/HTMLButtonElementConcreteNativeJsType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/HTMLButtonElementConcreteNativeJsType.java
rename to user/test/com/google/gwt/core/interop/HTMLButtonElementConcreteNativeJsType.java
index 8020256..abe49cc 100644
--- a/user/test/com/google/gwt/core/client/interop/HTMLButtonElementConcreteNativeJsType.java
+++ b/user/test/com/google/gwt/core/interop/HTMLButtonElementConcreteNativeJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsPackage;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java b/user/test/com/google/gwt/core/interop/HTMLElementAnotherConcreteNativeJsType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java
rename to user/test/com/google/gwt/core/interop/HTMLElementAnotherConcreteNativeJsType.java
index 7ea72ed..001bb49 100644
--- a/user/test/com/google/gwt/core/client/interop/HTMLElementAnotherConcreteNativeJsType.java
+++ b/user/test/com/google/gwt/core/interop/HTMLElementAnotherConcreteNativeJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsPackage;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java b/user/test/com/google/gwt/core/interop/HTMLElementConcreteNativeJsType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java
rename to user/test/com/google/gwt/core/interop/HTMLElementConcreteNativeJsType.java
index 4bd6936..79d9539 100644
--- a/user/test/com/google/gwt/core/client/interop/HTMLElementConcreteNativeJsType.java
+++ b/user/test/com/google/gwt/core/interop/HTMLElementConcreteNativeJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsPackage;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/JsExportTest.java b/user/test/com/google/gwt/core/interop/JsExportTest.java
similarity index 98%
rename from user/test/com/google/gwt/core/client/interop/JsExportTest.java
rename to user/test/com/google/gwt/core/interop/JsExportTest.java
index 98992ee..bfdee8a 100644
--- a/user/test/com/google/gwt/core/client/interop/JsExportTest.java
+++ b/user/test/com/google/gwt/core/interop/JsExportTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static com.google.gwt.core.client.ScriptInjector.TOP_WINDOW;
 
@@ -31,7 +31,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   @Override
@@ -374,7 +374,7 @@
   }-*/;
 
   private static native Object getNestedSubpackageCorrect() /*-{
-    return $global.com.google.gwt.core.client.interop.subpackage.
+    return $global.com.google.gwt.core.interop.subpackage.
         MyNestedExportedClassSansPackageNamespace;
   }-*/;
 
diff --git a/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java b/user/test/com/google/gwt/core/interop/JsFunctionTest.java
similarity index 98%
rename from user/test/com/google/gwt/core/client/interop/JsFunctionTest.java
rename to user/test/com/google/gwt/core/interop/JsFunctionTest.java
index b775f46..2d0c3dc 100644
--- a/user/test/com/google/gwt/core/client/interop/JsFunctionTest.java
+++ b/user/test/com/google/gwt/core/interop/JsFunctionTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -25,7 +25,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   // separate java call and js calls into two tests to see if it works correctly.
diff --git a/user/test/com/google/gwt/core/client/interop/JsMethodTest.java b/user/test/com/google/gwt/core/interop/JsMethodTest.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/JsMethodTest.java
rename to user/test/com/google/gwt/core/interop/JsMethodTest.java
index fc0cd81..dd3124d 100644
--- a/user/test/com/google/gwt/core/client/interop/JsMethodTest.java
+++ b/user/test/com/google/gwt/core/interop/JsMethodTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static jsinterop.annotations.JsPackage.GLOBAL;
 
@@ -29,7 +29,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   class MyObject {
diff --git a/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java b/user/test/com/google/gwt/core/interop/JsPropertyTest.java
similarity index 99%
rename from user/test/com/google/gwt/core/client/interop/JsPropertyTest.java
rename to user/test/com/google/gwt/core/interop/JsPropertyTest.java
index 62b1766..95c3432 100644
--- a/user/test/com/google/gwt/core/client/interop/JsPropertyTest.java
+++ b/user/test/com/google/gwt/core/interop/JsPropertyTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static jsinterop.annotations.JsPackage.GLOBAL;
 
@@ -36,7 +36,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   @Override
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java b/user/test/com/google/gwt/core/interop/JsTypeArrayTest.java
similarity index 98%
rename from user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java
rename to user/test/com/google/gwt/core/interop/JsTypeArrayTest.java
index 2f9d35d..dfd7581 100644
--- a/user/test/com/google/gwt/core/client/interop/JsTypeArrayTest.java
+++ b/user/test/com/google/gwt/core/interop/JsTypeArrayTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -27,7 +27,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   /* MAKE SURE EACH TYPE IS ONLY USED ONCE PER TEST CASE */
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeBridgeTest.java b/user/test/com/google/gwt/core/interop/JsTypeBridgeTest.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/JsTypeBridgeTest.java
rename to user/test/com/google/gwt/core/interop/JsTypeBridgeTest.java
index 0c0e5ea..ebf9372 100644
--- a/user/test/com/google/gwt/core/client/interop/JsTypeBridgeTest.java
+++ b/user/test/com/google/gwt/core/interop/JsTypeBridgeTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import com.google.gwt.junit.client.GWTTestCase;
 
@@ -25,7 +25,7 @@
 public class JsTypeBridgeTest extends GWTTestCase {
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   @JsType
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java b/user/test/com/google/gwt/core/interop/JsTypeRunnable.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java
rename to user/test/com/google/gwt/core/interop/JsTypeRunnable.java
index 316bf05..60455b8 100644
--- a/user/test/com/google/gwt/core/client/interop/JsTypeRunnable.java
+++ b/user/test/com/google/gwt/core/interop/JsTypeRunnable.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/JsTypeTest.java b/user/test/com/google/gwt/core/interop/JsTypeTest.java
similarity index 99%
rename from user/test/com/google/gwt/core/client/interop/JsTypeTest.java
rename to user/test/com/google/gwt/core/interop/JsTypeTest.java
index 9628a1c..8378c66 100644
--- a/user/test/com/google/gwt/core/client/interop/JsTypeTest.java
+++ b/user/test/com/google/gwt/core/interop/JsTypeTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static jsinterop.annotations.JsPackage.GLOBAL;
 
@@ -39,7 +39,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   @Override
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassAcceptsJsFunctionAsCallBack.java b/user/test/com/google/gwt/core/interop/MyClassAcceptsJsFunctionAsCallBack.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyClassAcceptsJsFunctionAsCallBack.java
rename to user/test/com/google/gwt/core/interop/MyClassAcceptsJsFunctionAsCallBack.java
index da99a1e..126d6ca 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassAcceptsJsFunctionAsCallBack.java
+++ b/user/test/com/google/gwt/core/interop/MyClassAcceptsJsFunctionAsCallBack.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * A class that has a field of JsFunction type, and a method that accepts JsFunction type parameter.
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java b/user/test/com/google/gwt/core/interop/MyClassExportsConstructor.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java
rename to user/test/com/google/gwt/core/interop/MyClassExportsConstructor.java
index 9618dfc..866f8ca 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassExportsConstructor.java
+++ b/user/test/com/google/gwt/core/interop/MyClassExportsConstructor.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsConstructor;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java b/user/test/com/google/gwt/core/interop/MyClassExportsMethod.java
similarity index 97%
rename from user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java
rename to user/test/com/google/gwt/core/interop/MyClassExportsMethod.java
index 5b010bc..7e6ca8a 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethod.java
+++ b/user/test/com/google/gwt/core/interop/MyClassExportsMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static jsinterop.annotations.JsPackage.GLOBAL;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java b/user/test/com/google/gwt/core/interop/MyClassExportsMethodWithClinit.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java
rename to user/test/com/google/gwt/core/interop/MyClassExportsMethodWithClinit.java
index d378eab..b4cc663 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithClinit.java
+++ b/user/test/com/google/gwt/core/interop/MyClassExportsMethodWithClinit.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import static junit.framework.Assert.assertEquals;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java b/user/test/com/google/gwt/core/interop/MyClassExportsMethodWithoutReference.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java
rename to user/test/com/google/gwt/core/interop/MyClassExportsMethodWithoutReference.java
index a3a534f..e42d25c 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassExportsMethodWithoutReference.java
+++ b/user/test/com/google/gwt/core/interop/MyClassExportsMethodWithoutReference.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsMethod;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java b/user/test/com/google/gwt/core/interop/MyClassWithEmptyNamespace.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java
rename to user/test/com/google/gwt/core/interop/MyClassWithEmptyNamespace.java
index 189ddfb..20b0b8c 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassWithEmptyNamespace.java
+++ b/user/test/com/google/gwt/core/interop/MyClassWithEmptyNamespace.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsConstructor;
 import jsinterop.annotations.JsPackage;
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java b/user/test/com/google/gwt/core/interop/MyClassWithNamespace.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java
rename to user/test/com/google/gwt/core/interop/MyClassWithNamespace.java
index 4ddc0f7..5389fca 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassWithNamespace.java
+++ b/user/test/com/google/gwt/core/interop/MyClassWithNamespace.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsProperty;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java b/user/test/com/google/gwt/core/interop/MyClassWithNestedExportedClass.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java
rename to user/test/com/google/gwt/core/interop/MyClassWithNestedExportedClass.java
index 2c13781..0e7346f 100644
--- a/user/test/com/google/gwt/core/client/interop/MyClassWithNestedExportedClass.java
+++ b/user/test/com/google/gwt/core/interop/MyClassWithNestedExportedClass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java b/user/test/com/google/gwt/core/interop/MyEnumWithJsType.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java
rename to user/test/com/google/gwt/core/interop/MyEnumWithJsType.java
index 6cce259..564fceb 100644
--- a/user/test/com/google/gwt/core/client/interop/MyEnumWithJsType.java
+++ b/user/test/com/google/gwt/core/interop/MyEnumWithJsType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java b/user/test/com/google/gwt/core/interop/MyEnumWithSubclassGen.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java
rename to user/test/com/google/gwt/core/interop/MyEnumWithSubclassGen.java
index 36f5e9c..d93e6ef 100644
--- a/user/test/com/google/gwt/core/client/interop/MyEnumWithSubclassGen.java
+++ b/user/test/com/google/gwt/core/interop/MyEnumWithSubclassGen.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClass.java b/user/test/com/google/gwt/core/interop/MyExportedClass.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClass.java
rename to user/test/com/google/gwt/core/interop/MyExportedClass.java
index 13e10f7..87922c2 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClass.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java b/user/test/com/google/gwt/core/interop/MyExportedClassWithImplicitConstructor.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java
rename to user/test/com/google/gwt/core/interop/MyExportedClassWithImplicitConstructor.java
index 66894a8..223db41 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithImplicitConstructor.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClassWithImplicitConstructor.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java b/user/test/com/google/gwt/core/interop/MyExportedClassWithNamespace.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java
rename to user/test/com/google/gwt/core/interop/MyExportedClassWithNamespace.java
index f29e5b4..ededaf3 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespace.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClassWithNamespace.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java b/user/test/com/google/gwt/core/interop/MyExportedClassWithNamespaceAndName.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java
rename to user/test/com/google/gwt/core/interop/MyExportedClassWithNamespaceAndName.java
index 40bc295..93f0b22 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNamespaceAndName.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClassWithNamespaceAndName.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java b/user/test/com/google/gwt/core/interop/MyExportedClassWithNestedExportedClass.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java
rename to user/test/com/google/gwt/core/interop/MyExportedClassWithNestedExportedClass.java
index 626a073..c11e4a0 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithNestedExportedClass.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClassWithNestedExportedClass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java b/user/test/com/google/gwt/core/interop/MyExportedClassWithPackageNamespace.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java
rename to user/test/com/google/gwt/core/interop/MyExportedClassWithPackageNamespace.java
index 255afae..5b18ac0 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedClassWithPackageNamespace.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedClassWithPackageNamespace.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java b/user/test/com/google/gwt/core/interop/MyExportedEnum.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/MyExportedEnum.java
rename to user/test/com/google/gwt/core/interop/MyExportedEnum.java
index 0e12b62..08e0d9e 100644
--- a/user/test/com/google/gwt/core/client/interop/MyExportedEnum.java
+++ b/user/test/com/google/gwt/core/interop/MyExportedEnum.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java b/user/test/com/google/gwt/core/interop/MyJsFunctionIdentityInterface.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java
rename to user/test/com/google/gwt/core/interop/MyJsFunctionIdentityInterface.java
index 616ecdd..18833f7 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionIdentityInterface.java
+++ b/user/test/com/google/gwt/core/interop/MyJsFunctionIdentityInterface.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsFunction;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java b/user/test/com/google/gwt/core/interop/MyJsFunctionInterface.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java
rename to user/test/com/google/gwt/core/interop/MyJsFunctionInterface.java
index e1bc958..1b91e7a 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterface.java
+++ b/user/test/com/google/gwt/core/interop/MyJsFunctionInterface.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsFunction;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterfaceImpl.java b/user/test/com/google/gwt/core/interop/MyJsFunctionInterfaceImpl.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyJsFunctionInterfaceImpl.java
rename to user/test/com/google/gwt/core/interop/MyJsFunctionInterfaceImpl.java
index 2a5ebb4..126ede3 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionInterfaceImpl.java
+++ b/user/test/com/google/gwt/core/interop/MyJsFunctionInterfaceImpl.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * A concrete class that implements a JsFunction interface.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java b/user/test/com/google/gwt/core/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java
rename to user/test/com/google/gwt/core/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java
index f71007d..ce0b410 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java
+++ b/user/test/com/google/gwt/core/interop/MyJsFunctionSubInterfaceWithDefaultMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * An interface that extends JsFunction interface {@code MyJsFunctionInterface} with default method.
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java b/user/test/com/google/gwt/core/interop/MyJsFunctionWithOnlyInstanceofReference.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java
rename to user/test/com/google/gwt/core/interop/MyJsFunctionWithOnlyInstanceofReference.java
index 7cf0369..739d3cf 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsFunctionWithOnlyInstanceofReference.java
+++ b/user/test/com/google/gwt/core/interop/MyJsFunctionWithOnlyInstanceofReference.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsFunction;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java b/user/test/com/google/gwt/core/interop/MyJsInterfaceWithOnlyInstanceofReference.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java
rename to user/test/com/google/gwt/core/interop/MyJsInterfaceWithOnlyInstanceofReference.java
index 60f838b..ad49dea 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsInterfaceWithOnlyInstanceofReference.java
+++ b/user/test/com/google/gwt/core/interop/MyJsInterfaceWithOnlyInstanceofReference.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java b/user/test/com/google/gwt/core/interop/MyJsTypeThatUsesLongType.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java
rename to user/test/com/google/gwt/core/interop/MyJsTypeThatUsesLongType.java
index 49535ae..63f4753 100644
--- a/user/test/com/google/gwt/core/client/interop/MyJsTypeThatUsesLongType.java
+++ b/user/test/com/google/gwt/core/interop/MyJsTypeThatUsesLongType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java b/user/test/com/google/gwt/core/interop/MyOtherJsFunctionInterface.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java
rename to user/test/com/google/gwt/core/interop/MyOtherJsFunctionInterface.java
index efdb9c8..3df338a 100644
--- a/user/test/com/google/gwt/core/client/interop/MyOtherJsFunctionInterface.java
+++ b/user/test/com/google/gwt/core/interop/MyOtherJsFunctionInterface.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsFunction;
 
diff --git a/user/test/com/google/gwt/core/client/interop/NativeJsTypeTest.java b/user/test/com/google/gwt/core/interop/NativeJsTypeTest.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/NativeJsTypeTest.java
rename to user/test/com/google/gwt/core/interop/NativeJsTypeTest.java
index df0323a..739ce38 100644
--- a/user/test/com/google/gwt/core/client/interop/NativeJsTypeTest.java
+++ b/user/test/com/google/gwt/core/interop/NativeJsTypeTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.junit.client.GWTTestCase;
@@ -28,7 +28,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.core.Core";
+    return "com.google.gwt.core.Interop";
   }
 
   @JsType(isNative = true)
diff --git a/user/test/com/google/gwt/core/client/interop/PlainInterfaceWithSameMethod.java b/user/test/com/google/gwt/core/interop/PlainInterfaceWithSameMethod.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/PlainInterfaceWithSameMethod.java
rename to user/test/com/google/gwt/core/interop/PlainInterfaceWithSameMethod.java
index 7d04b28..c10d3da 100644
--- a/user/test/com/google/gwt/core/client/interop/PlainInterfaceWithSameMethod.java
+++ b/user/test/com/google/gwt/core/interop/PlainInterfaceWithSameMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * An interface that has a method who has the same signature with {@link MyJsFunctionInterface}.
diff --git a/user/test/com/google/gwt/core/client/interop/PlainParentType.java b/user/test/com/google/gwt/core/interop/PlainParentType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/PlainParentType.java
rename to user/test/com/google/gwt/core/interop/PlainParentType.java
index 013bfd6..ce24132 100644
--- a/user/test/com/google/gwt/core/client/interop/PlainParentType.java
+++ b/user/test/com/google/gwt/core/interop/PlainParentType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * A regular class with no exports.
diff --git a/user/test/com/google/gwt/core/client/interop/RevealedOverrideSubType.java b/user/test/com/google/gwt/core/interop/RevealedOverrideSubType.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/RevealedOverrideSubType.java
rename to user/test/com/google/gwt/core/interop/RevealedOverrideSubType.java
index 40ec780..86e4a2f 100644
--- a/user/test/com/google/gwt/core/client/interop/RevealedOverrideSubType.java
+++ b/user/test/com/google/gwt/core/interop/RevealedOverrideSubType.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 /**
  * This type implements no functionality but should still export run() because of the @JsType
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java b/user/test/com/google/gwt/core/interop/StaticInitializerStaticField.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java
rename to user/test/com/google/gwt/core/interop/StaticInitializerStaticField.java
index c15c3e7..2f00edf 100644
--- a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticField.java
+++ b/user/test/com/google/gwt/core/interop/StaticInitializerStaticField.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsIgnore;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java b/user/test/com/google/gwt/core/interop/StaticInitializerStaticMethod.java
similarity index 96%
rename from user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java
rename to user/test/com/google/gwt/core/interop/StaticInitializerStaticMethod.java
index b6fe3a8..6430697 100644
--- a/user/test/com/google/gwt/core/client/interop/StaticInitializerStaticMethod.java
+++ b/user/test/com/google/gwt/core/interop/StaticInitializerStaticMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsIgnore;
 import jsinterop.annotations.JsType;
diff --git a/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java b/user/test/com/google/gwt/core/interop/StaticInitializerVirtualMethod.java
similarity index 95%
rename from user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java
rename to user/test/com/google/gwt/core/interop/StaticInitializerVirtualMethod.java
index cf5ac6c..d14b998 100644
--- a/user/test/com/google/gwt/core/client/interop/StaticInitializerVirtualMethod.java
+++ b/user/test/com/google/gwt/core/interop/StaticInitializerVirtualMethod.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
 
 import jsinterop.annotations.JsType;
 
diff --git a/user/test/com/google/gwt/core/client/interop/package-info.java b/user/test/com/google/gwt/core/interop/package-info.java
similarity index 93%
rename from user/test/com/google/gwt/core/client/interop/package-info.java
rename to user/test/com/google/gwt/core/interop/package-info.java
index 11e1959..db7ac0a 100644
--- a/user/test/com/google/gwt/core/client/interop/package-info.java
+++ b/user/test/com/google/gwt/core/interop/package-info.java
@@ -15,4 +15,4 @@
  */
 @jsinterop.annotations.JsPackage(namespace = "woo")
 @com.google.gwt.util.PreventSpuriousRebuilds
-package com.google.gwt.core.client.interop;
+package com.google.gwt.core.interop;
diff --git a/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java b/user/test/com/google/gwt/core/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
similarity index 94%
rename from user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
rename to user/test/com/google/gwt/core/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
index 1ecd978..cbe349e 100644
--- a/user/test/com/google/gwt/core/client/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
+++ b/user/test/com/google/gwt/core/interop/subpackage/MyNestedExportedClassSansPackageNamespace.java
@@ -11,7 +11,7 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.core.client.interop.subpackage;
+package com.google.gwt.core.interop.subpackage;
 
 import jsinterop.annotations.JsType;
 
