diff --git a/views/ngXosViews/subscriberPortal/bs-config.js b/views/ngXosViews/subscriberPortal/bs-config.js
index 3418583..507b8d3 100644
--- a/views/ngXosViews/subscriberPortal/bs-config.js
+++ b/views/ngXosViews/subscriberPortal/bs-config.js
@@ -40,12 +40,16 @@
   ],
   "server": {
     baseDir: './src',
+    routes: {
+      '/rs/dashboard': './mocks/dashboard.json',
+      '/rs/bundle': './mocks/bundle.json',
+      '/rs/users': './mocks/users.json'
+    },
     middleware: function(req, res, next){
       if(
         req.url.indexOf('/xos/') !== -1 ||
         req.url.indexOf('/xoslib/') !== -1 ||
-        req.url.indexOf('/hpcapi/') !== -1 ||
-        req.url.indexOf('/rs/') !== -1
+        req.url.indexOf('/hpcapi/') !== -1
       ){
         if(conf.xoscsrftoken && conf.xossessionid){
           req.headers.cookie = `xoscsrftoken=${conf.xoscsrftoken}; xossessionid=${conf.xossessionid}`;
diff --git a/views/ngXosViews/subscriberPortal/mocks/bundle.json b/views/ngXosViews/subscriberPortal/mocks/bundle.json
new file mode 100644
index 0000000..035f23f
--- /dev/null
+++ b/views/ngXosViews/subscriberPortal/mocks/bundle.json
@@ -0,0 +1,33 @@
+{
+  "bundle": {
+    "id": "family",
+    "name": "Family Bundle",
+    "functions": [
+      {
+        "id": "internet",
+        "name": "Internet",
+        "desc": "Basic internet connectivity.",
+        "params": {}
+      },
+      {
+        "id": "firewall",
+        "name": "Firewall",
+        "desc": "Normal firewall protection.",
+        "params": {}
+      },
+      {
+        "id": "url_filter",
+        "name": "Parental Control",
+        "desc": "Variable levels of URL filtering.",
+        "params": {
+          "level": "PG",
+          "levels": [ "PG", "PG-13", "R" ]
+        }
+      }
+    ]
+  },
+  "bundles": [
+    { "id": "basic", "name": "Basic Bundle" },
+    { "id": "family", "name": "Family Bundle" }
+  ]
+}
diff --git a/views/ngXosViews/subscriberPortal/mocks/dashboard.json b/views/ngXosViews/subscriberPortal/mocks/dashboard.json
new file mode 100644
index 0000000..696b74b
--- /dev/null
+++ b/views/ngXosViews/subscriberPortal/mocks/dashboard.json
@@ -0,0 +1,10 @@
+{
+  "bundle_name": "Family Bundle",
+  "bundle_desc": "This is the bundle description. Lorem ipsum dolor sit amet, consectetur adipisicing elit.",
+  "users": [
+    { "id": 1, "name": "Mom's MacBook", "icon_id": "mom", "mac": "00:11:22:33:44:55" },
+    { "id": 1, "name": "Dad's iPad", "icon_id": "dad", "mac": "00:11:22:33:44:66" },
+    { "id": 1, "name": "Dick's laptop", "icon_id": "boy2", "mac": "00:11:22:33:44:77" },
+    { "id": 1, "name": "Jane's laptop", "icon_id": "girl1", "mac": "00:11:22:33:44:88" }
+  ]
+}
diff --git a/views/ngXosViews/subscriberPortal/mocks/users.json b/views/ngXosViews/subscriberPortal/mocks/users.json
new file mode 100644
index 0000000..3b9ed10
--- /dev/null
+++ b/views/ngXosViews/subscriberPortal/mocks/users.json
@@ -0,0 +1,48 @@
+{
+  "users": [
+    {
+      "id": 1,
+      "name": "Mom's MacBook",
+      "mac": "010203040506",
+      "icon_id": "mom",
+      "profile": {
+        "url_filter": {
+          "level": "R"
+        }
+      }
+    },
+    {
+      "id": 2,
+      "name": "Dad's iPad",
+      "mac": "010203040507",
+      "icon_id": "dad",
+      "profile": {
+        "url_filter": {
+          "level": "R"
+        }
+      }
+    },
+    {
+      "id": 3,
+      "name": "Dick's laptop",
+      "mac": "010203040508",
+      "icon_id": "boy2",
+      "profile": {
+        "url_filter": {
+          "level": "PG_13"
+        }
+      }
+    },
+    {
+      "id": 4,
+      "name": "Jane's laptop",
+      "mac": "010203040509",
+      "icon_id": "girl1",
+      "profile": {
+        "url_filter": {
+          "level": "PG"
+        }
+      }
+    }
+  ]
+}
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/bundle/bundle.js b/views/ngXosViews/subscriberPortal/src/app/view/bundle/bundle.js
index a5b59d0..60dea84 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/bundle/bundle.js
+++ b/views/ngXosViews/subscriberPortal/src/app/view/bundle/bundle.js
@@ -46,6 +46,7 @@
                             availId = (current === basic) ? family : basic;
                             resource.bundles.forEach(function (bundle) {
                                 if (bundle.id === availId) {
+                                    // NOTE available should be an array
                                     $scope.available = bundle;
                                 }
                             });
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/common/common.css b/views/ngXosViews/subscriberPortal/src/app/view/common/common.css
index c2bc96d..5ae154b 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/common/common.css
+++ b/views/ngXosViews/subscriberPortal/src/app/view/common/common.css
@@ -20,6 +20,7 @@
 
 html, body, div#frame, div#view {
     height: 100%;
+    overflow: scroll;
 }
 
 head, body, footer,
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/home/home.html b/views/ngXosViews/subscriberPortal/src/app/view/home/home.html
index 27f0d96..a3d7fb2 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/home/home.html
+++ b/views/ngXosViews/subscriberPortal/src/app/view/home/home.html
@@ -26,6 +26,8 @@
                 </thead>
                 <tbody>
 
+                <!--<pre>{{users | json}}</pre>-->
+
                 <tr ng-repeat="user in users" class="fadein">
                         <td class="user-pic">
                             <img ng-src="{{'/imgs/' + user.icon_id + '.jpg'}}">
@@ -37,4 +39,4 @@
             </table>
         </div>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/user/user.js b/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
index bb44fec..971838c 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
+++ b/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
@@ -22,9 +22,15 @@
         family = 'family',
         url_filter = 'url_filter';
 
+    function randomDate(start, end) {
+        return new Date(
+          start.getTime() + Math.random() * (end.getTime() - start.getTime())
+        );
+    }
+
     angular.module('cordUser', [])
-        .controller('CordUserCtrl', ['$log', '$scope', '$resource', '$timeout',
-            function ($log, $scope, $resource, $timeout) {
+        .controller('CordUserCtrl', ['$log', '$scope', '$resource', '$timeout', '$filter',
+            function ($log, $scope, $resource, $timeout, $filter) {
                 var BundleData, bundleResource;
                 $scope.page.curr = 'user';
                 $scope.isFamily = false;
@@ -63,6 +69,15 @@
                         // success
                         function () {
                             $scope.users = userResource.users;
+                            if ($.isEmptyObject($scope.shared.userActivity)) {
+                                $scope.users.forEach(function (user) {
+                                    var date = randomDate(new Date(2015, 0, 1),
+                                      new Date());
+
+                                    $scope.shared.userActivity[user.id] =
+                                      $filter('date')(date, 'mediumTime');
+                                });
+                            }
                         },
                         // error
                         function () {
diff --git a/views/ngXosViews/subscriberPortal/src/cord.js b/views/ngXosViews/subscriberPortal/src/cord.js
index e183466..889341e 100644
--- a/views/ngXosViews/subscriberPortal/src/cord.js
+++ b/views/ngXosViews/subscriberPortal/src/cord.js
@@ -28,25 +28,9 @@
       'cordHome',
       'cordUser',
       'cordBundle'
-    ],
-    viewIds = [
-    ],
-    viewDependencies = [],
-    dependencies;
+    ];
 
-  function capitalize(word) {
-    return word ? word[0].toUpperCase() + word.slice(1) : word;
-  }
-
-  viewIds.forEach(function (id) {
-    if (id) {
-      viewDependencies.push('cord' + capitalize(id));
-    }
-  });
-
-  dependencies = modules.concat(viewDependencies);
-
-  angular.module('cordGui', dependencies)
+  angular.module('cordGui', modules)
     .config(['$routeProvider', function ($routeProvider) {
       $routeProvider
         .when('/login', {
