v2 plugin interface