separation between plug-ins and framework