diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/CordModelCache.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/CordModelCache.java
index b68928b..a098e8d 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/CordModelCache.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/CordModelCache.java
@@ -64,6 +64,9 @@
     private static final String LEVEL = "level";
     private static final String LOGOUT = "logout";
 
+    private static final String BUNDLE_NAME = BUNDLE + "_name";
+    private static final String BUNDLE_DESC = BUNDLE + "_desc";
+
     private static final Map<Integer, Integer> LOOKUP = new HashMap<>();
 
     private String email = null;
@@ -315,8 +318,10 @@
             return jsonLogout();
         }
 
+        BundleDescriptor bundleDescriptor = currentBundle.descriptor();
         ObjectNode root = objectNode();
-        root.put(BUNDLE, currentBundle.descriptor().displayName());
+        root.put(BUNDLE_NAME, bundleDescriptor.displayName());
+        root.put(BUNDLE_DESC, bundleDescriptor.description());
         root.set(USERS, userJsonArray());
         addSubId(root);
         return root.toString();
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/BundleFactory.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/BundleFactory.java
index 2aa6f7c..813ad98 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/BundleFactory.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/BundleFactory.java
@@ -35,12 +35,18 @@
     private static final String BASIC_ID = "basic";
     private static final String BASIC_DISPLAY_NAME = "Basic Bundle";
     private static final String BASIC_DESCRIPTION =
-            "Provides basic internet and firewall functions.";
+            "If the thing that matters most to you is high speed Internet" +
+                    " connectivity delivered at a great price, then the basic" +
+                    " bundle is right for you.\n" +
+                    "Starting at $30 a month for 12 months.";
 
     private static final String FAMILY_ID = "family";
     private static final String FAMILY_DISPLAY_NAME = "Family Bundle";
     private static final String FAMILY_DESCRIPTION =
-            "Provides internet, firewall and parental control functions.";
+            "Enjoy great entertainment, peace of mind and big savings when " +
+                    "you bundle high speed Internet and Firewall with" +
+                    " Parental Control.\n" +
+                    "Starting at $40 a month for 12 months.";
 
 
     // no instantiation
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionDescriptor.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionDescriptor.java
index 411a208..efc9537 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionDescriptor.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/XosFunctionDescriptor.java
@@ -26,7 +26,8 @@
      */
     INTERNET("internet",
              "Internet",
-             "Basic internet connectivity.",
+             "Discover the joys of high-speed, reliable Internet" +
+                     " connectivity delivered seamlessly to your home.",
              false,
              true),
 
@@ -35,7 +36,7 @@
      */
     FIREWALL("firewall",
              "Firewall",
-             "Normal firewall protection.",
+             "Simple access control and filtering with minimal set-up.",
              true,
              true),
 
@@ -44,7 +45,11 @@
      */
     URL_FILTER("url_filter",
                "Parental Control",
-               "Variable levels of URL filtering.",
+               "Parental Control is peace of mind that your kids are safe" +
+                       " - whether you are around or away. Indicate with a " +
+                       "few clicks what online content is appropriate for " +
+                       "your children, and voila - you have control over" +
+                       " what your kids can and cannot view.",
                true,
                true),
 
diff --git a/apps/demo/cord-gui/src/main/webapp/app/fw/foot/foot.html b/apps/demo/cord-gui/src/main/webapp/app/fw/foot/foot.html
index 15e1132..ac21269 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/fw/foot/foot.html
+++ b/apps/demo/cord-gui/src/main/webapp/app/fw/foot/foot.html
@@ -1,10 +1,10 @@
 <!--Foot partial html-->
 <div class="foot">
     <div class="left">
-        Sample copyright notice here
+
     </div>
 
     <div class="right">
-        Some other text here
+        © ONOS Project. All rights reserved.
     </div>
 </div>
diff --git a/apps/demo/cord-gui/src/main/webapp/app/view/bundle/bundle.css b/apps/demo/cord-gui/src/main/webapp/app/view/bundle/bundle.css
index 5683011..84fa842 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/view/bundle/bundle.css
+++ b/apps/demo/cord-gui/src/main/webapp/app/view/bundle/bundle.css
@@ -44,7 +44,7 @@
     padding-left: 3%;
 }
 #bundle td.desc {
-    width: 50%;
+    width: 60%;
     text-align: left;
     font-style: italic;
 }
diff --git a/apps/demo/cord-gui/src/main/webapp/app/view/common/common.css b/apps/demo/cord-gui/src/main/webapp/app/view/common/common.css
index e95d7b1..c2bc96d 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/view/common/common.css
+++ b/apps/demo/cord-gui/src/main/webapp/app/view/common/common.css
@@ -70,6 +70,7 @@
     color: rgba(0,0,0, 0.8);
     text-indent: 20px;
     text-align: justify;
+    padding-right: 5%;
 }
 th {
     background-color: #7AB6EA;
diff --git a/apps/demo/cord-gui/src/main/webapp/app/view/home/home.html b/apps/demo/cord-gui/src/main/webapp/app/view/home/home.html
index e7f8010..27f0d96 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/view/home/home.html
+++ b/apps/demo/cord-gui/src/main/webapp/app/view/home/home.html
@@ -9,17 +9,10 @@
             <div class="bundle-title">
                 <h4>Welcome Dad!</h4>
                 <h5>You are subscribed to the</h5>
-                <h3>{{bundle}}</h3>
+                <h3>{{bundle_name}}</h3>
             </div>
 
-            <p>
-                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sit
-                amet ultricies metus. Praesent pretium diam et nibh lacinia
-                faucibus. Donec commodo efficitur ex quis faucibus.
-                Pellentesque nec commodo metus. Nulla ultrices odio vitae tellus
-                tempor, quis fringilla arcu pellentesque. Duis efficitur massa
-                libero, et molestie diam vulputate nec. Nulla vitae lacinia odio.
-            </p>
+            <p>{{bundle_desc}}</p>
 
 
             <h4>Users</h4>
diff --git a/apps/demo/cord-gui/src/main/webapp/app/view/home/home.js b/apps/demo/cord-gui/src/main/webapp/app/view/home/home.js
index 72b37a5..8e009d9 100644
--- a/apps/demo/cord-gui/src/main/webapp/app/view/home/home.js
+++ b/apps/demo/cord-gui/src/main/webapp/app/view/home/home.js
@@ -35,7 +35,8 @@
                 resource = DashboardData.get({},
                     // success
                     function () {
-                        $scope.bundle = resource.bundle;
+                        $scope.bundle_name = resource.bundle_name;
+                        $scope.bundle_desc = resource.bundle_desc;
                         $scope.users = resource.users;
 
                         if ($.isEmptyObject($scope.shared.userActivity)) {
