diff --git a/xos/core/static/xos.css b/xos/core/static/xos.css
index 4f6924e..82c0967 100644
--- a/xos/core/static/xos.css
+++ b/xos/core/static/xos.css
@@ -677,6 +677,8 @@
 
 .login #wrap {
     background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
+    overflow: hidden;
+    padding: 0;
 }
 #wrap {
     background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
diff --git a/xos/templates/admin/base.html b/xos/templates/admin/base.html
index 2307775..8936b69 100644
--- a/xos/templates/admin/base.html
+++ b/xos/templates/admin/base.html
@@ -123,82 +123,76 @@
         <!-- END Header -->
       {% endblock %}
 
-      {% include 'suit/menu.html' %}
-      <div class="suit-columns {{ is_popup|yesno:'one-column,two-columns' }}">
+      <div class="container-fluid">
+        <div class="col-xs-4">
+          
+          {% include 'suit/menu.html' %}
+        </div>
+        <div class="col-xs-8">
+          <div class="suit-columns {{ is_popup|yesno:'one-column,two-columns' }}">
 
-        {% block content-center %}
-          <!-- <div id="suit-center" class="suit-column"> -->
+            {% block content-center %}
+              <!-- <div id="suit-center" class="suit-column"> -->
 
-            {% if not is_popup %}
-            {% block minidash %}
-            <div id=openCloudTopPage>
-            {% include "admin/newminidashboard.html" %}
-            </div>
-            {% endblock %} 
-
-              {% block breadcrumbs %}
-                <ul class="breadcrumb"> 
-                  <li><a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
-                    {% if title %}
-                      <span class="divider">&raquo;</span>
-                      </li>
-                      <li class="active">
-                      {{ title }}
-                    {% endif %}
-                    </li>
-                </ul>
-              {% endblock %}
-            {% endif %}
-
-            {% block messages %}
-              {% if messages %}
-
-                {% for message in messages %}
-                  <div class="alert alert-{% firstof message.tags 'info' %}">
-                    <button class="close" data-dismiss="alert">×</button>
-                    <strong>
-                      {% if message.tags %}{{ message.tags|capfirst }}{% else %}
-                        Message{% endif %}!</strong>
-                    {{ message }}
-                  </div>
-                {% endfor %}
-              {% endif %}
-            {% endblock messages %}
-
-            <!-- Content -->
-            <div id="content" class="{% block coltype %}colM{% endblock %} row-fluid">
-              {% block pretitle %}{% endblock %}
-              {% block content_title %}{% if title %}
-                <h2 class="content-title">{{ title }}</h2>
-              {% endif %}{% endblock %}
-              {% block content %}
-                {% block object-tools %}{% endblock %}
-                {{ content }}
-              {% endblock %}
-              {% block sidebar_content %}
-                {% block sidebar %}{% endblock %}
-              {% endblock %}
-            </div>
-            <!-- END Content -->
-          <span class="clearfix"></span>
-          <!-- </div> -->
-        {% endblock %}
-
-
-        {% block content-left %}
-          {% if not user.is_appuser %}
-              {% if not is_popup %}
-                <div id="suit-left" class="suit-column">
-
-
-                  
-
+                {% if not is_popup %}
+                {% block minidash %}
+                <div id=openCloudTopPage>
+                {% include "admin/newminidashboard.html" %}
                 </div>
-              {% endif %}
-          {% endif %}
-        {% endblock %}
+                {% endblock %} 
 
+                  {% block breadcrumbs %}
+                    <ul class="breadcrumb"> 
+                      <li><a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
+                        {% if title %}
+                          <span class="divider">&raquo;</span>
+                          </li>
+                          <li class="active">
+                          {{ title }}
+                        {% endif %}
+                        </li>
+                    </ul>
+                  {% endblock %}
+                {% endif %}
+
+                {% block messages %}
+                  {% if messages %}
+
+                    {% for message in messages %}
+                      <div class="alert alert-{% firstof message.tags 'info' %}">
+                        <button class="close" data-dismiss="alert">×</button>
+                        <strong>
+                          {% if message.tags %}{{ message.tags|capfirst }}{% else %}
+                            Message{% endif %}!</strong>
+                        {{ message }}
+                      </div>
+                    {% endfor %}
+                  {% endif %}
+                {% endblock messages %}
+
+                <!-- Content -->
+                <div id="content" class="{% block coltype %}colM{% endblock %} row-fluid">
+                  {% block pretitle %}{% endblock %}
+                  {% block content_title %}{% if title %}
+                    <h2 class="content-title">{{ title }}</h2>
+                  {% endif %}{% endblock %}
+                  {% block content %}
+                    {% block object-tools %}{% endblock %}
+                    {{ content }}
+                  {% endblock %}
+                  {% block sidebar_content %}
+                    {% block sidebar %}{% endblock %}
+                  {% endblock %}
+                </div>
+                <!-- END Content -->
+              <span class="clearfix"></span>
+              <!-- </div> -->
+            {% endblock %}
+
+          </div>
+        </div>
       </div>
+
     </div>
   {% endblock %}
 
diff --git a/xos/templates/admin/dashboard/customize.html b/xos/templates/admin/dashboard/customize.html
index e9ef6d8..e74d6f0 100644
--- a/xos/templates/admin/dashboard/customize.html
+++ b/xos/templates/admin/dashboard/customize.html
@@ -9,8 +9,8 @@
     </div>
 </div>
 <form>
-    <div class="customize_row">
-        <div class="customize_column">
+    <div class="row">
+        <div class="col-xs-4">
             <div>Available Dashboard Views</div>
             <select name="selectfrom" id="select-from" multiple size="5">
                 {% for cp in unusedDashboards %}
@@ -18,14 +18,14 @@
                 {% endfor %}
             </select>
         </div>
-        <div class="customize_column">
+        <div class="col-xs-2">
             <br>
             <div class="btn btn-success" id="customize-btn-add">Add &raquo;</div>
             <br>
             <br>
             <div class="btn btn-success" id="customize-btn-remove">&laquo; Remove</div>
         </div>
-        <div class="customize_column">
+        <div class="col-xs-4">
             <div>Selected Dashboard Views</div>
             <select name="selectto" id="select-to" multiple size="5">
                 {% for cp in dashboards %}
@@ -36,7 +36,7 @@
             <div class="btn btn-high btn-info" id="customize-btn-save">Save</div>
             <div style="display: none" id="customize-msg-saving">Saving...</div>
         </div>
-        <div class="customize_column">
+        <div class="col-xs-2">
             <br>
             <div class="btn btn-success" id="customize-btn-up">Up</div>
             <br>
diff --git a/xos/xos/apps.py b/xos/xos/apps.py
index 38fa596..fdeab29 100644
--- a/xos/xos/apps.py
+++ b/xos/xos/apps.py
@@ -2,4 +2,5 @@
 
 class MyDjangoSuitConfig(DjangoSuitConfig):
     admin_name = 'XOS'
-    menu_position = 'horizontal'
\ No newline at end of file
+    menu_position = 'vertical'
+    menu_open_first_child = False
\ No newline at end of file
