refactored to 3.0.0 plugin specification