Full Template using Domain Driven Design.