diff --git a/apps/scalablegateway/BUCK b/apps/scalablegateway/BUCK
index ff5f62d..d4fdb0d 100644
--- a/apps/scalablegateway/BUCK
+++ b/apps/scalablegateway/BUCK
@@ -1,11 +1,14 @@
-BUNDLES = [
-    '//apps/scalablegateway/api:onos-apps-scalablegateway-api',
-    '//apps/scalablegateway/app:onos-apps-scalablegateway-app',
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
 ]
 
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+)
+
 onos_app (
   title = 'Scalable GW App',
   category = 'Utility',
   url = 'http://onosproject.org',
-  included_bundles = BUNDLES,
+  description = 'Scalable gateway service',
 )
diff --git a/apps/scalablegateway/api/BUCK b/apps/scalablegateway/api/BUCK
deleted file mode 100644
index ee55792..0000000
--- a/apps/scalablegateway/api/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-)
\ No newline at end of file
diff --git a/apps/scalablegateway/api/pom.xml b/apps/scalablegateway/api/pom.xml
deleted file mode 100644
index 353f424..0000000
--- a/apps/scalablegateway/api/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2016-present 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 xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.onosproject</groupId>
-        <artifactId>onos-scalablegateway</artifactId>
-        <version>1.6.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>onos-app-scalablegateway-api</artifactId>
-    <packaging>bundle</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-api</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/apps/scalablegateway/app/BUCK b/apps/scalablegateway/app/BUCK
deleted file mode 100644
index 9bfb40c..0000000
--- a/apps/scalablegateway/app/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//apps/scalablegateway/api:onos-apps-scalablegateway-api',
-]
-
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
diff --git a/apps/scalablegateway/app/pom.xml b/apps/scalablegateway/app/pom.xml
deleted file mode 100644
index 23105ac..0000000
--- a/apps/scalablegateway/app/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2016-present 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 xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.onosproject</groupId>
-        <artifactId>onos-scalablegateway</artifactId>
-        <version>1.6.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>onos-app-scalablegateway-app</artifactId>
-    <packaging>bundle</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-app-scalablegateway-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git a/apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/package-info.java b/apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/package-info.java
deleted file mode 100644
index 1768150..0000000
--- a/apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2016-present 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.
- */
-
-/**
- * Application for ScaleableGateway management.
- */
-package org.onosproject.scalablegateway;
\ No newline at end of file
diff --git a/apps/scalablegateway/pom.xml b/apps/scalablegateway/pom.xml
index b68a0c5..8124baf 100644
--- a/apps/scalablegateway/pom.xml
+++ b/apps/scalablegateway/pom.xml
@@ -27,13 +27,26 @@
     </parent>
 
     <artifactId>onos-scalablegateway</artifactId>
-    <packaging>pom</packaging>
+    <packaging>bundle</packaging>
 
-    <description>ONOS ScalableGateway applications</description>
+    <description>ONOS Scalable Gateway applications</description>
 
-    <modules>
-        <module>api</module>
-        <module>app</module>
-    </modules>
+    <properties>
+        <onos.app.name>org.onosproject.scalablegateway</onos.app.name>
+        <onos.app.title>Scalable Gateway App</onos.app.title>
+        <onos.app.category>Utility</onos.app.category>
+        <onos.app.url>http://onosproject.org</onos.app.url>
+        <onos.app.readm>Scalable Gateway Application.</onos.app.readm>
+    </properties>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/GatewayNode.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/GatewayNode.java
similarity index 98%
rename from apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/GatewayNode.java
rename to apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/GatewayNode.java
index 1e2a5ed..6df49ce 100644
--- a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/GatewayNode.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/GatewayNode.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.scalablegateway;
+package org.onosproject.scalablegateway.api;
 
 import com.google.common.collect.ImmutableList;
 import org.onlab.packet.Ip4Address;
diff --git a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/ScalableGatewayService.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/ScalableGatewayService.java
similarity index 95%
rename from apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/ScalableGatewayService.java
rename to apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/ScalableGatewayService.java
index 403855b..bd1b29e 100644
--- a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/ScalableGatewayService.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/ScalableGatewayService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.scalablegateway;
+package org.onosproject.scalablegateway.api;
 
 import org.onosproject.core.GroupId;
 import org.onosproject.net.DeviceId;
@@ -45,6 +45,7 @@
     /**
      * Returns group id for gateway load balance.
      *
+     * @param srcDeviceId source device id
      * @return The group id
      */
     GroupId getGroupIdForGatewayLoadBalance(DeviceId srcDeviceId);
diff --git a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
similarity index 93%
copy from apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java
copy to apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
index 1768150..7eaa692 100644
--- a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/api/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Application for ScaleableGateway management.
  */
-package org.onosproject.scalablegateway;
\ No newline at end of file
+package org.onosproject.scalablegateway.api;
\ No newline at end of file
diff --git a/apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/ScalableGatewayManager.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/ScalableGatewayManager.java
similarity index 90%
rename from apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/ScalableGatewayManager.java
rename to apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/ScalableGatewayManager.java
index eba3de8..3294a09 100644
--- a/apps/scalablegateway/app/src/main/java/org/onosproject/scalablegateway/ScalableGatewayManager.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/ScalableGatewayManager.java
@@ -14,11 +14,13 @@
  * limitations under the License.
  */
 
-package org.onosproject.scalablegateway;
+package org.onosproject.scalablegateway.impl;
 
 import org.onosproject.core.GroupId;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
+import org.onosproject.scalablegateway.api.GatewayNode;
+import org.onosproject.scalablegateway.api.ScalableGatewayService;
 
 import java.util.List;
 
diff --git a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
similarity index 93%
rename from apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java
rename to apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
index 1768150..f666d0c 100644
--- a/apps/scalablegateway/api/src/main/java/org/onosproject/scalablegateway/package-info.java
+++ b/apps/scalablegateway/src/main/java/org/onosproject/scalablegateway/impl/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Application for ScaleableGateway management.
  */
-package org.onosproject.scalablegateway;
\ No newline at end of file
+package org.onosproject.scalablegateway.impl;
\ No newline at end of file
