First draft of domain model and DomainEvents implementation.