 	
 	if (attributes?.value	!= "")										thisTag.generatedContent = attributes.value;	
 	if (attributes?.binding	!= "" && isDefined("caller.rc.#attributes.binding#")) 	thisTag.generatedContent = evaluate("caller.rc.#attributes.binding#");
-	if (attributes?.key 	!= "")		{
-																	thisTag.GeneratedContent	= application.geti18n(attributes.key, attributes?.placeholder);
-																	attributes.isSafeHTML 	= true;				
-																	}	
+	
 	if (attributes?.tooltipKey != "")										attributes.tooltip 		= application.geti18n(attributes.key, attributes?.tooltipPlaceholder);
+
 
 	if (attributes.look 	== 'link')			variables.result &= '<a class="';				// we don't apply btn so that link look like links
 	if (attributes.look 	!= 'link')			variables.result &= '<a class="btn btn-#encodeForHTMLAttribute(attributes.look.lcase())#';



	param attributes.iconAlign		= "left";
	param attributes.isSafeHTML		= application?.Bootstrap?.isSafeHTML.contains(variables.tagStack[1].lcase());
	param attributes.library			= "default";	// for icon
	param attributes.look	 		= "default";
	param attributes.processed 		= true;
	param attributes.profile			= application?.Bootstrap?.profile;
	param attributes.rendered 		= true;
	param attributes.role			= "button";
	param attributes.throwOnError		= application?.Bootstrap?.throwOnError;
	param attributes.tooltipPosition 	= "bottom";
	
	
	// Patch this
	if(attributes?.disabled == "disabled")	attributes.disabled = true;
	
	
	// We will be passing through HTML5 data-, Mouse Events, and Angular JS
	variables.arAttrSeries = [];
	
	for(variables.myKey in attributes)	{
		if (left(variables.myKey, 5) == "data-" || left(variables.myKey, 2) == "on" || left(variables.myKey, 3) == "ng-")	{
			ArrayAppend(arAttrSeries, {key = variables.myKey, value = attributes[variables.myKey] });
			} // end if	
		}	// end for


	// no target of any kind was set AND this is not an anchor
	if ((attributes?.action != "" || attributes?.href == "") && attributes?.id == "")	attributes.href = attributes.action;



	thisTag.GeneratedContent = ""; // This tag does not have pass through
	if (attributes.rendered)						writeOutput(variables.result);
	

	break;
	}
