diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ClientModule.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ClientModule.java
index a61f1ec..4aac38f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ClientModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ClientModule.java
@@ -14,31 +14,16 @@
 
 package com.googlesource.gerrit.plugins.reviewers;
 
-import com.google.gerrit.extensions.config.FactoryModule;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.webui.GwtPlugin;
 import com.google.gerrit.extensions.webui.TopMenu;
 import com.google.gerrit.extensions.webui.WebUiPlugin;
-import com.google.inject.Inject;
-import com.googlesource.gerrit.plugins.reviewers.server.ReviewersConfig;
+import com.google.inject.AbstractModule;
 
-public class ClientModule extends FactoryModule {
-  private final boolean enableUI;
-
-  @Inject
-  public ClientModule(ReviewersConfig cfg) {
-    this(cfg.enableUI());
-  }
-
-  public ClientModule(boolean enableUI) {
-    this.enableUI = enableUI;
-  }
-
+public class ClientModule extends AbstractModule {
   @Override
   protected void configure() {
-    if (enableUI) {
-      DynamicSet.bind(binder(), TopMenu.class).to(ReviewersTopMenu.class);
-      DynamicSet.bind(binder(), WebUiPlugin.class).toInstance(new GwtPlugin("reviewers"));
-    }
+    DynamicSet.bind(binder(), TopMenu.class).to(ReviewersTopMenu.class);
+    DynamicSet.bind(binder(), WebUiPlugin.class).toInstance(new GwtPlugin("reviewers"));
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
index 7939fe8..55b663c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
@@ -30,6 +30,6 @@
   @Override
   protected void configure() {
     install(new BackendModule(cfg.enableREST(), cfg.suggestOnly()));
-    install(new ClientModule(cfg.enableUI()));
+    install(new ClientModule());
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/server/ReviewersConfig.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/server/ReviewersConfig.java
index a940dae..a12c45f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/server/ReviewersConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/server/ReviewersConfig.java
@@ -44,13 +44,11 @@
   static final String KEY_REVIEWER = "reviewer";
   private static final String KEY_IGNORE_DRAFTS = "ignoreDrafts";
   private static final String KEY_ENABLE_REST = "enableREST";
-  private static final String KEY_ENABLE_UI = "enableUI";
   private static final String KEY_SUGGEST_ONLY = "suggestOnly";
 
   private final PluginConfigFactory cfgFactory;
   private final String pluginName;
 
-  private final boolean enableUI;
   private final boolean enableREST;
   private final boolean suggestOnly;
   private final boolean ignoreDrafts;
@@ -62,7 +60,6 @@
     Config cfg = cfgFactory.getGlobalPluginConfig(pluginName);
     this.ignoreDrafts = cfg.getBoolean(pluginName, null, KEY_IGNORE_DRAFTS, false);
     this.enableREST = cfg.getBoolean(pluginName, null, KEY_ENABLE_REST, true);
-    this.enableUI = enableREST ? cfg.getBoolean(pluginName, null, KEY_ENABLE_UI, true) : false;
     this.suggestOnly = cfg.getBoolean(pluginName, null, KEY_SUGGEST_ONLY, false);
   }
 
@@ -85,10 +82,6 @@
     return enableREST;
   }
 
-  public boolean enableUI() {
-    return enableUI;
-  }
-
   public boolean suggestOnly() {
     return suggestOnly;
   }
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index eb77417..2c3627a 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -7,7 +7,6 @@
 ```
   [reviewers]
     enableREST = true
-    enableUI = false
     suggestOnly = false
 ```
 
@@ -15,10 +14,6 @@
 :	Enable the REST API. When set to false, the REST API is not available.
 	Defaults to true.
 
-reviewers.enableUI
-:	Enable the UI.  When set to false, the 'Reviewers' menu is not displayed
-	on the project screen. Defaults to true, or false when `enableREST` is false.
-
 reviewers.suggestOnly
 :	Provide the configured reviewers as suggestions in the "Add Reviewer" dialog
 	instead of automatically adding them to the change. Only supports accounts;
