code: function (key, func) {
  				if (needs[key]) {
  					provide(nucleus, key, func);
  				} else if (!providers[key]) {
  					providers[key] = func;
  				}
  				return me;
  			}
docs: Register a provider for a particular key.  The provider `func` is a function that will be called if there is a need to create the key. It must call its first arg as a callback, with the value.  Provider functions will be called at most once.