[major] Rewriting the Plugin interface to allow server & clients #7