A plugin framework