 This architecture groups the higher/policy components and the abstractions that define lower services together in the same package.The lower-level layers are created by inheritance/implementation of these abstract classes or interfaces.The inversion of the dependencies and ownership encourages the re-usability of the higher/policy layers.