anchor.diff:  		characterLabel += ":";
   		var characterTable = TABLE(null, TR(null, TD(null, characterLabel), TD(null, item["character_text"])));
   		if (item["character_comment"].length > 0) {
  -			logDebug("setting up comment");
   			var comment = P({"style":"display: none;", "class":"character_comment"}, item["character_comment"]);
   			var revealer = A({"href":"#"}, "View comment");
   			var revealerBlock = P(null, revealer);
   			connect(revealer, "onclick", function() {
  -				logDebug("Running onclick");
   				hideElement(revealerBlock);
   				blindDown(comment);
   				return false;
  
positive.code: }
  
  function requestDataForChildren(parentNode, callback) {
  	logDebug(keys(parentNode.data.phenotypes[0]));
  	var dataGetter = loadJSONDoc(URL.childPhenotypes(entity["id"], quality["id"], parentNode["data"]["id"]));
  	dataGetter.addCallback(function(result) {
  		loadDataForChildren(parentNode, callback, result);
  
negative.code: 	if (deferred) { deferred.cancel(); }
  	deferred = loadJSONDoc(URL.source([id]));
  	deferred.addCallback(partial(fillInSource, sourcePanel));
  	sourcePanel.render(document.body);
  	sourcePanel.show();
  }
  
  function fillInSource(panel, content) {
  	var taxon = A(null, content["phenotype"]["subject"]["name"]);
  	var entity = A(null, content["phenotype"]["entity"]["name"]);
  	var quality = A(null, content["phenotype"]["quality"]["name"]);	
  