See HexagonalArchitecture