Add DomainEvent, Refactor specs