diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/Module.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/Module.java
index f878f1a..28649a0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/Module.java
@@ -34,8 +34,8 @@
 import com.googlesource.gerrit.plugins.eventseiffel.config.RabbitMqConfig;
 import com.googlesource.gerrit.plugins.eventseiffel.eiffel.api.EiffelEventPublisher;
 import com.googlesource.gerrit.plugins.eventseiffel.eiffel.api.EventStorage;
-import com.googlesource.gerrit.plugins.eventseiffel.listeners.BranchUpdateListener;
 import com.googlesource.gerrit.plugins.eventseiffel.listeners.PatchsetCreatedListener;
+import com.googlesource.gerrit.plugins.eventseiffel.listeners.RefUpdateListener;
 import com.googlesource.gerrit.plugins.eventseiffel.mapping.EiffelEventFactory;
 import com.googlesource.gerrit.plugins.eventseiffel.mapping.EiffelEventMapper;
 import com.googlesource.gerrit.plugins.eventseiffel.mq.RabbitMqPublisher;
@@ -106,7 +106,7 @@
         .toProvider(EventListenersConfig.Provider.class)
         .in(Scopes.SINGLETON);
     DynamicSet.bind(binder(), RevisionCreatedListener.class).to(PatchsetCreatedListener.class);
-    DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(BranchUpdateListener.class);
+    DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(RefUpdateListener.class);
 
     bind(Manager.class).in(Scopes.SINGLETON);
     bind(LifecycleListener.class).annotatedWith(UniqueAnnotations.create()).to(Manager.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/BranchUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/RefUpdateListener.java
similarity index 94%
rename from src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/BranchUpdateListener.java
rename to src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/RefUpdateListener.java
index 5f41142..98ca829 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/BranchUpdateListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/RefUpdateListener.java
@@ -20,13 +20,13 @@
 import com.googlesource.gerrit.plugins.eventseiffel.config.EventListenersConfig;
 import com.googlesource.gerrit.plugins.eventseiffel.parsing.EiffelEventParsingQueue;
 
-public class BranchUpdateListener implements GitReferenceUpdatedListener {
+public class RefUpdateListener implements GitReferenceUpdatedListener {
 
   private final EiffelEventParsingQueue queue;
   private final Provider<EventListenersConfig> configProvider;
 
   @Inject
-  public BranchUpdateListener(
+  public RefUpdateListener(
       EiffelEventParsingQueue queue, Provider<EventListenersConfig> configProvider) {
     this.queue = queue;
     this.configProvider = configProvider;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/GerritEventListenersIT.java b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/GerritEventListenersIT.java
index bdda300..97c3348 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/GerritEventListenersIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/listeners/GerritEventListenersIT.java
@@ -232,7 +232,7 @@
       install(new EiffelEventsTestModule());
       bind(EventListenersConfig.class).toProvider(TestEventListenerConfigProvider.class);
       DynamicSet.bind(binder(), RevisionCreatedListener.class).to(PatchsetCreatedListener.class);
-      DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(BranchUpdateListener.class);
+      DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(RefUpdateListener.class);
       bind(EiffelConfig.class)
           .toProvider(EiffelEventsTest.TestEiffelConfigProvider.class)
           .in(Scopes.SINGLETON);
