Introducing the Domain layer pattern