code: function (keyOrList, func) {
  				var key, keys = toArray(keyOrList), provider;
  				for (var i = keys.length; --i >= 0;) {
  					key = keys[i];
  					provider = providers[key];
  					if (!hasOwn.call(props, key) && provider) {
  						provide(nucleus, key, provider);
  						delete providers[key];
  					} else {
  						needs[key] = true;
  					}
  				}
  				if (func) {
  					me.once(keys, func);
  				}
  				return me;
  			}
docs: Call `func` as soon as all of the specified keys have been set.  If they are already set, the function will be called immediately, with all the values provided as args.  In this, it is identical to `once()`.  However, calling `need()` will additionally invoke providers when possible, in order to try and create the required values.