docs: function(iconsOrElement, icons){
  		var parentElem, selectedElems, filteredElems, embedAttr, selector;
  
  		if( !icons ){
  			icons = iconsOrElement;
  			parentElem = document;
  		} else {
  			parentElem = iconsOrElement;
  		}
  
  		// attr to specify svg embedding
  		embedAttr = "data-grunticon-embed";
  
  		for( var iconName in icons ){
  			selector = iconName.slice(selectorPlaceholder.length);
  
  			try {
  				// get ALL of the elements matching the selector
  				selectedElems = parentElem.querySelectorAll( selector );
  			} catch (er) {
  				// continue further with embeds even though it failed for this icon
  				continue;
  			}
  
  
  			filteredElems = [];
  
  			// keep only those elements with the embed attribute
  			for( var i = 0; i < selectedElems.length; i++ ){
  				if( selectedElems[i].getAttribute( embedAttr ) !== null ){
  					filteredElems.push(selectedElems[i]);
  				}
  			}
  
  			// continue if there are no elements left after filtering
  			if( !filteredElems.length ){ continue; }
  
  			// for all the elements matching the selector with the embed attribute
  			// take the svg markup and embed it into the selected elements
  			for( i = 0; i < filteredElems.length; i++ ){
  				filteredElems[ i ].innerHTML = icons[ iconName ];
  				filteredElems[ i ].style.backgroundImage = "none";
  				filteredElems[ i ].removeAttribute( embedAttr );
  			}
  		}
  
  		return filteredElems;
  	}