diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa3Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa3Pipeline.java
index 4f9740c..966933b 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa3Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa3Pipeline.java
@@ -18,16 +18,11 @@
 
 import org.onlab.packet.VlanId;
 import org.onosproject.core.ApplicationId;
-import org.onosproject.core.CoreService;
-import org.onosproject.net.DeviceId;
 import org.onosproject.net.behaviour.PipelinerContext;
-import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.flow.FlowRule;
-import org.onosproject.net.flow.FlowRuleService;
 import org.onosproject.net.flow.criteria.PortCriterion;
 import org.onosproject.net.flow.criteria.VlanIdCriterion;
 import org.onosproject.net.flowobjective.ForwardingObjective;
-import org.onosproject.net.group.GroupService;
 
 import java.util.Collection;
 import java.util.List;
@@ -37,24 +32,15 @@
  */
 public class Ofdpa3Pipeline extends Ofdpa2Pipeline {
     @Override
-    public void init(DeviceId deviceId, PipelinerContext context) {
-        this.deviceId = deviceId;
-
-        // Initialize OFDPA group handler
-        groupHandler = new Ofdpa3GroupHandler();
-        groupHandler.init(deviceId, context);
-
-        serviceDirectory = context.directory();
-        coreService = serviceDirectory.get(CoreService.class);
-        flowRuleService = serviceDirectory.get(FlowRuleService.class);
-        groupService = serviceDirectory.get(GroupService.class);
-        flowObjectiveStore = context.store();
-        deviceService = serviceDirectory.get(DeviceService.class);
-
+    protected void initDriverId() {
         driverId = coreService.registerApplication(
                 "org.onosproject.driver.Ofdpa3Pipeline");
+    }
 
-        initializePipeline();
+    @Override
+    protected void initGroupHander(PipelinerContext context) {
+        groupHandler = new Ofdpa3GroupHandler();
+        groupHandler.init(deviceId, context);
     }
 
     @Override
