diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java
index 287c9e1..72fef8d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java
@@ -50,7 +50,7 @@
 public class Lock implements AutoCloseable {
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
-  public interface LockFactory {
+  public interface Factory {
     Lock create(@Assisted("projectName") String projectName, @Assisted("refName") String refName);
   }
 
@@ -58,8 +58,8 @@
   private static final int HEARTBEAT_INTERVAL = 2;
   private static final String RECLAIM_LOCK_PREFIX = "RECLAIM";
   private final DatabaseClient dbClient;
-  private final String projectName;
   private final String gerritInstanceId;
+  private final String projectName;
   private final String refName;
   private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
 
@@ -71,10 +71,10 @@
       @GerritInstanceId String gerritInstanceId,
       @Assisted("projectName") String projectName,
       @Assisted("refName") String refName) {
-    this.projectName = projectName;
-    this.refName = refName;
     this.dbClient = dbClient;
     this.gerritInstanceId = gerritInstanceId;
+    this.projectName = projectName;
+    this.refName = refName;
   }
 
   /**
diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
index c146a9c..7216d5c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
@@ -51,10 +51,7 @@
         .to(SpannerRefDatabase.class)
         .in(Scopes.SINGLETON);
     listener().to(SpannerLifeCycleManager.class);
-    install(
-        new FactoryModuleBuilder()
-            .implement(AutoCloseable.class, Lock.class)
-            .build(Lock.LockFactory.class));
+    install(new FactoryModuleBuilder().build(Lock.Factory.class));
   }
 
   @Provides
diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerRefDatabase.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerRefDatabase.java
index 8db7745..0593139 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerRefDatabase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerRefDatabase.java
@@ -41,10 +41,10 @@
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private final DatabaseClient dbClient;
-  private final Lock.LockFactory lockFactory;
+  private final Lock.Factory lockFactory;
 
   @Inject
-  SpannerRefDatabase(DatabaseClient dbClient, Lock.LockFactory lockFactory) {
+  SpannerRefDatabase(DatabaseClient dbClient, Lock.Factory lockFactory) {
     this.dbClient = dbClient;
     this.lockFactory = lockFactory;
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
index c555044..4288641 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
@@ -67,8 +67,8 @@
         spannerInstance.createDatabase(SPANNER_DATABASE_ID, Collections.emptyList()).get();
     createSchema();
     databaseClient = createDatabaseClient();
-    Lock.LockFactory lockFactory =
-        new Lock.LockFactory() {
+    Lock.Factory lockFactory =
+        new Lock.Factory() {
           @Override
           public Lock create(String projectName, String refName) {
             return new Lock(databaseClient, "", projectName, refName);
