Architectural decoupling (to make it easier to substitute other software).