Rich domain model 'n' such.