public function initialise()
 {
     //	Quickly insert this plugin object before we load anything else
     //	We do this so other plugins that might call the application can access this plugins
     //	configuration before the entire tree is loaded, because in a tree algorithm, all the
     //	other plugins are loaded into the system before this one, which causes a problem because
     //	of course if you need to talk to or through the application object, if you have not fully
     //	explored the tree, it won't exist, this obviously causes a lot of problems, so we need to
     //	"insert" a incomplete plugin here, so at least the plugin configurtion is available even
     //	if the actual API is not, when configuring the plugin tree, we 100% of the time always deal
     //	with the plugin object, not the API which is created after the plugin is fully loaded
     Amslib_Plugin_Manager::insert($this->getName(), $this);
     //	Set the base locations to load plugins from
     //	NOTE: this obviously means it's not configurable, since I'm hardcoding the path for this here
     Amslib_Plugin_Manager::addLocation($this->getLocation());
     Amslib_Plugin_Manager::addLocation($this->getLocation() . "/plugins");
     //	We can't use Amslib_Plugin_Manager for this, because it's an application plugin
     $this->config($this->getName());
     //	Process all the imports and exports so all the plugins contain the correct data
     Amslib_Plugin_Manager::processImport();
     Amslib_Plugin_Manager::processExport();
     //	Now we have to load all the plugins into the system
     $this->load();
     //	NOTE:	perhaps we can add a default callback for running the method Amslib_Plugin_Manager::processTransfers
     //	NOTE:	after all the plugins are loaded, do we need ot keep the plugin objects in memory, perhaps we should
     //			dump them all once all the API objects are created
     //	NOTE:	perhaps we register a completion callback to manually take care of this, it sounds like a useful way
     //			to save some memory, all those xml objects must take up space and especially the bulky confguration arrays
     //	NOTE:	we currently are deleting it inside the plugin code, perhaps this is not elegant
     $this->runCompletionCallbacks();
 }