diff --git a/addons.html b/addons.html
index 84f7791..a142143 100644
--- a/addons.html
+++ b/addons.html
@@ -169,13 +169,24 @@
 					document.getElementById(divId).innerHTML += "<div><h1>" + title + "</h1>" + desc + "</div>";
 				  }
 
-				  function addAddonSection(data, addon, divId) {
-						let keys = Object.keys(addon.download);
-						 let fragment = addon.fragment != undefined ? addon.fragment : addon.key;
-						 let links = keys.map(function(k) {
-							let icon = data.lang[k].icon ? '<i class="pl-2 {0}" aria-hidden="true"></i>'.format(data.lang[k].icon) : "";
-							return '<a href="{0}" target="{1}" onClick="ga("send", "event", "Capella", "{2}", "{3}");">{4}{5}</a>'.format(addon.download[k], data.lang[k].target, data.versionBranch, addon.key, data.lang[k].text, icon);
+				  function createKeysLinks(data, addon, download, icons) {
+							let keys = Object.keys(download).filter(x => x != "notes");
+							let links = keys.map(function(k) {
+							let icon = icons == undefined && data.lang[k].icon ? '<i class="pl-2 {0}" aria-hidden="true"></i>'.format(data.lang[k].icon) : "";
+							if (data.lang[k].target == "_expand") {
+								return '<a data-toggle="collapse" data-target="#collapse-notes-{3}">{4}{5}</a>'.format(download[k], data.lang[k].target, data.versionBranch, addon.key, data.lang[k].text, icon);
+							} else if (Array.isArray(download[k])) {
+								let value = download[k];
+								return data.lang[k].text + "s"+ icon + " (" + value.map(x => '<a href="{0}" onClick="ga(\'send\', \'event\', \'Capella\', \'{1}\', \'{2}\');">{3}</a>'.format(x.url, data.versionBranch, addon.key, x.name)).join(" + ")+")";
+							}
+							return '<a href="{0}" {1} onClick="ga(\'send\', \'event\', \'Capella\', \'{2}\', \'{3}\');">{4}{5}</a>'.format(download[k], data.lang[k].target == undefined ? "" : 'target="'+data.lang[k].target+'}"', data.versionBranch, addon.key, data.lang[k].text, icon);
 						 }).join(" - ");
+						 return links;
+				  }
+
+				  function addAddonSection(data, addon, divId) {
+					let keys = Object.keys(addon.download);
+					let links = createKeysLinks(data, addon, addon.download);
 						 let header = [];
 						 if (addon.contact) {
 							header.push("Contact: "+addon.contact);
@@ -194,12 +205,18 @@
 
 						 let compatible = addon.compatibleWithCurrentVersion === false ? '<button role="button" class="fa fa-exclamation-triangle btn-link btn-xs alert-compatibility" data-toggle="tooltip" data-placement="bottom" title="{0}" ></button>'.format(data.lang.compatibility.text) : "";
 						 let addonName = addon.isViewpoint ? addon.name + " Viewpoint" : addon.name;
-
+						 let fragment = addon.fragment != undefined ? addon.fragment : addon.key;
+						 
 						 let dropdown = '<div class="accordion-heading"><a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion2" href="#{0}"><h3>{1}</h3><span class="fa fa-caret-down txt_yellow">&nbsp;</span><span class="descr txt_lightest_grey">{2}</span></a></div>'.format(fragment, addonName, header);
 
-						 let content = '<div id="{0}" class="accordion-body collapse" style="height: 0px;"><div class="accordion-inner">{1}<p>{2}{3}</p></div></div>'.format(fragment, addon.description, compatible, links);
-						 let result = '<div class="accordion-group">{0}{1}</div>'.format(dropdown, content);
+						 let sections = keys.filter(k => data.lang[k].target == "_expand").map(function(k) {
+							let div = '<div class="collapse notes-section" id="collapse-notes-'+addon.key+'"><h3>'+data.lang[k].text+'</h3>'+createKeysLinks(data, addon, addon.download[k])+addon.download[k]["notes"]+'</div>';
+							return div;
+						 }).join("");
 
+						 let content = '<div id="{0}" class="accordion-body collapse" style="height: 0px;"><div class="accordion-inner">{1}<p>{2}{3}</p>{4}</div></div>'.format(fragment, addon.description, compatible, links, sections);
+						 let result = '<div class="accordion-group">{0}{1}</div>'.format(dropdown, content);
+						 
 						 document.getElementById(divId).innerHTML += result;
 
 					  $('[data-toggle="popover"]').popover( { html: true, container: 'body' });
diff --git a/css/main.css b/css/main.css
index 3cdfc6e..fd710c0 100644
--- a/css/main.css
+++ b/css/main.css
@@ -1029,4 +1029,29 @@
 	border: 1px solid #292253;
 	background-color: #292253;
 	color:#FBBF52;
+}
+
+
+.notes-section {
+  text-align: left;
+  padding: 12px;
+	border: 1px solid #CCCCCC;
+  border-radius: 6px;
+	background-color: #FFFFFF;
+}
+.notes-section p, .notes-section a, .notes-section li {
+  font-size: 12px;
+}
+.notes-section h3 {
+  font-size: 16px;
+}
+.notes-section ul {
+  padding-left: 14px;
+}
+.notes-section h4 {
+  font-size: 14px;
+}
+.notes-section h1, .notes-section h2, .notes-section h3, .notes-section h4, .notes-section h5, .notes-section h6 {
+  margin-top: 6px !important;
+  color: #292253;
 }
\ No newline at end of file
diff --git a/download.html b/download.html
index 696a568..a91446c 100644
--- a/download.html
+++ b/download.html
@@ -268,6 +268,21 @@
                         document.getElementById(platformLinksId).innerHTML += lis;
                     }
 
+                    function createKeysLinks(data, addon, download, icons) {
+							let keys = Object.keys(download).filter(x => x != "notes");
+							let links = keys.map(function(k) {
+							let icon = icons == undefined && data.lang[k].icon ? '<i class="pl-2 {0}" aria-hidden="true"></i>'.format(data.lang[k].icon) : "";
+							if (data.lang[k].target == "_expand") {
+								return '<a data-toggle="collapse" data-target="#collapse-notes-{3}">{4}{5}</a>'.format(download[k], data.lang[k].target, data.versionBranch, addon.key, data.lang[k].text, icon);
+							} else if (Array.isArray(download[k])) {
+								let value = download[k];
+								return data.lang[k].text + "s"+ icon + " (" + value.map(x => '<a href="{0}" onClick="ga(\'send\', \'event\', \'Capella\', \'{1}\', \'{2}\');">{3}</a>'.format(x.url, data.versionBranch, addon.key, x.name)).join(" + ")+")";
+							}
+							return '<a href="{0}" {1} onClick="ga(\'send\', \'event\', \'Capella\', \'{2}\', \'{3}\');">{4}{5}</a>'.format(download[k], data.lang[k].target == undefined ? "" : 'target="'+data.lang[k].target+'}"', data.versionBranch, addon.key, data.lang[k].text, icon);
+						 }).join(" - ");
+						 return links;
+                    }
+                  
                     function updateAddonLinks(data) {
                         let addons = "";
                         let sample = "";
@@ -275,12 +290,8 @@
                         for (i in filteredAddons) {
                             let addon = filteredAddons[i];
                             let keys = Object.keys(addon.download);
-                            let links = keys.map(function(k) {
-                                let icon = ""; //data.lang[k].icon ? `<i class="pl-2 ${data.lang[k].icon}" aria-hidden="true"></i>` : "";
-                                return '<a href="{0}" onClick="ga(\'send\', \'event\', \'Capella\', \'{1}\', \'{2}\');">{3}{4}</a>'.format(addon.download[k], data.versionBranch, addon.key, data.lang[k].text, icon);
-                            }).join(" - ");
-                            
-							let header = [];
+                            let links = createKeysLinks(data, addon, addon.download, false);
+					        let header = [];
 							if (addon.contact) {
 								header.push('Contact: '+addon.contact);
 							}
@@ -294,7 +305,13 @@
 							let information2 = '<button role="button" class="fa fa-info-circle btn-link btn-xs " data-toggle="popover" data-trigger="focus" data-placement="bottom" title="{0}" data-content="{1}"></button>'.format(addon.name, information);
 							
 							let addonName = addon.isViewpoint ? addon.name + " Viewpoint" : addon.name;
-							let result = '<p class="wow fadeInUp animated" data-wow-delay=".3s">{0} {1}<br/><span class="small pl-2">{2}{3}</span></p><br/>'.format(addonName, information2, compatible, links);
+                            
+                            let sections = keys.filter(k => data.lang[k].target == "_expand").map(function(k) {
+                                let div = '<div class="collapse notes-section" id="collapse-notes-'+addon.key+'"><h3>'+data.lang[k].text+'</h3>'+createKeysLinks(data, addon, addon.download[k])+addon.download[k]["notes"]+'</div>';
+							    return div;
+                            }).join("");
+                            
+                            let result = '<p class="wow fadeInUp animated" data-wow-delay=".3s">{0} {1}<br/><span class="small pl-2">{2}{3}</span></p>{4}<br/>'.format(addonName, information2, compatible, links, sections);
 
                             if (addon.isSample) {
                                 sample += result;
diff --git a/json/download.schema.json b/json/download.schema.json
index ce7ac5d..48961cc 100644
--- a/json/download.schema.json
+++ b/json/download.schema.json
@@ -47,21 +47,36 @@
         "download": {
             "additionalProperties": false,
             "properties": {
-                "dropin": { "type": "string" },
-                "updateSite": { "type": "string" },
+                "dropin": { "anyOf": [
+                    { "type": "string" },
+                    { "type": "array", "items": { "$ref" : "#/definitions/download-item" } }
+                 ] },
+                "updateSite": { "anyOf": [
+                    { "type": "string" },
+                    { "type": "array", "items": { "$ref" : "#/definitions/download-item" } }
+                 ] },
                 "installAddon": { "type": "string" },
+                "installNotes": { "type": "string" },
                 "dandi": { "type": "string" },
                 "learnMore": { "type": "string" },
                 "release": { "type": "string" },
                 "userManual": { "type": "string" }
             }
         }, 
+        "download-item": {
+            "additionalProperties": false,
+            "properties": {
+                "name": { "type": "string" },
+                "url": { "type": "string" }
+            }
+        },
         "lang": {
             "additionalProperties": false,
             "properties": {
                 "dropin": { "$ref" : "#/definitions/langitem" },
                 "updateSite": { "$ref" : "#/definitions/langitem" },
                 "installAddon": { "$ref" : "#/definitions/langitem" },
+                "installNotes": { "$ref" : "#/definitions/langitem" },
                 "dandi": { "$ref" : "#/definitions/langitem" },
                 "learnMore": { "$ref" : "#/definitions/langitem" },
                 "main": { "$ref" : "#/definitions/langitem" },
