diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcManager.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcManager.java
index 75a3067..52fbf9d 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcManager.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcManager.java
@@ -16,30 +16,26 @@
 
 package org.onosproject.fpcagent;
 
+import com.google.common.base.Stopwatch;
 import org.apache.commons.lang.exception.ExceptionUtils;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.*;
 import org.onosproject.config.DynamicConfigService;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.fpcagent.helpers.ConfigHelper;
 import org.onosproject.fpcagent.workers.ZMQSBPublisherManager;
 import org.onosproject.fpcagent.workers.ZMQSBSubscriberManager;
-import org.onosproject.net.config.ConfigFactory;
-import org.onosproject.net.config.NetworkConfigEvent;
-import org.onosproject.net.config.NetworkConfigListener;
-import org.onosproject.net.config.NetworkConfigRegistry;
-import org.onosproject.net.config.NetworkConfigService;
+import org.onosproject.net.config.*;
 import org.onosproject.net.config.basics.SubjectFactories;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.IetfDmmFpcagentService;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.ErrorTypeId;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.Result;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configure.DefaultConfigureInput;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configure.DefaultConfigureOutput;
+import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configurebundles.DefaultConfigureBundlesInput;
+import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configurebundles.DefaultConfigureBundlesOutput;
+import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configurebundles.configurebundlesoutput.Bundles;
+import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configurebundles.configurebundlesoutput.DefaultBundles;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configuredpn.DefaultConfigureDpnInput;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.configuredpn.DefaultConfigureDpnOutput;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.opinput.opbody.CreateOrUpdate;
@@ -47,17 +43,12 @@
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.result.ResultEnum;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.resultbody.resulttype.DefaultErr;
 import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.resultbodydpn.resulttype.DefaultEmptyCase;
-import org.onosproject.yang.model.DefaultModelObjectData;
-import org.onosproject.yang.model.ModelConverter;
-import org.onosproject.yang.model.ModelObject;
-import org.onosproject.yang.model.ResourceData;
-import org.onosproject.yang.model.RpcInput;
-import org.onosproject.yang.model.RpcOutput;
-import org.onosproject.yang.model.RpcRegistry;
+import org.onosproject.yang.model.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 
 import static org.onosproject.fpcagent.FpcUtil.*;
 
@@ -166,10 +157,10 @@
 
     @Override
     public RpcOutput configureDpn(RpcInput rpcInput) {
+        Stopwatch timer = Stopwatch.createStarted();
         DefaultConfigureDpnOutput output = new DefaultConfigureDpnOutput();
         output.result(Result.of(ResultEnum.OK));
         output.resultType(new DefaultEmptyCase());
-
         try {
             tenantService.getModelObjects(rpcInput.data(), configureDpn).forEach(
                     modelObject -> {
@@ -189,17 +180,17 @@
         } catch (Exception e) {
             log.error(ExceptionUtils.getFullStackTrace(e));
         }
-
         ResourceData dataNode = modelConverter.createDataNode(
                 DefaultModelObjectData.builder().addModelObject(output).build()
         );
+        log.debug("Time Elapsed {} ms", timer.stop().elapsed(TimeUnit.MILLISECONDS));
         return new RpcOutput(RpcOutput.Status.RPC_SUCCESS, dataNode.dataNodes().get(0));
     }
 
     @Override
     public RpcOutput configure(RpcInput rpcInput) {
+        Stopwatch timer = Stopwatch.createStarted();
         DefaultConfigureOutput configureOutput = new DefaultConfigureOutput();
-
         try {
             for (ModelObject modelObject : tenantService.getModelObjects(rpcInput.data(), configure)) {
                 DefaultConfigureInput input = (DefaultConfigureInput) modelObject;
@@ -239,18 +230,69 @@
             configureOutput.result(Result.of(ResultEnum.ERR));
             log.error(ExceptionUtils.getFullStackTrace(e));
         }
-
         ResourceData dataNode = modelConverter.createDataNode(
                 DefaultModelObjectData.builder()
                         .addModelObject(configureOutput)
                         .build()
         );
+        log.debug("Time Elapsed {} ms", timer.stop().elapsed(TimeUnit.MILLISECONDS));
         return new RpcOutput(RpcOutput.Status.RPC_SUCCESS, dataNode.dataNodes().get(0));
     }
 
     @Override
     public RpcOutput configureBundles(RpcInput rpcInput) {
-        return null;
+        Stopwatch timer = Stopwatch.createStarted();
+        DefaultConfigureBundlesOutput configureBundlesOutput = new DefaultConfigureBundlesOutput();
+        try {
+            for (ModelObject modelObject : tenantService.getModelObjects(rpcInput.data(), configureBundles)) {
+                DefaultConfigureBundlesInput input = (DefaultConfigureBundlesInput) modelObject;
+                input.bundles().forEach(
+                        bundle -> {
+                            DefaultConfigureOutput configureOutput = new DefaultConfigureOutput();
+                            switch (bundle.opType()) {
+                                case CREATE:
+                                    configureOutput = tenantService.configureCreate(
+                                            (CreateOrUpdate) bundle.opBody(),
+                                            bundle.clientId(),
+                                            bundle.opId()
+                                    );
+                                    break;
+                                case UPDATE:
+                                    configureOutput = tenantService.configureUpdate(
+                                            (CreateOrUpdate) bundle.opBody(),
+                                            bundle.clientId(),
+                                            bundle.opId()
+                                    );
+                                    break;
+                                case QUERY:
+                                    break;
+                                case DELETE:
+                                    configureOutput = tenantService.configureDelete(
+                                            (DeleteOrQuery) bundle.opBody(),
+                                            bundle.clientId(),
+                                            bundle.opId()
+                                    );
+                                    break;
+                            }
+                            Bundles result = new DefaultBundles();
+                            result.opId(bundle.opId());
+                            result.result(configureOutput.result());
+                            result.resultType(configureOutput.resultType());
+                            configureBundlesOutput.addToBundles(result);
+                        }
+                );
+            }
+        } catch (Exception e) {
+            // if there is an exception respond with an error.
+            log.error(ExceptionUtils.getFullStackTrace(e));
+        }
+        ResourceData dataNode = modelConverter.createDataNode(
+                DefaultModelObjectData.builder()
+                        .addModelObject(configureBundlesOutput)
+                        .build()
+        );
+        log.debug("Time Elapsed {} ms", timer.stop().elapsed(TimeUnit.MILLISECONDS));
+        return new RpcOutput(RpcOutput.Status.RPC_SUCCESS, dataNode.dataNodes().get(0));
     }
 
     @Override
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcUtil.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcUtil.java
index f0fed23..74373eb 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcUtil.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcUtil.java
@@ -60,7 +60,7 @@
     // Resource ID for tenants data
     public static ResourceId tenants;
     public static ResourceId defaultTenant;
-    public static ResourceId defaultTenantMobility;
+    public static ResourceId configureBundles;
     public static ResourceId module;
     public static ResourceId registerClientResourceId;
     public static ResourceId deregisterClientResourceId;
@@ -121,6 +121,11 @@
                 .addBranchPointSchema("/", null)
                 .addBranchPointSchema("configure-dpn", "urn:ietf:params:xml:ns:yang:fpcagent")
                 .build();
+
+        configureBundles = ResourceId.builder()
+                .addBranchPointSchema("/", null)
+                .addBranchPointSchema("configure-bundles", "urn:ietf:params:xml:ns:yang:fpcagent")
+                .build();
     }
 
     static ModelObjectId.Builder defaultTenantBuilder() {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/TenantManager.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/TenantManager.java
index 0fa75c2..46d4016 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/TenantManager.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/TenantManager.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.fpcagent;
 
+import com.google.common.base.Stopwatch;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
@@ -94,16 +95,16 @@
         dynamicConfigService.addListener(listener);
 
         // Create the Default Tenant and added to the Tenants structure.
-        DefaultTenants tenants = new DefaultTenants();
-        DefaultTenant tenant = new DefaultTenant();
+        final DefaultTenants tenants = new DefaultTenants();
+        final DefaultTenant tenant = new DefaultTenant();
         tenant.tenantId(defaultIdentity);
         tenant.fpcTopology(new DefaultFpcTopology());
         tenant.fpcPolicy(new DefaultFpcPolicy());
         tenant.fpcMobility(new DefaultFpcMobility());
         tenants.addToTenant(tenant);
 
-        // Initialize FPC™2 Agent Information.
-        DefaultFpcAgentInfo fpcAgentInfo = new DefaultFpcAgentInfo();
+        // Initialize FPC Agent Information.
+        final DefaultFpcAgentInfo fpcAgentInfo = new DefaultFpcAgentInfo();
 
         // Create nodes in dynamic configuration store for RESTCONF accessibility.
         final ModelObjectId root = ModelObjectId.builder().build();
@@ -122,6 +123,7 @@
     @Override
     public Optional<DefaultTenant> getDefaultTenant() {
         Filter filter = Filter.builder().build();
+        // TODO implement Cache to avoid searching store
         DataNode dataNode = dynamicConfigService.readNode(defaultTenant, filter);
 
         return getModelObjects(dataNode, tenants)
@@ -380,7 +382,6 @@
             defaultErr.errorInfo(ExceptionUtils.getMessage(e));
             defaultErr.errorTypeId(ErrorTypeId.of(0));
         }
-
         return configureOutput;
     }
 
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/helpers/DpnNgicCommunicator.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/helpers/DpnNgicCommunicator.java
index a315b55..50d3d4a 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/helpers/DpnNgicCommunicator.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/helpers/DpnNgicCommunicator.java
@@ -75,7 +75,7 @@
                 .put(toUint32(client_id))
                 .put(toUint32(op_id.longValue()));
 
-        log.info("create_session: {}", bb.array());
+        log.debug("create_session: {}", bb.array());
         ZMQSBPublisherManager.getInstance().send(bb);
     }
 
@@ -114,7 +114,7 @@
                 .put(toUint32(client_id))
                 .put(toUint32(op_id.longValue()));
 
-        log.info("modify_bearer: {}", bb.array());
+        log.debug("modify_bearer: {}", bb.array());
         ZMQSBPublisherManager.getInstance().send(bb);
     }
 
@@ -144,7 +144,7 @@
                 .put(toUint32(client_id))
                 .put(toUint32(op_id.longValue()));
 
-        log.info("delete_session: {}", bb.array());
+        log.debug("delete_session: {}", bb.array());
         ZMQSBPublisherManager.getInstance().send(bb);
     }
 
diff --git a/scripts/addDPN.sh b/scripts/addDPN.sh
index 9c77d37..b1d04d2 100755
--- a/scripts/addDPN.sh
+++ b/scripts/addDPN.sh
@@ -1,15 +1,22 @@
 #!/bin/bash
-curl -i --header "Content-type: application/json" --request POST -u onos:rocks --data '{
-    "dpns": [
-        {
-            "dpn-id": "1",
-            "dpn-name": "site1-anchor1",
-            "dpn-groups": [
-                "foo"
-            ],
-            "node-id": "node1",
-            "network-id": "network1"
-        }
-    ]
-}' 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-topology'
-./getTenants.sh
\ No newline at end of file
+
+if [ "$#" -eq 1 ]; then
+    echo ""
+    curl -i --header "Content-type: application/json" --request POST -u onos:rocks --data '{
+        "dpns": [
+            {
+                "dpn-id": '$1',
+                "dpn-name": "site1-anchor1",
+                "dpn-groups": [
+                    "foo"
+                ],
+                "node-id": "node'$1'",
+                "network-id": "network'$1'"
+            }
+        ]
+    }' 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-topology'
+    ./getTenants.sh
+    echo ""
+else
+    echo "usage: "$0" dpnId"
+fi
\ No newline at end of file
diff --git a/scripts/benchmark.sh b/scripts/benchmark.sh
new file mode 100755
index 0000000..779875a
--- /dev/null
+++ b/scripts/benchmark.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+./addDPN.sh 1 &> /dev/null 
+
+for (( i=1; i<=1000; i++)); do
+	./configureCreateOrUpdate.sh create $i 1 &> /dev/null &
+	if ! (($i % 100)); then
+		wait
+	fi
+done
+
+for (( i=1; i<=1000; i++)); do
+	./configureDeleteOrQuery.sh delete $i &> /dev/null &
+	if ! (($i % 100)); then
+		wait
+	fi
+done
+
+./deleteDPN.sh 1 &> /dev/null 
\ No newline at end of file
diff --git a/scripts/configureBundles.sh b/scripts/configureBundles.sh
new file mode 100755
index 0000000..2108386
--- /dev/null
+++ b/scripts/configureBundles.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+if [ "$#" -eq 3 ]; then
+    echo ""
+    curl -X POST --header 'Content-Type: application/json' -u onos:rocks --header 'Accept: application/json' -d '{
+        "input": {
+            "client-id": "1",
+            "highest-op-ref-scope": "bundle",
+            "bundles": [
+                {
+                    "admin-state": "enabled",
+                    "client-id": "1",
+                    "contexts": [
+                        {
+                            "context-id": '$2',
+                            "delegating-ip-prefixes": [
+                                "192.168.1.5/32"
+                            ],
+                            "dl": {
+                                "dpn-parameters": {},
+                                "mobility-tunnel-parameters": {
+                                    "tunnel-identifier": "2222",
+                                    "tunnel-type": "gtpv1"
+                                },
+                                "tunnel-local-address": "192.168.1.1",
+                                "tunnel-remote-address": "10.1.1.1"
+                            },
+                            "dpn-group": "foo",
+                            "dpns": [
+                                {
+                                    "direction": "uplink",
+                                    "dpn-id": '$3',
+                                    "dpn-parameters": {}
+                                }
+                            ],
+                            "ebi": "5",
+                            "imsi": "9135551234",
+                            "instructions": {
+                                "instr-3gpp-mob": "session uplink"
+                            },
+                            "lbi": "5",
+                            "ul": {
+                                "dpn-parameters": {},
+                                "mobility-tunnel-parameters": {
+                                    "tunnel-identifier": "1111",
+                                    "tunnel-type": "gtpv1"
+                                },
+                                "tunnel-local-address": "192.168.1.1",
+                                "tunnel-remote-address": "10.1.1.1"
+                            }
+                        }
+                    ],
+                    "op-id": "1",
+                    "op-ref-scope": "op",
+                    "op-type": '$1',
+                    "session-state": "complete"
+                }
+            ]
+        }
+    }' 'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure-bundles' | python -m json.tool
+    echo ""
+else
+    echo "usage: "$0" type contextId dpnId"
+fi
\ No newline at end of file
diff --git a/scripts/configureCreateOrUpdate.sh b/scripts/configureCreateOrUpdate.sh
new file mode 100755
index 0000000..5ce3bbe
--- /dev/null
+++ b/scripts/configureCreateOrUpdate.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+if [ "$#" -eq 3 ]; then
+    echo ""
+    json='{
+            "input": {
+                "admin-state": "enabled",
+                "client-id": "1",
+                "contexts": [
+                    {
+                        "context-id": '$2',
+                        "delegating-ip-prefixes": [
+                            "192.168.1.5/32"
+                        ],
+                        "dl": {
+                            "dpn-parameters": {},
+                            "mobility-tunnel-parameters": {
+                                "tunnel-identifier": "2222",
+                                "tunnel-type": "gtpv1"
+                            },
+                            "tunnel-local-address": "192.168.1.1",
+                            "tunnel-remote-address": "10.1.1.1"
+                        },
+                        "dpn-group": "foo",
+                        "dpns": [
+                            {
+                                "direction": "uplink",
+                                "dpn-id": '$3',
+                                "dpn-parameters": {}
+                            }
+                        ],
+                        "ebi": "5",
+                        "imsi": "9135551234",
+                        "instructions": {
+                            "instr-3gpp-mob": "session uplink"
+                        },
+                        "lbi": "5",
+                        "ul": {
+                            "dpn-parameters": {},
+                            "mobility-tunnel-parameters": {
+                                "tunnel-identifier": "1111",
+                                "tunnel-type": "gtpv1"
+                            },
+                            "tunnel-local-address": "192.168.1.1",
+                            "tunnel-remote-address": "10.1.1.1"
+                        }
+                    }
+                ],
+                "op-id": "1",
+                "op-ref-scope": "op",
+                "op-type": "'$1'",
+                "session-state": "complete"
+            }
+        }'
+
+    curl -X POST \
+        --header 'Content-Type: application/json' \
+        -u onos:rocks \
+        --header 'Accept: application/json' \
+        -d "$json" \
+        'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure' | python -m json.tool
+    echo ""
+else
+    echo "usage: "$0" type contextId dpnId"
+fi
\ No newline at end of file
diff --git a/scripts/configureDeleteOrQuery.sh b/scripts/configureDeleteOrQuery.sh
new file mode 100755
index 0000000..5735d72
--- /dev/null
+++ b/scripts/configureDeleteOrQuery.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+if [ "$#" -eq 2 ]; then
+    echo ""
+    json='{
+            "input": {
+                "op-id": "3",
+                "targets": [
+                    {
+                        "target": "/ietf-dmm-fpcagent:tenants/tenant=default/fpc-mobility/contexts='$2'"
+                    }
+                ],
+                "client-id": "1",
+                "session-state": "complete",
+                "admin-state": "enabled",
+                "op-type": "'$1'",
+                "op-ref-scope": "none"
+            }
+        }'
+
+    curl -X POST \
+        --header 'Content-Type: application/json' \
+        -u onos:rocks \
+        --header 'Accept: application/json' \
+        -d "$json" \
+        'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure' | python -m json.tool
+else
+    echo "usage: "$0" type contextId"
+fi
\ No newline at end of file
diff --git a/scripts/createRPC.sh b/scripts/createRPC.sh
deleted file mode 100755
index 621f6df..0000000
--- a/scripts/createRPC.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-curl -X POST --header 'Content-Type: application/json' -u onos:rocks --header 'Accept: application/json' -d '{
-    "input": {
-        "admin-state": "enabled",
-        "client-id": "1",
-        "contexts": [
-            {
-                "context-id": 202374887,
-                "delegating-ip-prefixes": [
-                    "192.168.1.5/32"
-                ],
-                "dl": {
-                    "dpn-parameters": {},
-                    "mobility-tunnel-parameters": {
-                        "tunnel-identifier": "2222",
-                        "tunnel-type": "gtpv1"
-                    },
-                    "tunnel-local-address": "192.168.1.1",
-                    "tunnel-remote-address": "10.1.1.1"
-                },
-                "dpn-group": "foo",
-                "dpns": [
-                    {
-                        "direction": "uplink",
-                        "dpn-id": "1",
-                        "dpn-parameters": {}
-                    }
-                ],
-                "ebi": "5",
-                "imsi": "9135551234",
-                "instructions": {
-                    "instr-3gpp-mob": "session uplink"
-                },
-                "lbi": "5",
-                "ul": {
-                    "dpn-parameters": {},
-                    "mobility-tunnel-parameters": {
-                        "tunnel-identifier": "1111",
-                        "tunnel-type": "gtpv1"
-                    },
-                    "tunnel-local-address": "192.168.1.1",
-                    "tunnel-remote-address": "10.1.1.1"
-                }
-            }
-        ],
-        "op-id": "1",
-        "op-ref-scope": "op",
-        "op-type": "create",
-        "session-state": "complete"
-    }
-}' 'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure' | python -m json.tool
diff --git a/scripts/deleteContext.sh b/scripts/deleteContext.sh
deleted file mode 100755
index 0e9eda8..0000000
--- a/scripts/deleteContext.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-curl -X DELETE -u onos:rocks 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-mobility/contexts=202374887'
-./getTenants.sh
\ No newline at end of file
diff --git a/scripts/deleteContextDl.sh b/scripts/deleteContextDl.sh
deleted file mode 100755
index 64f6c2b..0000000
--- a/scripts/deleteContextDl.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-curl -X DELETE -u onos:rocks 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-mobility/contexts=202374887/dl'
-./getTenants.sh
\ No newline at end of file
diff --git a/scripts/deleteDPN.sh b/scripts/deleteDPN.sh
index f210b60..6633e47 100755
--- a/scripts/deleteDPN.sh
+++ b/scripts/deleteDPN.sh
@@ -1,3 +1,8 @@
 #!/bin/bash
-curl -X DELETE -u onos:rocks 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-topology/dpns=1'
-./getTenants.sh
+if [ "$#" -eq 1 ]; then
+    echo ""
+	curl -X DELETE -u onos:rocks 'http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:tenants/tenant=default/fpc-topology/dpns='$1
+	./getTenants.sh
+else
+    echo "usage: "$0" dpnId"
+fi
\ No newline at end of file
diff --git a/scripts/deleteRPC.sh b/scripts/deleteRPC.sh
deleted file mode 100755
index 772b61b..0000000
--- a/scripts/deleteRPC.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-curl -X POST --header 'Content-Type: application/json' -u onos:rocks --header 'Accept: application/json' -d '{
-    "input": {
-        "op-id": "3",
-        "targets": [
-            {
-                "target": "/ietf-dmm-fpcagent:tenants/tenant=default/fpc-mobility/contexts=202374887"
-            }
-        ],
-        "client-id": "1",
-        "session-state": "complete",
-        "admin-state": "enabled",
-        "op-type": "delete",
-        "op-ref-scope": "none"
-    }
-}' 'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure' | python -m json.tool
diff --git a/scripts/getFpcAgentInfo.sh b/scripts/getFpcAgentInfo.sh
index 4a45b20..75696a5 100755
--- a/scripts/getFpcAgentInfo.sh
+++ b/scripts/getFpcAgentInfo.sh
@@ -1,2 +1,2 @@
 #!/bin/bash
-curl -u onos:rocks http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:fpc-agent-info
+curl -u onos:rocks http://localhost:8181/onos/restconf/data/ietf-dmm-fpcagent:fpc-agent-info | python -m json.tool
diff --git a/scripts/updateRPC.sh b/scripts/updateRPC.sh
deleted file mode 100755
index de934bf..0000000
--- a/scripts/updateRPC.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-curl -X POST --header 'Content-Type: application/json' -u onos:rocks --header 'Accept: application/json' -d '{
-    "input": {
-        "admin-state": "enabled",
-        "client-id": "1",
-        "contexts": [
-            {
-                "context-id": 202374887,
-                "delegating-ip-prefixes": [
-                    "192.168.1.5/32"
-                ],
-                "dl": {
-                    "dpn-parameters": {},
-                    "mobility-tunnel-parameters": {
-                        "tunnel-identifier": "2222",
-                        "tunnel-type": "gtpv1"
-                    },
-                    "tunnel-local-address": "192.168.1.1",
-                    "tunnel-remote-address": "10.1.1.1"
-                },
-                "dpn-group": "foo",
-                "dpns": [
-                    {
-                        "direction": "uplink",
-                        "dpn-id": "1",
-                        "dpn-parameters": {}
-                    }
-                ],
-                "ebi": "5",
-                "imsi": "9135551234",
-                "instructions": {
-                    "instr-3gpp-mob": "session uplink"
-                },
-                "lbi": "5",
-                "ul": {
-                    "dpn-parameters": {},
-                    "mobility-tunnel-parameters": {
-                        "tunnel-identifier": "1111",
-                        "tunnel-type": "gtpv1"
-                    },
-                    "tunnel-local-address": "192.168.1.1",
-                    "tunnel-remote-address": "10.1.1.1"
-                }
-            }
-        ],
-        "op-id": "1",
-        "op-ref-scope": "op",
-        "op-type": "update",
-        "session-state": "complete"
-    }
-}' 'http://localhost:8181/onos/restconf/operations/ietf-dmm-fpcagent:configure' | python -m json.tool
