diff --git a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/package-info.java b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/package-info.java
index 0507571..ea352c6 100644
--- a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/package-info.java
+++ b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Application for OpenstackRouting.
+ * Application that handles OpenStack Neutron REST calls.
  */
 package org.onosproject.openstackinterface;
\ No newline at end of file
diff --git a/apps/openstackinterface/app/app.xml b/apps/openstackinterface/app/app.xml
new file mode 100644
index 0000000..13e7179
--- /dev/null
+++ b/apps/openstackinterface/app/app.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016 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.
+  -->
+<app name="org.onosproject.openstackinterface" origin="ON.Lab" version="${project.version}"
+     category="default" url="http://onosproject.org"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/onos-app-openstackinterface-api/${project.version}</artifact>
+    <artifact>mvn:${project.groupId}/onos-app-openstackinterface-app/${project.version}</artifact>
+</app>
diff --git a/apps/openstackinterface/app/features.xml b/apps/openstackinterface/app/features.xml
new file mode 100644
index 0000000..ad5c304
--- /dev/null
+++ b/apps/openstackinterface/app/features.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Copyright 2016 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.
+  -->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
+    <feature name="${project.artifactId}" version="${project.version}"
+             description="${project.description}">
+        <feature>onos-api</feature>
+        <bundle>mvn:${project.groupId}/onos-app-openstackinterface-api/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/onos-app-openstackinterface-app/${project.version}</bundle>
+    </feature>
+</features>
diff --git a/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceManager.java b/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/OpenstackInterfaceManager.java
similarity index 96%
rename from apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceManager.java
rename to apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/OpenstackInterfaceManager.java
index 9b99b81..3fccce3 100644
--- a/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/OpenstackInterfaceManager.java
+++ b/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/OpenstackInterfaceManager.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.openstackinterface;
+package org.onosproject.openstackinterface.impl;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -35,6 +35,13 @@
 import org.onosproject.net.config.NetworkConfigEvent;
 import org.onosproject.net.config.NetworkConfigListener;
 import org.onosproject.net.config.NetworkConfigRegistry;
+import org.onosproject.openstackinterface.OpenstackInterfaceService;
+import org.onosproject.openstackinterface.OpenstackNetwork;
+import org.onosproject.openstackinterface.OpenstackNetworkingConfig;
+import org.onosproject.openstackinterface.OpenstackPort;
+import org.onosproject.openstackinterface.OpenstackRouter;
+import org.onosproject.openstackinterface.OpenstackSecurityGroup;
+import org.onosproject.openstackinterface.OpenstackSubnet;
 import org.onosproject.openstackinterface.web.OpenstackNetworkCodec;
 import org.onosproject.openstackinterface.web.OpenstackPortCodec;
 import org.onosproject.openstackinterface.web.OpenstackRouterCodec;
diff --git a/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/package-info.java b/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/package-info.java
similarity index 82%
rename from apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/package-info.java
rename to apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/package-info.java
index 0507571..207fc08 100644
--- a/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/package-info.java
+++ b/apps/openstackinterface/app/src/main/java/org/onosproject/openstackinterface/impl/package-info.java
@@ -15,6 +15,6 @@
  */
 
 /**
- * Application for OpenstackRouting.
+ * Implementation classes for OpenStack interface that handles Neutron REST calls.
  */
-package org.onosproject.openstackinterface;
\ No newline at end of file
+package org.onosproject.openstackinterface.impl;
\ No newline at end of file
diff --git a/apps/openstacknetworking/openstackrouting/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java b/apps/openstacknetworking/openstackrouting/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
index a9421bb..b226001 100644
--- a/apps/openstacknetworking/openstackrouting/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
+++ b/apps/openstacknetworking/openstackrouting/src/main/java/org/onosproject/openstacknetworking/routing/OpenstackRoutingRulePopulator.java
@@ -120,7 +120,7 @@
      *  @param inboundPacket Packet-in event packet
      * @param openstackPort Target VM information
      * @param portNum Pnat port number
-     * @param externalIp
+     * @param externalIp external ip address
      * @param externalInterfaceMacAddress Gateway external interface macaddress
      * @param externalRouterMacAddress Outer(physical) router`s macaddress
      */
diff --git a/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java b/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
index e417d9a..62f412a 100644
--- a/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
+++ b/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
@@ -69,6 +69,7 @@
      * OpenStack if it's not. This ARP proxy does not support overlapping IP.
      *
      * @param pkt ARP request packet
+     * @param openstackPortInfoCollection collection of port information
      */
     public void processPacketIn(InboundPacket pkt, Collection<OpenstackPortInfo> openstackPortInfoCollection) {
         Ethernet ethRequest = pkt.parsed();
diff --git a/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java b/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
index d7223da..79ae523 100644
--- a/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
+++ b/apps/openstacknetworking/openstackswitching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
@@ -75,6 +75,7 @@
      * @param appId application id
      * @param flowObjectiveService FlowObjectiveService reference
      * @param deviceService DeviceService reference
+     * @param openstackService openstack interface service
      * @param driverService DriverService reference
      */
     public OpenstackSwitchingRulePopulator(ApplicationId appId,
