diff --git a/applications/subscriberPortal/src/app/fw/foot/foot.css b/applications/subscriberPortal/src/app/fw/foot/foot.css
deleted file mode 100644
index b8746d6..0000000
--- a/applications/subscriberPortal/src/app/fw/foot/foot.css
+++ /dev/null
@@ -1,46 +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.
- */
-
-div.foot {
-    width: 100%;
-    height: 30px;
-    background-color: white;
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    margin-left: auto;
-    margin-right: auto;
-    z-index: 100;
-    box-shadow: 0 10px 5px 10px gray;
-}
-
-.foot div {
-    position: absolute;
-    top: 50%;
-    transform: translate(0, -50%);
-    font-style: italic;
-    font-size: 12px;
-    color: #3C3C3C;
-}
-
-.foot div.left {
-    left: 25px;
-}
-
-.foot div.right {
-    right: 25px;
-}
diff --git a/applications/subscriberPortal/src/app/fw/mast/mast.css b/applications/subscriberPortal/src/app/fw/mast/mast.css
deleted file mode 100644
index b79d89e..0000000
--- a/applications/subscriberPortal/src/app/fw/mast/mast.css
+++ /dev/null
@@ -1,63 +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.
- */
-
-div.mast {
-    width: 100%;
-    height: 85px;
-    background-color: white;
-    position: relative;
-    box-shadow: 0 10px 5px -7px gray;
-    z-index: 100;
-}
-
-.mast div {
-    position: absolute;
-    top: 50%;
-    transform: translate(0, -50%);
-}
-
-.mast div.left {
-    left: 25px;
-}
-
-.mast div.right {
-    right: 7%;
-    width: 37%;
-}
-
-.mast img {
-    width: 220px;
-}
-
-.mast a,
-.mast a:visited {
-    text-decoration: none;
-    color: #3C3C3C;
-}
-
-.mast li.logout {
-    list-style-type: none;
-    position: absolute;
-    right: 0;
-    top: 50%;
-    transform: translate(0, -50%);
-    font-size: 90%;
-}
-.mast li.logout:hover {
-    font-weight: bold;
-    list-style-type: none;
-    cursor: pointer;
-}
diff --git a/applications/subscriberPortal/src/app/fw/mast/mast.html b/applications/subscriberPortal/src/app/fw/mast/mast.html
index 30bae4b..d11e66e 100644
--- a/applications/subscriberPortal/src/app/fw/mast/mast.html
+++ b/applications/subscriberPortal/src/app/fw/mast/mast.html
@@ -1,8 +1,8 @@
 <!--Mast HTML-->
-<nav class="navbar navbar-default navbar-fixed-top" ng-controller="CordMastCtrl">
+<nav class="navbar navbar-default navbar-fixed-top">
     <div class="container">
         <div class="navbar-header">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+            <button ng-if="page.curr !== 'login'" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                 <span class="sr-only">Toggle navigation</span>
                 <span class="icon-bar"></span>
                 <span class="icon-bar"></span>
@@ -12,8 +12,8 @@
                 <img src="/imgs/logo.png">
             </a>
         </div>
-        <div id="navbar" class="collapse navbar-collapse">
-            <ul ng-show="page.curr !== 'login'" class="nav navbar-nav pull-right">
+        <div id="navbar" class="collapse navbar-collapse" close-on-route-change>
+            <ul ng-if="page.curr !== 'login'" class="nav navbar-nav pull-right">
                 <li ng-class="{active: page.curr === 'dashboard'}">
                     <a href="#/home">Home</a>
                 </li>
diff --git a/applications/subscriberPortal/src/app/fw/mast/mast.js b/applications/subscriberPortal/src/app/fw/mast/mast.js
index 9b27628..eb08d79 100644
--- a/applications/subscriberPortal/src/app/fw/mast/mast.js
+++ b/applications/subscriberPortal/src/app/fw/mast/mast.js
@@ -31,7 +31,19 @@
     .directive('mast', function () {
       return {
         restrict: 'E',
-        templateUrl: 'app/fw/mast/mast.html'
+        templateUrl: 'app/fw/mast/mast.html',
+        controller: 'CordMastCtrl',
+        controllerAs: ''
       };
-    });
+    })
+  .directive('closeOnRouteChange', function(){
+    return {
+      restrict: 'A',
+      link: function(scope, elem){
+        scope.$on('$routeChangeStart', function(next, current) {
+          elem.removeClass('in');
+        });
+      }
+    }
+  });
 }());
diff --git a/applications/subscriberPortal/src/app/view/bundle/available.html b/applications/subscriberPortal/src/app/view/bundle/available.html
index 6f300d4..a6f2a31 100644
--- a/applications/subscriberPortal/src/app/view/bundle/available.html
+++ b/applications/subscriberPortal/src/app/view/bundle/available.html
@@ -1,5 +1,11 @@
-<div ng-cloak class="ng-hide ng-cloak" ng-show="show" id="available">
-    <h3>{{available.name}}</h3>
-    <p>{{available.desc}}</p>
-    <button ng-click="changeBundle(available.id)">Apply</button>
+<div class="panel panel-primary animate" ng-hide="!show">
+    <div class="panel-heading">
+        <h3 class="panel-title">{{available.name}}</h3>
+    </div>
+    <div class="panel-body">
+        {{available.desc}}
+    </div>
+    <div class="panel-footer text-right">
+        <a class="btn btn-success btn-xs" ng-click="changeBundle(available.id)">Apply</a>
+    </div>
 </div>
diff --git a/applications/subscriberPortal/src/app/view/bundle/bundle.css b/applications/subscriberPortal/src/app/view/bundle/bundle.css
deleted file mode 100644
index 84fa842..0000000
--- a/applications/subscriberPortal/src/app/view/bundle/bundle.css
+++ /dev/null
@@ -1,105 +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.
- */
-
-div#bundle div.main-left {
-    width: 61%;
-    padding: 4% 0 0 1%;
-}
-div#bundle div.main-right {
-    width: 37%;
-    padding-top: 4%;
-}
-
-#bundle table {
-    width: 95%;
-    margin-top: 5%;
-    margin-left: 2%;
-    border-radius: 3px;
-}
-
-#bundle td {
-    font-size: 90%;
-}
-#bundle td.icon {
-    text-align: center;
-    width: 50px;
-    height: 50px;
-    padding: 4%;
-}
-#bundle td.name {
-    border-left: solid 1px rgba(136, 0, 0, 0.25);
-    padding-left: 3%;
-}
-#bundle td.desc {
-    width: 60%;
-    text-align: left;
-    font-style: italic;
-}
-/* animation specific */
-#bundle tr.fadein.ng-leave td.name,
-#bundle tr.fadein.ng-leave-active td.name {
-    opacity: 0;
-    border: none;
-}
-
-#bundle img {
-    width: 100%;
-}
-
-#bundle h2 {
-    text-align: center;
-    padding: 3%;
-    font-weight: lighter;
-    border: 1px solid #3C3C3C;
-    cursor: pointer;
-}
-#bundle h2:hover {
-    color: #CE5650;
-    border-color: #CE5650;
-}
-
-div#bundles {
-    position: relative;
-}
-
-div#available.ng-hide-add.ng-hide-add-active,
-div#available.ng-hide-remove.ng-hide-remove-active {
-    -webkit-transition: all linear 0.5s;
-    transition: all linear 0.5s;
-}
-div#available.ng-hide {
-    opacity: 0;
-    top: -80px;
-}
-
-div#available {
-    position: absolute;
-    padding: 5%;
-    opacity: 1;
-    top: -10px;
-    width: 100%;
-}
-
-#available p {
-    text-indent: initial;
-    text-align: initial;
-}
-
-#available button {
-    float: right;
-    width: 33%;
-    margin-top: 5%;
-}
diff --git a/applications/subscriberPortal/src/app/view/bundle/bundle.html b/applications/subscriberPortal/src/app/view/bundle/bundle.html
index 8852d86..f658ccf 100644
--- a/applications/subscriberPortal/src/app/view/bundle/bundle.html
+++ b/applications/subscriberPortal/src/app/view/bundle/bundle.html
@@ -1,24 +1,39 @@
 <!-- Bundle page partial html -->
 <div id="bundle" class="container">
-    <div class="main-left">
-        <h4>You are subscribed to the</h4>
-        <h3>{{name}}</h3>
-        <p>{{desc}}</p>
-        <table>
-            <tr ng-repeat="func in funcs" class="fadein">
-                <td class="icon">
-                    <img ng-src="{{'/imgs/' + func.id + '.png'}}">
-                </td>
-                <td class="name">{{func.name}}</td>
-                <td class="desc">{{func.desc}}</td>
-            </tr>
-        </table>
-    </div>
-    <div class="main-right">
-        <img src="imgs/bundle.jpg">
-        <div ng-click="showBundles()">
-            <h2>Available Bundles</h2>
+    <div class="row">
+        <div class="col-sm-6">
+            <h4>You are subscribed to the</h4>
+            <div class="panel panel-primary">
+                <div class="panel-heading">
+                    <h3 class="panel-title">{{name}}</h3>
+                </div>
+                <div class="panel-body">
+                    {{desc}}
+                </div>
+            </div>
+            <div class="panel panel-primary">
+                <div class="panel-heading">
+                    <h3 class="panel-title">Users</h3>
+                </div>
+                <table class="table">
+                    <tr ng-repeat="func in funcs" class="animate-repeat">
+                        <td class="avatar">
+                            <img ng-src="{{'/imgs/' + func.id + '.png'}}">
+                        </td>
+                        <td class="name"><b>{{func.name}}</b></td>
+                        <td class="desc">{{func.desc}}</td>
+                    </tr>
+                </table>
+            </div>
+
+
         </div>
-        <div id="bundles" bundle-available></div>
+        <div class="col-sm-6">
+            <img class="img-responsive" src="imgs/bundle.jpg">
+            <a ng-click="showBundles()" class="btn btn-primary-border btn-large btn-block">
+                Available Bundles
+            </a>
+            <div id="bundles" bundle-available></div>
+        </div>
     </div>
 </div>
\ No newline at end of file
diff --git a/applications/subscriberPortal/src/app/view/common/common.css b/applications/subscriberPortal/src/app/view/common/common.css
deleted file mode 100644
index 800fe24..0000000
--- a/applications/subscriberPortal/src/app/view/common/common.css
+++ /dev/null
@@ -1,177 +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.
- */
-
-[ng\:cloak], [ng-cloak], .ng-cloak {
-    display: none !important;
-}
-
-html, body, div#frame, div#view {
-    height: 100%;
-    overflow: scroll;
-}
-
-head, body, footer,
-h1, h2, h3, h4, h5, h6, p,
-a, ul, li, div,
-table, tr, td, th, thead, tbody,
-form, select, input, option, label {
-    padding: 0;
-    margin: 0;
-}
-
-h1, h2, h3, h4, h5, h6,
-p, a, li, th, td,
-select, input, option, label, div {
-    font-family: sans-serif, "Droid Sans", "Lucida Grande", Arial, Helvetica;
-    color: #3C3C3C;
-}
-
-body {
-    background-color: white;
-    overflow: hidden;
-}
-table {
-    border-spacing: 0;
-    border-collapse: collapse;
-}
-th, td {
-    color: rgba(0, 0, 0, 0.8);
-}
-h3 {
-    margin-bottom: 4%;
-    font-size: xx-large;
-    font-weight: lighter;
-}
-h4 {
-    font-size: large;
-    font-weight: lighter;
-}
-h5 {
-    color: rgb(107, 107, 107);
-    font-style: italic;
-    font-weight: normal;
-    font-size: 90%;
-    margin-bottom: 1%;
-}
-p {
-    font-size: 100%;
-    color: rgba(0,0,0, 0.8);
-    text-indent: 20px;
-    text-align: justify;
-    padding-right: 5%;
-}
-th {
-    background-color: #7AB6EA;
-    color: white;
-    letter-spacing: 0.05em;
-    font-weight: lighter;
-}
-
-button,
-input[type="button"],
-input[type="reset"] {
-    height: 30px;
-    box-shadow: none;
-    border: none;
-    outline: none;
-    cursor: pointer;
-    letter-spacing: 0.02em;
-    font-size: 14px;
-    background-color: lightgray;
-    transition: background-color 0.4s;
-}
-button:hover,
-input[type="button"]:hover,
-input[type="reset"]:hover {
-    color: white;
-    background-color: rgb(122, 188, 229);
-}
-
-button[disabled],
-input[type="button"][disabled],
-input[type="reset"][disabled] {
-    background-color: lightgray;
-    color: graytext;
-}
-
-
-button[disabled]:hover,
-input[type="button"][disabled]:hover,
-input[type="reset"][disabled]:hover {
-    cursor: default;
-}
-
-div.container {
-    width: 85%;
-    margin: 0 auto;
-    min-height: 100%;
-}
-div.main-left, div.main-right {
-    float: left;
-}
-div.main-left {
-    width: 37%;
-    padding-left: 1%;
-}
-div.main-right {
-    width: 61%;
-}
-
-svg#icon-defs {
-    display: none;
-}
-
-g.icon circle {
-    fill: none;
-}
-g.icon use.glyph.checkMark {
-    fill: rgb(68, 189, 83)
-}
-g.icon use.glyph.xMark {
-    fill: #CE5650;
-}
-
-th.user-pic {
-    background-color: white;
-}
-th.user-pic,
-td.user-pic {
-    width: 30px;
-    padding-left: 4%;
-}
-td.user-pic img {
-    width: 25px;
-}
-
-/* animation */
-.fadein {
-    transition: all linear 0.5s;
-}
-.fadein.ng-enter-stagger,
-.fadein.ng-leave-stagger {
-    transition-delay: 0.2s;
-    animation-delay: 0.2s;
-}
-.fadein.ng-enter {
-    opacity: 0;
-}
-.fadein.ng-enter.ng-enter-active {
-    opacity: 1;
-}
-.fadein.ng-leave,
-.fadein.ng-leave-active {
-    opacity: 0;
-}
diff --git a/applications/subscriberPortal/src/app/view/home/home.css b/applications/subscriberPortal/src/app/view/home/home.css
deleted file mode 100644
index 58f07a5..0000000
--- a/applications/subscriberPortal/src/app/view/home/home.css
+++ /dev/null
@@ -1,65 +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.
- */
-
-#home div.main-left {
-    width: 55%;
-    padding: 0;
-}
-#home div.main-right {
-    padding: 1% 0 0 3%;
-    width: 42%;
-}
-#home div.move-down {
-    margin-top: 5%;
-}
-
-#home div.image-holder {
-    width: 100%;
-    position: relative;
-}
-
-#home div.main-left img {
-    width: 100%;
-}
-
-#home div.main-right div.bundle-title {
-    padding: 2% 0;
-}
-
-#home h4 {
-    padding-bottom: 2%;
-}
-
-#home p {
-    margin-bottom: 3%;
-}
-
-#home table {
-    width: 94%;
-    table-layout: fixed;
-    margin-left: 6%;
-    border-left: 1px solid #CE5650;
-}
-
-#home table.users th,
-#home table.users td {
-    font-size: 90%;
-}
-
-#home td, #home th {
-    text-align: left;
-    padding: 2%;
-}
diff --git a/applications/subscriberPortal/src/app/view/home/home.html b/applications/subscriberPortal/src/app/view/home/home.html
index a3d7fb2..2537996 100644
--- a/applications/subscriberPortal/src/app/view/home/home.html
+++ b/applications/subscriberPortal/src/app/view/home/home.html
@@ -1,42 +1,50 @@
 <!-- Home page partial html -->
 <div id="home" class="container">
-    <div class="main-left">
-        <img src="/imgs/home.jpg">
-    </div>
-
-    <div class="main-right">
-        <div class="move-down">
+    <div class="row">
+        <div class="col-sm-6 hidden-xs">
+            <img class="img-responsive" src="/imgs/home.jpg">
+        </div>
+        <div class="col-sm-6">
             <div class="bundle-title">
-                <h4>Welcome Dad!</h4>
+                <h2>Welcome Dad!</h2>
                 <h5>You are subscribed to the</h5>
-                <h3>{{bundle_name}}</h3>
             </div>
 
-            <p>{{bundle_desc}}</p>
+            <div class="panel panel-primary">
+                <div class="panel-heading">
+                    <h3 class="panel-title">{{bundle_name}}</h3>
+                </div>
+                <div class="panel-body">
+                    {{bundle_desc}}
+                </div>
+            </div>
 
-
-            <h4>Users</h4>
-            <table class="users">
-                <thead>
+            <div class="panel panel-primary">
+                <div class="panel-heading">
+                    <h3 class="panel-title">Users</h3>
+                </div>
+                <table class="table">
+                    <thead>
                     <tr>
-                        <th class="user-pic"></th>
+                        <th></th>
                         <th>Name</th>
                         <th>Last Login</th>
                     </tr>
-                </thead>
-                <tbody>
+                    </thead>
+                    <tbody>
 
-                <!--<pre>{{users | json}}</pre>-->
+                    <!--<pre>{{users | json}}</pre>-->
 
-                <tr ng-repeat="user in users" class="fadein">
-                        <td class="user-pic">
+                    <tr ng-repeat="user in users" class="animate-repeat">
+                        <td class="avatar">
                             <img ng-src="{{'/imgs/' + user.icon_id + '.jpg'}}">
                         </td>
                         <td>{{user.name}}</td>
                         <td>{{shared.userActivity[user.id]}}</td>
                     </tr>
-                </tbody>
-            </table>
+                    </tbody>
+                </table>
+            </div>
         </div>
     </div>
 </div>
\ No newline at end of file
diff --git a/applications/subscriberPortal/src/app/view/login/login.css b/applications/subscriberPortal/src/app/view/login/login.css
deleted file mode 100644
index b4275c5..0000000
--- a/applications/subscriberPortal/src/app/view/login/login.css
+++ /dev/null
@@ -1,133 +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.
- */
-
-div#login {
-    background: url("/imgs/login.jpg") no-repeat center;
-    background-size: contain;
-    position: absolute;
-    top: 3%;
-    left: 5%;
-}
-
-div#login-wrapper {
-    text-align: center;
-}
-
-#login h2 {
-    margin: 1%;
-    color: rgb(115, 115, 115);
-    font-size: xx-large;
-    font-weight: lighter;
-    text-align: left;
-    position: absolute;
-    top: -140px;
-}
-
-div#login-form {
-    display: inline-block;
-}
-
-#login div.outline {
-    position: absolute;
-    border: 1px solid rgba(115, 115, 115, 0.7);
-    background-color: white;
-    opacity: .6;
-    top: -160px;
-    left: -25px;
-    width: 300px;
-    height: 245px;
-    border-radius: 1px;
-}
-
-div#login-form {
-    margin-left: 2.5%;
-    position: relative;
-    width: 255px;
-    margin-top: 33.5%;
-}
-
-#login-form form {
-    line-height: 250%;
-}
-
-#login-form input {
-    display: block;
-    height: 40px;
-    width: 230px;
-    font-size: 19px;
-    padding: 0 5px;
-    margin-bottom: 3.5%;
-    border-radius: 1px;
-    position: absolute;
-}
-
-#login-form .login-error{
-    background: red;
-    border: 2px solid darkred;
-    color: white;
-    position: absolute;
-    height: 40px;
-    width: 230px;
-    padding: 0 5px;
-    border-radius: 1px;
-    top: 70px;
-    font-size: 10px;
-}
-
-#login-form input[type="text"] {
-    top: -90px;
-}
-#login-form input[type="password"] {
-    top: -35px;
-}
-
-#login-form input[type="text"],
-#login-form input[type="password"] {
-    border: 2px solid rgba(115, 115, 115, 0.7);
-    transition: border 0.1s;
-}
-#login-form input[type="text"]:focus,
-#login-form input[type="password"]:focus,
-#login-form input[type="button"]:focus {
-    outline: none;
-    border: solid 2px rgba(122, 188, 229, 0.5);
-}
-
-#login-form a {
-    text-decoration: none;
-}
-
-#login-form input[type="button"] {
-    top: 25px;
-    width: 245px;
-    height: 30px;
-    cursor: pointer;
-    letter-spacing: 0.02em;
-    font-size: 100%;
-    color: #3C3C3C;
-    background-color: lightgray;
-    transition: background-color 0.4s;
-}
-
-#login-form input[type="button"]:hover {
-    color: white;
-    background-color: rgb(122, 188, 229);
-}
-
-#login-form input.ng-invalid.ng-touched {
-    background-color: #CE5650;
-    color: white;
-}
diff --git a/applications/subscriberPortal/src/app/view/login/login.html b/applications/subscriberPortal/src/app/view/login/login.html
index 6359cce..eb32222 100644
--- a/applications/subscriberPortal/src/app/view/login/login.html
+++ b/applications/subscriberPortal/src/app/view/login/login.html
@@ -1,18 +1,23 @@
 <!-- Login page partial html -->
-<div id="login" class="container">
-    <div id="login-wrapper">
-        <div id="login-form">
-            <div class="outline"></div>
-            <h2>Subscriber Portal</h2>
-            <form ng-submit="login()">
-                <input ng-model="email" type="text" placeholder="email" required>
-                <input ng-model="password" type="password" placeholder="password" required>
-                <input ng-click="login()" type="button" value="Log In">
-                <div class="login-error" ng-show="error">
+<div class="container login">
+    <div class="login-wrapper">
+        <h3 class="text-center">Subscriber Portal</h3>
+        <form ng-submit="login()">
+            <div class="form-group">
+                <input class="form-control" ng-model="email" type="text" placeholder="email" required>
+            </div>
+            <div class="form-group">
+                <input class="form-control" ng-model="password" type="password" placeholder="password" required>
+            </div>
+            <div class="form-group">
+                <button class="btn btn-primary btn-block" type="submit">Log In</button>
+            </div>
+            <div class="form-group" ng-show="error">
+                <div class="alert alert-danger">
                     Sorry, your login failed.
                     Please try again.
                 </div>
-            </form>
-        </div>
+            </div>
+        </form>
     </div>
 </div>
\ No newline at end of file
diff --git a/applications/subscriberPortal/src/app/view/user/user.css b/applications/subscriberPortal/src/app/view/user/user.css
deleted file mode 100644
index a3f64d5..0000000
--- a/applications/subscriberPortal/src/app/view/user/user.css
+++ /dev/null
@@ -1,219 +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.
- */
-
-#user div {
-    padding-top: 2%;
-}
-
-#user .icon-saved{
-    background-image: url('../../../imgs/icon-saved.gif');
-    display: inline-block;
-    width: 15px;
-    height: 15px;
-    background-size: cover;
-}
-
-/* when hiding the picture */
-#user .icon-saved.ng-hide-add         { animation:0.5s lightSpeedOut ease; }
-
-/* when showing the picture */
-#user .icon-saved.ng-hide-remove      { animation:0.5s lightSpeedIn ease; }
-
-/* light speed out */
-@keyframes lightSpeedOut {
-    0% {
-        opacity: 1;
-    }
-
-    100% {
-        transform: translate3d(100%, 0, 0) skewX(30deg);
-        transform: translate3d(100%, 0, 0) skewX(30deg);
-        opacity: 0;
-    }
-}
-
-@keyframes lightSpeedIn {
-
-    0% {
-        transform: translate3d(100%, 0, 0) skewX(30deg);
-        transform: translate3d(100%, 0, 0) skewX(30deg);
-        opacity: 0;
-    }
-    100% {
-        opacity: 1;
-    }
-}
-
-#user div.main-left {
-    width: 98%;
-    padding-left: 1%;
-}
-#user div.main-left.family {
-    width: 62%;
-    padding-left: 1%;
-}
-
-#user div.main-right {
-    width: 0;
-}
-#user div.main-right.family {
-    width: 37%;
-}
-
-#user table.user-info,
-#user table.user-form {
-    float: left;
-    width: 100%;
-}
-
-#user table.user-info th,
-#user table.user-form th {
-    text-align: left;
-    padding: 2% 1%;
-}
-
-#user span.help:hover {
-    cursor: pointer;
-    color: #CE5650;
-}
-
-#user div.main-left.family table.user-info th,
-#user div.main-right.family table.user-form th {
-    padding: 17px;
-}
-
-#user div.main-left.family table.user-info td,
-#user div.main-right.family table.user-form td {
-    padding: 10px;
-    height: 23px;
-}
-#user table.user-info td {
-    padding: 1%;
-}
-
-#user table.user-form td {
-    border-left: 1px solid #CE5650;
-}
-
-#user table.user-form td.buttons {
-    text-align: right;
-    border: none;
-}
-
-#user table.user-form tr.options td {
-    padding-left: 5%;
-}
-
-#user select,
-#user select:focus {
-    border: none;
-}
-
-#user select {
-    font-size: 95%;
-}
-
-#user option,
-#user option:focus {
-    border: none;
-}
-
-#user option[selected] {
-    background-color: rgb(122, 188, 229);
-}
-
-#user label {
-    font-weight: bold;
-    display: block;
-    text-align: center;
-    padding: 5%;
-}
-
-#user input[type="button"],
-#user input[type="reset"] {
-    width: 30%;
-}
-
-#user td.buttons div {
-    display: inline;
-}
-#user td.buttons svg {
-    vertical-align: middle;
-}
-
-#rating-panel th,
-#rating-panel td {
-    text-align: center;
-    padding: 1%;
-    font-weight: lighter;
-}
-
-#rating-panel th.title,
-#rating-panel td.title {
-    width: 125px;
-    text-align: left;
-}
-
-#rating-panel th {
-    background-color: white;
-    padding-top: 3%;
-    border-bottom: 1px solid #CE5650;
-    color: #3C3C3C;
-    font-weight: normal;
-}
-
-#rating-panel tr th:first-child,
-#rating-panel tr td:first-child {
-    padding-left: 5%;
-}
-#rating-panel tr th:last-child,
-#rating-panel tr td:last-child {
-    padding-right: 5%;
-}
-
-div#rating-panel {
-    position: relative;
-    pointer-events: none;
-}
-
-#rating-panel div.ng-hide-add.ng-hide-add-active,
-#rating-panel div.ng-hide-remove.ng-hide-remove-active {
-    -webkit-transition: all linear 0.75s;
-    transition: all linear 0.75s;
-}
-
-#rating-panel div.panel {
-    position: absolute;
-    top: 0;
-    left: -6%;
-    height: 545px;
-    overflow: auto;
-    padding: 0;
-    pointer-events: auto;
-    box-shadow: 0 3px 23px 7px rgb(118, 118, 118);
-    border-radius: 3px;
-}
-#rating-panel table {
-    table-layout: fixed;
-    width: 500px;
-    background-color: white;
-    opacity: 1;
-}
-
-#rating-panel div.ng-hide {
-    opacity: 0;
-    left: -55%;
-}
diff --git a/applications/subscriberPortal/src/app/view/user/user.html b/applications/subscriberPortal/src/app/view/user/user.html
index 0065799..76896f8 100644
--- a/applications/subscriberPortal/src/app/view/user/user.html
+++ b/applications/subscriberPortal/src/app/view/user/user.html
@@ -1,42 +1,40 @@
 <!-- Users page partial html -->
 <div class="container">
-    <div id="user">
-        <div class="main-left" ng-class="{family: isFamily}">
-            <table class="user-info">
-                <tr>
-                    <th class="user-pic"></th>
-                    <th>Name</th>
-                    <th>Last Login</th>
-                </tr>
-                <tr ng-repeat="user in users" class="fadein">
-                    <td class="user-pic">
+    <div id="user" class="row">
+        <div class="col-xs-12">
+            <table class="table">
+                <thead>
+                    <tr>
+                        <th></th>
+                        <th class="form-inline">
+                            Name <input ng-model="q.name" type="text" class="form-control">
+                        </th>
+                        <th>Last Login</th>
+                        <th ng-if="isFamily">
+                            Select Site Rating
+                            <span class="help" ng-click="showRatings()"> (?)</span>
+                        </th>
+                        <th ng-if="isFamily"></th>
+                    </tr>
+                </thead>
+                <tr ng-repeat="user in users | filter:q" class="animate-repeat">
+                    <td class="avatar">
                         <img ng-src="{{'/imgs/' + user.icon_id + '.jpg'}}">
                     </td>
                     <td>{{user.name}}</td>
                     <td>{{shared.userActivity[user.id]}}</td>
+                    <td ng-if="isFamily">
+                        <select class="form-control" ng-model="user.level" ng-options="l for l in levels" ng-change="updateLevel(user)">
+                        </select>
+                    </td>
+                    <td ng-if="isFamily" style="width: 46px">
+                        <user-updated-tick user="user">Saved</user-updated-tick>
+                    </td>
                 </tr>
             </table>
         </div>
 
-        <div class="main-right" ng-class="{family: isFamily}">
-            <form ng-if="isFamily" name="changeLevels">
-                <table class="user-form">
-                    <tr>
-                        <th>
-                            Select Site Rating
-                            <span class="help" ng-click="showRatings()"> (?)</span>
-                        </th>
-                    </tr>
-                    <tr ng-repeat="user in users" class="options">
-                        <td>
-                            <select ng-model="user.level" ng-options="l for l in levels" ng-change="updateLevel(user)">
-                            </select>
-                            <user-updated-tick user="user">Saved</user-updated-tick>
-                        </td>
-                    </tr>
-                </table>
-            </form>
-        </div>
+        <!-- TODO refactor in modal-->
         <div ng-if="isFamily">
             <ratings-panel></ratings-panel>
         </div>
diff --git a/applications/subscriberPortal/src/app/view/user/user.js b/applications/subscriberPortal/src/app/view/user/user.js
index 616529b..6b42bc4 100644
--- a/applications/subscriberPortal/src/app/view/user/user.js
+++ b/applications/subscriberPortal/src/app/view/user/user.js
@@ -67,7 +67,7 @@
         scope: {
           user: '='
         },
-        template: '<span class="icon-saved" ng-show="saved"></span>',
+        template: '<span class="icon-saved animate" ng-show="saved"></span>',
         link: function(scope, elem){
           scope.saved = false;
           scope.$watch('user.updated', function(val){
