@Override
      public boolean equals(@Nullable Object o1, @Nullable Object o2) {
        if (o1 == o2) {
          return true;
        }
        return o1 instanceof IProperty && o2 instanceof IProperty &&
               Objects.equals(((IProperty)o1).getKey(), ((IProperty)o2).getKey());
      }
@Override
      public boolean equals(@Nullable Object o1, @Nullable Object o2)