Added a plugin system