code: function(obj){
  			for(var field in obj){
  				if(field === "populateItem"){ this._populateItem = obj.populateItem.bind(obj); obj.explorer = this; }
  				else if(field === "renderBeforeItemPopulation"){ this._renderBeforeItemPopulation = obj.renderBeforeItemPopulation.bind(obj); obj.explorer = this; }
  				else if(field === "renderAfterItemPopulation"){ this._renderAfterItemPopulation = obj.renderAfterItemPopulation.bind(obj); obj.explorer = this; }
  				else if(field === "errorHandler"){ this._errorHandler = obj.errorHandler.bind(obj); obj.explorer = this; }
  				else if(field === "initialRender"){ this._initialRender = obj.initialRender.bind(obj); obj.explorer = this; }
  				else if(field === "cleanupRender"){ this._cleanupRender = obj.cleanupRender.bind(obj); obj.explorer = this; }
  				
  				// inherit the progress indicator
  				else if(field === "progressIndicator"){ this.progressIndicator = obj.progressIndicator; obj.explorer = this; }
  				
  				// inherit some setup properties
  				else if(field === "setupProperties"){
  					for(var property in obj.setupProperties){
  						this[property] = obj.setupProperties[property];
  					}
  					
  					obj.explorer = this;
  				}
  			}
  		}
docs: [interface] extends explorer functionality using the render functions in obj.