public Object Narrow(Type type) { if(this.GetType().Equals(type)) { return this; } else if(ConnectedTransport != null) { return ConnectedTransport.Narrow(type); } return null; }