Ideally, there should be no direct dependency on a specific transport adapter, even in the implementation.