ports_and_adapters_pattern