public override bool Equals(RouterConfig other)
{
if (!base.Equals(other)) return false;
var otherRemote = other as RemoteRouterConfig;
if (otherRemote == null) return false; //should never be true due to the previous check
return Local.Equals(otherRemote.Local) &&
Nodes.Intersect(otherRemote.Nodes).Count() == Nodes.Count;
}