Reworking and expanding the plugin system to includ multiple types of plugins.