obtain ID only once
use property directly
type check, Versionable added
DomainEvent extends Versionable