diff --git a/user/src/com/google/gwt/uibinder/client/UiHandler.java b/user/src/com/google/gwt/uibinder/client/UiHandler.java
index 43d1aeb..d793954 100644
--- a/user/src/com/google/gwt/uibinder/client/UiHandler.java
+++ b/user/src/com/google/gwt/uibinder/client/UiHandler.java
@@ -23,7 +23,7 @@
 
 /**
  * Marks a method to be automatically bound as an event handler. See examples
- * in {@link com.google.gwt.uibinder.sample.client.HandlerDemo}.
+ * in {@link com.google.gwt.uibinder.test.client.HandlerDemo}.
  *
  * <p>The annotation values must be declared in the "ui:field"
  * template attribute.
diff --git a/user/test/com/google/gwt/uibinder/UiBinderGwtSuite.java b/user/test/com/google/gwt/uibinder/UiBinderGwtSuite.java
index f4b717e..1d0fff2 100644
--- a/user/test/com/google/gwt/uibinder/UiBinderGwtSuite.java
+++ b/user/test/com/google/gwt/uibinder/UiBinderGwtSuite.java
@@ -16,7 +16,7 @@
 package com.google.gwt.uibinder;
 
 import com.google.gwt.junit.tools.GWTTestSuite;
-import com.google.gwt.uibinder.sample.client.UiBinderTest;
+import com.google.gwt.uibinder.test.client.UiBinderTest;
 
 import junit.framework.Test;
 
diff --git a/user/test/com/google/gwt/uibinder/UiBinderTestModule.gwt.xml b/user/test/com/google/gwt/uibinder/UiBinderTestModule.gwt.xml
deleted file mode 100644
index 73a0112..0000000
--- a/user/test/com/google/gwt/uibinder/UiBinderTestModule.gwt.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2007 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.                                         -->
-
-<!-- UiBinder test support.                                                 -->
-<module>
-	<inherits name="com.google.gwt.uibinder.sample.UiBinderDemo" />
-</module>
diff --git a/user/test/com/google/gwt/uibinder/testing/UiBinderTesting.java b/user/test/com/google/gwt/uibinder/rebind/DocumentTestHelp.java
similarity index 88%
rename from user/test/com/google/gwt/uibinder/testing/UiBinderTesting.java
rename to user/test/com/google/gwt/uibinder/rebind/DocumentTestHelp.java
index dbba0f1..f82bfac 100644
--- a/user/test/com/google/gwt/uibinder/testing/UiBinderTesting.java
+++ b/user/test/com/google/gwt/uibinder/rebind/DocumentTestHelp.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.testing;
+package com.google.gwt.uibinder.rebind;
 
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
@@ -26,9 +26,9 @@
 import javax.xml.parsers.ParserConfigurationException;
 
 /**
- * Support methods for testing uibinder. Not intended for production use!
+ * Support methods for testing uibinder.
  */
-public class UiBinderTesting {
+class DocumentTestHelp {
   /**
    * Creates an XML document model with the given contents.
    *
@@ -47,6 +47,6 @@
   /**
    * Not instantiable.
    */
-  private UiBinderTesting() {
+  private DocumentTestHelp() {
   }
 }
diff --git a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
index 92b76e9..925a6a1 100644
--- a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
@@ -17,7 +17,6 @@
 
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.uibinder.parsers.NullInterpreter;
-import com.google.gwt.uibinder.testing.UiBinderTesting;
 
 import junit.framework.TestCase;
 
@@ -109,7 +108,7 @@
 
   private void init(final String domString)
       throws ParserConfigurationException, SAXException, IOException {
-    doc = UiBinderTesting.documentForString(domString);
+    doc = DocumentTestHelp.documentForString(domString);
     item = (Element) doc.getDocumentElement().getElementsByTagName("elm").item(
         0);
     elm = new XMLElement(item, new UiBinderWriter());
@@ -152,7 +151,7 @@
   }
 
   public void testNoEndTags() throws Exception {
-    Document doc = UiBinderTesting.documentForString("<doc><br/></doc>");
+    Document doc = DocumentTestHelp.documentForString("<doc><br/></doc>");
 
     Element item = (Element) doc.getDocumentElement().getElementsByTagName("br").item(
         0);
diff --git a/user/test/com/google/gwt/uibinder/sample/UiBinderDemo.gwt.xml b/user/test/com/google/gwt/uibinder/test/UiBinderTestApp.gwt.xml
similarity index 98%
rename from user/test/com/google/gwt/uibinder/sample/UiBinderDemo.gwt.xml
rename to user/test/com/google/gwt/uibinder/test/UiBinderTestApp.gwt.xml
index 948c463..725b7e6 100644
--- a/user/test/com/google/gwt/uibinder/sample/UiBinderDemo.gwt.xml
+++ b/user/test/com/google/gwt/uibinder/test/UiBinderTestApp.gwt.xml
@@ -15,5 +15,5 @@
 <module>
   <inherits name="com.google.gwt.resources.Resources" />
   <inherits name="com.google.gwt.uibinder.UiBinder" />
-  <entry-point class="com.google.gwt.uibinder.sample.client.UiBinderDemo" />
+  <entry-point class="com.google.gwt.uibinder.sample.client.UiBinderTestApp" />
 </module>
diff --git a/user/test/com/google/gwt/uibinder/sample/client/AnnotatedStrictLabel.java b/user/test/com/google/gwt/uibinder/test/client/AnnotatedStrictLabel.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/AnnotatedStrictLabel.java
rename to user/test/com/google/gwt/uibinder/test/client/AnnotatedStrictLabel.java
index ed5fab4..f3ab437 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/AnnotatedStrictLabel.java
+++ b/user/test/com/google/gwt/uibinder/test/client/AnnotatedStrictLabel.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.uibinder.client.UiConstructor;
 
diff --git a/user/test/com/google/gwt/uibinder/sample/client/ArbitraryPojo.java b/user/test/com/google/gwt/uibinder/test/client/ArbitraryPojo.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/ArbitraryPojo.java
rename to user/test/com/google/gwt/uibinder/test/client/ArbitraryPojo.java
index 5795837..53b9160 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/ArbitraryPojo.java
+++ b/user/test/com/google/gwt/uibinder/test/client/ArbitraryPojo.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 /**
  * Used when testing non-primitive property setting in templates.
diff --git a/user/test/com/google/gwt/uibinder/sample/client/ClickyLink.java b/user/test/com/google/gwt/uibinder/test/client/ClickyLink.java
similarity index 97%
rename from user/test/com/google/gwt/uibinder/sample/client/ClickyLink.java
rename to user/test/com/google/gwt/uibinder/test/client/ClickyLink.java
index 60e2381..236f444 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/ClickyLink.java
+++ b/user/test/com/google/gwt/uibinder/test/client/ClickyLink.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.css b/user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.css
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.css
rename to user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.css
diff --git a/user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.java b/user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.java
similarity index 97%
rename from user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.java
rename to user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.java
index 1e1f90a..d92f049 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.java
+++ b/user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.DivElement;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.ui.xml b/user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.ui.xml
similarity index 82%
rename from user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.ui.xml
rename to user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.ui.xml
index 3c56a2c..b4cbe2b 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/CssImportScopeSample.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/CssImportScopeSample.ui.xml
@@ -12,10 +12,10 @@
 <!-- limitations under the License.                                         -->
 
 <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' >
-  <ui:with field='bundle' type='com.google.gwt.uibinder.sample.client.CssImportScopeSample.Bundle' />
+  <ui:with field='bundle' type='com.google.gwt.uibinder.test.client.CssImportScopeSample.Bundle' />
   
-  <ui:style import='com.google.gwt.uibinder.sample.client.CssImportScopeSample.OuterStyle
-        com.google.gwt.uibinder.sample.client.CssImportScopeSample.InnerStyle'>
+  <ui:style import='com.google.gwt.uibinder.test.client.CssImportScopeSample.OuterStyle
+        com.google.gwt.uibinder.test.client.CssImportScopeSample.InnerStyle'>
     .outer-body .inner-body { width: 100px; background-color: red; }   
   </ui:style>
 
diff --git a/user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.css b/user/test/com/google/gwt/uibinder/test/client/DomBasedUi.css
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.css
rename to user/test/com/google/gwt/uibinder/test/client/DomBasedUi.css
diff --git a/user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.java b/user/test/com/google/gwt/uibinder/test/client/DomBasedUi.java
similarity index 97%
rename from user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.java
rename to user/test/com/google/gwt/uibinder/test/client/DomBasedUi.java
index 1c687c1..b3cd75c 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.java
+++ b/user/test/com/google/gwt/uibinder/test/client/DomBasedUi.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.Element;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/DomBasedUi.ui.xml
similarity index 95%
rename from user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.ui.xml
rename to user/test/com/google/gwt/uibinder/test/client/DomBasedUi.ui.xml
index a4b2688..9b42336 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/DomBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/DomBasedUi.ui.xml
@@ -13,7 +13,7 @@
 <!-- limitations under the License.                                         -->
 <ui:UiBinder
   xmlns:ui='urn:ui:com.google.gwt.uibinder'
-  xmlns:res='urn:with:com.google.gwt.uibinder.sample.client.DomBasedUi.Resources'
+  xmlns:res='urn:with:com.google.gwt.uibinder.test.client.DomBasedUi.Resources'
   >
   <div ui:field='root' res:class="style.bodyColor style.bodyFont" 
       title="The title of this div is localizable">
diff --git a/user/test/com/google/gwt/uibinder/sample/client/ExplicitElementPanel.java b/user/test/com/google/gwt/uibinder/test/client/ExplicitElementPanel.java
similarity index 95%
rename from user/test/com/google/gwt/uibinder/sample/client/ExplicitElementPanel.java
rename to user/test/com/google/gwt/uibinder/test/client/ExplicitElementPanel.java
index 07c6374..d646164 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/ExplicitElementPanel.java
+++ b/user/test/com/google/gwt/uibinder/test/client/ExplicitElementPanel.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.uibinder.client.UiConstructor;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/ExplicitElementWidget.java b/user/test/com/google/gwt/uibinder/test/client/ExplicitElementWidget.java
similarity index 96%
rename from user/test/com/google/gwt/uibinder/sample/client/ExplicitElementWidget.java
rename to user/test/com/google/gwt/uibinder/test/client/ExplicitElementWidget.java
index 4028b45..a31993e 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/ExplicitElementWidget.java
+++ b/user/test/com/google/gwt/uibinder/test/client/ExplicitElementWidget.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.dom.client.Document;
 import com.google.gwt.uibinder.client.UiConstructor;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/FakeBundle.java b/user/test/com/google/gwt/uibinder/test/client/FakeBundle.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/FakeBundle.java
rename to user/test/com/google/gwt/uibinder/test/client/FakeBundle.java
index e96234b..1edd44c 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/FakeBundle.java
+++ b/user/test/com/google/gwt/uibinder/test/client/FakeBundle.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 /**
  * Faux bundle used by test.
diff --git a/user/test/com/google/gwt/uibinder/sample/client/FooLabel.java b/user/test/com/google/gwt/uibinder/test/client/FooLabel.java
similarity index 96%
rename from user/test/com/google/gwt/uibinder/sample/client/FooLabel.java
rename to user/test/com/google/gwt/uibinder/test/client/FooLabel.java
index 0978271..0a60d89 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/FooLabel.java
+++ b/user/test/com/google/gwt/uibinder/test/client/FooLabel.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.uibinder.client.UiConstructor;
 import com.google.gwt.user.client.ui.Composite;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/HandlerDemo.java b/user/test/com/google/gwt/uibinder/test/client/HandlerDemo.java
similarity index 97%
rename from user/test/com/google/gwt/uibinder/sample/client/HandlerDemo.java
rename to user/test/com/google/gwt/uibinder/test/client/HandlerDemo.java
index 11f3b78..30ccdcd 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/HandlerDemo.java
+++ b/user/test/com/google/gwt/uibinder/test/client/HandlerDemo.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/HandlerDemo.ui.xml b/user/test/com/google/gwt/uibinder/test/client/HandlerDemo.ui.xml
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/HandlerDemo.ui.xml
rename to user/test/com/google/gwt/uibinder/test/client/HandlerDemo.ui.xml
diff --git a/user/test/com/google/gwt/uibinder/sample/client/Menu.css b/user/test/com/google/gwt/uibinder/test/client/Menu.css
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/Menu.css
rename to user/test/com/google/gwt/uibinder/test/client/Menu.css
diff --git a/user/test/com/google/gwt/uibinder/sample/client/MyDatePicker.java b/user/test/com/google/gwt/uibinder/test/client/MyDatePicker.java
similarity index 95%
rename from user/test/com/google/gwt/uibinder/sample/client/MyDatePicker.java
rename to user/test/com/google/gwt/uibinder/test/client/MyDatePicker.java
index 1d329a1..3ee251c 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/MyDatePicker.java
+++ b/user/test/com/google/gwt/uibinder/test/client/MyDatePicker.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.user.datepicker.client.DatePicker;
 
diff --git a/user/test/com/google/gwt/uibinder/sample/client/MyEntities.ent b/user/test/com/google/gwt/uibinder/test/client/MyEntities.ent
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/MyEntities.ent
rename to user/test/com/google/gwt/uibinder/test/client/MyEntities.ent
diff --git a/user/test/com/google/gwt/uibinder/sample/client/NeedlesslyAnnotatedLabel.java b/user/test/com/google/gwt/uibinder/test/client/NeedlesslyAnnotatedLabel.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/NeedlesslyAnnotatedLabel.java
rename to user/test/com/google/gwt/uibinder/test/client/NeedlesslyAnnotatedLabel.java
index 4ac51bb..f8e6716 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/NeedlesslyAnnotatedLabel.java
+++ b/user/test/com/google/gwt/uibinder/test/client/NeedlesslyAnnotatedLabel.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.uibinder.client.UiConstructor;
 import com.google.gwt.user.client.ui.Label;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/PointlessRadioButtonSubclass.java b/user/test/com/google/gwt/uibinder/test/client/PointlessRadioButtonSubclass.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/PointlessRadioButtonSubclass.java
rename to user/test/com/google/gwt/uibinder/test/client/PointlessRadioButtonSubclass.java
index 62b8163..a8f67e1 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/PointlessRadioButtonSubclass.java
+++ b/user/test/com/google/gwt/uibinder/test/client/PointlessRadioButtonSubclass.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.user.client.ui.RadioButton;
 
diff --git a/user/test/com/google/gwt/uibinder/sample/client/StrictLabel.java b/user/test/com/google/gwt/uibinder/test/client/StrictLabel.java
similarity index 94%
rename from user/test/com/google/gwt/uibinder/sample/client/StrictLabel.java
rename to user/test/com/google/gwt/uibinder/test/client/StrictLabel.java
index 331f7ba4..51e0009 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/StrictLabel.java
+++ b/user/test/com/google/gwt/uibinder/test/client/StrictLabel.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.user.client.ui.InlineLabel;
 
diff --git a/user/test/com/google/gwt/uibinder/sample/client/UiBinderTest.java b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
similarity index 99%
rename from user/test/com/google/gwt/uibinder/sample/client/UiBinderTest.java
rename to user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
index 7a12ded..c58c289 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/UiBinderTest.java
+++ b/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.DivElement;
@@ -46,7 +46,7 @@
 
   @Override
   public String getModuleName() {
-    return "com.google.gwt.uibinder.UiBinderTestModule";
+    return "com.google.gwt.uibinder.test.UiBinderTestApp";
   }
 
   @Override
diff --git a/user/test/com/google/gwt/uibinder/sample/client/UiBinderDemo.java b/user/test/com/google/gwt/uibinder/test/client/UiBinderTestApp.java
similarity index 90%
rename from user/test/com/google/gwt/uibinder/sample/client/UiBinderDemo.java
rename to user/test/com/google/gwt/uibinder/test/client/UiBinderTestApp.java
index a1d6d84..5b2fb95 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/UiBinderDemo.java
+++ b/user/test/com/google/gwt/uibinder/test/client/UiBinderTestApp.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.EntryPoint;
 import com.google.gwt.dom.client.Document;
@@ -22,7 +22,7 @@
 /**
  * Demonstration of templated UI. Used by UiBinderTest
  */
-public class UiBinderDemo implements EntryPoint {
+public class UiBinderTestApp implements EntryPoint {
 
   public void onModuleLoad() {
     DomBasedUi boundUi = new DomBasedUi("Mr. User Man");
diff --git a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.css b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.css
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.css
rename to user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.css
diff --git a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.java b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
similarity index 98%
rename from user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.java
rename to user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
index 2a5e0f1..c819f6b 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.java
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.DListElement;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
similarity index 98%
rename from user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.ui.xml
rename to user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
index 3f3cc0c..ada70ec 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
@@ -46,7 +46,7 @@
 
 <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
   xmlns:gwt='urn:import:com.google.gwt.user.client.ui'
-  xmlns:demo='urn:import:com.google.gwt.uibinder.sample.client'
+  xmlns:demo='urn:import:com.google.gwt.uibinder.test.client'
 
   ui:defaultLocale="en_us"
   ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
@@ -55,7 +55,7 @@
   ui:generateLocales="default"
 >
 
-<ui:with field='external' type='com.google.gwt.uibinder.sample.client.WidgetBasedUiExternalResources'>
+<ui:with field='external' type='com.google.gwt.uibinder.test.client.WidgetBasedUiExternalResources'>
   (This text is ignored, but it's a handy place to document a resource.)
   
   external is used to test receiving a resource from the owner via
@@ -63,7 +63,7 @@
   injection via Gin and the like
 </ui:with>
 
-<ui:with field='values' type='com.google.gwt.uibinder.sample.client.FakeBundle'>
+<ui:with field='values' type='com.google.gwt.uibinder.test.client.FakeBundle'>
   Tests the default creation of a resource via GWT.create(), and also the ability
   for a resource to provide arbitrary objects to arbitrary attributes (look for FooLabel)
 </ui:with>
@@ -72,13 +72,13 @@
   Tests creating a CssResource from an external file.
  -->
 <ui:style field='myStyle' src='WidgetBasedUi.css Menu.css' 
-    type='com.google.gwt.uibinder.sample.client.WidgetBasedUi.Style'>
+    type='com.google.gwt.uibinder.test.client.WidgetBasedUi.Style'>
     .menuBar { 
       font-family: sans-serif;
     }
 </ui:style>
  
-<ui:style field='myOtherStyle' type='com.google.gwt.uibinder.sample.client.WidgetBasedUi.Style'>
+<ui:style field='myOtherStyle' type='com.google.gwt.uibinder.test.client.WidgetBasedUi.Style'>
   /* because we extend WidgetBasedUi.Style and it's tagged @Shared, we can refine the menubar 
      style defined in other files */
   
diff --git a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUiExternal.css b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUiExternal.css
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUiExternal.css
rename to user/test/com/google/gwt/uibinder/test/client/WidgetBasedUiExternal.css
diff --git a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUiExternalResources.java b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUiExternalResources.java
similarity index 95%
rename from user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUiExternalResources.java
rename to user/test/com/google/gwt/uibinder/test/client/WidgetBasedUiExternalResources.java
index d06fc27..cf360f2 100644
--- a/user/test/com/google/gwt/uibinder/sample/client/WidgetBasedUiExternalResources.java
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUiExternalResources.java
@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.google.gwt.uibinder.sample.client;
+package com.google.gwt.uibinder.test.client;
 
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.CssResource;
diff --git a/user/test/com/google/gwt/uibinder/sample/client/down.png b/user/test/com/google/gwt/uibinder/test/client/down.png
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/down.png
rename to user/test/com/google/gwt/uibinder/test/client/down.png
Binary files differ
diff --git a/user/test/com/google/gwt/uibinder/sample/client/heart.cur b/user/test/com/google/gwt/uibinder/test/client/heart.cur
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/heart.cur
rename to user/test/com/google/gwt/uibinder/test/client/heart.cur
Binary files differ
diff --git a/user/test/com/google/gwt/uibinder/sample/client/prettyImage.png b/user/test/com/google/gwt/uibinder/test/client/prettyImage.png
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/prettyImage.png
rename to user/test/com/google/gwt/uibinder/test/client/prettyImage.png
Binary files differ
diff --git a/user/test/com/google/gwt/uibinder/sample/client/right.png b/user/test/com/google/gwt/uibinder/test/client/right.png
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/client/right.png
rename to user/test/com/google/gwt/uibinder/test/client/right.png
Binary files differ
diff --git a/user/test/com/google/gwt/uibinder/sample/public/UiBinderDemo.html b/user/test/com/google/gwt/uibinder/test/public/UiBinderDemo.html
similarity index 100%
rename from user/test/com/google/gwt/uibinder/sample/public/UiBinderDemo.html
rename to user/test/com/google/gwt/uibinder/test/public/UiBinderDemo.html
