Implementing Domain Driven Design