public override bool Equals(object obj) {
if (object.ReferenceEquals(this, obj)) return true;
if (object.ReferenceEquals(this, null)) return false;
if (object.ReferenceEquals(obj, null)) return false;
if (!(obj is PathOrigin)) return false;
return this.Path == ((PathOrigin)obj).Path;
}