Added implementation of plugin system