diff --git a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
index 3d7b5bc..492f0d4 100644
--- a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
+++ b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
@@ -20,13 +20,15 @@
 import org.onlab.onos.event.EventDeliveryService;
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.MastershipRole;
+import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
 import org.slf4j.Logger;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-public class MastershipManager implements MastershipService,
-        MastershipAdminService {
+public class MastershipManager
+        extends AbstractProviderRegistry<MastershipProvider, MastershipProviderService>
+        implements MastershipService, MastershipAdminService {
 
     private static final String NODE_ID_NULL = "Node ID cannot be null";
     private static final String DEVICE_ID_NULL = "Device ID cannot be null";
@@ -58,7 +60,6 @@
         log.info("Stopped");
     }
 
-
     @Override
     public void setRole(NodeId nodeId, DeviceId deviceId, MastershipRole role) {
         checkNotNull(nodeId, NODE_ID_NULL);
@@ -98,6 +99,12 @@
         listenerRegistry.removeListener(listener);
     }
 
+    @Override
+    protected MastershipProviderService createProviderService(
+            MastershipProvider provider) {
+        return new InternalMastershipProviderService(provider);
+    }
+
     private class InternalMastershipProviderService
             extends AbstractProviderService<MastershipProvider>
             implements MastershipProviderService {
@@ -107,9 +114,11 @@
         }
 
         @Override
-        public void roleChanged(DeviceId deviceId, MastershipRole role) {
+        public void roleChanged(NodeId nodeId, DeviceId deviceId, MastershipRole role) {
             // TODO Auto-generated method stub
-
+            MastershipEvent event =
+                    store.addOrUpdateDevice(nodeId, deviceId, role);
+            post(event);
         }
     }
 
@@ -119,4 +128,5 @@
             eventDispatcher.post(event);
         }
     }
+
 }
