SFD-62

Adjusted how the plugins are registered, stores the type of the plugin and the plugin class.

When a plugin is requested it will then create the new instance and return it.