Practicing Domain-Driven Entity and Value Object Design