diff --git a/apps/aaa/src/main/java/org/onosproject/aaa/StateMachine.java b/apps/aaa/src/main/java/org/onosproject/aaa/StateMachine.java
index 946133d..6b8ebcb 100644
--- a/apps/aaa/src/main/java/org/onosproject/aaa/StateMachine.java
+++ b/apps/aaa/src/main/java/org/onosproject/aaa/StateMachine.java
@@ -23,8 +23,6 @@
 
 import org.onlab.packet.MacAddress;
 import org.onosproject.net.ConnectPoint;
-import org.onosproject.xosintegration.VoltTenant;
-import org.onosproject.xosintegration.VoltTenantService;
 import org.slf4j.Logger;
 
 import com.google.common.collect.Maps;
@@ -52,7 +50,6 @@
 
     //map of access identifiers (issued at EAPOL START)
     static BitSet bitSet = new BitSet();
-    private final VoltTenantService voltService;
 
     private int identifier = -1;
     private byte challengeIdentifier;
@@ -137,12 +134,10 @@
      * State Machine Constructor.
      *
      * @param sessionId   session Id represented by the switch dpid +  port number
-     * @param voltService volt service reference
      */
-    public StateMachine(String sessionId, VoltTenantService voltService) {
+    public StateMachine(String sessionId) {
         log.info("Creating a new state machine for {}", sessionId);
         this.sessionId = sessionId;
-        this.voltService = voltService;
         sessionIdMap.put(sessionId, this);
     }
 
@@ -387,16 +382,7 @@
         //move to the next state
         next(TRANSITION_AUTHORIZE_ACCESS);
 
-        if (voltService != null) {
-            voltService.addTenant(
-                    VoltTenant.builder()
-                            .withHumanReadableName("VCPE-" + this.identifier)
-                            .withId(this.identifier)
-                            .withProviderService(1)
-                            .withServiceSpecificId(String.valueOf(this.identifier))
-                            .withPort(this.supplicantConnectpoint)
-                            .withVlanId(String.valueOf(this.vlanId)).build());
-        }
+        // TODO: put in calls to launch vSG here
 
         deleteIdentifier();
     }
