diff --git a/assets/Gruntfile.js b/assets/Gruntfile.js
index d93fdfe..e38453e 100644
--- a/assets/Gruntfile.js
+++ b/assets/Gruntfile.js
@@ -33,10 +33,18 @@
             options: {
                 //separator: ';',
             },
+            js_download: {
+                src: ['./bower_components/jquery-migrate/jquery-migrate.min.js', './src/javascript/downloads.js'],
+                dest: './public/javascript/downloads.min.js',
+            },
             css_thankyou: {
                 src: ['./public/stylesheets/thankyou.min.css', './bower_components/jquery-ui/base/minified/jquery-ui.min.css'],
                 dest: './public/stylesheets/thankyou.min.css',
             },
+            css_download: {
+                src: ['./public/stylesheets/downloads.min.css'],
+                dest: './public/stylesheets/downloads.min.css',
+            },
         },
         uglify: {
             options: {
@@ -46,8 +54,8 @@
             },
             js_files: {
                 files: {
-                    './public/javascript/ajax-checksum.min.js': './src/javascript/ajax-checksum.js',
-                    './public/javascript/downloads.min.js': './src/javascript/downloads.js',
+                    './public/javascript/mirror.min.js': './src/javascript/mirror.js',
+                    './public/javascript/downloads.min.js': './public/javascript/downloads.min.js',
                     './public/javascript/compare.min.js': './src/javascript/compare.js'
                 }
             },
@@ -55,12 +63,12 @@
         watch: {
             js_files: {
                 files: [
-                './src/javascript/ajax-checksum.js', './src/javascript/downloads.js', './bower_components/filtrify/js/filtrify.js', './src/javascript/compare.js'],
-                tasks: ['uglify:js_files']
+                './src/javascript/mirror.js', './src/javascript/downloads.js', './src/javascript/compare.js'],
+                tasks: ['concat:js_download', 'uglify:js_files']
             },
             less: {
                 files: ['./src/stylesheets/*.less', './src/stylesheets/**/*.less'],
-                tasks: ['less', 'concat:css_thankyou'],
+                tasks: ['less', 'concat:css_download', 'concat:css_thankyou'],
                 options: {
                     livereload: true
                     // reloads the browser
diff --git a/assets/public/images/installer-instructions-02-b.png b/assets/public/images/installer-instructions-02-b.png
new file mode 100644
index 0000000..7a61891
--- /dev/null
+++ b/assets/public/images/installer-instructions-02-b.png
Binary files differ
diff --git a/assets/public/javascript/ajax-checksum.min.js b/assets/public/javascript/ajax-checksum.min.js
deleted file mode 100644
index 511f786..0000000
--- a/assets/public/javascript/ajax-checksum.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(jQuery,window,document){jQuery(document).ready(function($){$(".btn-ajax-checksum").click(function(){var location=$(this).attr("href"),file=$(this).data("checksum-file"),type=$(this).data("checksum-type");return-1===$.inArray(type,["md5","sha512","sha1"])||void 0===file?!1:void $.ajax({url:"sums.php",data:{file:file,type:type},dataType:"text",type:"GET",beforeSend:function(){$(location+" p").html('<i class="fa fa-spinner fa-spin"></i>')},success:function(response){$(location+" p").text(response)},error:function(){$(location+" p").text("An error has occurred.")}})})})}(jQuery,window,document);
\ No newline at end of file
diff --git a/assets/public/javascript/downloads.min.js b/assets/public/javascript/downloads.min.js
index 0d12f7b..e3b5624 100644
--- a/assets/public/javascript/downloads.min.js
+++ b/assets/public/javascript/downloads.min.js
@@ -1 +1 @@
-!function(jQuery,window,document){jQuery(document).ready(function($){function getUrlVars(){{var vars={};window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){vars[key]=value})}return vars}$("#osSelect").change(function(){var release=getUrlVars().release,src="?osType="+$("option:selected",this).val();void 0!==release&&null!==release&&(src+="&release="+release),window.location=src})})}(jQuery,window,document);
\ No newline at end of file
+void 0===jQuery.migrateMute&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window),function(jQuery,window,document){jQuery(document).ready(function($){function getUrlVars(){var vars={};window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){vars[key]=value});return vars}$("#collapseEinstaller").on("show.bs.collapse",function(){$("html, body").animate({scrollTop:$("#collapseEinstaller1").offset().top},1e3)}),$("#collapseEinstaller").on("hidden.bs.collapse",function(){$("html, body").animate({scrollTop:$("body").offset().top},1e3)}),$("#osSelect").change(function(){var release=getUrlVars().release,src="?osType="+$("option:selected",this).val();void 0!==release&&null!==release&&(src+="&release="+release),window.location=src})})}(jQuery,window,document);
\ No newline at end of file
diff --git a/assets/public/javascript/mirror.min.js b/assets/public/javascript/mirror.min.js
new file mode 100644
index 0000000..59040c0
--- /dev/null
+++ b/assets/public/javascript/mirror.min.js
@@ -0,0 +1 @@
+!function(jQuery,window,document){jQuery(document).ready(function($){$(".btn-ajax-checksum").click(function(){var location=$(this).attr("href"),file=$(this).data("checksum-file"),type=$(this).data("checksum-type");return-1===$.inArray(type,["md5","sha512","sha1"])||void 0===file?!1:void $.ajax({url:"sums.php",data:{file:file,type:type},dataType:"text",type:"GET",beforeSend:function(){$(location+" p").html('<i class="fa fa-spinner fa-spin"></i>')},success:function(response){$(location+" p").text(response)},error:function(){$(location+" p").text("An error has occurred.")}})}),$(".mirror-continent").slice(1).hide(),$("#show_all_mirrors").click(function(e){return e.preventDefault(),$(".mirror-section-2").is(":visible")?($(".mirror-continent").slice(1).hide(),$("html, body").animate({scrollTop:$(".mirror-section-1").offset().top},500),$(this).text("Show all")):($(".mirror-continent").show(),$("html, body").animate({scrollTop:$(".mirror-section-2").offset().top},500,"swing",function(){$("#show_all_mirrors").text("Hide")})),FALSE})})}(jQuery,window,document);
\ No newline at end of file
diff --git a/assets/public/stylesheets/downloads.min.css b/assets/public/stylesheets/downloads.min.css
index 8cb6cce..0c508f3 100644
--- a/assets/public/stylesheets/downloads.min.css
+++ b/assets/public/stylesheets/downloads.min.css
@@ -1 +1 @@
-.download-link-1 a{padding-left:12px;border-left:1px solid #fff}.padding-left-0{padding-left:0}.icon{text-align:center}@media (min-width:768px){.icon{text-align:right}}@media (max-width:767px){.xs-sm-text-center{text-align:center}}.downloadLink-icon{text-align:center;padding-top:26px}@media (min-width:768px){.downloadLink-icon{text-align:right}}.downloadLink-content ul{margin-bottom:0}.downloadLink-content ul li{padding-bottom:0}@media (min-width:768px){.downloadLink-content{padding-left:0}.downloadLink-icon{pading-right:0}}#other-releases{margin-top:6px}.ad{margin-bottom:2em}.package-row{border-top:1px solid #ddd;padding:12px 6px}.package-row.zebra{background:#fafafa}@media (max-width:767px){.package-row{padding:24px 12px}}@media (max-width:767px){.package-row .icon{margin-bottom:20px}}.package-row .download-icon{font-size:3em;text-align:right;margin-top:-7px}.package-row.promo .download-icon{margin-top:7px}.package-row .download-link a{font-weight:bold}.package-row h2{margin:10px 0 0 0;font-weight:700;font-size:1.3em}.package-row h2 a{color:#111}.os-warning{padding:10px;background:#ffe5b4}.download-container default-download>header-row{margin-top:40px}.download-container .header-row{margin-top:0}.download-container .header-row h2{color:#2c2255;font-size:30px}.download-container .installer{background-image:url(../images/installer-bg.jpg);background-size:cover;text-align:center;margin-bottom:20px;color:#fff}.download-container .installer .title{padding:20px 20px 0}@media (min-width:768px){.download-container .installer .title .installer-logo{position:absolute;left:0;top:40px}}.download-container .installer .title h2{color:#fff;margin-bottom:20px}.download-container .installer .title .new{background-color:#fff;color:#000;padding:0 5px;border-radius:3px}@media (max-width:767px){.download-container .installer .title .new{position:relative;top:10px}}.download-container .installer .options{background-color:rgba(0,0,0,0.6);padding:20px 20px 0}.download-container .installer .orange{color:#f7941e}.download-container .installer a:not(.btn-primary){color:#f7941e;font-weight:normal}.download-container .default-download a:not(.btn-primary){color:#f7941e;font-weight:normal}.download-container .default-download .btn-primary{margin-bottom:10px}.download-container .default-download .title,.download-container .default-download .row-item{padding-bottom:10px;margin-bottom:10px}.download-container .default-download .package-row{border-top:1px solid #e6e6e6}.download-container .default-download .package-row .download-counts{background-color:#e6e6e6;padding:3px 5px;font-size:10px}.download-container .default-download .package-row .list-inline{margin-left:0}.download-container .default-download .package-row p{font-size:12px}.download-container .default-download .package-row .download .fa-download{font-size:20px}@media (max-width:767px){.download-container .default-download .package-row .download p{font-weight:bold}}.download-container .default-download .package-row.promo{position:relative}.download-container .default-download .package-row.promo .more-info{position:absolute;right:0;bottom:0;background-color:#f7941e;border-radius:5px 0 0 0;padding:0 5px}.download-container .default-download .package-row.promo .more-info a{color:#fff}.download-container .default-download .package-row.promo .more-info a:hover{text-decoration:none}.download-container .default-download h2,.download-container .default-download h3{margin-top:10px}.download-container .default-download h3{font-size:21px}.download-container .default-download h3 a{color:#2c2255}.download-container .default-download .form-choose-platform{margin-top:10px}.download-container .default-download .form-choose-platform label{font-weight:normal;font-size:12px;position:relative;top:3px;margin-right:10px}@media (min-width:768px){.download-container .default-download .form-choose-platform label{float:right}}@media (max-width:767px){.download-container .default-download .form-choose-platform label{float:left}}.download-container .default-download .form-choose-platform select{font-size:12px}@media (min-width:768px){.download-container .default-download .form-choose-platform select{float:right;margin-left:10px}}@media (max-width:767px){.download-container .default-download .form-choose-platform.text-right{text-align:left}}ul.list-inline .divider.white{border-left:1px solid #fff}ul.list-inline .divider.black{border-left:1px solid #000}ul.list-inline .divider{line-height:1.4;height:100%;height:15px;padding-right:0;padding-left:0;margin-left:4px;position:relative;top:2px}.no-border{border:none}@media (min-width:768px){.vertical-align-min-md{display:flex;align-items:center}}#filter-placeholder{margin-top:6px;text-transform:capitalize;background:#2c2f33;color:#a2a8ad;border-color:#414346;font-size:1.1em}#filter-placeholder ul.ft-menu>li.ft-field{margin-right:0}#filter-placeholder ul.ft-menu>li.ft-field>span.ft-label:before{content:"" !important;width:auto}
\ No newline at end of file
+.download-link-1 a{padding-left:12px;border-left:1px solid #fff}.padding-left-0{padding-left:0}.icon{text-align:center}@media (min-width:768px){.icon{text-align:right}}@media (max-width:767px){.xs-sm-text-center{text-align:center}}.downloadLink-icon{text-align:center;padding-top:26px}@media (min-width:768px){.downloadLink-icon{text-align:right}}.downloadLink-content ul{margin-bottom:0}.downloadLink-content ul li{padding-bottom:0}@media (min-width:768px){.downloadLink-content{padding-left:0}.downloadLink-icon{pading-right:0}}.ad{margin-bottom:2em}.package-row{border-top:1px solid #ddd;padding:12px 6px}.package-row.zebra{background:#fafafa}@media (max-width:767px){.package-row{padding:24px 12px}}@media (max-width:767px){.package-row .icon{margin-bottom:20px}}.package-row .download-icon{font-size:3em;text-align:right;margin-top:-7px}.package-row.promo .download-icon{margin-top:7px}.package-row .download-link a{font-weight:bold}.package-row h2{margin:10px 0 0 0;font-weight:700;font-size:1.3em}.package-row h2 a{color:#111}.os-warning{padding:10px;background:#ffe5b4}.download-container .options a,.download-container #download-packages a{color:#f7941e;font-weight:normal}.download-container .well{border-radius:0;border-top:0;margin-top:-20px}.download-container .default-download .btn-primary{margin-bottom:10px}.download-container .default-download .package-row{border-top:1px solid #e6e6e6}.download-container .default-download .package-row .download-counts{background-color:#e6e6e6;padding:3px 5px;font-size:10px}.download-container .default-download .package-row .list-inline{margin-left:0}.download-container .default-download .package-row p{font-size:12px}.download-container .default-download .package-row .download .fa-download{font-size:20px}@media (max-width:767px){.download-container .default-download .package-row .download p{font-weight:bold}}.download-container .default-download .package-row.promo{position:relative}.download-container .default-download .package-row.promo .more-info{position:absolute;right:0;bottom:0;background-color:#f7941e;border-radius:5px 0 0 0;padding:0 5px}.download-container .default-download .package-row.promo .more-info a{color:#fff}.download-container .default-download .package-row.promo .more-info a:hover{text-decoration:none}.download-container .default-download h2,.download-container .default-download h3{margin-top:10px}.download-container .default-download h3{font-size:21px}.download-container .default-download h3 a{color:#2c2255}.download-container .default-download .form-choose-platform{color:#fff}.download-container .default-download .form-choose-platform label{font-weight:normal;font-size:12px;position:relative;top:3px;margin-right:10px}@media (min-width:768px){.download-container .default-download .form-choose-platform label{float:right}}@media (max-width:767px){.download-container .default-download .form-choose-platform label{float:left}}.download-container .default-download .form-choose-platform select{font-size:12px}@media (min-width:768px){.download-container .default-download .form-choose-platform select{float:right;margin-left:10px}}@media (max-width:767px){.download-container .default-download .form-choose-platform.text-right{text-align:left}}ul.list-inline .divider.white{border-left:1px solid #fff}ul.list-inline .divider.black{border-left:1px solid #000}ul.list-inline .divider{line-height:1.4;height:100%;height:15px;padding-right:0;padding-left:0;margin-left:4px;position:relative;top:2px}.no-border{border:none}@media (min-width:768px){.vertical-align-min-md{display:flex;align-items:center}}#filter-placeholder{margin-top:6px;text-transform:capitalize;background:#2c2f33;color:#a2a8ad;border-color:#414346;font-size:1.1em}#filter-placeholder ul.ft-menu>li.ft-field{margin-right:0}#filter-placeholder ul.ft-menu>li.ft-field>span.ft-label:before{content:"" !important;width:auto}.installer{background-image:url(../images/installer-bg.jpg);background-size:cover;text-align:center;margin-bottom:20px;color:#fff}.installer .title{padding:20px 20px 0}.installer .title h2{color:#fff;margin-bottom:20px}.installer .title .label-new{background-color:#fff;color:#000;font-size:.6em;font-weight:300}@media (min-width:768px){.installer .title .label-new{margin-bottom:25px;margin-left:10px;padding:4px 5px;position:absolute;top:5px}}.installer .options{background-color:rgba(0,0,0,0.6);padding:10px 10px 0}.installer .orange{color:#f7941e}.header-row{padding:6px 6px 4px 6px}.header-row h2{font-size:1.5em}.header-row a{color:#fff;font-weight:normal}.header-row a.active{font-weight:bold;color:#2f2f31}.orange-download-link a{color:#f7941e}
\ No newline at end of file
diff --git a/assets/public/stylesheets/mirror.min.css b/assets/public/stylesheets/mirror.min.css
index c579bbb..ff4b22a 100644
--- a/assets/public/stylesheets/mirror.min.css
+++ b/assets/public/stylesheets/mirror.min.css
@@ -1 +1 @@
-#novaContent h2{font-size:24px;margin-bottom:20px;margin-top:40px}#novaContent h3{font-size:18px;font-weight:bold}#novaContent .well-installer{background-color:#fafafa;box-shadow:none}#novaContent .well-installer h3{margin-top:0}#novaContent .checksums-options a{background-color:#fff;border:1px solid #ccc;border-radius:3px;padding:0 10px;font-weight:normal;cursor:pointer;color:#2c2255}#novaContent .checksums-options a:hover{background-color:#211764;border-color:#211764;color:#fff;text-decoration:none}#novaContent .checksums-options li.active a{background-color:#211764;border-color:#211764;color:#fff;text-decoration:none}#novaContent .tab-content{padding:0;border:none;background:transparent}#novaContent .tab-content .tab-pane{padding:0}#novaContent .tab-content .well{border:none;box-shadow:none;background-color:#ededed}#novaContent .tab-content .well p{margin-bottom:0;word-wrap:break-word}#novaContent .download-faster .row-item{border-bottom:1px solid #e6e6e6;padding:20px 20px}#novaContent .download-faster .row-item h3{margin-top:0}#novaContent .choose-mirror h3{font-weight:normal}#novaContent .choose-mirror a{color:#211743}
\ No newline at end of file
+#novaContent .left-sidebar .choose-mirror h2{font-size:21.5px}#novaContent h2{font-size:24px;margin-bottom:20px;margin-top:40px}#novaContent h3{font-size:18px;font-weight:bold}#novaContent .well-installer{background-color:#fafafa;box-shadow:none}#novaContent .well-installer h3{margin-top:0}#novaContent .checksums-options a{background-color:#fff;border:1px solid #ccc;border-radius:3px;padding:0 10px;font-weight:normal;cursor:pointer;color:#2c2255}#novaContent .checksums-options a:hover{background-color:#211764;border-color:#211764;color:#fff;text-decoration:none}#novaContent .checksums-options li.active a{background-color:#211764;border-color:#211764;color:#fff;text-decoration:none}#novaContent .tab-content{padding:0;border:none;background:transparent}#novaContent .tab-content .tab-pane{padding:0}#novaContent .tab-content .well{border:none;box-shadow:none;background-color:#ededed}#novaContent .tab-content .well p{margin-bottom:0;word-wrap:break-word}#novaContent .download-faster .row-item{position:relative;border-bottom:1px solid #e6e6e6;padding:20px 20px}#novaContent .download-faster .row-item h3{margin-top:0}#novaContent .choose-mirror h3{font-weight:normal;color:#353535}.member-btn-download{position:absolute;right:0;bottom:30px}.member-btn-download .btn-sm{padding:3px 7px;font-size:9px}.download-or{color:#fff;font-weight:bold;padding:3px 4px;position:absolute;right:5px;top:40px}.download-or:after{border-right:10px solid transparent;border-top:10px solid #ca7200;bottom:-10px;content:" ";height:0;position:absolute;right:0;width:0}
\ No newline at end of file
diff --git a/assets/src/javascript/downloads.js b/assets/src/javascript/downloads.js
index 2351c83..2d969d7 100644
--- a/assets/src/javascript/downloads.js
+++ b/assets/src/javascript/downloads.js
@@ -11,14 +11,8 @@
  *    Christopher Guindon (Eclipse Foundation)- initial API and implementation
  */
 (function( jQuery, window, document ) {
-	
-  jQuery(document).ready(function($) {
-      
-    /*
-      $('#filter-placeholder').html('<div id="filter-container"></div>');
-      $.filtrify('download-packages', 'filter-container');
-    */
 
+  jQuery(document).ready(function($) {
     function getUrlVars() {
         var vars = {};
         var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
@@ -27,6 +21,14 @@
         return vars;
     }
 
+    $('#collapseEinstaller').on('show.bs.collapse', function () {
+      $("html, body").animate({ scrollTop: $('#collapseEinstaller1').offset().top }, 1000);
+    });
+
+    $('#collapseEinstaller').on('hidden.bs.collapse', function () {
+        $("html, body").animate({ scrollTop: $('body').offset().top }, 1000);
+      });
+
     $("#osSelect").change(function() {
       var release = getUrlVars()["release"];
       var src = '?osType=' + $("option:selected", this).val();
diff --git a/assets/src/javascript/ajax-checksum.js b/assets/src/javascript/mirror.js
similarity index 66%
rename from assets/src/javascript/ajax-checksum.js
rename to assets/src/javascript/mirror.js
index af94473..52c644f 100644
--- a/assets/src/javascript/ajax-checksum.js
+++ b/assets/src/javascript/mirror.js
@@ -35,5 +35,26 @@
         }
       });
     });
+
+    $('.mirror-continent').slice(1).hide();
+    $('#show_all_mirrors').click( function(e) { 
+      e.preventDefault();
+      if ($('.mirror-section-2').is(":visible")) {
+        $('.mirror-continent').slice(1).hide();
+        $('html, body').animate({
+            scrollTop: $(".mirror-section-1").offset().top
+        }, 500);
+        $(this).text('Show all');
+      }
+      else{
+        $('.mirror-continent').show();
+        $('html, body').animate({
+            scrollTop: $(".mirror-section-2").offset().top
+        }, 500, 'swing', function() {
+          $('#show_all_mirrors').text('Hide');
+        });
+      }
+      return FALSE;
+    });
   });
 })( jQuery, window, document );
\ No newline at end of file
diff --git a/assets/src/stylesheets/downloads.less b/assets/src/stylesheets/downloads.less
index d6334ea..ed8011b 100644
--- a/assets/src/stylesheets/downloads.less
+++ b/assets/src/stylesheets/downloads.less
@@ -53,9 +53,6 @@
   }
 }
 
-#other-releases{
-  margin-top:6px;
-}
 
 .ad{
   margin-bottom:2em;
@@ -70,9 +67,6 @@
   @media ( max-width : 767px) {
     padding:24px 12px;
   }
-  p{
-     //margin-bottom:0;
-  }
   .icon{
      @media ( max-width : 767px) {
        margin-bottom:20px;
@@ -110,72 +104,25 @@
 
 /* Download Page */
 .download-container{
-  default-download{
-    >header-row{
-      margin-top:40px;
-    }
-  }
-  .header-row{
-    margin-top:0px;
-    h2{
-      color:#2C2255;
-      font-size:30px;
-    }
-  }
-  .installer{
-    background-image:url(../images/installer-bg.jpg);
-    background-size:cover;
-    text-align:center;
-    margin-bottom:20px;
-    color:#fff;
-    .title{
-      padding:20px 20px 0;
-      .installer-logo{
-        @media (min-width: 768px) {
-          position:absolute;
-          left:0;
-          top:40px;
-        }
-      }
-      h2{
-        color:#fff;
-        margin-bottom:20px;
-      }
-      .new{
-        background-color:#fff;
-        color:#000;
-        padding:0 5px;
-        border-radius:3px;
-        @media (max-width: 767px) {
-          position:relative;
-          top:10px;
-        }
-      }
-    }
-    .options{
-      background-color:rgba(0,0,0,0.6);
-      padding:20px 20px 0;
-    }
-    .orange{
-      color:#F7941E;
-    }
+  .options, 
+  #download-packages{
     a{
-      color:#F7941E;
-      font-weight:normal;
+      color: #f7941e;
+      font-weight: normal;
     }
   }
+
+  .well{
+    border-radius:0;
+    border-top:0;
+    margin-top: -20px;
+  }
+  
   .default-download{
-    a:not(.btn-primary){
-      color:#F7941E;
-      font-weight:normal;
-    }
     .btn-primary{
       margin-bottom:10px;
     }
-    .title, .row-item{
-      padding-bottom:10px;
-      margin-bottom:10px;
-    }
+
     .package-row{
       border-top:1px solid #E6E6E6;
       .download-counts{
@@ -228,7 +175,7 @@
       }
     }
     .form-choose-platform{
-      margin-top:10px;
+      color:#fff;
       label{
         @media (min-width: 768px) {
           float:right;
@@ -307,3 +254,61 @@
     }
   }
 }
+
+/* Eclipse Installer */
+.installer{
+  background-image:url(../images/installer-bg.jpg);
+  background-size:cover;
+  text-align:center;
+  margin-bottom:20px;
+  color:#fff;
+  .title{
+    padding:20px 20px 0;
+
+    h2{
+      color:#fff;
+      margin-bottom:20px;
+    }
+    .label-new{
+      background-color: #fff;
+      color: #000;
+      font-size: 0.6em;
+      font-weight: 300;
+      @media (min-width: 768px) {
+        margin-bottom: 25px;
+        margin-left: 10px;
+        padding: 4px 5px;
+        position: absolute;
+        top: 5px;
+      }
+    }
+  }
+  .options{
+    background-color:rgba(0,0,0,0.6);
+    padding:10px 10px 0;
+  }
+  .orange{
+    color:#F7941E;
+  }
+}
+
+.header-row{
+  padding:6px 6px 4px 6px;
+  h2{
+    font-size:1.5em;
+  }
+  a{
+    color:#fff;
+    font-weight:normal;
+    &.active{
+      font-weight:bold;
+      color:#2f2f31;
+    }
+  }
+}
+
+.orange-download-link{
+  a{
+    color:#f7941e;
+  }
+}
\ No newline at end of file
diff --git a/assets/src/stylesheets/mirror.less b/assets/src/stylesheets/mirror.less
index 1965b42..96f0b89 100644
--- a/assets/src/stylesheets/mirror.less
+++ b/assets/src/stylesheets/mirror.less
@@ -5,6 +5,13 @@
 // -------------------------------------------------------
 
 #novaContent{
+  .left-sidebar{
+    .choose-mirror{
+      h2{
+        font-size:21.5px;
+      }
+    }
+  }
   h2{
     font-size:24px;
     margin-bottom:20px;
@@ -67,6 +74,7 @@
   }
   .download-faster{
     .row-item{
+      position:relative;
       border-bottom:1px solid #E6E6E6;
       padding:20px 20px;
       h3{
@@ -74,13 +82,41 @@
       }
     }
   }
+
   .choose-mirror{
     h3{
       font-weight:normal;
-    }
-    a{
-      color:#211743;
+      color:#353535;
     }
   }
 }
 
+.member-btn-download{
+  position:absolute;
+  right:0;
+  bottom:30px;
+  .btn-sm{
+    padding:3px 7px; 
+    font-size:9px;
+  }
+}
+
+.download-or{
+  color: #fff;
+  font-weight: bold;
+  padding: 3px 4px;
+  position: absolute;
+  right: 5px;
+  top: 40px;
+  
+  &:after{
+    border-right: 10px solid transparent;
+    border-top: 10px solid #ca7200;
+    bottom: -10px;
+    content: " ";
+    height: 0;
+    position: absolute;
+    right: 0;
+    width: 0;
+  }
+}
diff --git a/content/en_download.php b/content/en_download.php
index 6feaa02..77d3e0c 100644
--- a/content/en_download.php
+++ b/content/en_download.php
@@ -30,8 +30,8 @@
 $download_link = array(
   'url' => 'download.php?file=' . $_file,
   'text' => '',
-  'icon' => '<i class="fa fa-download"></i>',
-  'suffix' => '...or pick a local mirror site below '
+  'icon' => '',
+  'suffix' => ''
 );
 
 # Load up distros program if file selected is a Galileo/SDK package
@@ -151,123 +151,25 @@
   }
   return $friendsHTML;
 }
-
+$mirror_html = '';
+if (!empty($mirrors)) {
+ob_start();
 ?>
-
-<div id="midcolumn">
-  <h1><?php print $pageTitle; ?></h1>
-  <p>All downloads are provided under the terms and conditions of the <a href="/legal/epl/notice.php">Eclipse Foundation
-  Software User Agreement</a> unless otherwise specified.</p>
-  <div class="well well-installer margin-top-25">
-    <?php if (!$mirror_is_available) :?>
-      <p><strong>There are no mirrors for this file.</strong><?php print $commiter_link;?></p>
-    <?php endif;?>
-    <?php //@todo: Add human friendly name to a file (Eclipse Installer).
-    if ($packageName != "") :?>
-    <!--<h3>Eclipse Installer</h3>-->
-    <?php endif;?>
-    <p><strong>File:</strong> <?php print $strFileName;?></p>
-    <?php if ($md5sum != "" || $sha1sum != "" || $sha512sum != "") :?>
-    <div role="tabpanel">
-    <!-- Nav tabs -->
-      <ul role="tablist" class="checksums-options list-inline">
-        <li><strong>Checksums: </strong></li>
-        <?php if ($md5sum != "") :?>
-          <li role="presentation">
-            <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="md5" data-toggle="tab" role="tab" aria-controls="profile" href="#btn-ajax-checksum-md5">MD5</a>
-          </li>
-        <?php endif;?>
-        <?php if ($sha1sum != "") :?>
-        <li role="presentation">
-          <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="sha1" data-toggle="tab" role="tab" aria-controls="messages" href="#btn-ajax-checksum-sha1">SHA1</a>
-        </li>
-        <?php endif;?>
-        <?php if ($sha512sum != "") :?>
-        <li role="presentation">
-          <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="sha512" data-toggle="tab" role="tab" aria-controls="settings" href="#btn-ajax-checksum-sha512">SHA-512</a>
-        </li>
-         <?php endif;?>
-      </ul>
-      <!-- Tab panes -->
-      <div class="tab-content">
-        <?php if ($md5sum != "") :?>
-        <div id="btn-ajax-checksum-md5" class="tab-pane fade" role="tabpanel">
-          <div class="well">
-            <p></p>
-          </div>
-        </div>
-        <?php endif;?>
-        <?php if ($sha1sum != "") :?>
-        <div id="btn-ajax-checksum-sha1" class="tab-pane fade" role="tabpanel">
-          <div class="well">
-            <p></p>
-          </div>
-        </div>
-        <?php endif;?>
-        <?php if ($sha512sum != "") :?>
-        <div id="btn-ajax-checksum-sha512" class="tab-pane fade" role="tabpanel">
-          <div class="well">
-           <p></p>
-          </div>
-        </div>
-        <?php endif;?>
+  <div class="choose-mirror">
+    <h2>Choose a mirror close to you</h2>
+    <?php $x = 0; ?>
+    <?php foreach ($mirrors as $continent => $mir):?>
+      <?php $x++; ?>
+      <div class="mirror-continent mirror-section-<?php print $x;?>">
+        <h3><?php print $continent?></h3>
+        <ul class="list-unstyled">
+          <?php print _print_mirror_list($mir);?>
+       </ul>
       </div>
-    </div>
-    <?php endif;?>
-    <a href="<?php print $download_link['url'];?>" class="btn btn-warning margin-bottom-15"><i class="fa fa-download"></i> Download</a>
-    <p>Download from: <?php print $download_link['icon'];?> <a href="<?php print $download_link['url'];?>" class="orange"><?php print $download_link['text'];?></a> <?php print $download_link['suffix'];?></p>
+    <?php endforeach;?>
+    <a class="btn btn-sm btn-primary" id="show_all_mirrors" href="#show_all_mirrors">Show all</a>
   </div>
-<?php if (count($companies) > 0 || $friends_html != "") :?>
-  <div class="download-faster">
-    <h2>Get It Faster Here</h2>
-    <?php if (count($companies) > 0) :?>
-       <?php foreach($companies as $company) :?>
-         <?php $link = $company->linkTo . "@" . strtoupper($packageName . "-" . $osName);?>
-           <div class="row-item">
-             <div class="row">
-               <div class="col-sm-3">
-                 <a href="<?php print $link;?>">
-                   <img src="distros/images/<?php print $company->companyLogo;?>" align="left" />
-                 </a>
-               </div>
-               <div class="col-sm-15">
-                 <h3>
-                   <a href="<?php print $link;?>"><?php print $company->companyName;?></a>
-                </h3>
-                <p><?php print $company->companyBlurb;?></p>
-              </div>
-            </div>
-          </div>
-        <?php endforeach;?>
-      <?php else:?>
-        <?php print $friends_html; ?>
-    <?php endif;?>
-  </div>
-<?php endif;?>
-
-  <?php if (!empty($mirrors_internal)):?>
-    <div class="choose-mirror">
-      <h2>The following Internal Mirrors should be used for this file</h2>
-      <?php foreach ($mirrors_internal as $continent => $mir):?>
-        <h3><?php print $continent?></h3>
-        <ul class="list-unstyled">
-          <?php print _print_mirror_list($mir);?>
-        </ul>
-      <?php endforeach;?>
-    </div>
-  <?php endif;?>
-
-  <?php if (!empty($mirrors)):?>
-    <div class="choose-mirror">
-      <h2>Choose a mirror close to you</h2>
-      <?php foreach ($mirrors as $continent => $mir):?>
-        <h3><?php print $continent?></h3>
-        <ul class="list-unstyled">
-          <?php print _print_mirror_list($mir);?>
-        </ul>
-      <?php endforeach;?>
-    </div>
-  <?php endif;?>
+  <hr/>
 
   <?php if (count($companies) > 0) :?>
     <?php print $friends_html;?>
@@ -279,24 +181,135 @@
       <li>Canada - <a href="download.php?file=<?print $_file; ?>&mirror_id=1">Main eclipse.org downloads area</a></li>
     </ul>
   </div>
+  <?php
+  $mirror_html = ob_get_clean();
+}
+$members_html = "";
+ob_start();
+if (count($companies) > 0) {?>
+  <h2>Get It Faster from our Members</h2>
+  <?php if (count($companies) > 0) :?>
+     <?php foreach($companies as $company) :?>
+       <?php $link = $company->linkTo . "@" . strtoupper($packageName . "-" . $osName);?>
+       <div class="row-item">
+         <div class="row">
+           <div class="col-sm-3">
+             <a href="<?php print $link;?>">
+               <img src="distros/images/<?php print $company->companyLogo;?>" align="left" class="img-responsive"/>
+             </a>
+           </div>
+           <div class="col-sm-16">
+             <h3>
+               <a href="<?php print $link;?>"><?php print $company->companyName;?></a>
+            </h3>
+            <p><?php print $company->companyBlurb;?></p>
+          </div>
+          <div class="col-sm-5 member-btn-download">
+            <a href="<?php print $link;?>" class="btn btn-sm btn-warning">Download</a>
+          </div>
+        </div>
+      </div>
+    <?php endforeach;?>
+  <?php endif;?>
+<?php
+  }
+$members_html = ob_get_clean();
+?>
 
-  <div class="text-center padding-top-15 padding-bottom-10">
-    <script type="text/javascript"><!--
-    google_ad_client = "pub-6797025590085056";
-    /* 468x60, created 5/28/08 */
-    google_ad_slot = "9054930060";
-    google_ad_width = 468;
-    google_ad_height = 60;
-    //-->
-    </script>
-    <script type="text/javascript"
-    src="//pagead2.googlesyndication.com/pagead/show_ads.js">
-    </script>
+
+<div class="col-md-18">
+  <h1><?php print $pageTitle; ?></h1>
+  <p>All downloads are provided under the terms and conditions of the <a href="/legal/epl/notice.php">Eclipse Foundation
+  Software User Agreement</a> unless otherwise specified.</p>
+  <div class="row">
+    <div class="col-md-9 left-sidebar">
+      <div class="well well-installer margin-top-25">
+        <div class="download-or background-orange hidden-sm">
+          OR <i class="fa fa-chevron-right"></i>
+        </div>
+        <?php if (!$mirror_is_available) :?>
+          <p><strong>There are no mirrors for this file.</strong><?php print $commiter_link;?></p>
+        <?php endif;?>
+        <?php //@todo: Add human friendly name to a file (Eclipse Installer).
+        if ($packageName != "") :?>
+        <!--<h3>Eclipse Installer</h3>-->
+        <?php endif;?>
+        <p>Download from: <?php print $download_link['icon'];?> <a href="<?php print $download_link['url'];?>" class=""><?php print $download_link['text'];?></a><?php print $download_link['suffix'];?></p>
+        <p><strong>File:</strong> <?php print $strFileName;?></p>
+        <?php if ($md5sum != "" || $sha1sum != "" || $sha512sum != "") :?>
+          <div role="tabpanel">
+            <!-- Nav tabs -->
+            <ul role="tablist" class="checksums-options list-inline">
+              <li><strong>Checksums: </strong></li>
+              <?php if ($md5sum != "") :?>
+                <li role="presentation">
+                  <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="md5" data-toggle="tab" role="tab" aria-controls="profile" href="#btn-ajax-checksum-md5">MD5</a>
+                </li>
+              <?php endif;?>
+              <?php if ($sha1sum != "") :?>
+                <li role="presentation">
+                  <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="sha1" data-toggle="tab" role="tab" aria-controls="messages" href="#btn-ajax-checksum-sha1">SHA1</a>
+                </li>
+              <?php endif;?>
+              <?php if ($sha512sum != "") :?>
+                <li role="presentation">
+                  <a  class="btn-ajax-checksum" data-checksum-file="<?php print $_file;?>" data-checksum-type="sha512" data-toggle="tab" role="tab" aria-controls="settings" href="#btn-ajax-checksum-sha512">SHA-512</a>
+                </li>
+               <?php endif;?>
+             </ul>
+             <!-- Tab panes -->
+            <div class="tab-content">
+              <?php if ($md5sum != "") :?>
+                <div id="btn-ajax-checksum-md5" class="tab-pane fade" role="tabpanel">
+                  <div class="well">
+                  <p></p>
+                </div>
+               </div>
+              <?php endif;?>
+              <?php if ($sha1sum != "") :?>
+                <div id="btn-ajax-checksum-sha1" class="tab-pane fade" role="tabpanel">
+                  <div class="well">
+                  <p></p>
+                </div>
+              </div>
+            <?php endif;?>
+            <?php if ($sha512sum != "") :?>
+              <div id="btn-ajax-checksum-sha512" class="tab-pane fade" role="tabpanel">
+                <div class="well">
+                 <p></p>
+                </div>
+              </div>
+            <?php endif;?>
+          </div>
+        </div>
+      <?php endif;?>
+      <a href="<?php print $download_link['url'];?>" class="btn btn-warning margin-bottom-15"><i class="fa fa-download"></i> Download</a>
+      </div>
+      <?php if (!empty($members_html)) :?>
+        <?php print $mirror_html; ?>
+      <?php endif;?>
+    </div>
+    <div class="download-faster col-md-15">
+      <?php if (empty($members_html)) :?>
+        <?php print $mirror_html; ?>
+        <?php print $friends_html; ?>
+      <?php else:?>
+          <?php print $members_html;?>
+      <?php endif;?>
+      <?php if (!empty($mirrors_internal)) :?>
+        <div class="choose-mirror">
+          <h2>The following Internal Mirrors should be used for this file</h2>
+          <?php foreach ($mirrors_internal as $continent => $mir):?>
+            <h3><?php print $continent?></h3>
+            <ul class="list-unstyled">
+              <?php print _print_mirror_list($mir);?>
+            </ul>
+          <?php endforeach;?>
+        </div>
+      <?php endif;?>
+    </div>
   </div>
-
-  <hr class="clearer" />
 </div>
-
 <div id="rightcolumn">
   <div class="padding-top-10">
     <?php print chooseRandomPromo();?>
@@ -318,3 +331,14 @@
     </ul>
   </div>
 </div>
+<div class="text-center padding-top-15 padding-bottom-10 col-md-24 clearfix">
+  <script type="text/javascript"><!--
+  google_ad_client = "pub-6797025590085056";
+  /* 468x60, created 5/28/08 */
+  google_ad_slot = "9054930060";
+  google_ad_width = 468;
+  google_ad_height = 60;
+  //-->
+  </script>
+  <script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"></script>
+  </div>
\ No newline at end of file
diff --git a/download.php b/download.php
index 6ec471b..58d0597 100755
--- a/download.php
+++ b/download.php
@@ -558,7 +558,7 @@
         include("content/en_" . $App->getScriptName());
         $html = ob_get_clean();
         # Generate the web page
-        $App->AddExtraJSFooter('<script type="text/javascript" src="/downloads/assets/public/javascript/ajax-checksum.min.js"></script>');
+        $App->AddExtraJSFooter('<script type="text/javascript" src="/downloads/assets/public/javascript/mirror.min.js"></script>');
         $App->AddExtraHtmlHeader('<link href="/downloads/assets/public/stylesheets/mirror.min.css" media="screen" rel="stylesheet" type="text/css"/>');
        // Place your html content in a file called content/en_pagename.php
         $App->generatePage($theme, $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
diff --git a/downloads/controller.downloads.php b/downloads/controller.downloads.php
index 6b0f150..06954e3 100644
--- a/downloads/controller.downloads.php
+++ b/downloads/controller.downloads.php
@@ -42,6 +42,8 @@
       $this->buildDownload();
     }
     $html = '<div id="download-packages-container">';
+    $html .= '<div class="clearfix header-row background-charcoal"><div class="col-xs-16">
+    <h2>...or download an Eclipse Package</h2></div><div class="col-xs-8"></div></div>';
     $html .= '<div id="download-packages">';
     $html .= $this->download_rows;
     $html .= '</div>';
@@ -71,8 +73,11 @@
     return ob_get_clean();
   }
 
-  public function standardOutput() {
-    if(empty($this->download_standard)){
+  public function standardOutput($Installer = NULL) {
+    if (!is_null($Installer)) {
+      $this->download_standard = $Installer->output();
+    }
+    else if (empty($this->download_standard)) {
       $this->buildDownload();
     }
 
@@ -385,26 +390,26 @@
     }
 
     foreach ($this->packages as $value => $package) {
-      if ($count == 3 && (($random >= 1 && $random <= 16) || $random == 'jrebel')) {
+      if ($count == 2 && (($random >= 1 && $random <= 16) || $random == 'jrebel')) {
         $promo = $this->promotedDownload($this->ads['jrebel'], $zebra);
         $this->download_rows .= $promo;
         $zebra = !$zebra;
       }
-      elseif ($count == 3 && (($random >= 17 && $random <= 32) || $random == 'springsource')) {
+      elseif ($count == 2 && (($random >= 17 && $random <= 32) || $random == 'springsource')) {
         $promo = $this->promotedDownload($this->ads['springsource'], $zebra);
         $this->download_rows .= $promo;
           $zebra = !$zebra;
       }
-      elseif ($count == 3 && (($random >= 33 && $random <= 49) || $random == 'actuate_c')) {
+      elseif ($count == 2 && (($random >= 33 && $random <= 49) || $random == 'actuate_c')) {
         $promo = $this->promotedDownload($this->ads['actuate_c'], $zebra);
         $this->download_rows .= $promo;
         $zebra = !$zebra;
       }
-      elseif ($count == 3 && (($random >= 50 && $random <= 66) || $random == 'ibm_a')) {
+      elseif ($count == 2 && (($random >= 50 && $random <= 66) || $random == 'ibm_a')) {
         $promo = $this->promotedDownloadIBM($this->ads['ibm_a'], 'promo');
         $this->download_rows .= $promo;
       }
-      elseif ($count == 3 && (($random >= 67 && $random <= 83) || $random == 'ibm_b')) {
+      elseif ($count == 2 && (($random >= 67 && $random <= 83) || $random == 'ibm_b')) {
         $promo = $this->promotedDownloadIBM($this->ads['ibm_b'], 'promo');
         $this->download_rows .= $promo;
       }
diff --git a/downloads/controller.eclipseInstaller.php b/downloads/controller.eclipseInstaller.php
index b876f80..73faf26 100644
--- a/downloads/controller.eclipseInstaller.php
+++ b/downloads/controller.eclipseInstaller.php
@@ -55,7 +55,8 @@
    $safe_label = $this->_getSafeName($label);
     $this->platform[$safe_label] = array(
       'label' => $label,
-      'icon' => '<img src="/downloads/assets/public/images/icon-' . $safe_label . '.png"/>',
+      //'icon' => '<img src="/downloads/assets/public/images/icon-' . $safe_label . '.png"/>',
+      'icon' => '',
       'links' => array(),
     );
   }
diff --git a/downloads/views/view.downloads.php b/downloads/views/view.downloads.php
index 36a6cd1..b7b455b 100644
--- a/downloads/views/view.downloads.php
+++ b/downloads/views/view.downloads.php
@@ -17,34 +17,40 @@
 //Adding a 100% counter for the downloads page
 $impression = new CampaignImpression('DOWNLOADPAGE', $_SERVER['REQUEST_URI'], @gethostbyaddr($_SERVER['REMOTE_ADDR']));
 $impression->recordImpression();
+
+$current_release = strtolower($Downloads->getReleaseName());
+$current = strtolower(filter_var($App->getHTTPParameter('release', 'get'), FILTER_SANITIZE_STRING));
+$sub_menu = array();
+$sub_menu['alt']['class'] = '';
+$sub_menu['dev']['class'] = 'active';
+if ($current_release == $current) {
+  $sub_menu['alt']['class'] = 'active';
+  $sub_menu['dev']['class'] = '';
+}
+
 ?>
 <div class="default-download">
-<?php print $EclipseInstaller->output();?>
-<?php if($page == 'download'):?>
-<p class="text-center"><a class="btn btn-primary" href="/downloads/installer-instructions.php">6 Steps to Install Eclipse</a></p>
-<?php endif; ?>
+
 <?php if($page == 'download' && $Downloads->getOs() == "macosx") :?>
 <div class="alert alert-danger" role="alert">
-<strong>Mac OS X users please note:</strong> Eclipse requires Mac OS X 10.5 (Leopard) or greater.
-You might get a warning on some installations due to recent changes how Apple treats signatures.
-Please see <a href="https://discussions.apple.com/thread/6551715" target="_blank">this post</a> for a possible solution.
+  <strong>Mac OS X users please note:</strong> Eclipse requires Mac OS X 10.5 (Leopard) or greater.
+  You might get a warning on some installations due to recent changes how Apple treats signatures.
+  Please see <a href="https://discussions.apple.com/thread/6551715" target="_blank">this post</a> for a possible solution.
 </div>
 <?php endif;?>
 
-<div class="header-row">
+<div class="header-row background-orange">
   <div class="row">
     <?php if($page == 'developer') :?>
-      <div id="other-releases" class="col-sm-24 float-left">
-        <span id="texttwo"><a href="index-developer.php?<?php print $release['dev']['url'];?>"><?php print $release['dev']['caption'];?></a></span>
+      <div id="other-releases" class="col-sm-9 float-left">
+        <span id="texttwo"><a href="index-developer.php?<?php print $release['dev']['url'];?>" class="<?php print $sub_menu['dev']['class']?>"><?php print $release['dev']['caption'];?></a></span>
         <?php if (!empty($release['alt'])) :?>
-          | <span id="textthree"><a href="index-developer.php?release=<?php print $release['alt']['url'];?>"><?php print $release['alt']['caption'];?></a></span>
+          | <span id="textthree"><a href="index-developer.php?release=<?php print $release['alt']['url'];?>" class="<?php print $sub_menu['alt']['class']?>"><?php print $release['alt']['caption'];?></a></span>
         <?php endif;?>
       </div>
     <?php endif;?>
-    <div class="col-sm-12">
-      <h2>Package Solutions</h2>
-    </div>
-    <div class="col-sm-12 float-right text-right padding-top-15 form-choose-platform">
+
+    <div class="col-sm-15 float-right text-right form-choose-platform">
       <?php print $Downloads->getReleaseTitle();?>
     </div>
   </div>
@@ -67,6 +73,6 @@
        in Eclipse Kepler SR2</a>.
     </div>
   <?php endif;?>
-  <?php print $Downloads->standardOutput();?>
+  <?php print $Downloads->standardOutput($EclipseInstaller);?>
   <?php print $Downloads->downloadOutput(); ?>
 </div>
diff --git a/downloads/views/view.eclipse_installer.php b/downloads/views/view.eclipse_installer.php
index 17dd303..476f5d1 100644
--- a/downloads/views/view.eclipse_installer.php
+++ b/downloads/views/view.eclipse_installer.php
@@ -13,30 +13,41 @@
 if(basename(__FILE__) == basename($_SERVER['PHP_SELF']) || empty($platforms)){exit();}
 ?>
 <div class="installer">
-    <div class="title">
-      <div class="row">
-        <div class="col-sm-6">
-          <img class="installer-logo"  src="/downloads/assets/public/images/logo-installer.png"/>
-        </div>
-        <div class="col-sm-18">
-          <h2>Eclipse <span class="orange">Installer</span> <span class="new">NEW</span></h2>
-          <p>The easiest way to install and update your Eclipse Development Environment.</p>
-          <p><a href="/downloads/installer-instructions.php">Find out more <i class="fa fa-chevron-right">&nbsp;</i></a></p>
-        </div>
+  <div class="title">
+    <div class="row">
+      <div class="col-sm-6">
+        <img class="installer-logo" width="150" src="/downloads/assets/public/images/logo-installer.png" />
       </div>
-    </div><!-- end of title -->
-    <div class="options">
-      <div class="col-sm-offset-5 col-sm-offset-6 clearfix">
-       <?php foreach ($platforms as $platform):?>
-         <div class="col-sm-8">
-           <div class="padding-bottom-5"><?php print $platform['icon'];?></div>
-            <p><?php print $platform['label'];?></p>
-            <ul class="list-inline">
-              <li><i class="fa fa-download white"></i></li>
-              <?php print implode('', $platform['links']);?>
-            </ul>
-          </div>
-        <?php endforeach;?>
+      <div class="col-sm-18">
+        <h2>Try the Eclipse <span class="orange">Installer</span> <span class="label label-default label-new">NEW</span></h2>
+        <p>The easiest way to install and update your Eclipse Development Environment.</p>
+        <p class="padding-top-5">
+          <a class="btn btn-warning btn-sm" data-target="#collapseEinstaller" class="solstice-collapse orange" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="collapseEinstaller">
+          Find out more <i class="fa fa-chevron-down"></i>
+          </a>
+        </p>
       </div>
-    </div><!-- end of .options -->
-  </div> <!-- end of .installer -->
\ No newline at end of file
+    </div>
+  </div><!-- end of title -->
+  <div class="options">
+    <div class="col-sm-offset-5 col-sm-offset-6 clearfix">
+     <?php foreach ($platforms as $platform):?>
+       <div class="col-sm-8">
+         <div class="padding-bottom-5"></div>
+          <p><?php print $platform['icon'];?> <?php print $platform['label'];?></p>
+          <ul class="list-inline">
+            <li><i class="fa fa-download white"></i></li>
+            <?php print implode('', $platform['links']);?>
+          </ul>
+        </div>
+      <?php endforeach;?>
+    </div>
+  </div><!-- end of .options -->
+</div> <!-- end of .installer -->
+<div id="collapseEinstaller1">
+<div class="collapse<?php if (isset($_GET['show_instructions'])) { print ' in';}?>" id="collapseEinstaller">
+  <div class="well">
+  <?php include('view.installer_instructions.php');?>
+  </div>
+</div>
+</div>
\ No newline at end of file
diff --git a/downloads/views/view.installer_instructions.php b/downloads/views/view.installer_instructions.php
index 9fd5bba..d87a87a 100644
--- a/downloads/views/view.installer_instructions.php
+++ b/downloads/views/view.installer_instructions.php
@@ -10,43 +10,68 @@
  *    Eric Poirier (Eclipse Foundation) - Initial implementation
  *    Christopher Guindon (Eclipse Foundation)
  *******************************************************************************/
- ?>
-<h1><?php echo $pageTitle; ?></h1>
+?>
+<p class="float-right padding-top-25">
+  <a class="btn btn-warning btn-sm" data-target="#collapseEinstaller" class="solstice-collapse orange" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="collapseEinstaller">
+    <i class="fa fa-times"></i> Hide
+  </a>
+</p>
+<h1>5 Steps to Install Eclipse</h1>
+
 <p class="lead">For the Mars release, we are introducing a new Eclipse installer.
-This is a new more efficient way to install Eclipse. It is a proper
+This is a new and more efficient way to install Eclipse. It is a proper
 installer, so no more zip files, with a self extracting download that
 will lead you through the installation experience.  For those not into
 installers, we still have the packages and zip files available on our download pages.</p>
 <hr>
-<h2>1. Download Eclipse Installer</h2>
-<p>Download Eclipse Installer from <a href="/downloads">http://www.eclipse.org/downloads</a></p>
+<h2>1. Download the Eclipse Installer</h2>
+<?php if (!empty($platforms)) :?>
+  <div class="row orange-download-link">
+  <?php foreach ($platforms as $platform):?>
+    <div class="col-sm-8 padding-top-10 text-center">
+      <p><?php print $platform['label'];?></p>
+      <ul class="list-inline">
+        <li><i class="fa fa-download white"></i></li>
+        <?php print implode('', $platform['links']);?>
+      </ul>
+    </div>
+  <?php endforeach;?>
+  </div>
+<?php else:?>
+  <p>Download Eclipse Installer from <a href="/downloads">http://www.eclipse.org/downloads</a></p>
+<?php endif;?>
+<!--
 <img class="img-responsive" src="assets/public/images/installer-instructions-01.png" alt="Screenshot of Eclipse Installer's web page.">
-<hr>
-<h2>2. Select the mirror for download</h2>
+ -->
 <p>Eclipse is hosted on many mirrors around the world. Please select
 the one closest to you and start to download the Installer</p>
 <hr>
-<h2>3. Start the Eclipse Installer Executable</h2>
-<p>For Windows users, after the Eclipse Installer executable has finished downloading it should
+<h2>2. Start the Eclipse Installer executable</h2>
+<p>For Windows users, after the Eclipse Installer executable has finished downloading it should be
 available in your download directory.  Start the Eclipse Installer executable.
 You may get a security warning to run this file. If the Eclipse Foundation is
 the Publisher, you are good to select Run.</p>
 <p>For Mac and Linux users, you will still need to unzip the download to create the Installer.
 Start the Installer once it is available.</p>
-<img class="img-responsive" src="assets/public/images/installer-instructions-02.png" alt="Screenshot of the Eclipse Installer executable.">
+<img class="img-responsive" src="assets/public/images/installer-instructions-02-b.png" alt="Screenshot of the Eclipse Installer executable.">
 <hr>
-<h2>4. Select package to install from the Eclipse Installer</h2>
+<h2>3. Select the package to install</h2>
 <p>The new Eclipse Installer shows the packages available to Eclipse users.
 You can search for the package you want to install or scroll through the list.</p>
 <p>Select and click on the package you want to install.</p>
 <img class="img-responsive" src="assets/public/images/installer-instructions-03.png" alt="Screenshot of the Eclipse packages.">
 <hr>
-<h2>5. Select Installation Folder</h2>
+<h2>4. Select your installation folder</h2>
 <p>Specify the folder where you want Eclipse to be installed. The default folder will be in your User directory.</p>
-<p>Select ‘Install’ button to begin the installation.</p>
+<p>Select the ‘Install’ button to begin the installation.</p>
 <img class="img-responsive" src="assets/public/images/installer-instructions-04.png" alt="Screenshot of the Install window.">
 <hr>
-<h2>6. Launch Eclipse</h2>
-<p>Once the installation is complete you can now Launch Eclipse.
-The Eclipse Installer has done it work. Happy coding.</p>
-<img class="img-responsive" src="assets/public/images/installer-instructions-05.png" alt="Screenshot of the Launch window.">
\ No newline at end of file
+<h2>5. Launch Eclipse</h2>
+<p>Once the installation is complete you can now launch Eclipse.
+The Eclipse Installer has done it's work. Happy coding.</p>
+<img class="img-responsive" src="assets/public/images/installer-instructions-05.png" alt="Screenshot of the Launch window.">
+<p class="text-right padding-top-25">
+  <a class="btn btn-warning btn-sm" data-target="#collapseEinstaller" class="solstice-collapse orange" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="collapseEinstaller">
+    <i class="fa fa-times"></i> Hide
+  </a>
+</p>
\ No newline at end of file
diff --git a/installer-instructions.php b/installer-instructions.php
index de5f446..214155d 100644
--- a/installer-instructions.php
+++ b/installer-instructions.php
@@ -11,30 +11,5 @@
  *    Christopher Guindon (Eclipse Foundation)
  *******************************************************************************/
 
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
-
-$App 	= new App();
-$Nav	= new Nav();
-$Menu 	= new Menu();
-include("_projectCommon.php");
-
-# Begin: page-specific settings.  Change these.
-$pageTitle = "6 Steps to Install Eclipse";
-$pageKeywords	= "eclipse,download,downloads,mirror,project,plug-ins,plugins,java,ide,swt,refactoring,free java ide,tools,platform,open source,development environment,development,ide";
-$pageAuthor		= "Eclipse Foundation, Inc.";
-
-$page = 'installer_instructions';
-
-$App->Promotion = TRUE;
-require_once($_SERVER['DOCUMENT_ROOT'] . "/downloads/downloads/view.tpl.php");
-
-// Custom theme variables
-$variables = array();
-$variables['main_container_classes'] = 'container-full';
-$App->setThemeVariables($variables);
-
-# Generate the web page
-$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/downloads/assets/public/stylesheets/downloads.min.css" media="screen" />');
-$App->generatePage("solstice", $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
+header("Location: /downloads/index.php?show_instructions=TRUE", 301);
+die();
\ No newline at end of file
