Introduce Connection Abstraction. This allows us to represent a network connection differently in different implementations of the EventManager interface.