Implement new EffectEvents and some refactoring.