A framework for Domain-Driven Design