working SSE
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcRpcManager.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcRpcManager.java
index ec79725..dfa7c73 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcRpcManager.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/FpcRpcManager.java
@@ -1062,47 +1062,49 @@
                         });
             } else if (event.subject().manufacturer().equals("cp")) {
                 String clientId = event.subject().annotations().value("client-id");
-                DefaultRegisterClientInput clientInput = clientInfo.get(ClientIdentifier.fromString(clientId));
+                if (clientInfo.keySet().contains(ClientIdentifier.fromString(clientId))) {
+                    DefaultRegisterClientInput clientInput = clientInfo.get(ClientIdentifier.fromString(clientId));
 
-                Optional<DefaultTenant> defaultTenant = getTenant(clientInput.tenantId());
-                if (defaultTenant.isPresent()) {
-                    DefaultTenant tenant = defaultTenant.get();
-                    if (tenant.fpcTopology().dpns() != null) {
-                        tenant.fpcTopology().dpns().forEach(
-                                dpn -> {
-                                    DefaultYangAutoPrefixNotify notify = new DefaultYangAutoPrefixNotify();
-                                    notify.notificationId(NotificationId.of(notificationIds.getNewId()));
+                    Optional<DefaultTenant> defaultTenant = getTenant(clientInput.tenantId());
+                    if (defaultTenant.isPresent()) {
+                        DefaultTenant tenant = defaultTenant.get();
+                        if (tenant.fpcTopology().dpns() != null) {
+                            tenant.fpcTopology().dpns().forEach(
+                                    dpn -> {
+                                        DefaultYangAutoPrefixNotify notify = new DefaultYangAutoPrefixNotify();
+                                        notify.notificationId(NotificationId.of(notificationIds.getNewId()));
 
-                                    notify.timestamp(BigInteger.valueOf(System.currentTimeMillis()));
-                                    DefaultDpnAvailability availability = new DefaultDpnAvailability();
-                                    availability.availabilityMessageType("Dpn-Availability");
-                                    availability.dpnId(dpn.dpnId());
-                                    availability.dpnGroups(dpn.dpnGroups());
-                                    availability.controlProtocol(dpn.controlProtocol());
-                                    availability.networkId(dpn.networkId());
-                                    availability.nodeId(dpn.nodeId());
-                                    availability.dpnName(dpn.dpnName());
+                                        notify.timestamp(BigInteger.valueOf(System.currentTimeMillis()));
+                                        DefaultDpnAvailability availability = new DefaultDpnAvailability();
+                                        availability.availabilityMessageType("Dpn-Availability");
+                                        availability.dpnId(dpn.dpnId());
+                                        availability.dpnGroups(dpn.dpnGroups());
+                                        availability.controlProtocol(dpn.controlProtocol());
+                                        availability.networkId(dpn.networkId());
+                                        availability.nodeId(dpn.nodeId());
+                                        availability.dpnName(dpn.dpnName());
 
-                                    switch (event.type()) {
-                                        case DEVICE_UPDATED:
-                                        case DEVICE_ADDED: {
-                                            availability.dpnStatus(DpnStatusEnum.AVAILABLE);
-                                            break;
+                                        switch (event.type()) {
+                                            case DEVICE_UPDATED:
+                                            case DEVICE_ADDED: {
+                                                availability.dpnStatus(DpnStatusEnum.AVAILABLE);
+                                                break;
+                                            }
+                                            case DEVICE_AVAILABILITY_CHANGED:
+                                            case DEVICE_REMOVED: {
+                                                availability.dpnStatus(DpnStatusEnum.UNAVAILABLE);
+                                                break;
+                                            }
+                                            default:
+                                                throw new RuntimeException("Unknown Device case.");
                                         }
-                                        case DEVICE_AVAILABILITY_CHANGED:
-                                        case DEVICE_REMOVED: {
-                                            availability.dpnStatus(DpnStatusEnum.UNAVAILABLE);
-                                            break;
-                                        }
-                                        default:
-                                            throw new RuntimeException("Unknown Device case.");
+
+                                        notify.value(availability);
+                                        // sendNotification(notify, clientInput.clientId());
                                     }
+                            );
 
-                                    notify.value(availability);
-                                    sendNotification(notify, clientInput.clientId());
-                                }
-                        );
-
+                        }
                     }
                 }
             }
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/FpcUtil.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/FpcUtil.java
index 8c1de9b..e711024 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/FpcUtil.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/FpcUtil.java
@@ -301,12 +301,14 @@
      * @param client HTTP client to receive message
      */
     public static void sendNotification(DefaultYangAutoPrefixNotify notify, ClientIdentifier client) {
-        log.info("Sending HTTP notification {} to {}", notify, client);
-        HTTPNotifier.getInstance().send(
-                new AbstractMap.SimpleEntry<>(
-                        clientInfo.get(client).endpointUri().toString(),
-                        notify
-                )
-        );
+        if (clientInfo.keySet().contains(client)) {
+            log.info("Sending HTTP notification {} to {}", notify, client);
+            HTTPNotifier.getInstance().send(
+                    new AbstractMap.SimpleEntry<>(
+                            clientInfo.get(client).endpointUri().toString(),
+                            notify
+                    )
+            );
+        }
     }
 }
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ConfigureService.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ConfigureService.java
index 1c90115..2332bb3 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ConfigureService.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ConfigureService.java
@@ -7,13 +7,7 @@
  */
 package org.onosproject.fpcagent.util.eventStream;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.commons.lang.exception.ExceptionUtils;
-import org.onosproject.restconf.utils.RestconfUtils;
-import org.onosproject.yang.gen.v1.ietfdmmfpcagent.rev20160803.ietfdmmfpcagent.DefaultYangAutoPrefixNotify;
-import org.onosproject.yang.model.DefaultModelObjectData;
-import org.onosproject.yang.model.ResourceData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -24,11 +18,9 @@
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 
-import static org.onosproject.fpcagent.util.FpcUtil.modelConverter;
-import static org.onosproject.fpcagent.util.FpcUtil.module;
-
 
 /**
  * A servlet context listener that sends response (ConfigureOutput) events to clients.
@@ -37,34 +29,25 @@
 
     private static final Logger log = LoggerFactory.getLogger(ConfigureService.class);
     //key = client-id, value = configure-output
-    public static BlockingQueue<Map.Entry<String, DefaultYangAutoPrefixNotify>> blockingQueue = new LinkedBlockingQueue<>();
+    public static BlockingQueue<Map.Entry<String, String>> configureQueue = new LinkedBlockingQueue<>();
     public static BlockingQueue<Map.Entry<String, String>> registerClientQueue = new LinkedBlockingQueue<>();
 
     public void contextInitialized(ServletContextEvent sce) {
         Map<String, AsyncContext> responseStreams = new ConcurrentHashMap<>();
         sce.getServletContext().setAttribute("responseStreams", responseStreams);
-        Thread thread = new Thread(() -> {
+        Executors.newSingleThreadExecutor().submit(() -> {
             String clientUri = null;
             AsyncContext asyncContext = null;
             while (true) {
                 try {
-                    Map.Entry<String, DefaultYangAutoPrefixNotify> entry = blockingQueue.take();
+                    Map.Entry<String, String> entry = configureQueue.take();
                     clientUri = entry.getKey();
-                    DefaultYangAutoPrefixNotify notify = entry.getValue();
-
-                    ResourceData dataNode = modelConverter.createDataNode(
-                            DefaultModelObjectData.builder()
-                                    .addModelObject(notify)
-                                    .build()
-                    );
-                    ObjectNode jsonNodes = RestconfUtils.convertDataNodeToJson(module, dataNode.dataNodes().get(0));
-                    ObjectMapper mapper = new ObjectMapper();
-                    String value = mapper.writeValueAsString(jsonNodes);
+                    String notify = entry.getValue();
 
                     asyncContext = responseStreams.get(clientUri);
                     if (responseStreams.get(clientUri) != null) {
                         ServletOutputStream out = asyncContext.getResponse().getOutputStream();
-                        out.write(value.getBytes());
+                        out.write(notify.getBytes());
                         out.flush();
                         asyncContext.getResponse().flushBuffer();
                     }
@@ -76,9 +59,8 @@
                 }
             }
         });
-        thread.start();
 
-        Thread thread1 = new Thread(() -> {
+        Executors.newSingleThreadExecutor().submit(() -> {
             String clientUri = null;
             AsyncContext asyncContext = null;
             while (true) {
@@ -100,8 +82,6 @@
                 }
             }
         });
-        thread1.start();
-
     }
 
     public void contextDestroyed(ServletContextEvent sce) {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NBEventWorkerManager.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NBEventWorkerManager.java
index 16c8caf..72f283c 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NBEventWorkerManager.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NBEventWorkerManager.java
@@ -73,6 +73,7 @@
 
                     // call RESTCONF service
                     ObjectMapper mapper = new ObjectMapper();
+                    log.info("NB Event Contents: {}", contents.getValue().getValue());
                     ObjectNode node = (ObjectNode) mapper.readTree(contents.getValue().getValue());
                     if (contents.getValue().getKey().contains("ietf-dmm-fpcagent:configure")) {
                         CompletableFuture<RestconfRpcOutput> output = restconfService.runRpc(
@@ -80,10 +81,11 @@
                                 node,
                                 contents.getKey()
                         );
-                        ConfigureService.blockingQueue.add(
+                        String replace = output.get().output().toString().replace("ietf-dmm-fpcagent:output", "fpc:output");
+                        ConfigureService.configureQueue.add(
                                 new AbstractMap.SimpleEntry(
                                         contents.getKey(),
-                                        "event:application/json;/restconf/operations/ietf-dmm-fpcagent:configure\ndata:" + output.get().output().toString() + "\r\n"
+                                        "event:application/json;/onos/restconf/operations/ietf-dmm-fpcagent:configure\ndata:" + replace + "\r\n"
                                 )
                         );
                     } else if (contents.getValue().getKey().contains("fpc:register-client")) {
@@ -96,7 +98,7 @@
                         ConfigureService.registerClientQueue.add(
                                 new AbstractMap.SimpleEntry(
                                         contents.getKey(),
-                                        "event:application/json;/restconf/operations/fpc:register_client\ndata:" + output.get().output().toString() + "\r\n"
+                                        "event:application/json;/onos/restconf/operations/fpc:register-client\ndata:" + output.get().output().toString() + "\r\n"
                                 )
                         );
                     } else if (contents.getValue().getKey().contains("fpc:deregister-client")) {
@@ -124,7 +126,8 @@
     private void addClientIdToUriMapping(String registerClientOutput, String uri) {
         try {
             JSONObject registerJSON = new JSONObject(registerClientOutput);
-            clientIdToUri.put(Integer.parseInt(registerJSON.getJSONObject("output").getString("client-id")), uri);
+//            log.info("registerJSON: {}", registerJSON);
+            clientIdToUri.put(Integer.parseInt(registerJSON.getJSONObject("fpc:output").getString("client-id")), uri);
         } catch (JSONException e) {
             log.error(ExceptionUtils.getFullStackTrace(e));
         }
@@ -138,6 +141,7 @@
     private void removeClientIdToUriMapping(String deregisterClientInput) {
         try {
             JSONObject deregisterJSON = new JSONObject(deregisterClientInput);
+//            log.info("deregisterJSON: {}", deregisterJSON);
             clientIdToUri.remove(Integer.parseInt(deregisterJSON.getJSONObject("input").getString("client-id")));
         } catch (JSONException e) {
             log.error(ExceptionUtils.getFullStackTrace(e));
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
index ccbd364..e448324 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
@@ -30,11 +30,6 @@
 public class NotificationServer extends DefaultServlet {
     private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
 
-    public NotificationServer() {
-        super();
-        log.info("Notification Server Initialized");
-    }
-
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) {
         try {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ParseStream.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ParseStream.java
index 7e94ad4..52eeb07 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ParseStream.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ParseStream.java
@@ -118,9 +118,8 @@
                                 }
                                 event = null;
                                 data = null;
-                            }
+                             }
                         }
-
                     }
                 } catch (InterruptedException e) {
                     log.error(ExceptionUtils.getFullStackTrace(e));
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
index 3594d22..6189501 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
@@ -32,11 +32,6 @@
     private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
     private static ArrayList<String> clientUriList = new ArrayList<>();
 
-    public ResponseServer() {
-        super();
-        log.info("Response Server Initialized");
-    }
-
     /**
      * Method for stream initialization
      *
@@ -49,7 +44,7 @@
         try {
             HttpSession session = request.getSession();
             session.setMaxInactiveInterval(72 * 60 * 60);
-            ResponseClient client = new ResponseClient();
+            ResponseService client = new ResponseService();
             client.connectToClient(clientUri);
             response.setHeader("Content-Type", "text/event-stream");
             response.setHeader("Cache-Control", "no-cache, no-store");
@@ -84,7 +79,6 @@
 
     @Override
     protected void doPost(HttpServletRequest request, HttpServletResponse response) {
-        log.info("here doPost");
         try {
             String clientUri = null;
             StringBuffer jsonStringBuilder = new StringBuffer();
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseService.java
similarity index 86%
rename from apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
rename to apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseService.java
index 76762d8..7736d51 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseService.java
@@ -21,16 +21,14 @@
 
 import java.nio.CharBuffer;
 import java.util.AbstractMap;
-import java.util.ArrayList;
 
 /**
  * A HTTP client that sends a request to a FPC Client to initiate the request stream.
  */
-public class ResponseClient {
-    private static final Logger log = LoggerFactory.getLogger(ResponseClient.class);
+public class ResponseService {
+    private static final Logger log = LoggerFactory.getLogger(ResponseService.class);
 
     private static final CloseableHttpAsyncClient client = HttpAsyncClients.createDefault();
-    private static ArrayList<String> clientUriList = new ArrayList<String>();
     protected String clientUri;
 
     /**
@@ -40,11 +38,10 @@
      */
     public void connectToClient(String uri) {
         this.clientUri = uri;
-	log.info("here connectToClient");
         try {
             client.start();
             HttpAsyncRequestProducer get = HttpAsyncMethods.createGet(this.clientUri);
-            client.execute(get, new MyResponseConsumer(this.clientUri), null);
+            client.execute(get, new RequestStreamConsumer(this.clientUri), null);
         } catch (Exception e) {
             log.error(ExceptionUtils.getFullStackTrace(e));
         }
@@ -53,7 +50,7 @@
     /**
      * A character consumer to read incoming characters on the request stream
      */
-    static class MyResponseConsumer extends AsyncCharConsumer<Boolean> {
+    static class RequestStreamConsumer extends AsyncCharConsumer<Boolean> {
         private String clientUri;
 
         /**
@@ -61,7 +58,7 @@
          *
          * @param clientUri - URI of the FPC Client
          */
-        public MyResponseConsumer(String clientUri) {
+        public RequestStreamConsumer(String clientUri) {
             this.clientUri = clientUri;
         }