finished plugin system