Refactoring DomainEvents (not finished yet)