docs: function(prop, get, defaultValueFn) {
  
  		return function() {
  			var map = this,
  				defaultValue = defaultValueFn && defaultValueFn.call(this),
  				observable, computeObj;
  
  			if(get.length === 0) {
  				observable = new Observation(get, map);
  			} else if(get.length === 1) {
  				observable = new SettableObservable(get, map, defaultValue);
  			} else {
  				observable = new AsyncObservable(get, map, defaultValue);
  			}
  
  			computeObj = make.computeObj(map, prop, observable);
  
  			//!steal-remove-start
  			if(process.env.NODE_ENV !== 'production') {
  				Object.defineProperty(computeObj.handler, "name", {
  					value: canReflect.getName(get).replace('getter', 'event emitter')
  				});
  			}
  			//!steal-remove-end
  
  			return computeObj;
  		};
  	}