diff --git a/bootstrap.css b/bootstrap.css
index 6c5e58b712..afd87d1372 100644
--- a/bootstrap.css
+++ b/bootstrap.css
@@ -6,7 +6,7 @@
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
- * Date: Tue Nov 29 22:53:00 PST 2011
+ * Date: Wed Nov 30 22:05:44 PST 2011
  */
 html, body {
   margin: 0;
@@ -514,6 +514,9 @@ pre {
   white-space: pre-wrap;
   word-break: break-all;
 }
+pre.prettyprint {
+  margin-bottom: 18px;
+}
 pre code {
   padding: 0;
   background-color: transparent;
@@ -2085,6 +2088,91 @@ button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
 .tab-content > .active, .pill-content > .active {
   display: block;
 }
+.step-nav {
+  position: relative;
+  margin: 0 0 18px;
+  list-style: none;
+  line-height: 30px;
+  text-align: center;
+  background-color: #f5f5f5;
+  -webkit-border-radius: 15px;
+  -moz-border-radius: 15px;
+  border-radius: 15px;
+}
+.step-nav li {
+  display: inline;
+  color: #bfbfbf;
+}
+.step-nav .prev, .step-nav .next {
+  position: absolute;
+  top: 6px;
+}
+.step-nav .prev {
+  left: 15px;
+}
+.step-nav .next {
+  right: 15px;
+}
+.step-nav .dot {
+  display: inline-block;
+  width: 10px;
+  height: 10px;
+  margin: 0 3px;
+  text-indent: -999em;
+  background-color: #bfbfbf;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.25);
+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.25);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.25);
+}
+.step-nav .dot:hover, .step-nav .active .dot {
+  background-color: #404040;
+}
+.subnav {
+  position: relative;
+  background-color: #eeeeee;
+  background-image: -khtml-gradient(linear, left top, left bottom, from(#f5f5f5), to(#eeeeee));
+  background-image: -moz-linear-gradient(top, #f5f5f5, #eeeeee);
+  background-image: -ms-linear-gradient(top, #f5f5f5, #eeeeee);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #eeeeee));
+  background-image: -webkit-linear-gradient(top, #f5f5f5, #eeeeee);
+  background-image: -o-linear-gradient(top, #f5f5f5, #eeeeee);
+  background-image: linear-gradient(top, #f5f5f5, #eeeeee);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee', GradientType=0);
+  -webkit-border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
+}
+.subnav a {
+  padding: 10px 15px;
+  color: #0069d6;
+  text-shadow: 0 1px 0 #fff;
+  border-left: 1px solid #f9f9f9;
+  border-right: 1px solid #e5e5e5;
+}
+.subnav a:hover {
+  color: #00438a;
+  background-color: #eee;
+}
+.subnav li:first-child a {
+  border-left: 0;
+  -webkit-border-radius: 6px 0 0 6px;
+  -moz-border-radius: 6px 0 0 6px;
+  border-radius: 6px 0 0 6px;
+}
+.subnav li:last-child a {
+  border-right: 0;
+  -webkit-border-radius: 0 6px 6px 0;
+  -moz-border-radius: 0 6px 6px 0;
+  border-radius: 0 6px 6px 0;
+}
+.subnav ul .active > a {
+  color: #404040;
+  background-color: #eee;
+}
 .breadcrumb {
   padding: 7px 14px;
   margin: 0 0 18px;
diff --git a/bootstrap.min.css b/bootstrap.min.css
index 7e9e633ae4..d8ee06c156 100644
--- a/bootstrap.min.css
+++ b/bootstrap.min.css
@@ -89,7 +89,8 @@ blockquote.pull-right{float:right;}blockquote.pull-right p,blockquote.pull-right
 address{display:block;margin-bottom:18px;line-height:18px;}
 code,pre{padding:0 3px 2px;font-family:"Menlo",Monaco,Courier New,monospace;font-size:12px;color:#404040;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
 code{padding:1px 3px;background-color:#fee9cc;}
-pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre code{padding:0;background-color:transparent;}
+pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;}
+pre code{padding:0;background-color:transparent;}
 form{margin-bottom:18px;}
 legend{display:block;width:100%;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#404040;border-bottom:1px solid #eee;}
 label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:18px;}
@@ -278,6 +279,16 @@ button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;
 .pills-vertical>li{float:none;}
 .tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
 .tab-content>.active,.pill-content>.active{display:block;}
+.step-nav{position:relative;margin:0 0 18px;list-style:none;line-height:30px;text-align:center;background-color:#f5f5f5;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.step-nav li{display:inline;color:#bfbfbf;}
+.step-nav .prev,.step-nav .next{position:absolute;top:6px;}
+.step-nav .prev{left:15px;}
+.step-nav .next{right:15px;}
+.step-nav .dot{display:inline-block;width:10px;height:10px;margin:0 3px;text-indent:-999em;background-color:#bfbfbf;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.25);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.25);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.25);}
+.step-nav .dot:hover,.step-nav .active .dot{background-color:#404040;}
+.subnav{position:relative;background-color:#eeeeee;background-image:-khtml-gradient(linear, left top, left bottom, from(#f5f5f5), to(#eeeeee));background-image:-moz-linear-gradient(top, #f5f5f5, #eeeeee);background-image:-ms-linear-gradient(top, #f5f5f5, #eeeeee);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #eeeeee));background-image:-webkit-linear-gradient(top, #f5f5f5, #eeeeee);background-image:-o-linear-gradient(top, #f5f5f5, #eeeeee);background-image:linear-gradient(top, #f5f5f5, #eeeeee);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee', GradientType=0);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.subnav a{padding:10px 15px;color:#0069d6;text-shadow:0 1px 0 #fff;border-left:1px solid #f9f9f9;border-right:1px solid #e5e5e5;}.subnav a:hover{color:#00438a;background-color:#eee;}
+.subnav li:first-child a{border-left:0;-webkit-border-radius:6px 0 0 6px;-moz-border-radius:6px 0 0 6px;border-radius:6px 0 0 6px;}
+.subnav li:last-child a{border-right:0;-webkit-border-radius:0 6px 6px 0;-moz-border-radius:0 6px 6px 0;border-radius:0 6px 6px 0;}
+.subnav ul .active>a{color:#404040;background-color:#eee;}
 .breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;}
 .breadcrumb .divider{padding:0 5px;color:#bfbfbf;}
 .breadcrumb .active a{color:#404040;}
diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css
index ec3cd83cb2..a7b52821e3 100644
--- a/docs/assets/css/docs.css
+++ b/docs/assets/css/docs.css
@@ -39,71 +39,6 @@ body > .navbar-fixed .brand:hover {
 }
 
 
-/* Github buttons
--------------------------------------------------- */
-.github-btn {
-  display: inline-block;
-  height: 20px;
-  overflow: hidden;
-}
-.github-btn .gh-btn,
-.github-btn .gh-count,
-.github-btn .gh-ico {
-  float: left;
-}
-.github-btn .gh-btn,
-.github-btn .gh-count {
-  padding: 1px 5px 1px 4px;
-  font-size: 11px;
-  font-weight: bold;
-  line-height: 16px;
-  color: #666;
-  text-shadow: 0 1px 0 #fff;
-  cursor: pointer;
-}
-.github-btn .gh-btn {
-  background-color: #e6e6e6;
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
-  background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
-  background-repeat: no-repeat;
-  border: 1px solid #ccc;
-  border-bottom-color: #bbb;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
-     -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
-          box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
-}
-.github-btn .gh-btn:hover {
-  color: #333;
-  text-decoration: none;
-  background-position: 0 -10px;
-}
-.github-btn .gh-btn:active {
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15);
-     -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15);
-          box-shadow: inset 0 2px 4px rgba(0,0,0,.15);
-}
-.github-btn .gh-ico {
-  margin-right: 4px;
-  opacity: .65;
-}
-.github-btn .gh-btn:hover .gh-ico {
-  opacity: .75;
-}
-.github-btn .gh-count {
-  display: inline-block;
-  margin-left: 2px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-
-
 /* Jumbotrons
 -------------------------------------------------- */
 .jumbotron {
@@ -330,13 +265,6 @@ body > .navbar-fixed .brand:hover {
   margin-left: 10px;
 }
 
-/* scrollspy docs */
-
-.scrollspy-example {
-  overflow: auto;
-  height: 200px;
-  position: relative;
-}
 
 /* Popover docs
 -------------------------------------------------- */
@@ -499,19 +427,3 @@ h2 + table {
   }
 }
 
-#accordion dt a{
-  display:block;
-  padding: 9px 15px;
-  line-height: 1;
-  background-color: whiteSmoke;
-  border: 1px solid #EEE;
-  border-top-color: #fff;
-}
-
-#accordion dt:first-child a {
-  border-top-color:#eee;
-}
-
-#accordion dd p {
-  padding: 10px;
-}
diff --git a/docs/base-css.html b/docs/base-css.html
index bab55f0e44..2b7d17b4a0 100644
--- a/docs/base-css.html
+++ b/docs/base-css.html
@@ -50,7 +50,7 @@
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
         <h1>Base CSS</h1>
-        <p class="lead">The core typography, form, and table styles of Bootstrap</p>
+        <p class="lead">On top of the scaffolding, basic HTML elements are styled and enhanced with extensible classes to provide a fresh, consistent look and feel.</p>
       </header>
 
 
@@ -630,7 +630,49 @@
 &lt;table class="striped-table"&gt;
   ...
 &lt;/table&gt;</pre>
-  <h3>3. Condensed table</h3>
+  <h3>3. Bordered table</h3>
+  <p>Add borders around the entire table and between each row, plus a bit of rounded corners for aesthetic purposes.</p>
+  <p><span class="label">Note</span> Bordered tables do not work well with <code>rowspan</code> due to somewhat hacky CSS applied to the tables. Sorry about that!</p>
+  <table class="bordered-table">
+    <thead>
+      <tr>
+        <th>#</th>
+        <th>First Name</th>
+        <th>Last Name</th>
+        <th>Language</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td>1</td>
+        <td colspan="2">Some One</td>
+        <td>English</td>
+      </tr>
+      <tr>
+        <td>2</td>
+        <td>Joe</td>
+        <td>Sixpack</td>
+        <td>English</td>
+      </tr>
+      </tr>
+        <td>Joe</td>
+        <td>Sixpack</td>
+        <td>English</td>
+      </tr>
+      <tr>
+        <td>3</td>
+        <td>Stu</td>
+        <td>Dent</td>
+        <td>Code</td>
+      </tr>
+    </tbody>
+  </table>
+  <p><strong>Note:</strong> Zebra-striping is a progressive enhancement not available for older browsers like IE8 and below.</p>
+<pre class="prettyprint linenums">
+&lt;table class="striped-table"&gt;
+  ...
+&lt;/table&gt;</pre>
+  <h3>4. Condensed table</h3>
   <p>Make your tables more compact by adding the <code>.condensed-table</code> class to cut table cell padding in half (from 10px to 5px).</p>
   <table class="condensed-table">
     <thead>
@@ -666,7 +708,7 @@
 &lt;table class="condensed-table"&gt;
   ...
 &lt;/table&gt;</pre>
-  <h3>4. Striped table w/ TableSorter.js</h3>
+  <h3>5. Striped table w/ TableSorter.js</h3>
   <p>Taking the previous example, we improve the usefulness of our tables by providing sorting functionality via <a href="http://jquery.com">jQuery</a> and the <a href="http://tablesorter.com/docs/">Tablesorter</a> plugin. <strong>Click any column’s header to change the sort.</strong></p>
   <table class="striped-table" id="sortTableExample">
     <thead>
diff --git a/docs/components.html b/docs/components.html
index bb2f326b46..833f532d9f 100644
--- a/docs/components.html
+++ b/docs/components.html
@@ -50,7 +50,7 @@
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
         <h1>Components</h1>
-        <p class="lead">Reusable patterns for navigation, alerts, popovers, and much more</p>
+        <p class="lead">Dozens of reusable components are built into Bootstrap to provide navigation, alerts, popovers, and much more.</p>
       </header>
 
 
@@ -412,6 +412,28 @@
     </div>
   </div>
 
+  <!-- Step nav -->
+  <div class="row">
+    <div class="span3">
+      <h2>Step nav</h2>
+      <p>Placeholder for now!</p>
+    </div>
+    <div class="span9">
+      <br>
+      <ul class="step-nav">
+        <li class="prev"><a href="#">&laquo; Overview</a></li>
+        <li class="active"><a class="dot" href="#">1</a></li>
+        <li><a class="dot" href="#">2</a></li>
+        <li><a class="dot" href="#">3</a></li>
+        <li><a class="dot" href="#">4</a></li>
+        <li><a class="dot" href="#">5</a></li>
+        <li class="next"><a href="#">Base CSS &raquo;</a></li>
+      </ul>
+      <br>
+      <br>
+    </div>
+  </div>
+
   <!-- Pagination -->
   <div class="row">
     <div class="span3">
diff --git a/docs/index.html b/docs/index.html
index 977ba5c9d8..ff7d56976d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -55,8 +55,8 @@
             <h1>Bootstrap,<br> from Twitter</h1>
             <p class="lead">Bootstrap is a responsive frontend toolkit from Twitter designed to kickstart web development, complete with core HTML, CSS, and JS for grids, type, forms, navigation, and many more components.</p>
             <p class="download-info">
-              <a href="#" class="btn primary btn-large">Download on GitHub</a>
-              <a href="#" class="btn btn-large">Get started</a>
+              <a href="https://github.com/twitter/bootstrap/" class="btn primary btn-large">Download on GitHub</a>
+              <a href="./scaffolding.html" class="btn btn-large">Get started</a>
               Currently v2.0.0
             </p>
 
diff --git a/docs/javascript.html b/docs/javascript.html
index 2db37a9fe1..c541d57fbd 100644
--- a/docs/javascript.html
+++ b/docs/javascript.html
@@ -83,7 +83,7 @@
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
         <h1>Javascript for Bootstrap</h1>
-        <p class="lead">Bring Bootstrap's components to life with custom plugins for <a href="http://jquery.com/" target="_blank">jQuery</a> and <a href="http://ender.no.de" target="_blank">Ender</a></p>
+        <p class="lead">Bring Bootstrap's components to life with flexible, custom javascript plugins for many of our custom components that work with <a href="http://jquery.com/" target="_blank">jQuery</a> and <a href="http://ender.no.de" target="_blank">Ender</a>.</p>
       </header>
 
 
@@ -757,7 +757,7 @@ $('a[data-toggle="tab"]').bind('shown', function (e) {
     </section>
 
 
-     <!-- Button
+    <!-- Button
     ================================================== -->
 
     <section id="button">
diff --git a/docs/less.html b/docs/less.html
index 2d35eea267..97d95a3ab9 100644
--- a/docs/less.html
+++ b/docs/less.html
@@ -50,7 +50,7 @@
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
         <h1>Using LESS with Bootstrap</h1>
-        <p class="lead">Be a boss and use Bootstrap's built-in variables, mixins, and more via LESS</p>
+        <p class="lead">Customize and extend Bootstrap with <a href="http://lesscss.org" target="_blank">LESS</a>, a CSS preprocessor, to take advantage of the variables, mixins, and more used to build Bootstrap's CSS.</p>
       </header>
 
 
diff --git a/docs/scaffolding.html b/docs/scaffolding.html
index f330d750d4..dd7f05bc64 100644
--- a/docs/scaffolding.html
+++ b/docs/scaffolding.html
@@ -50,9 +50,18 @@
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
         <h1>Scaffolding</h1>
-        <p class="lead">Responsive 12-column grid and fixed- and fluid-width layouts</p>
+        <p class="lead">Bootstrap is built on a responsive 12-column grid. We've also included fixed- and fluid-width layouts based on that system.</p>
       </header>
 
+      <!-- Work in progress sub nav for docs -->
+      <div class="navbar subnav docked-top">
+        <ul class="nav">
+          <li class="active"><a href="#">Grid system</a></li>
+          <li><a href="#">Layouts</a></li>
+          <li><a href="#">Responsive</a></li>
+        </ul>
+      </div>
+
 
 
 <!-- Grid system
diff --git a/js/bootstrap-alert.js b/js/bootstrap-alert.js
index 210512a8b3..0691300808 100644
--- a/js/bootstrap-alert.js
+++ b/js/bootstrap-alert.js
@@ -32,7 +32,9 @@
 
   Alert.prototype = {
 
-    close: function ( e ) {
+    constructor: Alert
+
+  , close: function ( e ) {
       var $element = $(this)
 
       $element = $element.hasClass('alert-message') ? $element : $element.parent()
diff --git a/js/bootstrap-button.js b/js/bootstrap-button.js
index 1cafe4d688..4ed24d98b9 100644
--- a/js/bootstrap-button.js
+++ b/js/bootstrap-button.js
@@ -31,7 +31,9 @@
 
   Button.prototype = {
 
-      setState: function (state) {
+      constructor: Button
+
+    , setState: function (state) {
         var d = 'disabled'
           , $el = this.$element
           , data = $el.data()
diff --git a/js/bootstrap-carousel.js b/js/bootstrap-carousel.js
new file mode 100644
index 0000000000..9513b4cd21
--- /dev/null
+++ b/js/bootstrap-carousel.js
@@ -0,0 +1,59 @@
+/* ==========================================================
+ * bootstrap-carousel.js v2.0.0
+ * http://twitter.github.com/bootstrap/javascript.html#alerts
+ * ==========================================================
+ * Copyright 2011 Twitter, Inc.
+ *
+ * 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.
+ * ========================================================== */
+
+
+!function( $ ){
+
+  "use strict"
+
+ /* CAROUSEL CLASS DEFINITION
+  * ========================= */
+
+  var Carousel = function ( el ) {
+    $(el).delegate(dismiss, 'click', this.close)
+  }
+
+  Carousel.prototype = {
+
+  }
+
+
+ /* CAROUSEL PLUGIN DEFINITION
+  * ========================== */
+
+  $.fn.carousel = function ( option ) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('alert')
+      if (!data) $this.data('alert', (data = new Alert(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  $.fn.carousel.Carousel = Carousel
+
+
+ /* CAROUSEL DATA-API
+  * ================= */
+
+  // $(function () {
+  //   $('body').delegate(dismiss, 'click.alert.data-api', Alert.prototype.close)
+  // })
+
+}( window.jQuery || window.ender )
\ No newline at end of file
diff --git a/js/bootstrap-collapse.js b/js/bootstrap-collapse.js
index 93f91513e3..f56f6c7050 100644
--- a/js/bootstrap-collapse.js
+++ b/js/bootstrap-collapse.js
@@ -34,7 +34,9 @@
 
   Collapse.prototype = {
 
-    dimension: function () {
+    constructor: Collapse
+
+  , dimension: function () {
       var hasWidth = this.$element.hasClass('width')
       return hasWidth ? 'width' : 'height'
     }
diff --git a/js/bootstrap-dropdown.js b/js/bootstrap-dropdown.js
index 7259284bfe..238a52e086 100644
--- a/js/bootstrap-dropdown.js
+++ b/js/bootstrap-dropdown.js
@@ -32,7 +32,9 @@
 
   Dropdown.prototype = {
 
-    toggle: function ( e ) {
+    constructor: Dropdown
+
+  , toggle: function ( e ) {
       var li = $(this).parent('li')
         , isActive = li.hasClass('open')
 
diff --git a/js/bootstrap-modal.js b/js/bootstrap-modal.js
index 5f543c5537..189bcf2acc 100644
--- a/js/bootstrap-modal.js
+++ b/js/bootstrap-modal.js
@@ -34,7 +34,9 @@
 
   Modal.prototype = {
 
-      toggle: function () {
+      constructor: Modal
+
+    , toggle: function () {
         return this[!this.isShown ? 'show' : 'hide']()
       }
 
diff --git a/js/bootstrap-popover.js b/js/bootstrap-popover.js
index 3c67b18fc2..890f6efc0b 100644
--- a/js/bootstrap-popover.js
+++ b/js/bootstrap-popover.js
@@ -34,7 +34,9 @@
 
   Popover.prototype = $.extend({}, $.fn.twipsy.Twipsy.prototype, {
 
-    setContent: function () {
+    constructor: Popover
+
+  , setContent: function () {
       var $tip = this.tip()
         , title = this.getTitle()
         , content = this.getContent()
diff --git a/js/bootstrap-scrollspy.js b/js/bootstrap-scrollspy.js
index fe34019ffc..8248b6cbdd 100644
--- a/js/bootstrap-scrollspy.js
+++ b/js/bootstrap-scrollspy.js
@@ -39,7 +39,9 @@
 
   ScrollSpy.prototype = {
 
-      refresh: function () {
+      constructor: ScrollSpy
+
+    , refresh: function () {
         this.targets = this.$body
           .find(this.selector)
           .map(function () {
diff --git a/js/bootstrap-tab.js b/js/bootstrap-tab.js
index ba956cbe86..6aa8ae32cf 100644
--- a/js/bootstrap-tab.js
+++ b/js/bootstrap-tab.js
@@ -31,7 +31,9 @@
 
   Tab.prototype = {
 
-    show: function () {
+    constructor: Tab
+
+  , show: function () {
       var $this = this.element
         , $ul = $this.closest('ul:not(.dropdown-menu)')
         , href = $this.attr('data-target') || $this.attr('href')
diff --git a/js/bootstrap-twipsy.js b/js/bootstrap-twipsy.js
index fe4469a232..ca8ac8800f 100644
--- a/js/bootstrap-twipsy.js
+++ b/js/bootstrap-twipsy.js
@@ -34,7 +34,9 @@
 
   Twipsy.prototype = {
 
-    show: function() {
+    constructor: Twipsy
+
+  , show: function() {
       var pos
         , actualWidth
         , actualHeight
@@ -183,7 +185,7 @@
     return this
   }
 
-  $.fn.twipsy.initWith = function (options, Constructor, name) {
+  $.fn.twipsy.initWith = function (options, Base, name) {
     var twipsy
       , binder
       , eventIn
@@ -209,7 +211,7 @@
       var twipsy = $.data(ele, name)
 
       if (!twipsy) {
-        twipsy = new Constructor(ele, $.fn.twipsy.elementOptions(ele, options))
+        twipsy = new Base(ele, $.fn.twipsy.elementOptions(ele, options))
         $.data(ele, name, twipsy)
       }
 
diff --git a/lib/tabs-pills.less b/lib/tabs-pills.less
index 3ff08a6766..e9b58d04a5 100644
--- a/lib/tabs-pills.less
+++ b/lib/tabs-pills.less
@@ -216,3 +216,78 @@
 .pill-content > .active {
   display: block;
 }
+
+
+// Step nav
+.step-nav {
+  position: relative; // for prev/next links
+  margin: 0 0 @baseLineHeight;
+  list-style: none;
+  line-height: 30px;
+  text-align: center;
+  background-color: #f5f5f5;
+  .border-radius(15px);
+  li {
+    display: inline;
+    color: @grayLight;
+  }
+  // prev/next links
+  .prev,
+  .next {
+    position: absolute;
+    top: 6px;
+  }
+  .prev {
+    left: 15px;
+  }
+  .next {
+    right: 15px;
+  }
+  // indicators for each step/page/item/etc
+  .dot {
+    display: inline-block;
+    width: 10px;
+    height: 10px;
+    margin: 0 3px;
+    text-indent: -999em;
+    background-color: @grayLight;
+    .border-radius(5px);
+    .box-shadow(inset 0 1px 1px rgba(0,0,0,.25));
+  }
+  .dot:hover,
+  .active .dot {
+    background-color: @grayDark;
+  }
+}
+
+
+// Subnav
+// STILL A WIP
+.subnav {
+  position: relative;
+  #gradient > .vertical(#f5f5f5, #eeeeee);
+  .border-radius(6px);
+  a {
+    padding: 10px 15px;
+    color: @linkColor;
+    text-shadow: 0 1px 0 #fff;
+    border-left: 1px solid #f9f9f9;
+    border-right: 1px solid #e5e5e5;
+    &:hover {
+      color: @linkColorHover;
+      background-color: #eee;
+    }
+  }
+  li:first-child a {
+    border-left: 0;
+    .border-radius(6px 0 0 6px);
+  }
+  li:last-child a {
+    border-right: 0;
+    .border-radius(0 6px 6px 0);
+  }
+  ul .active > a {
+    color: @grayDark;
+    background-color: #eee;
+  }
+}
\ No newline at end of file
diff --git a/lib/type.less b/lib/type.less
index 407a20ec29..bdc99acdfa 100644
--- a/lib/type.less
+++ b/lib/type.less
@@ -205,6 +205,11 @@ pre {
   white-space: pre-wrap;
   word-break: break-all;
 
+  // Make prettyprint styles more spaced out for readability
+  &.prettyprint {
+    margin-bottom: @baseLineHeight;
+  }
+
   // Account for some code outputs that place code tags in pre tags
   code {
     padding: 0;