CI and use Trait instead of inheritance for listeners