work on the plugin system