Separated plugin loader and listener