diff --git a/BUCK b/BUCK
index f0d36d3..40fe52c 100644
--- a/BUCK
+++ b/BUCK
@@ -1,21 +1,21 @@
 include_defs('//bucklets/gerrit_plugin.bucklet')
 
 gerrit_plugin(
-  name = 'dependson',
+  name = 'zuul',
   srcs = glob(['src/main/java/**/*.java']),
   resources = glob(['src/main/**/*']),
-  gwt_module = 'com.googlesource.gerrit.plugins.dependson.DependsOn',
+  gwt_module = 'com.googlesource.gerrit.plugins.zuul.Zuul',
   manifest_entries = [
-    'Gerrit-PluginName: dependson',
+    'Gerrit-PluginName: zuul',
     'Gerrit-ApiType: plugin',
     'Gerrit-ApiVersion: 2.13-SNAPSHOT',
-    'Gerrit-Module: com.googlesource.gerrit.plugins.dependson.Module',
-    'Gerrit-HttpModule: com.googlesource.gerrit.plugins.dependson.HttpModule',
+    'Gerrit-Module: com.googlesource.gerrit.plugins.zuul.Module',
+    'Gerrit-HttpModule: com.googlesource.gerrit.plugins.zuul.HttpModule',
   ],
 )
 
 # this is required for bucklets/tools/eclipse/project.py to work
 java_library(
   name = 'classpath',
-  deps = [':dependson__plugin'],
+  deps = [':zuul__plugin'],
 )
diff --git a/README.md b/README.md
index f884c9f..8ba1066 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,25 @@
-# Gerrit Depends On Plugin
+# Gerrit Zuul Plugin
 
 Openstack uses [Zuul] for project gating and one of the features of Zuul is
 [cross repository dependencies] (CRD).  Zuul will detect CRDs in git
 commit messages to allow it to arrange patchsets (in order) before scheduling
 them for build and test.
 
-It can become very difficult, downright confusing really to determine the
-dependency relationships with only the 'depends-on' reference.  Also the use
-of CRD can produce [dependency cycles] which can cause Zuul to be ineffective.
-To help alleviate these issues this plugin adds a 'needed-by' reference on the
-Gerrit UI.  It also adds dependency cycle detection and will display the CRD
-references in red if a cycle has been detected.  This plugin also adds a REST
-endpoint to allow other clients to retrieve CRD info.
+The problems with having only a 'depends-on' reference:
+* It can become very difficult, downright confusing really, to determine the
+dependency relationships.
+* The use of CRD can produce [dependency cycles] which can be difficult to
+detect.
 
-More information about this plugin can be found in the documentation.
+To help alleviate these issues this plugin adds the following:
+* A reverse lookup for the 'depends-on' reference. The 'needed-by' reference has
+been added to the Gerrit UI to let users know that the currently viewed change
+is needed by a referenced change.
+* Dependency cycle detection which will display the CRD references in red if a
+dependency cycle has been detected.
+* A REST endpoint to allow other clients to retrieve CRD info.
+
+Detailed information about this plugin can be found in the documentation.
 
 [Zuul]: http://docs.openstack.org/infra/zuul/index.html
 [cross repository dependencies]: http://docs.openstack.org/infra/zuul/gating.html#cross-repository-dependencies
diff --git a/pom.xml b/pom.xml
index b43fcce..07137ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,10 +19,10 @@
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>com.googlesource.gerrit.plugins</groupId>
-  <artifactId>dependson</artifactId>
+  <artifactId>zuul</artifactId>
   <packaging>jar</packaging>
   <version>2.13-SNAPSHOT</version>
-  <name>dependson</name>
+  <name>zuul</name>
 
   <properties>
     <Gerrit-ApiType>plugin</Gerrit-ApiType>
@@ -41,9 +41,9 @@
           </includes>
           <archive>
             <manifestEntries>
-              <Gerrit-PluginName>dependson</Gerrit-PluginName>
-              <Gerrit-Module>com.googlesource.gerrit.plugins.dependson.Module</Gerrit-Module>
-              <Gerrit-HttpModule>com.googlesource.gerrit.plugins.dependson.HttpModule</Gerrit-HttpModule>
+              <Gerrit-PluginName>zuul</Gerrit-PluginName>
+              <Gerrit-Module>com.googlesource.gerrit.plugins.zuul.Module</Gerrit-Module>
+              <Gerrit-HttpModule>com.googlesource.gerrit.plugins.zuul.HttpModule</Gerrit-HttpModule>
               <Implementation-Vendor>Gerrit Code Review</Implementation-Vendor>
               <Implementation-URL>https://www.gerritcodereview.com/</Implementation-URL>
 
@@ -73,7 +73,7 @@
         <artifactId>gwt-maven-plugin</artifactId>
         <version>2.7.0</version>
         <configuration>
-          <module>com.googlesource.gerrit.plugins.dependson.DependsOn</module>
+          <module>com.googlesource.gerrit.plugins.zuul.Zuul</module>
           <disableClassMetadata>true</disableClassMetadata>
           <disableCastChecking>true</disableCastChecking>
           <webappDirectory>${project.build.directory}/classes/static</webappDirectory>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/DependencyInfo.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/DependencyInfo.java
similarity index 93%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/DependencyInfo.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/DependencyInfo.java
index b7306e9..72c305f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/DependencyInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/DependencyInfo.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson;
+package com.googlesource.gerrit.plugins.zuul;
 
 import java.util.List;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/GetDependency.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/GetDependency.java
similarity index 98%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/GetDependency.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/GetDependency.java
index 1ed078a..bdfa2bc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/GetDependency.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/GetDependency.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson;
+package com.googlesource.gerrit.plugins.zuul;
 
 import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.restapi.AuthException;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/HttpModule.java
similarity index 90%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/HttpModule.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/HttpModule.java
index 09ffaff..6c6ad48 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/HttpModule.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson;
+package com.googlesource.gerrit.plugins.zuul;
 
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.webui.GwtPlugin;
@@ -24,6 +24,6 @@
   @Override
   protected void configureServlets() {
     DynamicSet.bind(binder(), WebUiPlugin.class)
-        .toInstance(new GwtPlugin("dependson"));
+        .toInstance(new GwtPlugin("zuul"));
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/Module.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/Module.java
similarity index 95%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/Module.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/Module.java
index 9232b0f..fe0f020 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/Module.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson;
+package com.googlesource.gerrit.plugins.zuul;
 
 import static com.google.gerrit.server.change.RevisionResource.REVISION_KIND;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/DependsOn.gwt.xml b/src/main/java/com/googlesource/gerrit/plugins/zuul/Zuul.gwt.xml
similarity index 87%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/DependsOn.gwt.xml
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/Zuul.gwt.xml
index ad3ad15..d9bad3d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/DependsOn.gwt.xml
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/Zuul.gwt.xml
@@ -14,7 +14,7 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<module rename-to="dependson">
+<module rename-to="zuul">
   <!-- Inherit the core Web Toolkit stuff.                        -->
   <inherits name="com.google.gwt.user.User"/>
   <!-- Other module inherits                                      -->
@@ -24,6 +24,6 @@
   <!-- resources to the plugin. No theme inherits lines were      -->
   <!-- added in order to make this plugin as simple as possible   -->
   <!-- Specify the app entry point class.                         -->
-  <entry-point class="com.googlesource.gerrit.plugins.dependson.client.DependsOnPlugin"/>
-  <stylesheet src="dependson.css"/>
+  <entry-point class="com.googlesource.gerrit.plugins.zuul.client.ZuulPlugin"/>
+  <stylesheet src="zuul.css"/>
 </module>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependencyInfo.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/DependencyInfo.java
similarity index 87%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependencyInfo.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/client/DependencyInfo.java
index 144d1b2..6541ffa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependencyInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/DependencyInfo.java
@@ -1,4 +1,4 @@
-package com.googlesource.gerrit.plugins.dependson.client;
+package com.googlesource.gerrit.plugins.zuul.client;
 
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.core.client.JsArrayString;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/LabelPanel.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/LabelPanel.java
similarity index 98%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/client/LabelPanel.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/client/LabelPanel.java
index c8986e6..aa56c1c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/LabelPanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/LabelPanel.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson.client;
+package com.googlesource.gerrit.plugins.zuul.client;
 
 import com.google.gerrit.client.GerritUiExtensionPoint;
 import com.google.gerrit.client.info.ChangeInfo;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependsOnPlugin.java b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/ZuulPlugin.java
similarity index 90%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependsOnPlugin.java
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/client/ZuulPlugin.java
index 6ffda81..ddd80f8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/dependson/client/DependsOnPlugin.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuul/client/ZuulPlugin.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package com.googlesource.gerrit.plugins.dependson.client;
+package com.googlesource.gerrit.plugins.zuul.client;
 
 import com.google.gerrit.client.GerritUiExtensionPoint;
 import com.google.gerrit.client.Resources;
@@ -20,7 +20,7 @@
 import com.google.gerrit.plugin.client.PluginEntryPoint;
 import com.google.gwt.core.client.GWT;
 
-public class DependsOnPlugin extends PluginEntryPoint {
+public class ZuulPlugin extends PluginEntryPoint {
   public static final Resources RESOURCES = GWT.create(Resources.class);
 
   @Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/dependson/public/dependson.css b/src/main/java/com/googlesource/gerrit/plugins/zuul/public/zuul.css
similarity index 100%
rename from src/main/java/com/googlesource/gerrit/plugins/dependson/public/dependson.css
rename to src/main/java/com/googlesource/gerrit/plugins/zuul/public/zuul.css
