naturally if you separate the boundary of a responsibility. • Typical cases: OS’ layering architecture, OSI reference model. • Hardware abstraction, low level API, providing a process lifecycle and a higher level API, running an actual application domain based on APIs, present a computation result, and etc.