It would be nice if when adding a new plugin one did not have to modify core source code. One could use the model that JDBC uses by which database drivers register themselves: HCryptoJ has a class (maybe PluginManager) that provides a static method (maybe register()) that new plugins call as part of their static initialization. This call does whatever PluginProvider.put() currently does.