refactor handlers and listener into plugins, each plugin is now independant and need to be loaded in config.yml
refactor tests