This closes #193
diff --git a/_config.yml b/_config.yml
index 6583940..06700c8 100644
--- a/_config.yml
+++ b/_config.yml
@@ -45,13 +45,13 @@
 sass:
     sass_dir: style/css
 
-# TODO the 0.10.0 paths must be changed!
-brooklyn-stable-version: 0.10.0
+# TODO the 0.11.0 paths must be changed!
+brooklyn-stable-version: 0.11.0
 pdf-default-base-url: http://brooklyn.apache.org
-pdf-default-versioned-url-subpath: /v/0.10.0
+pdf-default-versioned-url-subpath: /v/0.11.0
 
 pdf-rewrite-prefixes: 
-    '/guide' : '/v/0.10.0'
+    '/guide' : '/v/0.11.0'
     '/website' : ''
     
 brooklyn-version: 0.11.0 # BROOKLYN_VERSION
diff --git a/_includes/base-head.html b/_includes/base-head.html
deleted file mode 100644
index bc963e0..0000000
--- a/_includes/base-head.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<title>{{ page.title }} - Apache Brooklyn</title>
-
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-
-<link href="{% dependency_url bootstrap.css %}" rel="stylesheet">
-<link href="{{site.path.style}}/deps/octicons/octicons.css" rel="stylesheet">
-<link href="{{site.path.style}}/deps/bootstrap-theme.css" rel="stylesheet">
-
-<script src="{% dependency_url jquery.js %}"></script>
-<script src="{% dependency_url bootstrap.js %}"></script>
-<script type="text/javascript" src="{{ site.path.style }}/deps/jquery.cookie.js"></script>
-
-{% if page.url contains "/start/" %}
-<link href="{{site.path.style}}/deps/tooltip.css" rel="stylesheet">
-<script type="text/javascript" src="{{ site.path.style }}/deps/glossarizer.js"></script>
-<script type="text/javascript" src="{{ site.path.style }}/deps/tooltip.js"></script>
-<script>
-$(function(){
-  $('body').glossarizer({
-    sourceURL: '/guide/glossary.json?'+Math.random(),
-    caseSensitive : true,
-    lookupTagName : 'p, ul',
-    callback: function(){ new tooltip(); }
-  });
-});
-</script>
-{% endif %}
-
-<link rel="stylesheet" href="{{ site.path.style }}/css/code.css" type="text/css" media="screen" />
-<link href="{{site.path.style}}/css/website.css" rel="stylesheet">
-
diff --git a/_includes/footer.html b/_includes/footer.html
index 2531d46..d015acb 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -1,16 +1,16 @@
-<div id="footer">
-    <div class="container">
-        <div class="row">
-            <div class="col-md-10 text-muted">
-                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
-            </div>
-            <div class="col-md-2">
+<footer class="container">
+    <div class="row">
+        <div class="col-md-9">
+            <p>Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.</p>
+        </div>
+        <div class="col-md-3 text-right">
+            <p>
                 <a class="btn btn-sm btn-default" href="https://github.com/apache/brooklyn-docs/edit/master/{{ page.path }}">Edit This Page</a>
                 <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html"
-                    data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
-                  <span class="octicon octicon-question octicon-footer"></span>
+                    data-toggle="tooltip" data-placement="top" title="" data-delay="400" data-original-title="How to Edit Documentation">
+                    <span class="octicon octicon-question octicon-footer"></span>
                 </a>
-            </div>
+            </p>
         </div>
     </div>
-</div>
+</footer>
diff --git a/_includes/head.html b/_includes/head.html
new file mode 100644
index 0000000..2c3864f
--- /dev/null
+++ b/_includes/head.html
@@ -0,0 +1,14 @@
+<title>{{ page.title }} - Apache Brooklyn</title>
+
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+
+<link href="{% dependency_url bootstrap.css %}" rel="stylesheet" />
+<link href="{{site.path.style}}/deps/octicons/octicons.css" rel="stylesheet" />
+<link href="{{site.path.style}}/deps/bootstrap-theme.css" rel="stylesheet" />
+<link href="{{site.path.style}}/deps/font-awesome-4.2.0/css/font-awesome.min.css" rel="stylesheet" />
+<link href="{{site.path.style}}/deps/tooltip.css" rel="stylesheet" />
+<link href="{{ site.path.style }}/css/code.css" rel="stylesheet" />
+<link href="{{site.path.style}}/css/website.css" rel="stylesheet" />
+
+<script type="text/javascript" src="{% dependency_url jquery.js %}"></script>
\ No newline at end of file
diff --git a/_includes/header.html b/_includes/header.html
new file mode 100644
index 0000000..6e7243d
--- /dev/null
+++ b/_includes/header.html
@@ -0,0 +1,44 @@
+<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-menu" aria-expanded="false">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a href="{{site.path.website}}/" class="navbar-brand">
+                <img src="{{site.path.style}}/img/apache-brooklyn-logo-244px-wide.png" alt="Apache Brooklyn" />
+            </a>
+        </div>
+        <div class="collapse navbar-collapse" id="main-menu">
+            <ul class="nav navbar-nav navbar-right">
+                {% for item in site.data.menu %}
+                <li class="dropdown{% if page.breadcrumb_paths contains item.path %} active{% endif %}">
+                    {% if item.menu_customization.type == "button" %}
+                    <a href="{{item.url}}" class="btn btn-default navbar-btn">{{ item.title_in_menu | downcase }}</a>
+                    {% else %}
+                    <a href="{{item.url}}" data-toggle="dropdown">{{ item.title_in_menu | downcase }} {% if item.menu %}<span class="caret"></span>{% endif %}</a>
+                    {% if item.menu %}
+                    <ul class="dropdown-menu" role="menu">
+                        <li>
+                            <a href="{{item.url}}">{{item.title_in_menu}}</a>
+                        </li>
+                        <li class="divider"></li>
+                        {% for item2 in item.menu %}
+                        {% if item2.menu_customization.dropdown_new_section %}<li class="divider"></li>{% endif %}
+                        <li {% if item2.menu_customization.dropdown_section_header %}class="section"{% endif %}>
+                            <a href="{{item2.url}}">{{item2.title_in_menu}}
+                                {% if item2.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
+                        </li>
+                        {% if item2.menu_customization.dropdown_section_header %}<li class="divider"></li>{% endif %}
+                        {% endfor %}
+                    </ul>
+                    {% endif %}
+                    {% endif %}
+                </li>
+                {% endfor %}
+            </ul>
+        </div>
+    </div>
+</nav>
diff --git a/_includes/scripts.html b/_includes/scripts.html
new file mode 100644
index 0000000..0d14491
--- /dev/null
+++ b/_includes/scripts.html
@@ -0,0 +1,40 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
+
+<script type="text/javascript" src="{% dependency_url bootstrap.js %}"></script>
+<script type="text/javascript" src="{{ site.path.style }}/deps/jquery.cookie.js"></script>
+<script type="text/javascript" src="{{ site.path.style }}/js/zeroclipboard/ZeroClipboard.min.js"></script>
+<script type="text/javascript" src="{{ site.path.style }}/deps/tooltip.js"></script>
+{% if page.url contains "/start/" %}
+<script type="text/javascript" src="{{ site.path.style }}/deps/glossarizer.js"></script>
+<script type="text/javascript">
+    $(function(){
+        $('body').glossarizer({
+            sourceURL: '/guide/glossary.json?'+Math.random(),
+            caseSensitive : true,
+            lookupTagName : 'p, ul',
+            callback: function(){ new tooltip(); }
+        });
+    });
+    </script>
+{% endif %}
+<script type="text/javascript">
+    ZeroClipboard.config({ moviePath: '{{ site.path.style }}/js/zeroclipboard/ZeroClipboard.swf' });
+</script>
+<script src="{{ site.path.style }}/js/public.js"></script>
\ No newline at end of file
diff --git a/_includes/sidemenu.html b/_includes/sidemenu.html
index ec3cf1c..889b77e 100644
--- a/_includes/sidemenu.html
+++ b/_includes/sidemenu.html
@@ -11,9 +11,9 @@
   while customizing the side menu (make self breadcrumb[1]).
 {% endcomment %}
 
-{% unless page.landing %}
+{% if page.layout != "website-landing" %}
   {% if page.menu_parent %}
-    {% if page.menu_parent.landing %} {% comment %} case 2 {% endcomment %}
+    {% if page.menu_parent.layout == "website-landing" %} {% comment %} case 2 {% endcomment %}
               {% for item in page.breadcrumb_pages offset:1 %}
                   <h4 class="{% if forloop.index0 > 0 %} with_preceding{% endif %}{% if forloop.rindex0 > 0 %} with_following{% endif %}">
                     <a href="{{item.url}}" class="list-group-item{% if item.path == page.menu_path %} active{% endif %} breadcrumb breadcrumb{{ forloop.index0 }}">
@@ -57,188 +57,187 @@
   {% elsif page.menu %}
     <!-- no pages have a menu without being in the top menu, won't come here -->
   {% endif %}
-{% endunless %}
+{% endif %}
         
 </div>
 <div id="width_reference"></div>
 
 
 <script language="JavaScript" type="application/javascript">
+(function($){
+    {% comment %}
+    the menu is css position:fixed so won't scroll;
+    but also it will not obey its parents width.
+    set the width on load and on resize.
+    {% endcomment %}
+    sidemenu_x_sizer=function(){ $('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth()); };
+    $(sidemenu_x_sizer);
+    $(window).resize(sidemenu_x_sizer);
 
-{% comment %} 
-the menu is css position:fixed so won't scroll; 
-but also it will not obey its parents width.
-set the width on load and on resize.
-{% endcomment %} 
-sidemenu_x_sizer=function(){ $('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth()); };
-$(sidemenu_x_sizer);
-$(window).resize(sidemenu_x_sizer);
+    {% comment %}
+    also ensure the screen is big enough, else revert to non-floating menu:
+    check y-height, and check widths (in case it was moved to after the other column)
+    {% endcomment %}
+    sidemenu_y_nonfloater=function(){
+      if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) > window.innerHeight ||
+          $('#side-menu').width() >= $('#content_container').width()/2) {
+        $('#side-menu').css('position', 'inherit');
+      } else {
+        // restore if screen has grown
+        $('#side-menu').css('position', 'fixed');
+      }
+    };
+    $(sidemenu_y_nonfloater);
+    $(window).resize(sidemenu_y_nonfloater);
 
-{% comment %} 
-also ensure the screen is big enough, else revert to non-floating menu:
-check y-height, and check widths (in case it was moved to after the other column)
-{% endcomment %} 
-sidemenu_y_nonfloater=function(){
-  if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) > window.innerHeight ||
-      $('#side-menu').width() >= $('#content_container').width()/2) {
-    $('#side-menu').css('position', 'inherit');
-  } else {
-    // restore if screen has grown
-    $('#side-menu').css('position', 'fixed');
-  }
-};
-$(sidemenu_y_nonfloater);
-$(window).resize(sidemenu_y_nonfloater);
+    {% comment %}
+    auto-advance "sections" in menu on scroll
+    {% endcomment %}
 
-{% comment %} 
-auto-advance "sections" in menu on scroll
-{% endcomment %} 
+    var sideMenu = $("#side-menu"),
+        sideItems = sideMenu.find("a"),
+        // Anchors corresponding to menu items
+        scrollItems = sideItems.map(function(){
+          var item = $(this).attr("section-target");
+          if (item && item.length) { return item; }
+        });
 
-var sideMenu = $("#side-menu"),
-    sideItems = sideMenu.find("a"),
-    // Anchors corresponding to menu items
-    scrollItems = sideItems.map(function(){
-      var item = $(this).attr("section-target");
-      if (item && item.length) { return item; }
-    });
+    var highlight_section_last_top = -1;
+    var highlight_section_completed = false;
 
-var highlight_section_last_top = -1;
-var highlight_section_completed = false;
+    var highlight_section = function() {
+       // Get container scroll position
+       var highlight_section_new_top = $(this).scrollTop();
+       if (highlight_section_new_top == highlight_section_last_top) return;
+       var highlight_section_new_bottom = highlight_section_new_top + $(window).height();
+       var scroll_advancing = (highlight_section_new_top > highlight_section_last_top);
 
-var highlight_section = function() {
-   // Get container scroll position
-   var highlight_section_new_top = $(this).scrollTop();
-   if (highlight_section_new_top == highlight_section_last_top) return;
-   var highlight_section_new_bottom = highlight_section_new_top + $(window).height();
-   var scroll_advancing = (highlight_section_new_top > highlight_section_last_top);
+       var last_item = null, active_item = $("#side-menu a.section#active");
 
-   var last_item = null, active_item = $("#side-menu a.section#active");
-   
-   var found_top = false;
-   var displayable_items = scrollItems.map(function(itemI){
-     item = $(scrollItems[itemI]);
-     if (item && item.length) {
-       if (highlight_section_last_top == -1 || !highlight_section_completed) {
-         // just opening page - take item matching hash, or otherwise the first item visible
-         if (item.selector === window.location.hash || (item.offset().top > highlight_section_new_top - 20 && !found_top)) {
-           found_top = true;
-           if (item.selector === window.location.hash && item.offset().top < highlight_section_new_top + 60) {
-             // because of our top header, we need to scroll 64px down from any link
-             $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+       var found_top = false;
+       var displayable_items = scrollItems.map(function(itemI){
+         item = $(scrollItems[itemI]);
+         if (item && item.length) {
+           if (highlight_section_last_top == -1 || !highlight_section_completed) {
+             // just opening page - take item matching hash, or otherwise the first item visible
+             if (item.selector === window.location.hash || (item.offset().top > highlight_section_new_top - 20 && !found_top)) {
+               found_top = true;
+               if (item.selector === window.location.hash && item.offset().top < highlight_section_new_top + 60) {
+                 // because of our top header, we need to scroll 64px down from any link
+                 $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+               }
+               return item;
+             }
+           } else if (scroll_advancing) {
+             // if scrolling advance, pick up a section when title starts before 1/3 height
+             if (item.offset().top < highlight_section_new_top + $(window).height()/3)
+               return item;
+
+             // or if containing div is finished (usu the whole main content)
+             div_containing_item = item.closest("div");
+             if (div_containing_item.offset().top + div_containing_item.height() < highlight_section_new_bottom + 15)
+               return item;
+             // or when next title is visible
+             if (last_item && item.offset().top < highlight_section_new_bottom + 15)
+               return last_item;
+           } else {
+             // if scrolling back, pick up a section as soon as the title is visible,
+             if (item.offset().top < highlight_section_new_top)
+               return item;
+             // or if title is before the 2/3 point
+             // (not sure about this, probably want also to have
+             // "AND the id.top is <= displayable_itemsrent_active_it.top" so we don't jump FORWARD a section
+             // when scrolling BACK, with lots of tiny sections)
+             if ((item.offset().top < highlight_section_new_top + 2*$(window).height()/3)
+                 && (!active_item || !active_item.offset() || active_item.offset().top >= item.offset().top))
+               return item;
+
            }
-           return item;
+           last_item = item;
          }
-       } else if (scroll_advancing) {
-         // if scrolling advance, pick up a section when title starts before 1/3 height 
-         if (item.offset().top < highlight_section_new_top + $(window).height()/3)
-           return item;
-           
-         // or if containing div is finished (usu the whole main content)
-         div_containing_item = item.closest("div");
-         if (div_containing_item.offset().top + div_containing_item.height() < highlight_section_new_bottom + 15)
-           return item;
-         // or when next title is visible
-         if (last_item && item.offset().top < highlight_section_new_bottom + 15)
-           return last_item;
-       } else {
-         // if scrolling back, pick up a section as soon as the title is visible,
-         if (item.offset().top < highlight_section_new_top)
-           return item;
-         // or if title is before the 2/3 point
-         // (not sure about this, probably want also to have 
-         // "AND the id.top is <= displayable_itemsrent_active_it.top" so we don't jump FORWARD a section
-         // when scrolling BACK, with lots of tiny sections) 
-         if ((item.offset().top < highlight_section_new_top + 2*$(window).height()/3)
-             && (!active_item || !active_item.offset() || active_item.offset().top >= item.offset().top))
-           return item;
-         
+       });
+       if (!highlight_section_completed && document.readyState === "complete") {
+         highlight_section_completed = true;
        }
-       last_item = item;
-     }
-   });
-   if (!highlight_section_completed && document.readyState === "complete") {
-     highlight_section_completed = true;
-   }
-   if (!displayable_items.length) {
-     $("#side-menu a.section").removeClass("active");
-   } else {
-     displayable_items = displayable_items[displayable_items.length-1];
-     var id = displayable_items && displayable_items.length ? displayable_items[0].id : "";
-   // Set/remove active class
-     new_active = $("#side-menu a.section").filter("[section-target='#"+id+"']");
-     if (new_active.hasClass("active")) {
-       // nothing needed
-     } else {
-       $("#side-menu a.section").removeClass("active");
-       $("#side-menu a.section").filter("[section-target='#"+id+"']").addClass("active");
-     }
-   }
-   
-   highlight_section_last_top = highlight_section_new_top;
-};
-var highlight_new_section = function() {
-  highlight_section_completed = false;
-  highlight_section_last_top = -1;
-  highlight_section();
-}
+       if (!displayable_items.length) {
+         $("#side-menu a.section").removeClass("active");
+       } else {
+         displayable_items = displayable_items[displayable_items.length-1];
+         var id = displayable_items && displayable_items.length ? displayable_items[0].id : "";
+       // Set/remove active class
+         new_active = $("#side-menu a.section").filter("[section-target='#"+id+"']");
+         if (new_active.hasClass("active")) {
+           // nothing needed
+         } else {
+           $("#side-menu a.section").removeClass("active");
+           $("#side-menu a.section").filter("[section-target='#"+id+"']").addClass("active");
+         }
+       }
 
-$(window).scroll(highlight_section);
-$(highlight_new_section);
+       highlight_section_last_top = highlight_section_new_top;
+    };
+    var highlight_new_section = function() {
+      highlight_section_completed = false;
+      highlight_section_last_top = -1;
+      highlight_section();
+    }
 
-// detect link change - courtesy http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
-    (
-        function( $ ){
-            // Default to the current location.
-            var strLocation = window.location.href;
-            var strHash = window.location.hash;
-            var strPrevLocation = "";
-            var strPrevHash = "";
+    $(window).scroll(highlight_section);
+    $(highlight_new_section);
 
-            // This is how often we will be checkint for
-            // changes on the location.
-            var intIntervalTime = 100;
+    // detect link change - courtesy http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
 
-            // This method removes the pound from the hash.
-            var fnCleanHash = function( strHash ){
-                return(
-                    strHash.substring( 1, strHash.length )
-                    );
-            }
+    // Default to the current location.
+    var strLocation = window.location.href;
+    var strHash = window.location.hash;
+    var strPrevLocation = "";
+    var strPrevHash = "";
 
-            // This will be the method that we use to check
-            // changes in the window location.
-            var fnCheckLocation = function(){
-                // Check to see if the location has changed.
-                if (strLocation != window.location.href){
+    // This is how often we will be checkint for
+    // changes on the location.
+    var intIntervalTime = 100;
 
-                    // Store the new and previous locations.
-                    strPrevLocation = strLocation;
-                    strPrevHash = strHash;
-                    strLocation = window.location.href;
-                    strHash = window.location.hash;
+    // This method removes the pound from the hash.
+    var fnCleanHash = function( strHash ){
+        return(
+            strHash.substring( 1, strHash.length )
+            );
+    }
 
-                    // The location has changed. Trigger a
-                    // change event on the location object,
-                    // passing in the current and previous
-                    // location values.
-                    $( window.location ).trigger(
-                        "change",
-                        {
-                            currentHref: strLocation,
-                            currentHash: fnCleanHash( strHash ),
-                            previousHref: strPrevLocation,
-                            previousHash: fnCleanHash( strPrevHash )
-                        }
-                        );
+    // This will be the method that we use to check
+    // changes in the window location.
+    var fnCheckLocation = function(){
+        // Check to see if the location has changed.
+        if (strLocation != window.location.href){
 
+            // Store the new and previous locations.
+            strPrevLocation = strLocation;
+            strPrevHash = strHash;
+            strLocation = window.location.href;
+            strHash = window.location.hash;
+
+            // The location has changed. Trigger a
+            // change event on the location object,
+            // passing in the current and previous
+            // location values.
+            $( window.location ).trigger(
+                "change",
+                {
+                    currentHref: strLocation,
+                    currentHash: fnCleanHash( strHash ),
+                    previousHref: strPrevLocation,
+                    previousHash: fnCleanHash( strPrevHash )
                 }
-            }
+                );
 
-            // Set an interval to check the location changes.
-            setInterval( fnCheckLocation, intIntervalTime );
         }
-    )( jQuery );
-// and trigger highlight section on link change
-$(window.location).bind("change", highlight_new_section);
+    }
+
+    // Set an interval to check the location changes.
+    setInterval( fnCheckLocation, intIntervalTime );
+
+    // and trigger highlight section on link change
+    $(window.location).bind("change", highlight_new_section);
+})(jQuery);
 
 </script>
diff --git a/_includes/topmenu.html b/_includes/topmenu.html
deleted file mode 100644
index 290c8ee..0000000
--- a/_includes/topmenu.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<nav class="navbar navbar-default navbar-fixed-top" id="header" role="navigation">
-    <div class="container-and-sidebars">
-
-        <div class="container-sidebar-left feather{% if page.landing %} landing{% endif %}">
-          <a href="http://www.apache.org/">
-            <img src="{{ site.path.style }}/img/feather.png" alt="[Apache]" width="80" class="flip navbar-feather">
-          </a>
-        </div>
-
-        <div class="container container-between-sidebars top-menu">
-          <div class="container-fluid">
-            <!-- Brand and toggle get grouped for better mobile display -->
-            <div class="navbar-header">
-                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-                    <span class="sr-only">Toggle navigation</span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                </button>
-                {% unless page.landing %}<a class="navbar-brand" href="{{site.path.website}}/"><img src="{{site.path.style}}/img/apache-brooklyn-logo-244px-wide.png" alt="brooklyn"></a>{% endunless %}
-            </div>
-
-            <!-- Collect the nav links, forms, and other content for toggling -->
-            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
-                <ul class="nav navbar-nav navbar-right">
-                  {% for item in site.data.menu %}
-                   {% if item.menu %}
-                    <li class="dropdown{% if page.breadcrumb_paths contains item.path %} active{% endif %}">
-                        <a href="{{item.url}}">{{ item.title_in_menu | downcase }}</a>
-                        <ul class="dropdown-menu" role="menu">
-                            <li>
-                                <a href="{{item.url}}">{{item.title_in_menu}}</a>
-                            </li>
-                            <li class="divider"></li>
-                            {% for item2 in item.menu %}
-                              <li>
-                                {% if item2.menu_customization.dropdown_new_section %}
-                                  <div class="dropdown_new_section"><hr></div>
-                                {% endif %}
-                                <a href="{{item2.url}}">{{item2.title_in_menu}}
-                                  {% if item2.external %}&nbsp;<span class="octicon octicon-link-external"></span>{% endif %}</a>
-                                {% if item2.menu_customization.dropdown_section_header %}
-                                  <div class="dropdown_section_header"><hr></div>
-                                {% endif %}
-                              </li>
-                            {% endfor %}
-                        </ul>
-                    </li>
-                   {% else %}
-                    <li class="{% if page.breadcrumb_paths contains item.path %}active{% endif %}">
-                      <a href="{{item.url}}">{{ item.title_in_menu | downcase }}</a>
-                    </li>
-                   {% endif %}
-                  {% endfor %}
-                </ul>
-            </div><!-- /.navbar-collapse -->
-          </div><!-- /.container-fluid -->
-        </div><!-- /.container -->
-        
-        <div class="container-sidebar-right">
-          <div class="navbar-sidebar-right-icons">
-            <a href="https://github.com/apache/brooklyn" class="navbar-icon navbar-icon-shift icon-github"
-              data-toggle="tooltip" data-placement="bottom" title="GitHub: apache/brooklyn"/>
-            <a href="https://twitter.com/#!/search?q=brooklyncentral" class="navbar-icon navbar-icon-shift icon-twitter"
-              data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
-            <a href="http://webchat.freenode.net/?channels=brooklyncentral" class="navbar-icon icon-irc"
-              data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral"/>
-            <!-- extra a element seems needed as landing page seems to copy the last element here (!?) 
-            -->
-            <a href="/" style="width: 0px; height: 0px;"></a>
-         </div>
-      </div>
-      
-  </div>
-</nav>
diff --git a/_layouts/base.html b/_layouts/base.html
deleted file mode 100644
index 53d20f8..0000000
--- a/_layouts/base.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you 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.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-
-
-{{ content }}
-
-<script language="JavaScript" type="application/javascript">
-
-    fix_padding_function = function () { 
-        $('body').css('padding-top', parseInt($('#header').css("height"))+10);
-        $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
-    };
-    $(window).resize(fix_padding_function);
-    $(window).load(fix_padding_function);
-    
-    $(function () {
-        $('[data-toggle="tooltip"]').tooltip({ delay: { show: 600, hide: 100 }})
-    });
-    
-/* generate anchors for headers, a la github and http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/ */
-var anchorForId = function (id, text) {
-  var anchor = document.createElement("a");
-  anchor.className = "header-link";
-  anchor.href      = "#" + id;
-  anchor.innerHTML = "<i class=\"fa fa-link\"></i>";
-  return anchor;
-};
-
-var linkifyAnchors = function (level, containingElement) {
-  var headers = contentBlock.find("h" + level);
-  for (var h = 0; h < headers.length; h++) {
-    var header = headers[h];
-    if (typeof header.id !== "undefined" && header.id !== "") {
-      header.appendChild(anchorForId(header.id, $(header).text()));
-    }
-  }
-};
-
-$(function () {
-    contentBlock = $("#content_container");
-    if (!contentBlock) return;
-    for (var level = 1; level <= 6; level++) {
-      linkifyAnchors(level, contentBlock);
-    }
-});
-
-<!-- Copying and clipboard support -->
-
-// first make the $% line starts not selectable 
-
-$(function() {
-  $('div.highlight').attr('oncopy', 'handleHideCopy(this)');
-  $('div.highlight').each(function(index,target) {
-    if ($(target).find('code.bash')) {
-      // Mark bash prompts from the start of each line (i.e. '$' or '%' characters
-      // at the very start, or immediately following any newline) as not-selectable. 
-      // Handle continuation lines where a leading '$' or '%' is *not* a prompt character.
-      // (If example wants to exclude output, it can manually use class="nocopy".)
-      target.innerHTML = target.innerHTML.replace(/(^\s*|[^\\]\n)(<.*>)?([$%]|&gt;) /g, '$1$2<span class="nocopy bash_prompt">$3 </span>');
-    }
-  });
-});
-
-// normal cmd-C (non-icon) copying
-
-function handleHideCopy(el) {
-//    var origHtml = $(el).clone();
-    console.log("handling copy", el);
-    $(el).addClass('copying');
-    $(el).find('.nocopy').hide();
-    $(el).find('.clipboard_button').addClass('manual-clipboard-is-active');
-    setTimeout(function(){
-        $(el).removeClass('copying');
-        $(el).find('.clipboard_button').removeClass('manual-clipboard-is-active');
-        $(el).find('.nocopy').show();
-//        $(el).html(origHtml);
-    }, 600);
-}
-
-// and icon (flash) copying
-
-</script>
-
-<script src="{{ site.path.style }}/js/zeroclipboard/ZeroClipboard.min.js"></script>
-
-<script language="JavaScript" type="application/javascript">
-
-ZeroClipboard.config({ moviePath: '{{ site.path.style }}/js/zeroclipboard/ZeroClipboard.swf' });
-
-$(function() {
-  $('div.highlight').prepend(
-    $('<div class="clipboard_container" title="Copy to Clipboard">'+
-      '<div class="fa clipboard_button">'+
-      '<div class="on-active"><div>Copied to Clipboard</div></div>'+
-    '</div></div>'));
-  $('div.clipboard_container').each(function(index) {
-    var clipboard = new ZeroClipboard();
-    clipboard.clip( $(this).find(":first")[0], $(this)[0] );
-    var target0 = $(this).next();
-    var target = target0.clone();
-    target.find('.nocopy').remove();
-    var txt = target.text();
-    clipboard.on( 'dataRequested', function (client, args) {
-      handleHideCopy( target0.closest('div.highlight') );  //not necessary but nicer feedback
-      client.setText( txt );
-    });
-  });
-});
-
-
-<!-- search -->
-    $(function() {
-        $('#simple_google')
-            .submit(function() {
-                $('input[name="q"]').val("site:" + document.location.hostname + " " + $('input[name="brooklyn-search"]').val());
-            return true;
-            });
-        $('input[name="brooklyn-search"]').focus(function() {
-                if ($(this).val() === $(this).attr('placeholder')) {
-                    $(this).val('');
-                }
-            })
-            .blur(function() {
-                if ($(this).val() === '') {
-                    $(this).val($(this).attr('placeholder'));
-                }
-            })
-            .blur();
-    });
-
-
- <!-- analytics -->
-    var _gaq = _gaq || [];
-    _gaq.push(['_setAccount', 'UA-30530918-1']);
-    _gaq.push(['_trackPageview']);
-    
-    (function() {
-      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-    })();
-
-
-<!-- page warning (for archive pages) -->
-{% comment %}
-TODO insert the warning html at generation-time (jekyll) rather than runtime (JS)
-{% endcomment %}
-{% if page.path contains 'guide/' %} 
-    $(function() {
-        if (document.location.pathname.replace(/^\/([^\/]*).*$/, '$1') === "v"){
-            var thisversion = document.location.pathname.split("/")[2],
-                msg = "";
-            if (thisversion != 'latest' && (!$.cookie('brooklyn_versions') || 
-                    (($.inArray('ALL', $.cookie('brooklyn_versions').split(",")) === -1) &&
-                    ($.inArray(thisversion, $.cookie('brooklyn_versions').split(",")) === -1))) ){
-                msg += "<div class='warning_banner_image'><img src='{{ site.path.style }}/img/warning.png'/></div>";
-                msg += "<p>You are browsing the archive site for version <strong>"+thisversion+"</strong>.</p>";
-                if (thisversion.indexOf("SNAPSHOT") >= 0) {
-                  msg += "<p>Note that SNAPSHOT versions have not been voted on and are not endorsed by the Apache Software Foundation.</p>";
-                  msg += "<p>Do you understand and accept the risks?</p>";
-                } else {
-                  msg += "<p>Is this deliberate?</p>";
-                }
-                msg += "<center><p class='warning_banner_buttons'>";
-                msg += "<a href = 'javascript:void(0);' onclick=\"set_user_version('"+thisversion+"');\">Yes, hide this warning</a>";
-                msg += "<a href = '{{ site.path.v }}/latest/'>No, take me to the latest version guide</a>";
-                msg += "<a href = '{{ site.path.website }}/meta/versions.html'>Show all versions</a>";
-                msg += "</p></center>"
-                            
-                $('#page_notes').html(msg);
-                $('#page_notes').fadeIn('slow');
-            }
-        }
-    });
-{% endif %}
-    function get_user_versions() {
-        return $.cookie("brooklyn_versions") ? $.cookie("brooklyn_versions").split(",") : [];
-    };
-    function set_user_version(version) {
-        var version_cookie = get_user_versions();
-        version_cookie.push(version);
-        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
-        $('#page_notes').fadeOut();
-        event.preventDefault ? event.preventDefault() : event.returnValue = false;
-    };
-    function set_user_versions_all() {
-        var version_cookie = get_user_versions();
-        version_cookie.push("ALL");
-        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
-        $('#page_notes').fadeOut();
-        event.preventDefault ? event.preventDefault() : event.returnValue = false;
-    };
-    function clear_user_versions() {
-        $.removeCookie('brooklyn_versions', { path: '/' });
-        $('#page_notes').fadeIn('slow');
-        event.preventDefault ? event.preventDefault() : event.returnValue = false;
-    };
-
-</script>
-
-</body>
-
-</html>
diff --git a/_layouts/website-base.html b/_layouts/website-base.html
deleted file mode 100644
index 8f8c24a..0000000
--- a/_layouts/website-base.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
-
-layout: base
----
-
-<head>
-
-    {% include base-head.html %}
-
-</head>
-
-
-<body>
-
-{% include topmenu.html %}
-
-{{ content }}
diff --git a/_layouts/website-landing.html b/_layouts/website-landing.html
index da76664..c9cc29c 100644
--- a/_layouts/website-landing.html
+++ b/_layouts/website-landing.html
@@ -1,43 +1,36 @@
----
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
 
-# layout for front page, contianing only the footer, with a bit more text
-layout: website-base
----
-<div class="container slightlyNarrowContainer">
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    {% include head.html %}
+</head>
+
+<body class="home">
+{% include header.html %}
+
+<main>
     {{ content }}
-</div>
+</main>
+{% include footer.html %}
+</body>
 
-<div id="footer">
-    <div class="container">
-        <div class="row">
-            <div class="col-md-9 text-muted">
-                Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
-            </div>
-            <div class="col-md-3">
-                <p>
-                <a class="btn btn-sm btn-default" href="https://github.com/apache/brooklyn-docs/edit/master/{{ page.path }}">Edit This Page</a>
-                <a href="{{ site.url_root }}{{ site.path.website }}/community/how-to-contribute-docs.html"
-                    data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
-                  <span class="octicon octicon-question octicon-footer"></span>
-                </a>
-                </p>
-            </div>
-        </div>
-    </div>
-</div>
+{% include scripts.html %}
+</html>
\ No newline at end of file
diff --git a/_layouts/website-normal.html b/_layouts/website-normal.html
index a89bb91..d07378e 100644
--- a/_layouts/website-normal.html
+++ b/_layouts/website-normal.html
@@ -1,39 +1,49 @@
----
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
 
-# layout for most website pages, inheriting base for the menu bar, and providing a main column of content and a menu column
-# (not used for the landing page, and not used for the guide)
-#
-# menu_customizations can be used, including force_inactive to prevent highlighting
-layout: website-base
----
-<div class="container" id="main_container">
-    <div class="row">
-        <div class="col-md-9" id="content_container">
-            <div id="page_notes"></div>
-            <h1>{{ page.title }}</h1>
-            {{ content }}
-        </div>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    {% include head.html %}
+</head>
 
-        <div class="col-md-3">
-            {% include sidemenu.html %}
+<body class="page">
+{% include header.html %}
+
+<main>
+    <div class="container">
+        <div class="row">
+            <div class="col-md-9 content">
+                <div id="page_notes"></div>
+                <h1>{{ page.title }}</h1>
+                {{ content }}
+            </div>
+
+            <aside class="col-md-3">
+                {% include sidemenu.html %}
+            </aside>
         </div>
     </div>
-</div>
+</main>
 
 {% include footer.html %}
+</body>
+
+{% include scripts.html %}
+</html>
diff --git a/contributing/inline-children.md b/contributing/inline-children.md
index 480f451..e16def5 100644
--- a/contributing/inline-children.md
+++ b/contributing/inline-children.md
@@ -26,7 +26,7 @@
 containing `section_type: inline` in the YAML front matter.
 
 The content from these inline sections can then be included in the page content using the liquid tag `child_content`. This is shown below
-in an example from [/guide/ops/locations/index.md](https://github.com/apache/brooklyn-docs/blob/master/guide/ops/locations/index.md){:target="_blank"}:
+in an example from [/guide/locations/index.md](https://github.com/apache/brooklyn-docs/blob/master/guide/locations/index.md){:target="_blank"}:
 
 <pre>
 ---
diff --git a/contributing/ordering.md b/contributing/ordering.md
index 428360c..2f3a151 100644
--- a/contributing/ordering.md
+++ b/contributing/ordering.md
@@ -26,8 +26,8 @@
 - { path: /guide/start/index.md, section_position: 3.1.2 }
 - { path: /guide/misc/download.md }
 - { path: /guide/concepts/index.md }
-- { path: /guide/yaml/index.md }
-- { path: /guide/java/index.md }
+- { path: /guide/blueprints/index.md }
+- { path: /guide/blueprints/java/index.md }
 - { path: /guide/ops/index.md, section_position: 2 }
 - { path: /guide/misc/index.md }
 {% endhighlight %}
diff --git a/contributing/pdf-manual.md b/contributing/pdf-manual.md
index ef9e950..161d9c0 100644
--- a/contributing/pdf-manual.md
+++ b/contributing/pdf-manual.md
@@ -1,13 +1,13 @@
 ---
-section: Single Page Manual & PDF
+section: Single Page Manual and PDF
 section_position: 4
 section_type: inline
 ---
 
-## Single Page Manual & PDF
+## Single Page Manual and PDF
 
 A single page overview of selections of the site are available in `zoneMergeManual` and `zoneMergeStarted`. These overviews are for the user manual
-and getting started guide respectively. The zone merge pages go through the [site structure](#site-structure), described above, and compile the files from this into a
+and getting started guide respectively. The zone merge pages go through the [site structure](index.html#site-structure), described above, and compile the files from this into a
 single HTML page.
 
 In order to do this, each page is iterated over in order and it's rendered content included in the page. The plug-in `regex_filter.rb` is used to re-write
diff --git a/contributing/site-structure.md b/contributing/site-structure.md
index c052e1c..0549d95 100644
--- a/contributing/site-structure.md
+++ b/contributing/site-structure.md
@@ -22,7 +22,7 @@
 - { path: /guide/start/index.md }
 - { path: /guide/misc/download.md }
 - { path: /guide/concepts/index.md }
-- { path: /guide/yaml/index.md }
+- { path: /guide/blueprints/index.md }
 - { path: /guide/java/index.md }
 - { path: /guide/ops/index.md }
 - { path: /guide/misc/index.md }
diff --git a/guide/yaml/advanced-example.md b/guide/blueprints/advanced-example.md
similarity index 100%
rename from guide/yaml/advanced-example.md
rename to guide/blueprints/advanced-example.md
diff --git a/guide/yaml/ansible/about-ansible.md b/guide/blueprints/ansible/about-ansible.md
similarity index 100%
rename from guide/yaml/ansible/about-ansible.md
rename to guide/blueprints/ansible/about-ansible.md
diff --git a/guide/yaml/ansible/creating-ansible-blueprints.md b/guide/blueprints/ansible/creating-ansible-blueprints.md
similarity index 100%
rename from guide/yaml/ansible/creating-ansible-blueprints.md
rename to guide/blueprints/ansible/creating-ansible-blueprints.md
diff --git a/guide/yaml/ansible/index.md b/guide/blueprints/ansible/index.md
similarity index 100%
rename from guide/yaml/ansible/index.md
rename to guide/blueprints/ansible/index.md
diff --git a/guide/yaml/blueprinting-tips.md b/guide/blueprints/blueprinting-tips.md
similarity index 97%
rename from guide/yaml/blueprinting-tips.md
rename to guide/blueprints/blueprinting-tips.md
index bbca6f7..9712fef 100644
--- a/guide/yaml/blueprinting-tips.md
+++ b/guide/blueprints/blueprinting-tips.md
@@ -37,7 +37,7 @@
 
 #### Deploying to Bring Your Own Nodes (BYON)
 
-A [BYON location]({{ site.path.guide }}/ops/locations/#byon) can be defined, which avoids the time 
+A [BYON location]({{ site.path.guide }}/locations/#byon) can be defined, which avoids the time 
 required to provision VMs. This is fast, but has the downside that artifacts installed during a 
 previous run can interfere with subsequent runs.
 
@@ -113,7 +113,7 @@
 
 ## Writing Entity Tests
 
-Use the [test framework]({{ site.path.guide }}/yaml/test/) to write test cases. This will make 
+Use the [test framework]({{ site.path.guide }}/blueprints/test/) to write test cases. This will make 
 automated (regression) testing easier, and will allow others to easily confirm that the entity 
 works in their environment.
 
diff --git a/guide/ops/catalog/images/add-to-catalog.png b/guide/blueprints/catalog/images/add-to-catalog.png
similarity index 100%
rename from guide/ops/catalog/images/add-to-catalog.png
rename to guide/blueprints/catalog/images/add-to-catalog.png
Binary files differ
diff --git a/guide/ops/catalog/index.md b/guide/blueprints/catalog/index.md
similarity index 98%
rename from guide/ops/catalog/index.md
rename to guide/blueprints/catalog/index.md
index 355e84b..d4605b0 100644
--- a/guide/ops/catalog/index.md
+++ b/guide/blueprints/catalog/index.md
@@ -8,7 +8,7 @@
 - { section: Templates and the Add-Application Wizard, title: Templates }
 - { section: Adding to the Catalog, title: Adding and Deleting } 
 - { section: Versioning } 
-- { section: CLI Options }
+- { section: brooklyn-server-command-line-arguments, title: CLI Options }
  
 ---
 
@@ -387,7 +387,7 @@
 which will be added to the catalog.
 To launch Brooklyn without initializing the catalog, use `--catalogInitial classpath://brooklyn/empty.catalog.bom`
 
-If [persistence](../persistence/) is enabled, catalog additions will remain between runs. If items that were
+If [persistence](../../ops/persistence/) is enabled, catalog additions will remain between runs. If items that were
 previously added based on items in `brooklyn/default.catalog.bom` or `--catalogInitial` are 
 deleted, they will not be re-added on subsequent restarts of brooklyn. I.e. `--catalogInitial` is ignored
 if persistence is enabled and persistent state has already been created.
diff --git a/guide/ops/catalog/mysql-in-catalog-w700.png b/guide/blueprints/catalog/mysql-in-catalog-w700.png
similarity index 100%
rename from guide/ops/catalog/mysql-in-catalog-w700.png
rename to guide/blueprints/catalog/mysql-in-catalog-w700.png
Binary files differ
diff --git a/guide/ops/catalog/mysql-in-catalog.png b/guide/blueprints/catalog/mysql-in-catalog.png
similarity index 100%
rename from guide/ops/catalog/mysql-in-catalog.png
rename to guide/blueprints/catalog/mysql-in-catalog.png
Binary files differ
diff --git a/guide/yaml/chef/about-chef.md b/guide/blueprints/chef/about-chef.md
similarity index 100%
rename from guide/yaml/chef/about-chef.md
rename to guide/blueprints/chef/about-chef.md
diff --git a/guide/yaml/chef/advanced-chef-integration.md b/guide/blueprints/chef/advanced-chef-integration.md
similarity index 100%
rename from guide/yaml/chef/advanced-chef-integration.md
rename to guide/blueprints/chef/advanced-chef-integration.md
diff --git a/guide/yaml/chef/chef-call-flow.png b/guide/blueprints/chef/chef-call-flow.png
similarity index 100%
rename from guide/yaml/chef/chef-call-flow.png
rename to guide/blueprints/chef/chef-call-flow.png
Binary files differ
diff --git a/guide/yaml/chef/creating-blueprints.md b/guide/blueprints/chef/creating-blueprints.md
similarity index 100%
rename from guide/yaml/chef/creating-blueprints.md
rename to guide/blueprints/chef/creating-blueprints.md
diff --git a/guide/yaml/chef/example_yaml/mysql-chef-1.yaml b/guide/blueprints/chef/example_yaml/mysql-chef-1.yaml
similarity index 100%
rename from guide/yaml/chef/example_yaml/mysql-chef-1.yaml
rename to guide/blueprints/chef/example_yaml/mysql-chef-1.yaml
diff --git a/guide/yaml/chef/example_yaml/mysql-chef-2.yaml b/guide/blueprints/chef/example_yaml/mysql-chef-2.yaml
similarity index 100%
rename from guide/yaml/chef/example_yaml/mysql-chef-2.yaml
rename to guide/blueprints/chef/example_yaml/mysql-chef-2.yaml
diff --git a/guide/yaml/chef/index.md b/guide/blueprints/chef/index.md
similarity index 100%
rename from guide/yaml/chef/index.md
rename to guide/blueprints/chef/index.md
diff --git a/guide/yaml/chef/writing-chef.md b/guide/blueprints/chef/writing-chef.md
similarity index 100%
rename from guide/yaml/chef/writing-chef.md
rename to guide/blueprints/chef/writing-chef.md
diff --git a/guide/yaml/clusters-and-policies.md b/guide/blueprints/clusters-and-policies.md
similarity index 100%
rename from guide/yaml/clusters-and-policies.md
rename to guide/blueprints/clusters-and-policies.md
diff --git a/guide/yaml/clusters.md b/guide/blueprints/clusters.md
similarity index 100%
rename from guide/yaml/clusters.md
rename to guide/blueprints/clusters.md
diff --git a/guide/blueprints/config-files.md b/guide/blueprints/config-files.md
new file mode 100644
index 0000000..f92aeb8
--- /dev/null
+++ b/guide/blueprints/config-files.md
@@ -0,0 +1,102 @@
+---
+title: Uploading Script and Configuration Files
+layout: website-normal
+toc: ../guide_toc.json
+categories: [use, guide, defining-applications]
+---
+
+Blueprints often require that parameterized scripts and configuration files are available to be copied to the
+target VM. These must be URLs resolvable from the Brooklyn instance, or on the Brooklyn classpath.
+
+There are two types of file that can be uploaded: plain files and templated files. A plain
+file is uploaded unmodified. A templated file is interpreted as a [FreeMarker](http://freemarker.org)
+template. This supports a powerful set of substitutions. In brief, anything (unescaped) of the form
+`${name}` will be substituted, in this case looking up "name" for the value to use.
+
+
+## Writing templates
+
+Templated files (be they configuration files or scripts) give a powerful way to inject dependent
+configuration when installing an entity (e.g. for customising the install, or for referencing the
+connection details of another entity). Available substitutions are:
+
+| Substitution              | Effect                                                             |
+|---------------------------|--------------------------------------------------------------------|
+| `${config['key']}`        | Equivalent to `entity.config().get(key)`                           |
+| `${attribute['key']}`     | Equivalent to `entity.sensors().get(key)`                          |
+| `${mgmt['key']}`          | Loads the value for `key` from the management context's properties |
+| `${entity.foo}`           | FreeMarker calls `getFoo` on the entity                            |
+| `${driver.foo}`           | FreeMarker calls `getFoo` on the entity's [driver](http://brooklyn.apache.org/v/latest/java/entity.html#things-to-know) |
+| `${location.foo}`         | FreeMarker calls `getFoo` on the entity's location                 |
+| `${javaSysProps.foo.bar}` | Loads the system property named `foo.bar`                          |
+
+Additional substitutions can be given per-entity by setting the `template.substitutions` key. For example,
+to include the address of an entity called db:
+
+    brooklyn.config
+      template.substitutions:
+        databaseAddress: $brooklyn:entity("db").attributeWhenReady("host.address")
+
+The value can be referenced in a template with `${databaseAddress}`.
+
+FreeMarker evaluates all expressions between `${}` which may be inappropriate in certain kinds of files.
+To include the literal `${value}` in a script you might:
+ * specify a [raw string literal](http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_direct_string):
+   `${r"${value}"}`
+ * use the [noparse](http://freemarker.org/docs/ref_directive_noparse.html) directive: `<#noparse>${value}</#noparse>`
+ * use FreeMarker's [alternative syntax](http://freemarker.org/docs/dgui_misc_alternativesyntax.html).
+
+A common pattern for templating Bash files is to set environment variables at the top of the script and to surround
+the rest of its contents with `noparse`. For example:
+
+    GREETING=${config['greeting']}
+    NAME=${config['name']}
+    
+    <#noparse>
+    # The remainder of the script can be written as normal.
+    echo "${GREETING}, ${NAME}!"
+    </#noparse>
+
+
+## Using templates in blueprints
+
+Files can be uploaded at several stages of an entity's lifecycle:
+
+| Config key             | Copied before lifecycle phase | Templated | Relative to  |
+|------------------------|-------------------------------|-----------|--------------|
+| `files.preinstall`     | Pre-install                   | ✕         | `installDir` |
+| `files.install`        | Install                       | ✕         | `installDir` |
+| `files.customize`      | Pre-customize command         | ✕         | `installDir` |
+| `files.runtime`        | Pre-launch command            | ✕         | `run.dir`    |
+| `templates.preinstall` | Pre-install                   | ✓         | `installDir` |
+| `templates.install`    | Install                       | ✓         | `installDir` |
+| `templates.customize`  | Pre-customize command         | ✓         | `installDir` |
+| `templates.runtime`    | Pre-launch command            | ✓         | `run.dir`    |
+
+Each key accepts a map of values where a key indicates the source of a file and a value its destination
+on the instance.
+
+Files can be referenced as URLs. This includes support for:
+ * `classpath://mypath/myfile.bat`, which looks for the given (fully qualified) resource on the Brooklyn classpath
+   or inside the bundle, if using the OSGi version of Brooklyn with a catalog blueprint.
+ * `file://`, which looks for the given file on the Brooklyn server, and
+ * `http://`, which requires the file to be accessible from the Brooklyn instance.
+
+Destinations may be absolute or relative. Absolute paths need not exist beforehand, but Brooklyn's SSH user must
+have sufficient permission to create all parent directories and the file itself. Relative paths are copied as
+described in the table above.
+
+
+### Example
+
+    files.preinstall:
+      # Reference a fixed resource
+      classpath://com/acme/installAcme.ps1: C:\\acme\installAcme.ps1
+      # Inject the source from a config key
+      $brooklyn:config("acme.conf"): C:\\acme\acme.conf
+
+
+## Windows notes
+
+* When writing scripts for Windows ensure that each line ends with "\r\n", rather than just "\n".
+* The backslash character (\\) must be escaped in paths. For example: `C:\\install7zip.ps1`.
diff --git a/guide/yaml/configuring-vms.md b/guide/blueprints/configuring-vms.md
similarity index 97%
rename from guide/yaml/configuring-vms.md
rename to guide/blueprints/configuring-vms.md
index 7ae341f..e7e7f47 100644
--- a/guide/yaml/configuring-vms.md
+++ b/guide/blueprints/configuring-vms.md
@@ -28,4 +28,4 @@
 * `machineCreateAttempts` (for dodgy clouds, and they nearly all fail occasionally!) 
 * and things like `imageId` and `userMetadata` and disk and networking options (e.g. `autoAssignFloatingIp` for private clouds)
 
-For more information, see [Operations: Locations]({{ site.path.guide }}/ops/locations/index.html).
+For more information, see [Operations: Locations]({{ site.path.guide }}/locations/index.html).
diff --git a/guide/yaml/creating-yaml.md b/guide/blueprints/creating-yaml.md
similarity index 93%
rename from guide/yaml/creating-yaml.md
rename to guide/blueprints/creating-yaml.md
index 603b0cd..6f91784 100644
--- a/guide/yaml/creating-yaml.md
+++ b/guide/blueprints/creating-yaml.md
@@ -25,7 +25,7 @@
 * The `name` is just for the benefit of us humans.
 
 * The `location` specifies where this should be deployed.
-  If you've [set up passwordless localhost SSH access]({{ site.path.guide }}/ops/locations/#localhost) 
+  If you've [set up passwordless localhost SSH access]({{ site.path.guide }}/locations/#localhost) 
   you can use `localhost` as above, but if not, just wait ten seconds for the next example.
   
 * The `services` block takes a list of the typed services we want to deploy.
@@ -64,8 +64,8 @@
 to make a declarative front-end, so you can do pretty much anything you want to
 by dropping to the JVM. For more information on Java:
 
-* start with a [Maven archetype]({{site.path.guide}}/java/archetype.html)
-* see all [Brooklyn Java guide]({{site.path.guide}}/java/) topics
+* start with a [Maven archetype]({{site.path.guide}}/blueprints/java/archetype.html)
+* see all [Brooklyn Java guide]({{site.path.guide}}/blueprints/java/) topics
 * look at test cases in the [codebase](https://github.com/apache/brooklyn)
 
 <!-- 
diff --git a/guide/yaml/custom-entities.md b/guide/blueprints/custom-entities.md
similarity index 100%
rename from guide/yaml/custom-entities.md
rename to guide/blueprints/custom-entities.md
diff --git a/guide/java/enrichers.md b/guide/blueprints/enrichers.md
similarity index 100%
rename from guide/java/enrichers.md
rename to guide/blueprints/enrichers.md
diff --git a/guide/yaml/entity-configuration.md b/guide/blueprints/entity-configuration.md
similarity index 98%
rename from guide/yaml/entity-configuration.md
rename to guide/blueprints/entity-configuration.md
index 85ed1bf..25827ad 100644
--- a/guide/yaml/entity-configuration.md
+++ b/guide/blueprints/entity-configuration.md
@@ -76,7 +76,7 @@
 - type: entity-config-example
 {% endhighlight %}
 
-For details of how to write and add catalog items, see [Catalog]({{ site.path.guide }}/ops/catalog/). 
+For details of how to write and add catalog items, see [Catalog]({{ site.path.guide }}/blueprints/catalog/). 
 
 
 #### Config Key Constraints
@@ -455,7 +455,7 @@
 #### Explicit Inheritance Modes
 
 _The YAML support for explicitly defining the inheritance mode is still work-in-progress. The options
-documented below will be enhanced in a future version of AMP, to better support the modes described
+documented below will be enhanced in a future version of Brooklyn, to better support the modes described
 above._
 
 In a YAML blueprint, within the `brooklyn.parameters` section for declaring new config keys, one can
diff --git a/guide/yaml/example_yaml/appserver-clustered-w-db-concise.yaml b/guide/blueprints/example_yaml/appserver-clustered-w-db-concise.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-clustered-w-db-concise.yaml
rename to guide/blueprints/example_yaml/appserver-clustered-w-db-concise.yaml
diff --git a/guide/yaml/example_yaml/appserver-clustered-w-db.yaml b/guide/blueprints/example_yaml/appserver-clustered-w-db.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-clustered-w-db.yaml
rename to guide/blueprints/example_yaml/appserver-clustered-w-db.yaml
diff --git a/guide/yaml/example_yaml/appserver-configured-in-config.yaml b/guide/blueprints/example_yaml/appserver-configured-in-config.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-configured-in-config.yaml
rename to guide/blueprints/example_yaml/appserver-configured-in-config.yaml
diff --git a/guide/yaml/example_yaml/appserver-configured.yaml b/guide/blueprints/example_yaml/appserver-configured.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-configured.yaml
rename to guide/blueprints/example_yaml/appserver-configured.yaml
diff --git a/guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml b/guide/blueprints/example_yaml/appserver-w-db-other-flavor.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-w-db-other-flavor.yaml
rename to guide/blueprints/example_yaml/appserver-w-db-other-flavor.yaml
diff --git a/guide/yaml/example_yaml/appserver-w-db.yaml b/guide/blueprints/example_yaml/appserver-w-db.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-w-db.yaml
rename to guide/blueprints/example_yaml/appserver-w-db.yaml
diff --git a/guide/yaml/example_yaml/appserver-w-policy.yaml b/guide/blueprints/example_yaml/appserver-w-policy.yaml
similarity index 100%
rename from guide/yaml/example_yaml/appserver-w-policy.yaml
rename to guide/blueprints/example_yaml/appserver-w-policy.yaml
diff --git a/guide/yaml/example_yaml/cluster-vm.yaml b/guide/blueprints/example_yaml/cluster-vm.yaml
similarity index 100%
rename from guide/yaml/example_yaml/cluster-vm.yaml
rename to guide/blueprints/example_yaml/cluster-vm.yaml
diff --git a/guide/yaml/example_yaml/fabric-with-multiple-locations.yaml b/guide/blueprints/example_yaml/fabric-with-multiple-locations.yaml
similarity index 100%
rename from guide/yaml/example_yaml/fabric-with-multiple-locations.yaml
rename to guide/blueprints/example_yaml/fabric-with-multiple-locations.yaml
diff --git a/guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml b/guide/blueprints/example_yaml/simple-appserver-with-location-byon.yaml
similarity index 100%
rename from guide/yaml/example_yaml/simple-appserver-with-location-byon.yaml
rename to guide/blueprints/example_yaml/simple-appserver-with-location-byon.yaml
diff --git a/guide/yaml/example_yaml/simple-appserver-with-location-per-entity.yaml b/guide/blueprints/example_yaml/simple-appserver-with-location-per-entity.yaml
similarity index 100%
rename from guide/yaml/example_yaml/simple-appserver-with-location-per-entity.yaml
rename to guide/blueprints/example_yaml/simple-appserver-with-location-per-entity.yaml
diff --git a/guide/yaml/example_yaml/simple-appserver-with-location.yaml b/guide/blueprints/example_yaml/simple-appserver-with-location.yaml
similarity index 100%
rename from guide/yaml/example_yaml/simple-appserver-with-location.yaml
rename to guide/blueprints/example_yaml/simple-appserver-with-location.yaml
diff --git a/guide/yaml/example_yaml/simple-appserver.yaml b/guide/blueprints/example_yaml/simple-appserver.yaml
similarity index 100%
rename from guide/yaml/example_yaml/simple-appserver.yaml
rename to guide/blueprints/example_yaml/simple-appserver.yaml
diff --git a/guide/yaml/example_yaml/simple-vm.yaml b/guide/blueprints/example_yaml/simple-vm.yaml
similarity index 100%
rename from guide/yaml/example_yaml/simple-vm.yaml
rename to guide/blueprints/example_yaml/simple-vm.yaml
diff --git a/guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml b/guide/blueprints/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
similarity index 100%
rename from guide/yaml/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
rename to guide/blueprints/example_yaml/test-app-with-enrichers-slightly-simpler.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-catalog.bom b/guide/blueprints/example_yaml/vanilla-bash-netcat-catalog.bom
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-catalog.bom
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-catalog.bom
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-cluster.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-cluster.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-cluster.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-cluster.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-env.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-env.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-env.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-env.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-file.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-file.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-file.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-file.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-more-commands.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-more-commands.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-more-commands.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-more-commands.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-port-parameter.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-port-parameter.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-port-parameter.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-port-parameter.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-port.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-port.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-port.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-port.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-reference.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-reference.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-reference.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-reference.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-restarter.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-restarter.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-restarter.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-restarter.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat-w-client.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat-w-client.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat-w-client.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat-w-client.yaml
diff --git a/guide/yaml/example_yaml/vanilla-bash-netcat.yaml b/guide/blueprints/example_yaml/vanilla-bash-netcat.yaml
similarity index 100%
rename from guide/yaml/example_yaml/vanilla-bash-netcat.yaml
rename to guide/blueprints/example_yaml/vanilla-bash-netcat.yaml
diff --git a/guide/yaml/index.md b/guide/blueprints/index.md
similarity index 76%
rename from guide/yaml/index.md
rename to guide/blueprints/index.md
index def24c1..caf0294 100644
--- a/guide/yaml/index.md
+++ b/guide/blueprints/index.md
@@ -1,24 +1,27 @@
 ---
-title: YAML Blueprints
+title: Writing Blueprints
 layout: website-normal
 children:
 - creating-yaml.md
+- entity-configuration.md
 - setting-locations.md
 - configuring-vms.md
-- clusters.md
 - multiple-services.md
-- entity-configuration.md
-- clusters-and-policies.md
-- blueprinting-tips.md
 - custom-entities.md
+- catalog/
+- clusters.md
+- enrichers.md
+- policies.md
+- clusters-and-policies.md
+- java/
 - winrm/
+- test/
 - ansible/
 - chef/
 - salt/
-- test/
 - advanced-example.md
+- blueprinting-tips.md
 - { path: yaml-reference.md, title: YAML Blueprint Reference }
-- { link: 'https://github.com/brooklyncentral/blueprint-library', title: 'GitHub Blueprint Library' }
 ---
 
 
diff --git a/guide/java/archetype.md b/guide/blueprints/java/archetype.md
similarity index 96%
rename from guide/java/archetype.md
rename to guide/blueprints/java/archetype.md
index 4bc7325..f9acac8 100644
--- a/guide/java/archetype.md
+++ b/guide/blueprints/java/archetype.md
@@ -61,7 +61,7 @@
 #### Adding to the Catalog
 
 The build will produce an OSGi bundle in `target/autobrick-0.1.0-SNAPSHOT.jar`, suitable for 
-use in the [Brooklyn catalog]({{ site.path.guide }}/ops/catalog/) (using `brooklyn.libraries`).
+use in the [Brooklyn catalog]({{ site.path.guide }}/blueprints/catalog/) (using `brooklyn.libraries`).
 
 To use this in your Brooklyn catalog you will first have to copy the target jar to a suitable location. 
 For developing/testing purposes storing on the local filesystem is fine. 
@@ -91,7 +91,7 @@
 {% endhighlight %}
 
 After running that command, the OSGi bundle will have been added to the OSGi container, and the
-entity will have been added to your catalog. It can then be used in the same way as regular AMP 
+entity will have been added to your catalog. It can then be used in the same way as regular Brooklyn 
 entities.
 
 For example, you can use the blueprint:
diff --git a/guide/java/bundle-dependencies.md b/guide/blueprints/java/bundle-dependencies.md
similarity index 94%
rename from guide/java/bundle-dependencies.md
rename to guide/blueprints/java/bundle-dependencies.md
index 5a894eb..0f07fb6 100644
--- a/guide/java/bundle-dependencies.md
+++ b/guide/blueprints/java/bundle-dependencies.md
@@ -28,7 +28,7 @@
 
 #### OSGi Bundles Declared in Catalog Items  
 
-Within a [catalog item]({{ site.path.guide}}/ops/catalog/), a list of URLs can be supplied under
+Within a [catalog item]({{ site.path.guide}}/blueprints/catalog/), a list of URLs can be supplied under
 `brooklyn.libraries`. Each URL should point to an OSGi bundle. This list should include the OSGi 
 bundle that has the Java code for your blueprint, and also the OSGi bundles that it depends
 on (including all transitive dependencies).
@@ -37,8 +37,8 @@
 dependencies are included. The bundles will be added to Karaf in the order given, so a bundle's
 dependencies should be listed before the bundle(s) that depend on them.
 
-In the [GistGenerator example]({{ site.path.guide}}/java/defining-and-deploying.html), the 
-[catalog.bom file]({{ site.path.guide}}/java/gist_generator/gist_generator.bom) included
+In the [GistGenerator example]({{ site.path.guide}}/blueprints/java/defining-and-deploying.html), the 
+[catalog.bom file]({{ site.path.guide}}/blueprints/java/gist_generator/gist_generator.bom) included
 the URL of the dependency `org.eclipse.egit.github.core`. It also (before that line) included
 its transitive dependency, which is a specific version of `gson`.
 
diff --git a/guide/java/common-usage.md b/guide/blueprints/java/common-usage.md
similarity index 97%
rename from guide/java/common-usage.md
rename to guide/blueprints/java/common-usage.md
index ccafd9b..2c9d91b 100644
--- a/guide/java/common-usage.md
+++ b/guide/blueprints/java/common-usage.md
@@ -39,6 +39,10 @@
         "WAR file to deploy as the ROOT, as URL (supporting file: and classpath: prefixes)");
 {% endhighlight %}
 
+If supplying a default value, it is important that this be immutable. Otherwise, it risks users
+of the blueprint modifying the default value, which would affect blueprints that are subsequently 
+deployed.
+
 One can optionally define a `@SetFromFlag("war")`. This defines a short-hand for configuring the
 entity. However, it should be used with caution - when using configuration set on a parent entity
 (and thus inherited), the `@SetFromFlag` short-form names are not checked. The long form defined 
diff --git a/guide/java/defining-and-deploying.md b/guide/blueprints/java/defining-and-deploying.md
similarity index 98%
rename from guide/java/defining-and-deploying.md
rename to guide/blueprints/java/defining-and-deploying.md
index 8c1fc6e..11a2889 100644
--- a/guide/java/defining-and-deploying.md
+++ b/guide/blueprints/java/defining-and-deploying.md
@@ -149,7 +149,7 @@
 {% readj gist_generator/gist_generator.bom %}
 {% endhighlight %}
 
-See [Handling Bundle Dependencies]({{ site.path.guide}}/java/bundle-dependencies.html)
+See [Handling Bundle Dependencies]({{ site.path.guide}}/blueprints/java/bundle-dependencies.html)
 for a description of the `brooklyn.libraries` used above, and for other alternative approaches.
 
 The command below will use the `br` CLI to add this to the catalog of a running Brooklyn instance.
diff --git a/guide/java/entities.md b/guide/blueprints/java/entities.md
similarity index 100%
rename from guide/java/entities.md
rename to guide/blueprints/java/entities.md
diff --git a/guide/java/entitlements.md b/guide/blueprints/java/entitlements.md
similarity index 100%
rename from guide/java/entitlements.md
rename to guide/blueprints/java/entitlements.md
diff --git a/guide/java/entity.md b/guide/blueprints/java/entity.md
similarity index 95%
rename from guide/java/entity.md
rename to guide/blueprints/java/entity.md
index d3ed881..8b05d9c 100644
--- a/guide/java/entity.md
+++ b/guide/blueprints/java/entity.md
@@ -13,9 +13,9 @@
   scripts.
 * For composite entities, use YAML to compose exiting types of entities (potentially overwriting
   parts of their configuration), and wire them together.
-* Use **[Chef recipes]({{site.path.guide}}/yaml/chef)**.
-* Use **[Salt formulas]({{site.path.guide}}/yaml/salt)**.
-* Use **[Ansible playbooks]({{site.path.guide}}/yaml/ansible)**.
+* Use **[Chef recipes]({{site.path.guide}}/blueprints/chef)**.
+* Use **[Salt formulas]({{site.path.guide}}/blueprints/salt)**.
+* Use **[Ansible playbooks]({{site.path.guide}}/blueprints/ansible)**.
 * Write pure-java, extending existing base-classes. For example, the `GistGenerator` 
   [example](defining-and-deploying.html). These can use utilities such as `HttpTool` and 
   `BashCommands`.
diff --git a/guide/java/feeds.md b/guide/blueprints/java/feeds.md
similarity index 100%
rename from guide/java/feeds.md
rename to guide/blueprints/java/feeds.md
diff --git a/guide/java/gist_generator/GistGenerator.java b/guide/blueprints/java/gist_generator/GistGenerator.java
similarity index 100%
rename from guide/java/gist_generator/GistGenerator.java
rename to guide/blueprints/java/gist_generator/GistGenerator.java
diff --git a/guide/java/gist_generator/GistGeneratorImpl.java b/guide/blueprints/java/gist_generator/GistGeneratorImpl.java
similarity index 100%
rename from guide/java/gist_generator/GistGeneratorImpl.java
rename to guide/blueprints/java/gist_generator/GistGeneratorImpl.java
diff --git a/guide/java/gist_generator/GistGeneratorTest.java b/guide/blueprints/java/gist_generator/GistGeneratorTest.java
similarity index 100%
rename from guide/java/gist_generator/GistGeneratorTest.java
rename to guide/blueprints/java/gist_generator/GistGeneratorTest.java
diff --git a/guide/java/gist_generator/GistGeneratorYamlTest.java b/guide/blueprints/java/gist_generator/GistGeneratorYamlTest.java
similarity index 100%
rename from guide/java/gist_generator/GistGeneratorYamlTest.java
rename to guide/blueprints/java/gist_generator/GistGeneratorYamlTest.java
diff --git a/guide/java/gist_generator/gist_create_token.png b/guide/blueprints/java/gist_generator/gist_create_token.png
similarity index 100%
rename from guide/java/gist_generator/gist_create_token.png
rename to guide/blueprints/java/gist_generator/gist_create_token.png
Binary files differ
diff --git a/guide/java/gist_generator/gist_generator.bom b/guide/blueprints/java/gist_generator/gist_generator.bom
similarity index 83%
rename from guide/java/gist_generator/gist_generator.bom
rename to guide/blueprints/java/gist_generator/gist_generator.bom
index 9548035..e07ff65 100644
--- a/guide/java/gist_generator/gist_generator.bom
+++ b/guide/blueprints/java/gist_generator/gist_generator.bom
@@ -2,7 +2,7 @@
   libraries:
   - http://search.maven.org/remotecontent?filepath=com/google/code/gson/gson/2.2.2/gson-2.2.2.jar
   - http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.egit.github.core/2.1.5_1/org.apache.servicemix.bundles.egit.github.core-2.1.5_1.jar
-  - http://developers.cloudsoftcorp.com/brooklyn/guide/java/gist_generator/autobrick-0.1.0-SNAPSHOT.jar
+  - http://developers.cloudsoftcorp.com/brooklyn/guide/blueprints/java/gist_generator/autobrick-0.1.0-SNAPSHOT.jar
   id: example.GistGenerator
   version: "0.1.0-SNAPSHOT"
   itemType: template
diff --git a/guide/java/gist_generator/gist_grant_access.png b/guide/blueprints/java/gist_generator/gist_grant_access.png
similarity index 100%
rename from guide/java/gist_generator/gist_grant_access.png
rename to guide/blueprints/java/gist_generator/gist_grant_access.png
Binary files differ
diff --git a/guide/java/index.md b/guide/blueprints/java/index.md
similarity index 93%
rename from guide/java/index.md
rename to guide/blueprints/java/index.md
index f3e5a09..1cd025e 100644
--- a/guide/java/index.md
+++ b/guide/blueprints/java/index.md
@@ -1,6 +1,6 @@
 ---
-title: Java Blueprints
-title_in_menu: Java Blueprints
+title: Java Entities
+title_in_menu: Java Entities
 layout: website-normal
 started-pdf-exclude: true
 children:
@@ -12,8 +12,6 @@
 - feeds.md
 - entity.md
 - entities.md
-- enrichers.md
-- policies.md
 - service-state.md
 - entitlements.md
 ---
diff --git a/guide/java/java_app/ExampleWebApp.java b/guide/blueprints/java/java_app/ExampleWebApp.java
similarity index 100%
rename from guide/java/java_app/ExampleWebApp.java
rename to guide/blueprints/java/java_app/ExampleWebApp.java
diff --git a/guide/java/service-state.md b/guide/blueprints/java/service-state.md
similarity index 100%
rename from guide/java/service-state.md
rename to guide/blueprints/java/service-state.md
diff --git a/guide/java/topology-dependencies.md b/guide/blueprints/java/topology-dependencies.md
similarity index 100%
rename from guide/java/topology-dependencies.md
rename to guide/blueprints/java/topology-dependencies.md
diff --git a/guide/java/wt-deployed-application-700.png b/guide/blueprints/java/wt-deployed-application-700.png
similarity index 100%
rename from guide/java/wt-deployed-application-700.png
rename to guide/blueprints/java/wt-deployed-application-700.png
Binary files differ
diff --git a/guide/java/wt-deployed-application.png b/guide/blueprints/java/wt-deployed-application.png
similarity index 100%
rename from guide/java/wt-deployed-application.png
rename to guide/blueprints/java/wt-deployed-application.png
Binary files differ
diff --git a/guide/java/wt-starting-700.png b/guide/blueprints/java/wt-starting-700.png
similarity index 100%
rename from guide/java/wt-starting-700.png
rename to guide/blueprints/java/wt-starting-700.png
Binary files differ
diff --git a/guide/java/wt-starting.png b/guide/blueprints/java/wt-starting.png
similarity index 100%
rename from guide/java/wt-starting.png
rename to guide/blueprints/java/wt-starting.png
Binary files differ
diff --git a/guide/java/wt-tree-jboss-sensors-700.png b/guide/blueprints/java/wt-tree-jboss-sensors-700.png
similarity index 100%
rename from guide/java/wt-tree-jboss-sensors-700.png
rename to guide/blueprints/java/wt-tree-jboss-sensors-700.png
Binary files differ
diff --git a/guide/java/wt-tree-jboss-sensors.png b/guide/blueprints/java/wt-tree-jboss-sensors.png
similarity index 100%
rename from guide/java/wt-tree-jboss-sensors.png
rename to guide/blueprints/java/wt-tree-jboss-sensors.png
Binary files differ
diff --git a/guide/yaml/logstash-snapshot.png b/guide/blueprints/logstash-snapshot.png
similarity index 100%
rename from guide/yaml/logstash-snapshot.png
rename to guide/blueprints/logstash-snapshot.png
Binary files differ
diff --git a/guide/yaml/multiple-services.md b/guide/blueprints/multiple-services.md
similarity index 100%
rename from guide/yaml/multiple-services.md
rename to guide/blueprints/multiple-services.md
diff --git a/guide/java/policies.md b/guide/blueprints/policies.md
similarity index 100%
rename from guide/java/policies.md
rename to guide/blueprints/policies.md
diff --git a/guide/yaml/salt/about-salt.md b/guide/blueprints/salt/about-salt.md
similarity index 100%
rename from guide/yaml/salt/about-salt.md
rename to guide/blueprints/salt/about-salt.md
diff --git a/guide/yaml/salt/creating-salt-blueprints.md b/guide/blueprints/salt/creating-salt-blueprints.md
similarity index 100%
rename from guide/yaml/salt/creating-salt-blueprints.md
rename to guide/blueprints/salt/creating-salt-blueprints.md
diff --git a/guide/yaml/salt/index.md b/guide/blueprints/salt/index.md
similarity index 100%
rename from guide/yaml/salt/index.md
rename to guide/blueprints/salt/index.md
diff --git a/guide/yaml/setting-locations.md b/guide/blueprints/setting-locations.md
similarity index 95%
rename from guide/yaml/setting-locations.md
rename to guide/blueprints/setting-locations.md
index 906a194..91efc5f 100644
--- a/guide/yaml/setting-locations.md
+++ b/guide/blueprints/setting-locations.md
@@ -9,7 +9,7 @@
 
 Brooklyn supports a very wide range of target locations. 
 With deep integration to [Apache jclouds](https://jclouds.apache.org), most well-known clouds 
-and cloud platforms are supported. See the [Locations guide]({{ site.path.guide }}/ops/locations/) 
+and cloud platforms are supported. See the [Locations guide]({{ site.path.guide }}/locations/) 
 for details and more examples.
 
 ### Cloud Example
@@ -113,7 +113,7 @@
 It is also possible (and indeed preferred) to add the location definitions to the catalog
 so that they can be referenced by name in any blueprint.
 
-For more information see the [Operations: Catalog]({{ site.path.guide }}/ops/catalog/) section of 
+For more information see the [Operations: Catalog]({{ site.path.guide }}/blueprints/catalog/) section of 
 the User Guide.
 
 
@@ -128,5 +128,5 @@
 
 An entity that represents a "software process" can use the configuration option 
 `provisioning.properties` to augment the location's configuration. For more information, see
-[Entity Configuration]({{ site.path.guide }}/yaml/entity-configuration.html#entity-provisioningproperties-overriding-and-merging)
+[Entity Configuration]({{ site.path.guide }}/blueprints/entity-configuration.html#entity-provisioningproperties-overriding-and-merging)
 details.
diff --git a/guide/yaml/test/example_yaml/entities/infrastructuredeploymenttestcase-entity.yaml b/guide/blueprints/test/example_yaml/entities/infrastructuredeploymenttestcase-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/infrastructuredeploymenttestcase-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/infrastructuredeploymenttestcase-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/loopovergroupmembers-entity.yaml b/guide/blueprints/test/example_yaml/entities/loopovergroupmembers-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/loopovergroupmembers-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/loopovergroupmembers-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/paralleltestcase-entity.yaml b/guide/blueprints/test/example_yaml/entities/paralleltestcase-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/paralleltestcase-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/paralleltestcase-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/script1.sh b/guide/blueprints/test/example_yaml/entities/script1.sh
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/script1.sh
rename to guide/blueprints/test/example_yaml/entities/script1.sh
diff --git a/guide/yaml/test/example_yaml/entities/testcase-entity.yaml b/guide/blueprints/test/example_yaml/entities/testcase-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/testcase-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/testcase-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/testeffector-entity.yaml b/guide/blueprints/test/example_yaml/entities/testeffector-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/testeffector-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/testeffector-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/testhttpcall-entity.yaml b/guide/blueprints/test/example_yaml/entities/testhttpcall-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/testhttpcall-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/testhttpcall-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/testsensor-entity.yaml b/guide/blueprints/test/example_yaml/entities/testsensor-entity.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/entities/testsensor-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/testsensor-entity.yaml
diff --git a/guide/yaml/test/example_yaml/entities/testsshcommand-entity.yaml b/guide/blueprints/test/example_yaml/entities/testsshcommand-entity.yaml
similarity index 92%
rename from guide/yaml/test/example_yaml/entities/testsshcommand-entity.yaml
rename to guide/blueprints/test/example_yaml/entities/testsshcommand-entity.yaml
index 6bbffc0..bcf39cf 100644
--- a/guide/yaml/test/example_yaml/entities/testsshcommand-entity.yaml
+++ b/guide/blueprints/test/example_yaml/entities/testsshcommand-entity.yaml
@@ -19,7 +19,7 @@
     - type: org.apache.brooklyn.test.framework.TestSshCommand
       name: Check hello world script
       targetId: testprocess
-      downloadUrl: https://github.com/apache/brooklyn-docs/raw/master/guide/yaml/test/example_yaml/entities/script1.sh
+      downloadUrl: https://github.com/apache/brooklyn-docs/raw/master/guide/blueprints/test/example_yaml/entities/script1.sh
       assertStatus:
         equals: 0
       assertOut: 
diff --git a/guide/yaml/test/example_yaml/testcases/effector-test-snippet.yaml b/guide/blueprints/test/example_yaml/testcases/effector-test-snippet.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/testcases/effector-test-snippet.yaml
rename to guide/blueprints/test/example_yaml/testcases/effector-test-snippet.yaml
diff --git a/guide/yaml/test/example_yaml/testcases/getting-started-test-example.yaml b/guide/blueprints/test/example_yaml/testcases/getting-started-test-example.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/testcases/getting-started-test-example.yaml
rename to guide/blueprints/test/example_yaml/testcases/getting-started-test-example.yaml
diff --git a/guide/yaml/test/example_yaml/testcases/http-test-snippet.yaml b/guide/blueprints/test/example_yaml/testcases/http-test-snippet.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/testcases/http-test-snippet.yaml
rename to guide/blueprints/test/example_yaml/testcases/http-test-snippet.yaml
diff --git a/guide/yaml/test/example_yaml/testcases/sensor-test-snippet.yaml b/guide/blueprints/test/example_yaml/testcases/sensor-test-snippet.yaml
similarity index 100%
rename from guide/yaml/test/example_yaml/testcases/sensor-test-snippet.yaml
rename to guide/blueprints/test/example_yaml/testcases/sensor-test-snippet.yaml
diff --git a/guide/yaml/test/images/getting-started-blueprint-test-large.png b/guide/blueprints/test/images/getting-started-blueprint-test-large.png
similarity index 100%
rename from guide/yaml/test/images/getting-started-blueprint-test-large.png
rename to guide/blueprints/test/images/getting-started-blueprint-test-large.png
Binary files differ
diff --git a/guide/yaml/test/images/getting-started-blueprint-test.png b/guide/blueprints/test/images/getting-started-blueprint-test.png
similarity index 100%
rename from guide/yaml/test/images/getting-started-blueprint-test.png
rename to guide/blueprints/test/images/getting-started-blueprint-test.png
Binary files differ
diff --git a/guide/yaml/test/index.md b/guide/blueprints/test/index.md
similarity index 100%
rename from guide/yaml/test/index.md
rename to guide/blueprints/test/index.md
diff --git a/guide/yaml/test/test-entities.md b/guide/blueprints/test/test-entities.md
similarity index 100%
rename from guide/yaml/test/test-entities.md
rename to guide/blueprints/test/test-entities.md
diff --git a/guide/yaml/test/usage-examples.md b/guide/blueprints/test/usage-examples.md
similarity index 100%
rename from guide/yaml/test/usage-examples.md
rename to guide/blueprints/test/usage-examples.md
diff --git a/guide/yaml/web-console-yaml-700.png b/guide/blueprints/web-console-yaml-700.png
similarity index 100%
rename from guide/yaml/web-console-yaml-700.png
rename to guide/blueprints/web-console-yaml-700.png
Binary files differ
diff --git a/guide/yaml/web-console-yaml.png b/guide/blueprints/web-console-yaml.png
similarity index 100%
rename from guide/yaml/web-console-yaml.png
rename to guide/blueprints/web-console-yaml.png
Binary files differ
diff --git a/guide/yaml/winrm/client.md b/guide/blueprints/winrm/client.md
similarity index 98%
rename from guide/yaml/winrm/client.md
rename to guide/blueprints/winrm/client.md
index e02c092..2a8e08a 100644
--- a/guide/yaml/winrm/client.md
+++ b/guide/blueprints/winrm/client.md
@@ -49,7 +49,7 @@
 If the quick list above doesn't help then follow the steps bellow.
 
 To speed up diagnosing the problem we advice to trigger a deployment with the JcloudsLocation flag `destroyOnFailure: false` so you can check status of the provisioned machine
-or try later different WinRM parameters with a Apache Brooklyn [BYON Location](../../ops/locations/index.html#byon).
+or try later different WinRM parameters with a Apache Brooklyn [BYON Location](../../locations/index.html#byon).
 
 After you determined what is the username and the password you can proceed with next steps.
 *(Notice that for cloud providers which use Auto Generated password will not be logged.
diff --git a/guide/yaml/winrm/index.md b/guide/blueprints/winrm/index.md
similarity index 91%
rename from guide/yaml/winrm/index.md
rename to guide/blueprints/winrm/index.md
index 168dded..6155c60 100644
--- a/guide/yaml/winrm/index.md
+++ b/guide/blueprints/winrm/index.md
@@ -72,7 +72,7 @@
 
 Creating a Windows VM is done using the `org.apache.brooklyn.entity.software.base.VanillaWindowsProcess` entity type. This is very similar
 to `VanillaSoftwareProcess`, but adapted to work for Windows and WinRM instead of Linux. We suggest you read the
-[documentation for VanillaSoftwareProcess]({{ site.path.guide }}/yaml/custom-entities.html#vanilla-software-using-bash) to find out what you
+[documentation for VanillaSoftwareProcess]({{ site.path.guide }}/blueprints/custom-entities.html#vanilla-software-using-bash) to find out what you
 can do with this entity.
 
 Entity authors are strongly encouraged to write Windows Powershell or Batch scripts as separate 
@@ -129,7 +129,7 @@
 Tips and Tricks
 ---------------
 
-The best practices for other entities (e.g. using [VanillaSoftwareProcess]({{ site.path.guide }}/yaml/custom-entities.html#vanilla-software-using-bash))
+The best practices for other entities (e.g. using [VanillaSoftwareProcess]({{ site.path.guide }}/blueprints/custom-entities.html#vanilla-software-using-bash))
 apply for WinRM as well.
 
 ### Execution Phases
@@ -199,47 +199,6 @@
 
 Note the quotes around the command. This is because the "&" has special meaning in a YAML value. 
 
-### Uploading Script and Configuration Files
-
-Often, blueprints will require that (parameterized) scripts and configuration files are available to be copied to the
-target VM. These must be URLs resolvable from the Brooklyn instance, or on the Brooklyn classpath. One simple way 
-to achieve this is to compile the support files into a .jar, which is then added to AMP's 'dropins' folder. Alternatively, 
-an OSGi bundle can be used, referenced from the catalog item. 
-
-Ensure that these scripts end each line with "\r\n", rather than just "\n".
-
-There are two types of file that can be uploaded: plain files and templated files. A plain 
-file is uploaded unmodified. A templated file is interpreted as a [FreeMarker](http://freemarker.org) 
-template. This supports a powerful set of substitutions. In brief, anything (unescaped) of the form
-`${name}` will be substituted, in this case looking up "name" for the value to use.
-
-Templated files (be they configuration files or scripts) gives a powerful way to inject dependent 
-configuration when installing an entity (e.g. for customising the install, or for referencing the
-connection details of another entity). A common substitution is of the form `${config['mykey']}`. 
-This looks up a config key (in this case named "mykey") and will insert the value into the file.
-Another common substitution is is of the form `${attribute['myattribute']}` - this looks up the
-attribute named "myattribute" of this entity.
-
-Files can be referenced as URLs. This includes support for things like `classpath://mypath/myfile.bat`. 
-This looks for the given (fully qualified) resource on the Brooklyn classpath.
-
-The destination for the file upload is specified in the entity's configuration. Note that "\" must
-be escaped. For example `"C:\\install7zip.ps1"`.
-
-A list of plain files to be uploaded can be configured under `files.preinstall`, `files.install` and
-`files.runtime`. These are uploaded respectively prior to executing the `pre.install.command`,
-prior to `install.command` and prior to `pre.launch.command`.
-
-A list of templated files to be uploaded can be configured under `templates.preinstall`, `templates.install`
-and `templates.runtime`. The times these are uploaded is as for the plain files. The templates 
-substitutions will be resolved only at the point when the file is to be uploaded.
-
-For example:
-
-    files.preinstall:
-    - classpath://com/acme/installAcme.ps1
-    - classpath://com/acme/acme.conf
-
 ### Parameterised Scripts
 
 Calling parameterised Batch and Powershell scripts is done in the normal Windows way - see
@@ -320,7 +279,7 @@
 script. Please be aware that it is normal for script files - and therefore the plaintext password - 
 to be saved to the VM's disk. The scripts are also accessible via the Brooklyn web-console's 
 activity view. Access to the latter can be controlled via 
-[Entitlements]({{site.path.guide}}/java/entitlements.html).
+[Entitlements]({{site.path.guide}}/blueprints/java/entitlements.html).
 
 As an example (taken from MSSQL install), the command below works when run locally, but fails over 
 WinRM:
diff --git a/guide/yaml/yaml-reference.md b/guide/blueprints/yaml-reference.md
similarity index 98%
rename from guide/yaml/yaml-reference.md
rename to guide/blueprints/yaml-reference.md
index c72d055..7a46970 100644
--- a/guide/yaml/yaml-reference.md
+++ b/guide/blueprints/yaml-reference.md
@@ -20,7 +20,7 @@
 
 * `com.acme.brooklyn.package.JavaEntityClass`
 * `java:com.acme.brooklyn.package.JavaEntityClass`
-* `java-entity-class` (where this has been added to the [catalog]({{ site.path.guide }}/ops/catalog/))
+* `java-entity-class` (where this has been added to the [catalog]({{ site.path.guide }}/blueprints/catalog/))
 
 A reference of some of the common service `type` instances used is included in a section below.
 
@@ -79,7 +79,7 @@
   * `default`: a default value; this will be coerced to the declared `type`
   * `pinned`: mark the parameter as pinned (always displayed) for the UI. The default is `true`
   * `constraints`: a list of constraints the parameter should meet;
-    for details, see [Entity Configuration]({{ site.path.guide }}/yaml/entity-configuration.html#config-key-constraints).
+    for details, see [Entity Configuration]({{ site.path.guide }}/blueprints/entity-configuration.html#config-key-constraints).
 
   A shorthand notation is also supported where just the name of the parameter is supplied
   as an item in the list, with the other values being unset or the default.
diff --git a/guide/index.md b/guide/index.md
index cdb3b46..f3dbfff 100644
--- a/guide/index.md
+++ b/guide/index.md
@@ -8,8 +8,7 @@
 - { path: /guide/start/index.md }
 - { path: /guide/misc/download.md }
 - { path: /guide/concepts/index.md }
-- { path: /guide/yaml/index.md }
-- { path: /guide/java/index.md }
+- { path: /guide/blueprints/index.md }
 - { path: /guide/ops/index.md }
 - { path: /guide/misc/index.md }
 ---
diff --git a/guide/ops/locations/_AWS.md b/guide/locations/_AWS.md
similarity index 100%
rename from guide/ops/locations/_AWS.md
rename to guide/locations/_AWS.md
diff --git a/guide/ops/locations/_GCE.md b/guide/locations/_GCE.md
similarity index 100%
rename from guide/ops/locations/_GCE.md
rename to guide/locations/_GCE.md
diff --git a/guide/ops/locations/_azure-ARM.md b/guide/locations/_azure-ARM.md
similarity index 100%
rename from guide/ops/locations/_azure-ARM.md
rename to guide/locations/_azure-ARM.md
diff --git a/guide/ops/locations/_azure-classic.md b/guide/locations/_azure-classic.md
similarity index 100%
rename from guide/ops/locations/_azure-classic.md
rename to guide/locations/_azure-classic.md
diff --git a/guide/ops/locations/_byon.md b/guide/locations/_byon.md
similarity index 97%
rename from guide/ops/locations/_byon.md
rename to guide/locations/_byon.md
index 525916d..948994d 100644
--- a/guide/ops/locations/_byon.md
+++ b/guide/locations/_byon.md
@@ -48,7 +48,7 @@
 {% endhighlight %}
 
 Alternatively, you can create a specific BYON location through the location wizard tool available within the web console.
-This location will be saved as a [catalog entry]({{ site.path.guide }}/ops/catalog/index.html#locations-in-catalog) for easy reusability.
+This location will be saved as a [catalog entry]({{ site.path.guide }}/blueprints/catalog/index.html#locations-in-catalog) for easy reusability.
 
 For more complex host configuration, one can define custom config values per machine. In the example 
 below, there will be two machines. The first will be a machine reachable on
diff --git a/guide/ops/locations/_clouds.md b/guide/locations/_clouds.md
similarity index 98%
rename from guide/ops/locations/_clouds.md
rename to guide/locations/_clouds.md
index 44b5ea5..3a71fd7 100644
--- a/guide/ops/locations/_clouds.md
+++ b/guide/locations/_clouds.md
@@ -27,7 +27,7 @@
 {% endhighlight %} 
 
 The above YAML can be embedded directly in blueprints, either at the root or on individual services.
-If you prefer to keep the credentials separate, you can instead store them as a [catalog entry]({{ site.path.guide }}/ops/catalog/index.html#locations-in-catalog) or set them in `brooklyn.properties` 
+If you prefer to keep the credentials separate, you can instead store them as a [catalog entry]({{ site.path.guide }}/blueprints/catalog/index.html#locations-in-catalog) or set them in `brooklyn.properties` 
 in the `jclouds.<provider>` namespace:
 
 {% highlight bash %}
@@ -39,7 +39,7 @@
 
 Alternatively, you can use the location wizard tool available within the web console
 to create any cloud location supported by <a href="http://jclouds.org">Apache jclouds</a>.
-This location will be saved as a [catalog entry]({{ site.path.guide }}/ops/catalog/index.html#locations-in-catalog) for easy reusability.
+This location will be saved as a [catalog entry]({{ site.path.guide }}/blueprints/catalog/index.html#locations-in-catalog) for easy reusability.
 
 Brooklyn irons out many of the differences between clouds so that blueprints run similarly
 in a wide range of locations, including setting up access and configuring images and machine specs.
@@ -95,7 +95,7 @@
 - Most providers require exactly one of either `region` (e.g. `us-east-1`) or `endpoint` (the URL, usually for private cloud deployments)
 
 - Hardware requirements can be specified, including 
-  `minRam`, `minCores`, and `os64Bit`; or as a specific `hardwareId`
+  `minRam`, `minCores`, `minDisk` and `os64Bit`; or as a specific `hardwareId`
 
 - VM image constraints can be set using `osFamily` (e.g. `Ubuntu`, `CentOS`, `Debian`, `RHEL`)
   and `osVersionRegex`, or specific VM images can be specified using `imageId` or `imageNameRegex`
diff --git a/guide/ops/locations/_cloudstack.md b/guide/locations/_cloudstack.md
similarity index 100%
rename from guide/ops/locations/_cloudstack.md
rename to guide/locations/_cloudstack.md
diff --git a/guide/ops/locations/_ibm-softlayer.md b/guide/locations/_ibm-softlayer.md
similarity index 100%
rename from guide/ops/locations/_ibm-softlayer.md
rename to guide/locations/_ibm-softlayer.md
diff --git a/guide/ops/locations/_inheritance-and-named-locations.md b/guide/locations/_inheritance-and-named-locations.md
similarity index 100%
rename from guide/ops/locations/_inheritance-and-named-locations.md
rename to guide/locations/_inheritance-and-named-locations.md
diff --git a/guide/ops/locations/_localhost.md b/guide/locations/_localhost.md
similarity index 95%
rename from guide/ops/locations/_localhost.md
rename to guide/locations/_localhost.md
index 010cd1b..d2daf33 100644
--- a/guide/ops/locations/_localhost.md
+++ b/guide/locations/_localhost.md
@@ -19,7 +19,7 @@
 
 
 Alternatively, you can create a specific localhost location through the location wizard tool available within the web console.
-This location will be saved as a [catalog entry]({{ site.path.guide }}/ops/catalog/index.html#locations-in-the-catalog) 
+This location will be saved as a [catalog entry]({{ site.path.guide }}/blueprints/catalog/index.html#locations-in-the-catalog) 
 for easy reusability.
 
 
diff --git a/guide/ops/locations/_openstack.md b/guide/locations/_openstack.md
similarity index 100%
rename from guide/ops/locations/_openstack.md
rename to guide/locations/_openstack.md
diff --git a/guide/ops/locations/_special-locations.md b/guide/locations/_special-locations.md
similarity index 100%
rename from guide/ops/locations/_special-locations.md
rename to guide/locations/_special-locations.md
diff --git a/guide/ops/locations/_ssh-keys.md b/guide/locations/_ssh-keys.md
similarity index 100%
rename from guide/ops/locations/_ssh-keys.md
rename to guide/locations/_ssh-keys.md
diff --git a/guide/ops/locations/cloud-credentials.md b/guide/locations/cloud-credentials.md
similarity index 100%
rename from guide/ops/locations/cloud-credentials.md
rename to guide/locations/cloud-credentials.md
diff --git a/guide/ops/locations/index.md b/guide/locations/index.md
similarity index 71%
rename from guide/ops/locations/index.md
rename to guide/locations/index.md
index 4a8b40d..328eed2 100644
--- a/guide/ops/locations/index.md
+++ b/guide/locations/index.md
@@ -12,10 +12,10 @@
 
 See also:
 
-* The [Locations yaml guide]({{ site.path.guide }}/yaml/setting-locations.html)
+* The [Locations yaml guide]({{ site.path.guide }}/blueprints/setting-locations.html)
 * Use within an entity of the configuration option 
-  [provisioning.properties]({{ site.path.guide }}/yaml/entity-configuration.html#entity-provisioningproperties-overriding-and-merging)
-* How to add location definitions to the [Catalog]({{ site.path.guide }}/ops/catalog/); and 
+  [provisioning.properties]({{ site.path.guide }}/blueprints/entity-configuration.html#entity-provisioningproperties-overriding-and-merging)
+* How to add location definitions to the [Catalog]({{ site.path.guide }}/blueprints/catalog/); and 
 * How to use [Externalized Configuration]({{ site.path.guide }}/ops/externalized-configuration.html).
 
 {% child_content %}
diff --git a/guide/ops/locations/location-customizers.md b/guide/locations/location-customizers.md
similarity index 100%
rename from guide/ops/locations/location-customizers.md
rename to guide/locations/location-customizers.md
diff --git a/guide/ops/brooklyn_properties.md b/guide/ops/brooklyn_properties.md
index 87ce641..9d849b7 100644
--- a/guide/ops/brooklyn_properties.md
+++ b/guide/ops/brooklyn_properties.md
@@ -74,7 +74,7 @@
 
 ## Locations
 
-Information on defining locations in the `brooklyn.properties` file is available [here]({{ site.path.guide }}/ops/locations/).
+Information on defining locations in the `brooklyn.properties` file is available [here]({{ site.path.guide }}/locations/).
 
 
 ## Java
@@ -204,7 +204,7 @@
 {% endhighlight %}
 
 For more information, see 
-[Java: Entitlements]({{ site.path.guide }}/java/entitlements.html).
+[Java: Entitlements]({{ site.path.guide }}/blueprints/java/entitlements.html).
 or
 {% include java_link.html class_name="EntitlementManager" package_path="org/apache/brooklyn/api/mgmt/entitlement" project_subpath="api" %}.
 
diff --git a/guide/ops/externalized-configuration.md b/guide/ops/externalized-configuration.md
index f891b82..6440a03 100644
--- a/guide/ops/externalized-configuration.md
+++ b/guide/ops/externalized-configuration.md
@@ -133,7 +133,7 @@
       brooklyn.libraries:
       - >
         $brooklyn:formatString("https://%s:%s@repo.example.com/libs/myblueprint-1.2.3.jar", 
-        external("mysuppier", "username"), external("mysupplier", "password"))
+        external("mysupplier", "username"), external("mysupplier", "password"))
       item:
         type: com.example.MyBlueprint
 
diff --git a/guide/ops/index.md b/guide/ops/index.md
index e150a5d..2ea5043 100644
--- a/guide/ops/index.md
+++ b/guide/ops/index.md
@@ -1,24 +1,22 @@
 ---
-title: Operations
+title: Reference Guide
 started-pdf-exclude: true
 layout: website-normal
 children:
+- production-installation.md
 - starting-stopping-monitoring.md
 - server-cli-reference.md
 - cli/
 - gui/
+- rest.md
 - brooklyn_properties.md
-- locations/
 - persistence/
 - high-availability/
-- catalog/
-- rest.md
 - osgi.md
 - logging.md
 - https.md
 - externalized-configuration.md
 - requirements.md
-- production-installation.md
 - security-guidelines.md
 - troubleshooting/
 ---
diff --git a/guide/ops/osgi.md b/guide/ops/osgi.md
index 915539b..97becec 100644
--- a/guide/ops/osgi.md
+++ b/guide/ops/osgi.md
@@ -5,10 +5,8 @@
 - osgi-configuration.md
 ---
 
-# Running Apache Brooklyn inside Karaf container
-
 The Apache Brooklyn Karaf based distribution lives in brooklyn-dist/karaf/apache-brooklyn folder.
-It's still in a testing stage so some features might not work as expected. Please contact us on the 
+Please contact us on the
 [mailing list](mailto:dev@brooklyn.apache.org) if you find any problems.
 
 ## Building
@@ -33,21 +31,6 @@
 where you can interact with the running instance. Note that Brooklyn has already started at this point
 and is reachable at the usual web console url.
 
-To start in debug mode use
-
-{% highlight bash %}
-bin/karaf debug
-{% endhighlight %}
-
-and connect to port 5005 using your normal Java debugger.
-
-To pause startup until the debugger is connected you can use
-
-{% highlight bash %}
-JAVA_DEBUG_OPTS='-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005' bin/karaf debug
-{% endhighlight %}
-
-
 Start the instance as a server in the background using the following command
 
 {% highlight bash %}
@@ -57,7 +40,32 @@
 The Karaf container will keep state such as installed bundles and configuration between restarts.
 To reset any changes add **clean** to the cli arguments.
 
+## Debugging
+
+To start in debug mode use
+
+{% highlight bash %}
+bin/karaf debug
+{% endhighlight %}
+
+and connect to port 5005 using your normal Java debugger.
+
+If you want to change dt_socket port you can pass `JAVA_DEBUG_PORT` environment variable
+
+{%highlight bash %}
+JAVA_DEBUG_PORT=5006 bin/karaf debug
+{% endhighlight %}
+
+To pause startup until the debugger is connected you can use
+
+{% highlight bash %}
+JAVA_DEBUG_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005' bin/karaf debug
+{% endhighlight %}
+
+For other options please check your JVM JPDA documentation.
+Hotspot JPDA:  https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/
+
 ## Configuring
 
-Configuration of Brooklyn when running under Karaf is largely done through standard Karaf mechanisms. 
+Configuration of Brooklyn when running under Karaf is largely done through standard Karaf mechanisms.
 See the page on [OSGI Configuration](osgi-configuration.html) for details.
\ No newline at end of file
diff --git a/guide/ops/persistence/index.md b/guide/ops/persistence/index.md
index a565fbb..4d19062 100644
--- a/guide/ops/persistence/index.md
+++ b/guide/ops/persistence/index.md
@@ -313,7 +313,7 @@
 
 * By extending `SoftwareProcess`, entities get a lot of the rebind logic for free. For 
   example, the default `rebind()` method will call `connectSensors()`.
-  See [`SoftwareProcess` Lifecycle]({{site.path.guide}}/java/entities.html#SoftwareProcess-lifecycle)
+  See [`SoftwareProcess` Lifecycle]({{site.path.guide}}/blueprints/java/entities.html#SoftwareProcess-lifecycle)
   for more details.
 * If necessary, implement rebind. The `entity.rebind()` is called automatically by the
   Brooklyn framework on rebind, after configuring the entity's config/attributes but before 
diff --git a/guide/ops/production-installation.md b/guide/ops/production-installation.md
index 517f6ef..e1ef8cd 100644
--- a/guide/ops/production-installation.md
+++ b/guide/ops/production-installation.md
@@ -27,8 +27,8 @@
 Then configure the server as follows:
 
 * install Java JRE or JDK (version 7 or later)
-* install an [SSH key]({{ site.path.guide }}/ops/locations/index.html#ssh-keys), if not available
-* if the "localhost" location will be used, enable [passwordless ssh login]({{ site.path.guide }}/ops/locations/index.html#ssh-keys)
+* install an [SSH key]({{ site.path.guide }}/locations/index.html#ssh-keys), if not available
+* if the "localhost" location will be used, enable [passwordless ssh login]({{ site.path.guide }}/locations/index.html#ssh-keys)
 * create a `~/.brooklyn` directory on the host with `$ mkdir ~/.brooklyn`
 * check your `iptables` or other firewall service, making sure that incoming connections on port 8443 is not blocked
 * check that the [linux kernel entropy]({{ site.path.guide }}/ops/troubleshooting/increase-entropy.html) is sufficient
diff --git a/guide/ops/security-guidelines.md b/guide/ops/security-guidelines.md
index b6e4460..3b86a23 100644
--- a/guide/ops/security-guidelines.md
+++ b/guide/ops/security-guidelines.md
@@ -72,7 +72,8 @@
 ### VM Users
 
 It is strongly discouraged to use the root user on VMs being created or managed by Brooklyn.
-
+SSH-ing on the VM should be done on rare cases such as initial Apache Brooklyn setup,
+Apache Brooklyn upgrade and other important maintenance occasions.
 
 ### SSH keys
 
diff --git a/guide/ops/troubleshooting/_connectivity.md b/guide/ops/troubleshooting/_connectivity.md
index a7117ac..09c3b3d 100644
--- a/guide/ops/troubleshooting/_connectivity.md
+++ b/guide/ops/troubleshooting/_connectivity.md
@@ -54,6 +54,8 @@
     bin/brooklyn launch
 ```
 
+If a system-level proxy server has been configured, you can instruct brooklyn to use the proxy server by passing `-Djava.net.useSystemProxies=true` to the JVM
+
 ## Service is listening
 
 ### Service responds
diff --git a/guide/ops/troubleshooting/deployment.md b/guide/ops/troubleshooting/deployment.md
index b84ac35..67d28c8 100644
--- a/guide/ops/troubleshooting/deployment.md
+++ b/guide/ops/troubleshooting/deployment.md
@@ -160,7 +160,7 @@
 
 If you receive an error message similar to the one below when provisioning a VM, it means that the wrong username is being used for ssh'ing to the machine. The "invalid packet" is because a response such as "Please login as the ubuntu user rather than root user." is being sent back.
 
-You can workaround the issue by explicitly setting the user that AMP should use to login to the VM  (typically the OS default user).
+You can workaround the issue by explicitly setting the user that Brooklyn should use to login to the VM  (typically the OS default user).
 
 {% highlight bash %}
 error acquiring SFTPClient() (out of retries - max 50)
@@ -181,3 +181,13 @@
     credential: <add>
     loginUser: centos
 {% endhighlight %}
+
+## SSLException close_notify Exception
+
+The following error, when deploying a blueprint, has been shown to be caused by issues with DNS provided by your ISP or
+traffic filtering such as child-safe type filtering:
+
+    Caused by: javax.net.ssl.SSLException: Received fatal alert: close_notify
+
+To resolve this try disabling traffic filtering and setting your DNS to a public server such as 8.8.8.8 to use google
+[DNS](https://www.wikiwand.com/en/Google_Public_DNS).  [See here](https://developers.google.com/speed/public-dns/docs/using) for details on how to configure this.
diff --git a/guide/ops/troubleshooting/slow-unresponsive.md b/guide/ops/troubleshooting/slow-unresponsive.md
index 2168859..90ea94f 100644
--- a/guide/ops/troubleshooting/slow-unresponsive.md
+++ b/guide/ops/troubleshooting/slow-unresponsive.md
@@ -20,7 +20,7 @@
 
 ## Machine Diagnostics
 
-The following commands will collect OS-level diagnostics about the machine, and about the AMP 
+The following commands will collect OS-level diagnostics about the machine, and about the Brooklyn 
 process. The commands below assume use of CentOS 6.x. Minor adjustments may be required for
 other platforms.
 
@@ -65,7 +65,7 @@
 #### Disk Space
 
 The command below will list the disk size for each partition, including the amount used and 
-available. If the AMP base directory, persistence directory or logging directory are close 
+available. If the Brooklyn base directory, persistence directory or logging directory are close 
 to 0% available, this can cause serious problems:
 
 {% highlight bash %}
diff --git a/guide/start/blueprints.md b/guide/start/blueprints.md
index 3ebc717..509f31d 100644
--- a/guide/start/blueprints.md
+++ b/guide/start/blueprints.md
@@ -63,7 +63,7 @@
 </div>
 <div id="impl-2" class="tab-pane fade">
 
-Apache Brooklyn uses [Apcahe jclouds](http://jclouds.apache.org/){:target="_blank"} to support a range of cloud locations. More information on the range of providers and configurations is available [here]({{ site.path.guide }}/ops/locations/#clouds){:target="_blank"}.
+Apache Brooklyn uses [Apcahe jclouds](http://jclouds.apache.org/){:target="_blank"} to support a range of cloud locations. More information on the range of providers and configurations is available [here]({{ site.path.guide }}/locations/#clouds){:target="_blank"}.
 
 As an example, here is a configuration for [Amazon Web Services (AWS)](http://www.aws.amazon.com){:target="_blank"}. Swap the identity and credential with your AWS account details, then replace the location in your "myapp.yaml" with this.
 
@@ -77,7 +77,7 @@
 </div>
 <div id="impl-3" class="tab-pane fade">
 
-The Bring Your Own Nodes (BYON) configuration allows Apache Brooklyn to make use of already available servers. These can be specified by a list of IP addresses with a user and password as shown below. More information including the full range of configuration options is available [here]({{ site.path.guide }}/ops/locations/#byon){:target="_blank"}. 
+The Bring Your Own Nodes (BYON) configuration allows Apache Brooklyn to make use of already available servers. These can be specified by a list of IP addresses with a user and password as shown below. More information including the full range of configuration options is available [here]({{ site.path.guide }}/locations/#byon){:target="_blank"}. 
 
 Replace the hosts, user and password in the example below with your own server details, then replace the location in your "myapp.yaml" with this.
 
@@ -98,7 +98,7 @@
 
 ---
 
-**Note**: For instructions on setting up a variety of locations or storing credentials/locations in a file on disk rather than in the blueprint, see __[Locations]({{ site.path.guide }}/ops/locations)__ in the Operations section of the User Guide.
+**Note**: For instructions on setting up a variety of locations or storing credentials/locations in a file on disk rather than in the blueprint, see __[Locations]({{ site.path.guide }}/locations)__ in the Operations section of the User Guide.
 
 ## Deploying the Application
 
diff --git a/guide/start/brooklyn.properties b/guide/start/brooklyn.properties
index 8714364..cecd292 100644
--- a/guide/start/brooklyn.properties
+++ b/guide/start/brooklyn.properties
@@ -97,7 +97,7 @@
 ############################ Deploying to Localhost #####################################
 
 ## Deploying to Localhost
-## see: info on locations at http://brooklyn.apache.org/v/latest/ops/locations/index.html#localhost
+## see: info on locations at http://brooklyn.apache.org/v/latest/locations/index.html#localhost
 ##
 ## Brooklyn defaults to using ~/.ssh/id_rsa, if it exists.
 # brooklyn.location.localhost.privateKeyFile = ~/.ssh/id_rsa
diff --git a/guide/start/running.md b/guide/start/running.md
index 9a421e4..ef0c2a9 100644
--- a/guide/start/running.md
+++ b/guide/start/running.md
@@ -38,7 +38,7 @@
  * [Oracle VirtualBox](https://www.virtualbox.org/wiki/Downloads){:target="_blank"}
  
 Then download the provided Apache Brooklyn vagrant configuration from {% if site.brooklyn-version contains 'SNAPSHOT' %}
-from [here](https://repository.apache.org/service/local/artifact/maven/redirect?r=snapshots&g=org.apache.brooklyn&a=brooklyn-vagrant&v={{site.brooklyn-version}}&c=dist&e=zip){:target="_blank"}.
+[here](https://repository.apache.org/service/local/artifact/maven/redirect?r=snapshots&g=org.apache.brooklyn&a=brooklyn-vagrant&v={{site.brooklyn-version}}&c=dist&e=zip){:target="_blank"}.
 {% else %}
 [here](https://www.apache.org/dyn/closer.lua?action=download&filename=brooklyn/apache-brooklyn-{{site.brooklyn-version}}/apache-brooklyn-{{site.brooklyn-version}}-vagrant.tar.gz){:target="_blank"}.
 {% endif %} This archive contains everything you need to create an environment for use with this guide, providing an Apache Brooklyn instance and some blank VMs.
@@ -140,7 +140,7 @@
  
 * [Security]({{ site.path.guide }}/ops/brooklyn_properties.html)
 * [Persistence]({{ site.path.guide }}/ops/persistence/)
-* [Cloud credentials]({{ site.path.guide }}/ops/locations/)
+* [Cloud credentials]({{ site.path.guide }}/locations/)
 
 
 ## Launch Apache Brooklyn
diff --git a/style/css/_basic.scss b/style/css/_basic.scss
index 34183cc..f550436 100644
--- a/style/css/_basic.scss
+++ b/style/css/_basic.scss
@@ -1,8 +1,8 @@
 /* BASIC STYLES
    ----------------------------------------------------------------------- */
 body {
-    margin: 0px; 
-    padding: 60px 0px 20px 0px; 
+    margin: 0;
+    padding-top: 50px;
     font-family: $fonts;
     font-weight: 300;
     font-size: 17px; 
@@ -68,3 +68,29 @@
     border: 1px solid #ccc;
     padding: 5px;
 }
+
+.navbar-brand .brand-apache {
+  position: relative;
+
+  & > img {
+    transform: rotate(-125deg);
+    height: 100px;
+    position: absolute;
+    top: -45px;
+    left: 35px;
+  }
+}
+.navbar-brand .brand-brooklyn > img {
+  padding-left: 125px;
+  margin-top: -4px;
+}
+
+abbr.glossarizer_replaced {
+  border-bottom: 1px dashed;
+  font-style: italic;
+  &:before {
+    font-family: FontAwesome;
+    content: "\f045";
+    padding-right: 5px;
+  }
+}
diff --git a/style/css/_feature_list.scss b/style/css/_feature_list.scss
index 32d3913..eb560b8 100644
--- a/style/css/_feature_list.scss
+++ b/style/css/_feature_list.scss
@@ -1,60 +1,62 @@
+.page .content {
+  .feature-list {
+    h3 {
+      border: 1px solid $white_dd;
+      margin-top: 48px;
+      padding: 20px 12px 12px 12px;
+      margin-bottom: 0;
+      background-color: $white_f5;
+      border-top-right-radius: 5px;
+      border-top-left-radius: 5px;
 
-#content_container .feature-list {
-  h3 {
+      // from bootstrap for panel
+      background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+      background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+      background-repeat: repeat-x;
+    }
+  }
+
+  .feature-item {
+    padding-bottom: 24px;
+    margin-bottom: 12px;
+    font-size: 90%;
+    p {
+      margin-top: 6px;
+      margin-bottom: 0;
+    }
+    p:first-child {
+      margin-top: 0px;
+    }
+    img {
+      max-width: 200px;
+      border: 1px solid $white_dd;
+      border-radius: 2px;
+    }
+    div.feature-title {
+      width: 27%;
+      float: left;
+      font-weight: 500;
+    }
+    div.feature-body {
+      width: 70%;
+      margin-left: 30%;
+    }
+    div.feature-image {
+      text-align: center;
+      margin-top: 8px;
+      margin-bottom: 8px;
+    }
+
+
     border: 1px solid $white_dd;
-    margin-top: 48px;
-    padding: 20px 12px 12px 12px;
+    margin-top: -1px;
     margin-bottom: 0;
-    background-color: $white_f5;
-    border-top-right-radius: 5px;
-    border-top-left-radius: 5px;
+    font-size: 90%;
+    padding: 12px;
+    padding-top: 8px;
+    background-color: $white_fa;
 
-// from bootstrap for panel
-background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
-background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
-background-repeat: repeat-x;    
   }
-}
 
-#content_container .feature-item {
-  padding-bottom: 24px;
-  margin-bottom: 12px;
-  font-size: 90%;
-  p {
-    margin-top: 6px;
-    margin-bottom: 0;
-  }
-  p:first-child {
-    margin-top: 0px;
-  }
-  img {
-    max-width: 200px;
-    border: 1px solid $white_dd;
-    border-radius: 2px;
-  }
-  div.feature-title {
-    width: 27%;
-    float: left;
-    font-weight: 500;
-  }
-  div.feature-body {
-    width: 70%;
-    margin-left: 30%;
-  }
-  div.feature-image {
-    text-align: center;
-    margin-top: 8px;
-    margin-bottom: 8px;
-  }
-  
-  
-  border: 1px solid $white_dd;
-  margin-top: -1px;
-  margin-bottom: 0;
-  font-size: 90%;
-  padding: 12px;
-  padding-top: 8px;
-  background-color: $white_fa;
-  
 }
diff --git a/style/css/_footer.scss b/style/css/_footer.scss
index 4034de4..1c9c004 100644
--- a/style/css/_footer.scss
+++ b/style/css/_footer.scss
@@ -3,34 +3,27 @@
 
 /* sticky footer */
 html {
-    position: relative;
-    min-height: 100%;
-}
+    main {
+        min-height: calc(100vh - 50px - 3.5em);
+    }
 
-@media (min-width: 1200px) {
-    .slightlyNarrowContainer {
-        width: 970px;
+    footer {
+        height: 3.5em;
+        border-top: 1px solid #eee;
+
+        p {
+            height: 2em;
+        }
+
+        .octicon-footer {
+            color: $footer_icon_gray;
+            font-size: 130%;
+            position: relative;
+            top: 2px;
+            padding-left: 6px;
+        }
+        a:hover .octicon-footer {
+            color: $brooklyn_green;
+        }
     }
 }
-
-div#footer {
-    position: absolute;
-    bottom: 0;
-    width: 100%;
-    padding-top: 1em;
-    padding-bottom: 1em;
-    background-color: $white_f5;
-    text-align: center;
-    font-size: 80%;
-}
-.octicon-footer {
-    color: $footer_icon_gray;
-    font-size: 130%;
-    position: relative;
-    top: 2px;
-    padding-left: 6px;
-}
-a:hover .octicon-footer {
-    color: $brooklyn_green;
-}
-
diff --git a/style/css/_landing.scss b/style/css/_landing.scss
index baeff39..98d22c0 100644
--- a/style/css/_landing.scss
+++ b/style/css/_landing.scss
@@ -2,25 +2,115 @@
 /* LANDING PAGE
    ----------------------------------------------------------------------- */
 
-.jumbotron {
-    margin-top: 18px;
-}
+.home {
+  .navbar-brand .brand-apache > img {
+    height: 200px;
+    top: -80px;
+  }
 
-#apachebrooklynbanner {
-    background-image: url("../img/apache-brooklyn-logo-817px-wide.png");
-    background-repeat: no-repeat;
-    background-position: center;
-    width: 817px;
-    height: 99px;
-    margin-bottom: 50px;
-}
+  .hero {
+    background-color: #ffffff;
+    background-image: url("data:image/svg+xml,%3Csvg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h12v6H0V0zm28 8h12v6H28V8zm14-8h12v6H42V0zm14 0h12v6H56V0zm0 8h12v6H56V8zM42 8h12v6H42V8zm0 16h12v6H42v-6zm14-8h12v6H56v-6zm14 0h12v6H70v-6zm0-16h12v6H70V0zM28 32h12v6H28v-6zM14 16h12v6H14v-6zM0 24h12v6H0v-6zm0 8h12v6H0v-6zm14 0h12v6H14v-6zm14 8h12v6H28v-6zm-14 0h12v6H14v-6zm28 0h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14 8h12v6H70v-6zm0 8h12v6H70v-6zM14 24h12v6H14v-6zm14-8h12v6H28v-6zM14 8h12v6H14V8zM0 8h12v6H0V8z' fill='%23eeeeee' fill-opacity='0.4' fill-rule='evenodd'/%3E%3C/svg%3E");
+    overflow: hidden;
+    padding: 100px 0 30px 0;
+  }
 
-div.feather.landing {
-    overflow: visible;
-    max-height: 10px;
-    img {
-        width: 200px;
-        margin-left: 40px;
-        margin-top: 0px;
+  .hero {
+    h1 {
+      font-family: "Arial Rounded MT Bold", $header_fonts;
+      font-size: 6em;
+
+      .text-apache {
+        color: #808285;
+      }
+      .text-brooklyn {
+        color: $brooklyn_green;
+      }
     }
-}
\ No newline at end of file
+    p {
+      margin-top: 3em;
+      margin-bottom: 3em;
+    }
+  }
+
+  .about, .social {
+    margin-top: 50px;
+    margin-bottom: 50px;
+
+    h3.use {
+      margin-top: 3em;
+      margin-bottom: 2em;
+    }
+  }
+
+  .get-started {
+    margin-bottom: 0;
+  }
+
+  .shell {
+    margin-top: 50px;
+    border-radius: 3px;
+    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
+    background: #fff;
+    overflow: hidden;
+
+    .shell-toolbar {
+      border-bottom: 1px solid #f1f1f1;
+      padding: 0 4px;
+      overflow: hidden;
+
+      i {
+        background: #f00;
+        width: 12px;
+        height: 12px;
+        display: inline-block;
+        border-radius: 100px;
+        float: left;
+        margin: 8px;
+        margin-right: 0;
+
+        &.red {
+          background: #ff5f57;
+        }
+        &.yellow {
+          background: #ffbd2e;
+        }
+        &.green {
+          background: #2ace42;
+        }
+      }
+      span {
+        text-align: center;
+        max-width: 150px;
+        margin: auto;
+        display: block;
+        font-family: Arial;
+        margin-top: 6px;
+        font-size: 12px;
+        color: #999;
+      }
+    }
+    .highlight {
+      background-color: transparent;
+    }
+    pre {
+      background-color: #000;
+      padding: 5px 10px;
+      color: #f1f1f1;
+      margin: 0;
+
+      code.language-bash {
+        color: inherit;
+        background: transparent;
+      }
+    }
+  }
+
+  .social a {
+    color: inherit;
+    transition: color 0.3s ease;
+    &:hover {
+      color: $brooklyn_green;
+    }
+  }
+}
diff --git a/style/css/_main_container.scss b/style/css/_main_container.scss
index 0ce2fcc..0da10d9 100644
--- a/style/css/_main_container.scss
+++ b/style/css/_main_container.scss
@@ -1,27 +1,28 @@
-
-#content_container {
+.page .content {
   padding-bottom: 48px;
   img {
     max-width: 100%;
   }
+
+  h1 {
+    max-width: 95%;
+    font-variant: normal;
+    margin-top: -16px;
+    padding-bottom: 6px;
+    margin-top: 64px;
+    margin-bottom: 24px;
+    border-bottom: 1px dotted $gray_aa;
+    font-weight: 300;
+    font-size: 36px;
+    text-transform: uppercase;
+  }
 }
 
 
+
 /* HEADER LINKS 
    ----------------------------------------------------------------------- */
 
-#content_container h1 {
-  max-width: 95%;
-  font-variant: normal;
-  margin-top: -16px;
-  padding-bottom: 6px;
-  margin-top: 64px;
-  margin-bottom: 24px;
-  border-bottom: 1px dotted $gray_aa;
-  font-weight: 300;
-  font-size: 36px;
-  text-transform: uppercase;
-}
 h4, h5, h6 {
   margin-top: 20px;
   margin-bottom: 8px;
@@ -34,30 +35,6 @@
   font-size: 16px;
 }
 
-/* headings get a tooltip showing the permalink URL, a la github jekyll */
-/* install subset of font-awesome */
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('#{$style_dir}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.eot');
-  src: url('#{$style_dir}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('#{$style_dir}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('#{$style_dir}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('#{$style_dir}/deps/font-awesome-4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-.fa {
-  display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-.fa-link:before {
-  content: "\f0c1";
-}
-.fa-play-circle-o:before {
-  content: "\f01d";
-}
 /*
  * This code is courtesy Ben Balter, modified by Parker Moore for jekyllrb.com
  * http://ben.balter.com/2014/03/13/pages-anchor-links/
diff --git a/style/css/_menu.scss b/style/css/_menu.scss
index b63386e..3c72de4 100644
--- a/style/css/_menu.scss
+++ b/style/css/_menu.scss
@@ -1,131 +1,25 @@
 /* WEBSITE MENUS
    ----------------------------------------------------------------------- */
 
-/* top menu bar */
-.navbar-brand {
-    margin-top: -4px;
-    margin-left: -30px !important;
+.navbar-brand > img {
+  margin-top: -4px;
 }
-
-@mixin icon($name) {
-  .icon-#{$name} {
-    width: 32px;
-    height: 32px;
-    background: url('#{$style_dir}/img/'+$name+'-256-black.png');
-    background-size: 32px 32px;
-  }
-  .icon-#{$name}:hover {
-    background: url('#{$style_dir}/img/'+$name+'-256-green.png');
-    background-size: 32px 32px;
-  }
-}
-
-.navbar {
-    @include icon('github');
-    @include icon('twitter');
-    @include icon('irc');
-}
-
-.navbar .tooltip .tooltip-inner {
-    position: relative;
-    right: 40%;
-    // include calc for those browsers which support it
-    right: calc(50% - 25px);
-    max-width: 300px;
-}
-
-/* special container with sidebar where if sidebar is squeezed
-   (under "responsiveness") the text keeps at least its "auto" size,
-   squashing the main container instead */
-.container-and-sidebars {
-    width: 100%;
-    @include flex();
-}
-.container-between-sidebars {
-    -webkit-box-flex: 1 100%;
-    -webkit-flex: 1 100%;
-    -webkit-flex-flex: 1 100%;
-    flex: 1 100%;
-    flex: 10 1 100%;
-    display: inline-block;
-    width: auto;
-    margin-left: auto;
-    margin-right: auto;
-}
-.container-sidebar {
-    -webkit-box-flex: 0 auto;
-    -webkit-flex: 0 auto;
-    -webkit-flex-flex: 0 auto;
-    flex: 0 auto;
-    flex: 0 0 auto;
-}
-.container-sidebar-right { 
-    @extend .container-sidebar; 
-    text-align: left;
-    padding-right: 10px;
-} 
-.container-sidebar-left {
-    @extend .container-sidebar;
-    text-align: right;
-    padding-left: 10px;
-}
-
-@media (min-width: 768px) {
-  .container-sidebar { min-width: calc((100% - 750px)/2); }
-}
-@media (min-width: 992px) {
-  .container-sidebar { min-width: calc((100% - 970px)/2); }
-}
-@media (min-width: 1200px) {
-  .container-sidebar { min-width: calc((100% - 1170px)/2); }
-}
-
-
-.navbar-feather {
-  padding-top: 12px; 
-  margin-right: -6px;
-}
-.navbar-sidebar-right-icons {
-    padding-top: 10px;
-    margin-left: -6px;
-    white-space: nowrap;
-    a {
-      display: inline-block;
-      width: 32px;
-      height: 32px;
-    }
-}
-.navbar-icon-shift { margin-right: -2px; }
-
-.navbar div.dropdown_section_header hr {
-  margin: 4px 12px;
-  border-color: $white_dd;
-}
-
-.navbar div.dropdown_new_section hr {
-  margin: 6px 0px;
-  border-color: $white_dd;
+.navbar a.navbar-btn {
+  display: inline-block;
+  margin-left: 15px;
+  margin-right: 15px;
+  padding: 6px 12px;
 }
 
 /* pop-up top-menu */
 .navbar-default .navbar-nav > li > a:hover,
 .navbar-default .navbar-nav > li > a:focus,
 .navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
+.navbar-default .navbar-nav > .active > a:focus,
+.navbar-default .navbar-nav .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
   background-color: $white_f5;
   color: $brooklyn_green;
-}
-.top-menu {
-  font-size: 14px;
-  font-weight: 400;
-  .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
-    background-color: $white_f5;
-    background-image: none;
-    color: $brooklyn_green;
-  }
-  ul.nav li.dropdown:hover > ul.dropdown-menu {
-    display: block;
-  }
+      background-image: none;
 }
 
 /* side menu */
diff --git a/style/css/catalog_items.css b/style/css/catalog_items.css
index d16e478..09c5910 100644
--- a/style/css/catalog_items.css
+++ b/style/css/catalog_items.css
@@ -18,8 +18,6 @@
 */
 /* landing page */
 body {
-  margin: 0px;
-  padding: 10px 0px 20px 0px;
   font-family: arial, helvetica, sans-serif;
   background-color: #ffffff;
   color: #393939;
@@ -128,7 +126,7 @@
 #container {
   width: 980px;
   padding: 0;
-  margin: 0 auto;
+  margin: 50px auto;
 }
 
 #identity {
diff --git a/style/css/singlePage.css b/style/css/singlePage.css
index 8c3a639..2f2c3f6 100644
--- a/style/css/singlePage.css
+++ b/style/css/singlePage.css
@@ -53,7 +53,7 @@
   font-size: 20pt;
   font-weight: bold;
 }
-#content_container h1{
+.page .content h1{
   display: inline-block;
   width: 90%;
 }
diff --git a/style/js/public.js b/style/js/public.js
new file mode 100644
index 0000000..9742489
--- /dev/null
+++ b/style/js/public.js
@@ -0,0 +1,167 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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($, ZeroClipboard) {
+    $('[data-toggle="tooltip"]').tooltip({
+        delay: {
+            show: 600,
+            hide: 100
+        }
+    });
+
+    $('.page .content').find('h1, h2, h3, h4 ,h5, h6').each(function() {
+        var id = $(this).attr('id');
+        if (id !== '') {
+            $(this).append($('<a>')
+                .attr('href', '#' + id)
+                .addClass('header-link')
+                .html('<i class="fa fa-link"></i>')
+            );
+        }
+    });
+
+    <!-- Copying and clipboard support -->
+
+    // first make the $% line starts not selectable
+    $('div.highlight')
+        .attr('oncopy', 'handleHideCopy(this)')
+        .each(function(index,target) {
+            if ($(target).find('code.bash')) {
+                // Mark bash prompts from the start of each line (i.e. '$' or '%' characters
+                // at the very start, or immediately following any newline) as not-selectable.
+                // Handle continuation lines where a leading '$' or '%' is *not* a prompt character.
+                // (If example wants to exclude output, it can manually use class="nocopy".)
+                target.innerHTML = target.innerHTML.replace(/(^\s*|[^\\]\n)(<.*>)?([$%]|&gt;) /g, '$1$2<span class="nocopy bash_prompt">$3 </span>');
+            }
+        }).prepend(
+            $('<div class="clipboard_container" title="Copy to Clipboard">'+
+                '<div class="fa clipboard_button">'+
+                '<div class="on-active"><div>Copied to Clipboard</div></div>'+
+                '</div></div>')
+        );
+
+    $('div.clipboard_container').each(function(index) {
+        var clipboard = new ZeroClipboard();
+        clipboard.clip( $(this).find(":first")[0], $(this)[0] );
+        var target0 = $(this).next();
+        var target = target0.clone();
+        target.find('.nocopy').remove();
+        var txt = target.text();
+        clipboard.on( 'dataRequested', function (client, args) {
+            handleHideCopy( target0.closest('div.highlight') );  //not necessary but nicer feedback
+            client.setText( txt );
+        });
+    });
+
+    // normal cmd-C (non-icon) copying
+    function handleHideCopy(el) {
+        // var origHtml = $(el).clone();
+        console.log("handling copy", el);
+        $(el).addClass('copying');
+        $(el).find('.nocopy').hide();
+        $(el).find('.clipboard_button').addClass('manual-clipboard-is-active');
+        setTimeout(function(){
+            $(el).removeClass('copying');
+            $(el).find('.clipboard_button').removeClass('manual-clipboard-is-active');
+            $(el).find('.nocopy').show();
+            // $(el).html(origHtml);
+        }, 600);
+    }
+
+    <!-- search -->
+    $(function() {
+        $('#simple_google')
+            .submit(function() {
+                $('input[name="q"]').val("site:" + document.location.hostname + " " + $('input[name="brooklyn-search"]').val());
+                return true;
+            });
+        $('input[name="brooklyn-search"]').focus(function() {
+            if ($(this).val() === $(this).attr('placeholder')) {
+                $(this).val('');
+            }
+        })
+            .blur(function() {
+                if ($(this).val() === '') {
+                    $(this).val($(this).attr('placeholder'));
+                }
+            })
+            .blur();
+    });
+
+
+    <!-- analytics -->
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-30530918-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+    <!-- page warning (for archive pages) -->
+    if (document.location.pathname.indexOf('guide/') > -1) {
+        if (document.location.pathname.replace(/^\/([^\/]*).*$/, '$1') === "v"){
+            var thisversion = document.location.pathname.split("/")[2],
+                msg = "";
+            if (thisversion != 'latest' && (!$.cookie('brooklyn_versions') ||
+                (($.inArray('ALL', $.cookie('brooklyn_versions').split(",")) === -1) &&
+                ($.inArray(thisversion, $.cookie('brooklyn_versions').split(",")) === -1))) ){
+                msg += "<div class='warning_banner_image'><img src='{{ site.path.style }}/img/warning.png'/></div>";
+                msg += "<p>You are browsing the archive site for version <strong>"+thisversion+"</strong>.</p>";
+                if (thisversion.indexOf("SNAPSHOT") >= 0) {
+                    msg += "<p>Note that SNAPSHOT versions have not been voted on and are not endorsed by the Apache Software Foundation.</p>";
+                    msg += "<p>Do you understand and accept the risks?</p>";
+                } else {
+                    msg += "<p>Is this deliberate?</p>";
+                }
+                msg += "<center><p class='warning_banner_buttons'>";
+                msg += "<a href = 'javascript:void(0);' onclick=\"set_user_version('"+thisversion+"');\">Yes, hide this warning</a>";
+                msg += "<a href = '{{ site.path.v }}/latest/'>No, take me to the latest version guide</a>";
+                msg += "<a href = '{{ site.path.website }}/meta/versions.html'>Show all versions</a>";
+                msg += "</p></center>"
+
+                $('#page_notes').html(msg).fadeIn('slow');
+            }
+        }
+    }
+    function get_user_versions() {
+        return $.cookie("brooklyn_versions") ? $.cookie("brooklyn_versions").split(",") : [];
+    }
+    function set_user_version(version) {
+        var version_cookie = get_user_versions();
+        version_cookie.push(version);
+        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+        $('#page_notes').fadeOut();
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    }
+    function set_user_versions_all() {
+        var version_cookie = get_user_versions();
+        version_cookie.push("ALL");
+        $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+        $('#page_notes').fadeOut();
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    }
+    function clear_user_versions() {
+        $.removeCookie('brooklyn_versions', { path: '/' });
+        $('#page_notes').fadeIn('slow');
+        event.preventDefault ? event.preventDefault() : event.returnValue = false;
+    }
+})(jQuery, ZeroClipboard);
\ No newline at end of file
diff --git a/website/developers/code/git-more.md b/website/developers/code/git-more.md
index 61b1b9c..6b5c814 100644
--- a/website/developers/code/git-more.md
+++ b/website/developers/code/git-more.md
@@ -1,9 +1,7 @@
 ---
 title: Get the Code
 layout: website-normal
-menu_proxy_for: index.md
 children:
-- { link: index.html, title: Basics }
 - { section: Set Up Forks }
 - { section: Multi-Project Changes }
 - { section: How We Use Branches, title: Branches }
diff --git a/website/developers/how-to-contribute.md b/website/developers/how-to-contribute.md
index 277b29d..30e6142 100644
--- a/website/developers/how-to-contribute.md
+++ b/website/developers/how-to-contribute.md
@@ -4,10 +4,11 @@
 children:
 - { section: Contributor License Agreement, title: CLA }
 - { section: Create an Issue in Jira, title: Jira }
-- { section: Contributing using GitHub, title: GitHub }
-- { section: Reviews }
-- { link: code/, title: Get the Code }
-- { link: links.html, title: Handy Places }
+- { section: Pull Request at GitHub, title: GitHub }
+- { section: The Review Process, title: Reviews }
+- { section: Contributing without using GitHub, title: Patches }
+- { link: /developers/code/index.html, title: Get the Code }
+- { link: /developers/links.html, title: Handy Places }
 ---
 
 Welcome and thank you for your interest in contributing to Apache Brooklyn! This guide will take you through the
diff --git a/website/download/verify.md b/website/download/verify.md
index 0b0b357..68cd9a7 100644
--- a/website/download/verify.md
+++ b/website/download/verify.md
@@ -18,82 +18,160 @@
 </tr>
 
 <tr>
+<td>apache-brooklyn-0.11.0-bin.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-bin.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.zip.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-karaf.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-karaf.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.zip.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-1.noarch.rpm</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-1.noarch.rpm.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-1.noarch.rpm.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-1.noarch.rpm.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-src.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-src.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.zip.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-linux.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-linux.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.zip.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-macosx.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-macosx.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.zip.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-windows.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.tar.gz.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.tar.gz.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.tar.gz.sha256">sha256</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-windows.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.zip.md5">md5</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.zip.sha1">sha1</a></td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.zip.sha256">sha256</a></td>
+</tr>
+<tr>
 <td>apache-brooklyn-0.10.0-bin.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-bin.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-karaf.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-karaf.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-1.noarch.rpm</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-src.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-src.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-linux.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-linux.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-macosx.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-macosx.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-windows.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-windows.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.md5">md5</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.sha1">sha1</a></td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.sha256">sha256</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.md5">md5</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.sha1">sha1</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.sha256">sha256</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.9.0-bin.tar.gz</td>
@@ -248,56 +326,108 @@
 </tr>
 
 <tr>
+<td>apache-brooklyn-0.11.0-bin.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-bin.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-bin.zip.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-karaf.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-karaf.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-karaf.zip.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-1.noarch.rpm</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-1.noarch.rpm.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-src.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-src.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-src.zip.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-linux.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-linux.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-linux.zip.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-macosx.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-macosx.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-macosx.zip.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-windows.tar.gz</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.tar.gz.asc">asc</a></td>
+</tr>
+<tr>
+<td>apache-brooklyn-0.11.0-client-cli-windows.zip</td>
+<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.11.0/apache-brooklyn-0.11.0-client-cli-windows.zip.asc">asc</a></td>
+</tr>
+<tr>
 <td>apache-brooklyn-0.10.0-bin.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-bin.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-bin.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-karaf.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-karaf.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-karaf.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-1.noarch.rpm</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-1.noarch.rpm.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-src.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-src.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-src.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-linux.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-linux.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-linux.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-macosx.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-macosx.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-macosx.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-windows.tar.gz</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.tar.gz.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.10.0-client-cli-windows.zip</td>
-<td><a href="https://www.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.asc">asc</a></td>
+<td><a href="https://archive.apache.org/dist/brooklyn/apache-brooklyn-0.10.0/apache-brooklyn-0.10.0-client-cli-windows.zip.asc">asc</a></td>
 </tr>
 <tr>
 <td>apache-brooklyn-0.9.0-bin.tar.gz</td>
diff --git a/website/index.md b/website/index.md
index e419488..2bc26c4 100644
--- a/website/index.md
+++ b/website/index.md
@@ -1,18 +1,16 @@
 ---
 layout: website-landing
 title: Home
-landing: true
 children:
 - learnmore/
-- { path: download/, menu: null }
 - { path: /guide/start/index.md, title_in_menu: Get Started, href_path: /guide/start/index.md}
 - path: documentation/
   menu:
   - { path: /guide/index.md, title_in_menu: "User Guide", 
       menu_customization: { dropdown_section_header: true } }
-  - { path: /guide/yaml/index.md, title_in_menu: YAML Blueprints, href_path: /guide/yaml/creating-yaml.md }
-  - { path: /guide/java/index.md, title_in_menu: Java Blueprints }
-  - { path: /guide/ops/index.md, title_in_menu: Operations,
+  - { path: /guide/blueprints/index.md, title_in_menu: Writing Blueprints, href_path: /guide/blueprints/creating-yaml.md }
+  - { path: /guide/locations/index.md, title_in_menu: Deploying Blueprints }
+  - { path: /guide/ops/index.md, title_in_menu: Reference Guide,
       menu_customization: { dropdown_section_header: true } }
   - { path: /guide/dev/index.md, title_in_menu: Developer Guide }
   - { path: meta/versions.md, title_in_menu: Versions,
@@ -20,15 +18,33 @@
   - { path: documentation/other-docs.md, title_in_menu: Other Resources }
 - community/
 - developers/
+- { path: download/, menu: null, type: button, menu_customization: {type: button} }
 ---
 
-<div class="jumbotron">
-<div id="apachebrooklynbanner">&nbsp;</div>
+<section class="text-center hero" markdown="1">
 
+# <span class="text-apache">apache</span> <span class="text-brooklyn">brooklyn</span>
+
+## Your applications, any clouds, any containers, anywhere.
+ 
+<a href="#get-started" class="btn btn-primary btn-lg">Get started</a>
+<a href="https://github.com/apache/brooklyn" class="btn btn-link btn-lg"><i class="fa fa-fw fa-github"></i> View code</a>
+
+</section>
+
+<section class="container about">
+<h3 class="text-center">Use Apache brooklyn for &hellip;</h3>
 <div class="row">
-<div class="col-md-4" markdown="1">
 
-### model
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-archive fa-stack-1x modeling"></i>
+</span>
+</p>
+
+#### Modeling
 
 *Blueprints* describe your application, stored as *text files* in *version control*
 
@@ -37,11 +53,17 @@
 <div class="text-muted" markdown="1">
 #### JBoss &bull; Cassandra &bull; QPid &bull; nginx &bull; [many more](learnmore/catalog/)
 </div>
-
 </div>
-<div class="col-md-4" markdown="1">
 
-### deploy
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-rocket fa-stack-1x deploying"></i>
+</span>
+</p>
+
+#### Deploying
 
 Components *configured &amp; integrated* across *multiple machines* automatically
 
@@ -50,11 +72,17 @@
 <div class="text-muted" markdown="1">
 #### Amazon EC2 &bull; CloudStack &bull; OpenStack &bull; SoftLayer &bull; many more
 </div>
-
 </div>
-<div class="col-md-4" markdown="1">
 
-### manage
+<div class="col-md-4" markdown="1">
+<p>
+<span class="fa-stack fa-2x">
+<i class="fa fa-circle-thin fa-stack-2x "></i>
+<i class="fa fa-cog fa-stack-1x managing"></i>
+</span>
+</p>
+
+#### Managing
 
 *Monitor* key application *metrics*; *scale* to meet demand; *restart* and *replace* failed components
 
@@ -65,13 +93,80 @@
 </div>
 
 </div>
-</div><!-- row -->
-
-<div style="text-align: center" markdown="1">
-
-<a class="btn btn-primary btn-lg" role="button" href="learnmore/">learn more</a>
-<a class="btn btn-primary btn-lg" role="button" href="{{ site.path.guide }}/start/running.html">get started</a>
-
 </div>
+</section>
 
-</div><!-- jumbotron -->
+
+<section class="jumbotron get-started" id="get-started">
+  <div class="container">
+    <div class="row">
+      <div class="col-md-12">
+        <h3 class="text-center">Get started</h3>
+        <div class="shell">
+          <div class="shell-toolbar">
+            <i class="red"></i>
+            <i class="yellow"></i>
+            <i class="green"></i>
+            <span>bash</span>
+          </div>
+{% highlight bash %}
+curl -SL --output apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz "https://www.apache.org/dyn/closer.lua?action=download&filename=brooklyn/apache-brooklyn-{{site.brooklyn-stable-version}}/apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz"
+tar xvf apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant.tar.gz
+cd apache-brooklyn-{{site.brooklyn-stable-version}}-vagrant
+vagrant up brooklyn
+{% endhighlight %}
+        </div>
+        <div class="text-muted row">
+          <div class="col-md-9">Paste the above at a Terminal prompt. It will download and start Brooklyn automatically.</div>
+          <div class="col-md-3 text-rigth">Looking for <a href="{{ site.path.guide }}/start/running.html">more installation options?</a></div>
+        </div>
+        <p>Congratulation! Next, let's <a href="{{ site.path.guide }}/start/blueprints.html">deploy a blueprint</a>.</p>
+      </div>
+    </div>
+  </div>
+</section>
+
+<section class="container text-center social">
+    <div class="row">
+        <div class="col-md-12">
+            <h3 class="text-center">Get in touch</h3>
+            <p>The community is available on the following channels in case you need anything</p>
+        </div>
+        <div class="col-sm-4">
+            <a href="http://webchat.freenode.net/?channels=brooklyncentral"
+               data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral">
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-slack fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">IRC</h4>
+            </a>
+        </div>
+        <div class="col-sm-4">
+            <a href="https://lists.apache.org/list.html?dev@brooklyn.apache.org"
+               data-toggle="tooltip" data-placement="bottom" title="Mailing list: dev@brooklyn.apache.org">
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-envelope-o fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">Mailing list</h4>
+            </a>
+        </div>
+        <div class="col-sm-4">
+            <a href="https://twitter.com/#!/search?q=brooklyncentral"
+               data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
+                <p>
+                    <span class="fa-stack fa-2x">
+                        <i class="fa fa-circle-thin fa-stack-2x"></i>
+                        <i class="fa fa-twitter fa-stack-1x"></i>
+                    </span>
+                </p>
+                <h4 id="deploy">Twitter</h4>
+            </a>
+        </div>
+    </div>
+</section>
diff --git a/website/learnmore/catalog/catalog-item.html b/website/learnmore/catalog/catalog-item.html
index a822289..6a655bc 100644
--- a/website/learnmore/catalog/catalog-item.html
+++ b/website/learnmore/catalog/catalog-item.html
@@ -26,20 +26,14 @@
   <title>Brooklyn Entity - Brooklyn Node</title>
   <meta name="fragment" content="!">
 
-  {% include base-head.html %}
+  {% include head.html %}
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
   <link rel="stylesheet" href="{{site.path.style}}/css/catalog_items.css" type="text/css" media="screen"/>
 </head>
 <body>
-{% include topmenu.html %}
+{% include header.html %}
 <div id="container">
-  <div id="header">
-    <div id="identity">
-      <a href="https://brooklyn.apache.org/" rel="home">Brooklyn</a>
-    </div>
-  </div>
-
   <div id="summary"></div>
 
   <ul class="nav nav-tabs">
diff --git a/website/learnmore/catalog/index.html b/website/learnmore/catalog/index.html
index 5f97fed..ceda969 100644
--- a/website/learnmore/catalog/index.html
+++ b/website/learnmore/catalog/index.html
@@ -1,5 +1,4 @@
 ---
-layout: base
 title: Catalog
 page_mask: usermanual-pdf-exclude
 page_mask: started-pdf-exclude
@@ -24,7 +23,7 @@
 -->
 <head>
 
-  {% include base-head.html %}
+  {% include head.html %}
   <script type="text/javascript" src="{{site.path.style}}/js/catalog/items.js"></script>
   <link rel="stylesheet" href="{{site.path.style}}/css/catalog_items.css" type="text/css" media="screen"/>
 </head>
@@ -32,16 +31,11 @@
 
 <body>
 
-{% include topmenu.html %}
+{% include header.html %}
 
 
 
 <div id="container">
-  <div id="header">
-    <div id="identity">
-      <a href="https://brooklyn.apache.org/" rel="home">Brooklyn</a>
-    </div>
-  </div>
 
   <ul class="nav nav-tabs">
     <li class="active"><a href="#entities" data-toggle="tab">Entities</a></li>