moving away from inheritance for new behaviour and towards transformers listening to events