rewrote pluginsystem