diff --git a/apps/vtn/pom.xml b/apps/vtn/pom.xml
index 5096a5e..a42f91a 100644
--- a/apps/vtn/pom.xml
+++ b/apps/vtn/pom.xml
@@ -32,6 +32,7 @@
     <description>ONOS framework applications</description>
 
     <modules>
+        <module>sfcmgr</module>
         <module>vtnrsc</module>
         <module>vtnmgr</module>
         <module>vtnweb</module>
diff --git a/apps/vtn/sfcmgr/pom.xml b/apps/vtn/sfcmgr/pom.xml
new file mode 100644
index 0000000..8b5f198
--- /dev/null
+++ b/apps/vtn/sfcmgr/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!--
+  ~ Copyright 2015 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.onosproject</groupId>
+		<artifactId>onos-app-vtn</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+		<relativePath>../pom.xml</relativePath>
+	</parent>
+
+	<artifactId>onos-app-sfc-mgr</artifactId>
+	<packaging>bundle</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.onosproject</groupId>
+			<artifactId>onos-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.onosproject</groupId>
+			<artifactId>onos-core-serializers</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+                <dependency>
+                    <groupId>org.onosproject</groupId>
+                    <artifactId>onos-app-vtn-rsc</artifactId>
+                    <version>${project.version}</version>
+                </dependency>
+	</dependencies>
+
+      <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Export-Package>
+                            org.onosproject.openflow.*,org.projectfloodlight.openflow.*
+                        </Export-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/SfcService.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/SfcService.java
deleted file mode 100644
index a2748f5..0000000
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/SfcService.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.sfc;
-
-import org.onosproject.vtnrsc.PortChain;
-
-/**
- * SFC application that applies flows to the device.
- */
-public interface SfcService {
-    /**
-     * Applies flow classification to OVS.
-     *
-     * @param portChain Port-Chain.
-     */
-    void InstallFlowClassification(PortChain portChain);
-
-
-    /**
-     * Remove flow classification from OVS.
-     *
-     * @param portChain Port-Chain.
-     */
-    void UnInstallFlowClassification(PortChain portChain);
-
-    /**
-     * Applies Service Function chain to OVS.
-     *
-     * @param portChain Port-Chain.
-     */
-    void InstallServiceFunctionChain(PortChain portChain);
-
-    /**
-     * Remove Service Function chain from OVS.
-     *
-     * @param portChain Port-Chain.
-     */
-    void UnInstallServiceFunctionChain(PortChain portChain);
-}
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/forwarder/package-info.java
similarity index 88%
copy from apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
copy to apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/forwarder/package-info.java
index 1dcb992..08021f3 100644
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/forwarder/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Service for interacting with SFC.
+ * Service function forwarder for SFC.
  */
-package org.onosproject.sfc;
+package org.onosproject.sfc.forwarder;
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/SfcManager.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/SfcManager.java
deleted file mode 100644
index 1872295..0000000
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/SfcManager.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.sfc.impl;
-
-import static org.slf4j.LoggerFactory.getLogger;
-
-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.Service;
-import org.onosproject.vtnrsc.sfc.PortChain;
-import org.slf4j.Logger;
-
-/**
- * Provides implementation of SFC Service.
- */
-@Component(immediate = true)
-@Service
-public class SfcManager implements SfcService {
-
-    private final Logger log = getLogger(SfcManager.class);
-
-    @Activate
-    public void activate() {
-        log.info("Started");
-    }
-
-    @Deactivate
-    public void deactivate() {
-        log.info("Stopped");
-    }
-
-    @Override
-    public void InstallFlowClassification(PortChain portChain) {
-        log.debug("InstallFlowClassification");
-        //TODO: Installation of flow classification into OVS.
-    }
-
-    @Override
-    public void UnInstallFlowClassification(PortChain portChain) {
-        log.debug("UnInstallFlowClassification");
-        //TODO: Un-installation flow classification from OVS
-    }
-
-    @Override
-    public void InstallServiceFunctionChain(PortChain portChain) {
-        log.debug("InstallServiceFunctionChain");
-        //TODO: Installation of Service Function chain into OVS.
-    }
-
-    @Override
-    public void UnInstallServiceFunctionChain(PortChain portChain) {
-        log.debug("UnInstallServiceFunctionChain");
-        //TODO: Un-installation of Service Function chain from OVS.
-    }
-}
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/installer/package-info.java
similarity index 86%
copy from apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
copy to apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/installer/package-info.java
index 1dcb992..77c0ab3 100644
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/installer/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Service for interacting with SFC.
+ * Service for installing flow classifier rules in OVS.
  */
-package org.onosproject.sfc;
+package org.onosproject.sfc.installer;
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/SfcService.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/SfcService.java
new file mode 100644
index 0000000..ef5fc52
--- /dev/null
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/SfcService.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.sfc.manager;
+
+/**
+ * SFC application that applies flows to the device.
+ */
+public interface SfcService {
+
+    /**
+     * When port-pair is created, check whether Forwarding Rule needs to be
+     * updated in OVS.
+     */
+    public void onPortPairCreated();
+
+    /**
+     * When port-pair is deleted, check whether Forwarding Rule needs to be
+     * updated in OVS.
+     */
+    public void onPortPairDeleted();
+
+    /**
+     * When port-pair-group is created, check whether Forwarding Rule needs to
+     * be updated in OVS.
+     */
+    public void onPortPairGroupCreated();
+
+    /**
+     * When port-pair-group is deleted, check whether Forwarding Rule needs to
+     * be updated in OVS.
+     */
+    public void onPortPairGroupDeleted();
+
+    /**
+     * When flow-classifier is created, check whether Forwarding Rule needs to
+     * be updated in OVS.
+     */
+    public void onFlowClassifierCreated();
+
+    /**
+     * When flow-classifier is deleted, check whether Forwarding Rule needs to
+     * be updated in OVS.
+     */
+    public void onFlowClassifierDeleted();
+
+    /**
+     * When port-chain is created, check whether Forwarding Rule needs to be
+     * updated in OVS.
+     */
+    public void onPortChainCreated();
+
+    /**
+     * When port-chain is deleted, check whether Forwarding Rule needs to be
+     * updated in OVS.
+     */
+    public void onPortChainDeleted();
+}
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/SfcManager.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/SfcManager.java
new file mode 100644
index 0000000..12d27c8
--- /dev/null
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/SfcManager.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.sfc.manager.impl;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
+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.Service;
+import org.onosproject.sfc.manager.SfcService;
+import org.onosproject.vtnrsc.PortChain;
+import org.slf4j.Logger;
+
+/**
+ * Provides implementation of SFC Service.
+ */
+@Component(immediate = true)
+@Service
+public class SfcManager implements SfcService {
+
+    private final Logger log = getLogger(getClass());
+
+    @Activate
+    public void activate() {
+        log.info("Started");
+    }
+
+    @Deactivate
+    public void deactivate() {
+        log.info("Stopped");
+    }
+
+    @Override
+    public void onPortPairCreated() {
+        log.debug("onPortPairCreated");
+        // TODO: Process port-pair on creation.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onPortPairDeleted() {
+        log.debug("onPortPairDeleted");
+        // TODO: Process port-pair on deletion.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onPortPairGroupCreated() {
+        log.debug("onPortPairGroupCreated");
+        // TODO: Process port-pair-group on creation.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onPortPairGroupDeleted() {
+        log.debug("onPortPairGroupDeleted");
+        // TODO: Process port-pair-group on deletion.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onFlowClassifierCreated() {
+        log.debug("onFlowClassifierCreated");
+        // TODO: Process flow-classifier on creation.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onFlowClassifierDeleted() {
+        log.debug("onFlowClassifierDeleted");
+        // TODO: Process flow-classifier on deletion.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    @Override
+    public void onPortChainCreated() {
+        log.debug("onPortChainCreated");
+        // TODO: Process port-chain on creation.
+        // TODO: Parameter also needs to be modified.
+
+    }
+
+    @Override
+    public void onPortChainDeleted() {
+        log.debug("onPortChainDeleted");
+        // TODO: Process port-chain on deletion.
+        // TODO: Parameter also needs to be modified.
+    }
+
+    /**
+     * Install SF Forwarding rule into OVS.
+     *
+     * @param portChain
+     *            port chain
+     */
+    public void installForwardingRule(PortChain portChain) {
+        log.debug("installForwardingRule");
+        // TODO: Installation of SF Forwarding rule into OVS.
+    }
+
+    /**
+     * Uninstall SF Forwarding rule from OVS.
+     *
+     * @param portChain
+     *            port chain
+     */
+    public void unInstallForwardingRule(PortChain portChain) {
+        log.debug("unInstallForwardingRule");
+        // TODO: Uninstallation of SF Forwarding rule from OVS.
+    }
+}
\ No newline at end of file
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/package-info.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/package-info.java
similarity index 93%
rename from apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/package-info.java
rename to apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/package-info.java
index 0dba868..7161380 100644
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/impl/package-info.java
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/impl/package-info.java
@@ -17,4 +17,4 @@
 /**
  * SFC Service manager for interacting with SFC.
  */
-package org.onosproject.sfc.impl;
+package org.onosproject.sfc.manager.impl;
diff --git a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/package-info.java
similarity index 94%
rename from apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
rename to apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/package-info.java
index 1dcb992..1dd0f5a 100644
--- a/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/package-info.java
+++ b/apps/vtn/sfcmgr/src/main/java/org/onosproject/sfc/manager/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Service for interacting with SFC.
  */
-package org.onosproject.sfc;
+package org.onosproject.sfc.manager;
