* The main data structure (not accessible by bundle)

  ----------- Category --------------- Item -------------------------
  NSArray - NSDictionary
            key: @"name" (NSString)
            key: @"items" (NSArray) - NSDictionary
                                      key: @"name" (NSString )
                                      key: @"location" (NSString)
                                      key: @"bundle" (NSString)

* The extension of bundle should be "toolbox".

* Each bundle can have info panel as long as 
  it contains the AppNameInfo.plist file. 
  Read ItemInfoPanel.h for entries of plist file.

* Each bundle can have help as long as
  it contains the AppNameHelp.rtf file.

# Each bundle can have default items which can be import by users.
  Defaults items are in the AppNameDefaults.plist.

  The data sturcture is

  NSArray - NSDictionary
            key: @"name" (NSString)
            key: @"location" (NSString)
            key: @"description" (NSString);

* Check any built-in bundle as example.
 
* Tools are not intended to open/save files frequently.
  It'll get the path of file/url when instantiated.
  So open file (if needed) when instantiated,
  and save file when dealloc.
 
* Tools can have chance to reload data when user choose to do that.

* For importing from files, the format should be the same as
  the object of "items" in main data structure.
  It is designed for importing items from other users.
