Subclass out the IGate into 3 separate classes for each of the specific protocol implementations.
Subclass out the IGate into 3 separate classes for each of the specific protocol implementations.