extract plugin to vendor