improve domain object