new register plugin interface