drafts: add rich domain modeling