diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/AddSshKey.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/AddSshKey.java
index 6549578..07e65d1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/AddSshKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/AddSshKey.java
@@ -23,10 +23,12 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import java.io.IOException;
 
-public class AddSshKey implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class AddSshKey implements RestModifyView<ServiceUserResource, Input> {
   private final Provider<com.google.gerrit.server.account.AddSshKey> addSshKey;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
index 585fbad..b0ebf64 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
@@ -70,7 +70,7 @@
 import java.util.Locale;
 
 @RequiresCapability(CreateServiceUserCapability.ID)
-public class CreateServiceUser implements RestModifyView<ConfigResource, Input> {
+class CreateServiceUser implements RestModifyView<ConfigResource, Input> {
   private static final Logger log =
       LoggerFactory.getLogger(CreateServiceUser.class);
 
@@ -86,7 +86,7 @@
     String email;
   }
 
-  public static interface Factory {
+  interface Factory {
     CreateServiceUser create(String username);
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCapability.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCapability.java
index 79e5adf..ae782ec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCapability.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCapability.java
@@ -16,7 +16,7 @@
 
 import com.google.gerrit.extensions.config.CapabilityDefinition;
 
-public class CreateServiceUserCapability extends CapabilityDefinition {
+class CreateServiceUserCapability extends CapabilityDefinition {
 
   public final static String ID = "createServiceUser";
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCommand.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCommand.java
index d86c93e..feccb9e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserCommand.java
@@ -32,7 +32,7 @@
 
 @RequiresCapability(CreateServiceUserCapability.ID)
 @CommandMetaData(name = "create", description = "Create Service User")
-public class CreateServiceUserCommand extends SshCommand {
+class CreateServiceUserCommand extends SshCommand {
 
   @Argument(index = 0, required = true, metaVar = "USERNAME", usage = "name of the service user")
   private String username;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteActive.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteActive.java
index c034838..814b80f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteActive.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteActive.java
@@ -21,8 +21,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class DeleteActive implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class DeleteActive implements RestModifyView<ServiceUserResource, Input> {
   private final Provider<com.google.gerrit.server.account.DeleteActive> deleteActive;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteSshKey.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteSshKey.java
index 84feaa4..5823cf2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteSshKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/DeleteSshKey.java
@@ -21,8 +21,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class DeleteSshKey implements
+@Singleton
+class DeleteSshKey implements
     RestModifyView<ServiceUserResource.SshKey, Input> {
   private final Provider<com.google.gerrit.server.account.DeleteSshKey> deleteSshKey;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetActive.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetActive.java
index 5640a5b..d279cc7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetActive.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetActive.java
@@ -17,8 +17,10 @@
 import com.google.gerrit.extensions.restapi.RestReadView;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class GetActive implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetActive implements RestReadView<ServiceUserResource> {
   private final Provider<com.google.gerrit.server.account.GetActive> getActive;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetConfig.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetConfig.java
index e545e87..ece878d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetConfig.java
@@ -27,6 +27,7 @@
 import com.google.gerrit.server.group.GroupJson.GroupInfo;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,7 +37,8 @@
 import java.util.Map;
 import java.util.TreeMap;
 
-public class GetConfig implements RestReadView<ConfigResource> {
+@Singleton
+class GetConfig implements RestReadView<ConfigResource> {
   private static final Logger log = LoggerFactory.getLogger(GetConfig.class);
 
   private final PluginConfig cfg;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetEmail.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetEmail.java
index 60d3710..0fd97da 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetEmail.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetEmail.java
@@ -15,8 +15,10 @@
 package com.googlesource.gerrit.plugins.serviceuser;
 
 import com.google.gerrit.extensions.restapi.RestReadView;
+import com.google.inject.Singleton;
 
-public class GetEmail implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetEmail implements RestReadView<ServiceUserResource> {
 
   @Override
   public String apply(ServiceUserResource rsrc) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetName.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetName.java
index b7b35ff..a1a1db4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetName.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetName.java
@@ -17,8 +17,10 @@
 import com.google.gerrit.extensions.restapi.RestReadView;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class GetName implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetName implements RestReadView<ServiceUserResource> {
   private final Provider<com.google.gerrit.server.account.GetName> getName;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetOwner.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetOwner.java
index 1f9f063..45ad2ba 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetOwner.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetOwner.java
@@ -29,8 +29,10 @@
 import com.google.gerrit.server.project.ProjectCache;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
-public class GetOwner implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetOwner implements RestReadView<ServiceUserResource> {
   private final GroupsCollection groups;
   private final ProjectLevelConfig storage;
   private final GroupJson json;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
index da5d4cf..6056524 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
@@ -32,10 +32,12 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import org.eclipse.jgit.lib.Config;
 
-public class GetServiceUser implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetServiceUser implements RestReadView<ServiceUserResource> {
   private final Provider<GetAccount> getAccount;
   private final ProjectLevelConfig storage;
   private final GetOwner getOwner;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKey.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKey.java
index 04827cf..6311bba 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKey.java
@@ -19,8 +19,10 @@
 import com.google.gerrit.server.account.GetSshKeys.SshKeyInfo;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class GetSshKey implements RestReadView<ServiceUserResource.SshKey> {
+@Singleton
+class GetSshKey implements RestReadView<ServiceUserResource.SshKey> {
   private final Provider<com.google.gerrit.server.account.GetSshKey> getSshKey;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKeys.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKeys.java
index b3e1dfa..8a3b4a6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKeys.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetSshKeys.java
@@ -20,10 +20,12 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import java.util.List;
 
-public class GetSshKeys implements RestReadView<ServiceUserResource> {
+@Singleton
+class GetSshKeys implements RestReadView<ServiceUserResource> {
   private final Provider<com.google.gerrit.server.account.GetSshKeys> getSshKeys;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
index ebd8116..157d7d7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
@@ -24,7 +24,7 @@
 import java.util.Locale;
 import java.util.TimeZone;
 
-public class HeaderFormatter {
+class HeaderFormatter {
   private final StringBuilder sb = new StringBuilder();
   private final DateFormat rfc2822DateFormatter;
   private final String anonymousCowardName;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HttpModule.java
index 43d843e..53ef9b0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HttpModule.java
@@ -19,7 +19,7 @@
 import com.google.gerrit.extensions.webui.WebUiPlugin;
 import com.google.gerrit.httpd.plugins.HttpPluginModule;
 
-public class HttpModule extends HttpPluginModule {
+class HttpModule extends HttpPluginModule {
 
   @Override
   protected void configureServlets() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ListServiceUsers.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ListServiceUsers.java
index 976ee07..b295df2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ListServiceUsers.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ListServiceUsers.java
@@ -31,6 +31,7 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.GetServiceUser.ServiceUserInfo;
 
@@ -38,7 +39,8 @@
 
 import java.util.Map;
 
-public class ListServiceUsers implements RestReadView<ConfigResource> {
+@Singleton
+class ListServiceUsers implements RestReadView<ConfigResource> {
   private final Provider<CurrentUser> userProvider;
   private final ProjectLevelConfig storage;
   private final AccountCache accountCache;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
index 1282925..f1c2618 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
@@ -29,7 +29,7 @@
 import com.google.inject.AbstractModule;
 import com.google.inject.assistedinject.FactoryModuleBuilder;
 
-public class Module extends AbstractModule {
+class Module extends AbstractModule {
 
   @Override
   protected void configure() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutActive.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutActive.java
index dd59865..6392dde 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutActive.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutActive.java
@@ -21,8 +21,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class PutActive implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class PutActive implements RestModifyView<ServiceUserResource, Input> {
   private final Provider<com.google.gerrit.server.account.PutActive> putActive;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
index a58aa83..7a8ee84 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
@@ -27,6 +27,7 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.PutConfig.Input;
 
@@ -39,7 +40,8 @@
 import java.util.List;
 
 @RequiresCapability(GlobalCapability.ADMINISTRATE_SERVER)
-public class PutConfig implements RestModifyView<ConfigResource, Input>{
+@Singleton
+class PutConfig implements RestModifyView<ConfigResource, Input> {
   public static class Input {
     public String info;
     public String onSuccess;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutEmail.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutEmail.java
index 5e1f2fe..778a7fe 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutEmail.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutEmail.java
@@ -32,10 +32,12 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.PutEmail.Input;
 
-public class PutEmail implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class PutEmail implements RestModifyView<ServiceUserResource, Input> {
   public static class Input {
     @DefaultInput
     public String email;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutName.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutName.java
index fe7f140..d25f028 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutName.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutName.java
@@ -22,8 +22,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class PutName implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class PutName implements RestModifyView<ServiceUserResource, Input> {
   private Provider<com.google.gerrit.server.account.PutName> putName;
 
   @Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
index 57cb5dd..be3c3c5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutOwner.java
@@ -39,6 +39,7 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.PutOwner.Input;
 
@@ -47,7 +48,8 @@
 
 import java.io.IOException;
 
-public class PutOwner implements RestModifyView<ServiceUserResource, Input> {
+@Singleton
+class PutOwner implements RestModifyView<ServiceUserResource, Input> {
   public static class Input {
     @DefaultInput
     public String group;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/RefUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/RefUpdateListener.java
index c64a80c..5d709a2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/RefUpdateListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/RefUpdateListener.java
@@ -24,6 +24,7 @@
 import com.google.gerrit.server.git.WorkQueue;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
 import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException;
 import org.eclipse.jgit.lib.ObjectId;
@@ -33,7 +34,8 @@
 
 import java.io.IOException;
 
-public class RefUpdateListener implements GitReferenceUpdatedListener {
+@Singleton
+class RefUpdateListener implements GitReferenceUpdatedListener {
   private static final Logger log = LoggerFactory
       .getLogger(RefUpdateListener.class);
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserCollection.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserCollection.java
index 30b125d..19ef84c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserCollection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserCollection.java
@@ -39,8 +39,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class ServiceUserCollection implements
+@Singleton
+class ServiceUserCollection implements
     ChildCollection<ConfigResource, ServiceUserResource>,
     AcceptsCreate<ConfigResource> {
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserInput.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserInput.java
index 60f566b..1d34b87 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserInput.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserInput.java
@@ -16,9 +16,9 @@
 
 import com.google.gerrit.server.account.CreateAccount;
 
-public class ServiceUserInput extends CreateAccount.Input {
+class ServiceUserInput extends CreateAccount.Input {
 
-  public ServiceUserInput(String username, String email, String sshKey) {
+  ServiceUserInput(String username, String email, String sshKey) {
     this.username = username;
     this.name = username;
     this.email = email;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserMenu.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserMenu.java
index c2fd405..f61ea25 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserMenu.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserMenu.java
@@ -27,14 +27,14 @@
 
 import java.util.List;
 
-public class ServiceUserMenu implements TopMenu {
+class ServiceUserMenu implements TopMenu {
   private final String pluginName;
   private final Provider<CurrentUser> userProvider;
   private final List<MenuEntry> menuEntries;
   private final Provider<ListServiceUsers> listServiceUsers;
 
   @Inject
-  public ServiceUserMenu(@PluginName String pluginName,
+  ServiceUserMenu(@PluginName String pluginName,
       Provider<CurrentUser> userProvider,
       Provider<ListServiceUsers> listServiceUsers) {
     this.pluginName = pluginName;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
index e29c304..7f60c4a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
@@ -35,6 +35,7 @@
 import com.google.gwtorm.server.SchemaFactory;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.GetServiceUser.ServiceUserInfo;
 
@@ -48,7 +49,8 @@
 import java.util.List;
 import java.util.Set;
 
-public class ServiceUserResolver {
+@Singleton
+class ServiceUserResolver {
   private static final Logger log =
       LoggerFactory.getLogger(ServiceUserResolver.class);
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
index a27b69b..6d9d4ec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
@@ -20,31 +20,31 @@
 import com.google.gerrit.server.account.AccountResource;
 import com.google.inject.TypeLiteral;
 
-public class ServiceUserResource extends AccountResource {
-  public static final TypeLiteral<RestView<ServiceUserResource>> SERVICE_USER_KIND =
+class ServiceUserResource extends AccountResource {
+  static final TypeLiteral<RestView<ServiceUserResource>> SERVICE_USER_KIND =
       new TypeLiteral<RestView<ServiceUserResource>>() {};
 
-  public static final TypeLiteral<RestView<SshKey>> SSH_KEY_KIND =
+  static final TypeLiteral<RestView<SshKey>> SSH_KEY_KIND =
       new TypeLiteral<RestView<SshKey>>() {};
 
-  public ServiceUserResource(IdentifiedUser user) {
+  ServiceUserResource(IdentifiedUser user) {
     super(user);
   }
 
-  public static class SshKey extends ServiceUserResource {
+  static class SshKey extends ServiceUserResource {
     private final AccountSshKey sshKey;
 
-    public SshKey(IdentifiedUser user, AccountSshKey sshKey) {
+    SshKey(IdentifiedUser user, AccountSshKey sshKey) {
       super(user);
       this.sshKey = sshKey;
     }
 
-    public SshKey(AccountResource.SshKey sshKey) {
+    SshKey(AccountResource.SshKey sshKey) {
       super(sshKey.getUser());
       this.sshKey = sshKey.getSshKey();
     }
 
-    public AccountSshKey getSshKey() {
+    AccountSshKey getSshKey() {
       return sshKey;
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshKeys.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshKeys.java
index 524bc02..a585d37 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshKeys.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshKeys.java
@@ -22,8 +22,10 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+import com.google.inject.Singleton;
 
-public class SshKeys implements
+@Singleton
+class SshKeys implements
     ChildCollection<ServiceUserResource, ServiceUserResource.SshKey> {
   private final DynamicMap<RestView<ServiceUserResource.SshKey>> views;
   private final Provider<GetSshKeys> list;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshModule.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshModule.java
index cbf715e..f775e4c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/SshModule.java
@@ -16,7 +16,7 @@
 
 import com.google.gerrit.sshd.PluginCommandModule;
 
-public class SshModule extends PluginCommandModule {
+class SshModule extends PluginCommandModule {
 
   @Override
   protected void configureCommands() {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
index 44ba2e8..44c2d15 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.server.git.validators.CommitValidationMessage;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
 import com.googlesource.gerrit.plugins.serviceuser.GetServiceUser.ServiceUserInfo;
 
@@ -30,7 +31,8 @@
 import java.util.Collections;
 import java.util.List;
 
-public class ValidateServiceUserCommits implements CommitValidationListener {
+@Singleton
+class ValidateServiceUserCommits implements CommitValidationListener {
   private final ServiceUserResolver serviceUserResolver;
   private final AccountCache accountCache;
 
