dist/version/ulib-0.1.3.js
function (name, pluginObj) {
				var hasPlugin = !! (getPlugin(name)),
					i, j;

				currentPluginName = name;

				if (!hasPlugin) {
					plugins.push({
						name: name,
						obj: pluginObj
					});
					setupPlugin(plugins[plugins.length - 1]);
				} else {
					if (pluginOverride) {
						for (i = 0; i < plugins.length; i += 1) {
							if (plugins[i].name === name) {
								//	Remove events from the pubsub.
								if(pluginBindings[name]) {
									for(j = 0; j < pluginBindings[name].length; j += 1) {
										pubsub.off(pluginBindings[name][j].name, pluginBindings[name][j].func);
									}
								}

								//	Remove old plugin function, and setup new plugin
								delete plugins[i].obj;
								plugins[i].obj = pluginObj;
								setupPlugin(plugins[i]);

								return plugins[i];
							}
						}
					} else {
						handleError('PluginAlreadyExists', name);
						return false;
					}
				}

				return true;
			}
function (name, pluginObj) {
				var hasPlugin = !! (getPlugin(name)),
					i, j;

				currentPluginName = name;

				if (!hasPlugin) {
					plugins.push({
						name: name,
						obj: pluginObj
					});
					setupPlugin(plugins[plugins.length - 1]);
				} else {
					if (pluginOverride) {
						for (i = 0; i < plugins.length; i += 1) {
							if (plugins[i].name === name) {
								//	Remove events from the pubsub.
								if(pluginBindings[name]) {
									for(j = 0; j < pluginBindings[name].length; j += 1) {
										pubsub.off(pluginBindings[name][j].name, pluginBindings[name][j].func);
									}
								}

								//	Remove old plugin function, and setup new plugin
								delete plugins[i].obj;
								plugins[i].obj = pluginObj;
								setupPlugin(plugins[i]);

								return plugins[i];
							}
						}
					} else {
						handleError('PluginAlreadyExists', name);
						return false;
					}
				}

				return true;
			}
"Global" config object - exposed to all plugins via get and set functions in the core