docs: function render(){
  
  	ll('Render start...');
  
  	ll('nodes: ' + bbop.dump(nodes));
  	// ll('matrix: ' + dump(matrix));
  	ll('val_hash: ' + bbop.dump(val_hash));
  	ll('max_val: ' + bbop.dump(max_val));
  
  	var haxis = f2;
  	var hhead = global_facet2;
  	var vaxis = f1;
  	var vhead = global_facet1;
  	// Figure out which axis is the longer one and switch.
  	// if( vaxis.length > haxis.length ){
  	//     haxis = f1;
  	//     vaxis = f2;	    
  	//     vhead = global_facet1;
  	//     hhead = global_facet2;
  	// }
  
  	var td_id_to_data = {};
  	function _assemble_table(haxis, vaxis){
  	    ll('try to _assemble_table...');
  	    
  	    // Start assembling the table parts.	
  	    var thead = new html.tag('thead');
  	    
  	    // Add what we want in the header row.
  	    var head = '';
  	    var title_list = [head];
  	    us.each(haxis, function(hline){
  		var ht = hline[0];
  		title_list.push(ht);
  	    });
  	    // Push the header row into thead.
  	    us.each(title_list, function(title_item){
  		thead.add_to('<th>' + title_item +
  			     '<img style="border: 0px;" src="' +
  			     sd.image_base + '/reorder.gif" />' +
  			     '</th>');
  	    });
  	    
  	    var tbody = new html.tag('tbody');
  	    
  	    // Add the rows.
  	    us.each(vaxis, function(vline){
  		var vt = vline[0];
  		
  		// Header row.
  		var rhead = '<td style="background-color:#e9effa"><b>' +
  			vt + '</b></td>';
  		var row = [rhead];
  		
  		// Data rows.
  		us.each(haxis, function(hline){
  		    var ht = hline[0];
  		    var cell_val = val_hash[vt][ht];
  		    
  		    var color = value_to_color(cell_val);
  		    
  		    // Data entry.
  		    var td_attrs = {
  			style: 'background-color:' +color + ';',
  			title: vt +', '+ ht +': '+ cell_val,
  			'class': 'bbop-js-tooltip',
  			generate_id: true
  		    };
  		    var td = new html.tag('td', td_attrs, cell_val);
  		    row.push(td.to_string());
  		    
  		    // Now save the data for later callback
  		    // generation.
  		    td_id_to_data[td.get_id()] = {
  			x: ht,
  			y: vt,
  			z: cell_val
  		    };
  		});
  		
  		tbody.add_to('<tr>' + row.join('') + '</tr>');
  	    });
  
  	    //var tbl = new html.table(title_list);
  	    var table_attrs = {
  		'generate_id': true,
  		'class': 'table' // bs3
  	    };
  	    var table = new html.tag('table', table_attrs);
  	    table.add_to(thead);
  	    table.add_to(tbody);
  
  	    return table;
  	}
  
  	// Add table and sorting to DOM.
  	jQuery(results_head).append(vhead + ' &#92; ' + hhead);
  	var table_a = _assemble_table(haxis, vaxis);
  	jQuery(results_div).append(table_a.to_string());
  	jQuery('#' + table_a.get_id()).tablesorter();
  
  	// Add tooltips.
  	//var tt_args = {'position': {'my': 'left bottom', 'at': 'right top'}};
  	var tt_args = {
  	    'position': {'my': 'center bottom-5', 'at': 'center top'},
  	    'tooltipClass': 'amigo-searchbar-tooltip-style'
  	};
  	jQuery('.bbop-js-tooltip').tooltip(tt_args);
  
  	//
  	ll('Completed render!');
  	ll('Done!');
      }