diff --git a/Engine.Core/Abstract/IIdentifiable.cs b/Engine.Core/Abstract/IIdentifiable.cs
index 403cace..c4cd50a 100644
--- a/Engine.Core/Abstract/IIdentifiable.cs
+++ b/Engine.Core/Abstract/IIdentifiable.cs
@@ -3,7 +3,7 @@ namespace Engine.Core;
///
/// Represents any instance in the engine with an id.
///
-public interface IIdentifiable : System.IComparable
+public interface IIdentifiable
{
///
/// Event triggered when the of the changes.
diff --git a/Engine.Core/BaseEntity.cs b/Engine.Core/BaseEntity.cs
index 87982f2..e259b21 100644
--- a/Engine.Core/BaseEntity.cs
+++ b/Engine.Core/BaseEntity.cs
@@ -101,6 +101,4 @@ public abstract class BaseEntity : IEntity
protected BaseEntity() => Id = Guid.NewGuid().ToString("D");
protected BaseEntity(string id) => Id = id;
-
- public int CompareTo(IIdentifiable? other) => Id.CompareTo(other?.Id);
}
diff --git a/Engine.Core/Extensions/IdentifiableExtensions.cs b/Engine.Core/Extensions/IdentifiableExtensions.cs
index 35d7d02..0bb8f74 100644
--- a/Engine.Core/Extensions/IdentifiableExtensions.cs
+++ b/Engine.Core/Extensions/IdentifiableExtensions.cs
@@ -3,5 +3,10 @@ namespace Engine.Core;
public static class IdentifiableExtensions
{
public static bool IsIdentical(this IIdentifiable? left, IIdentifiable? right)
- => left?.CompareTo(right) == 0;
+ {
+ if (left == null || right == null)
+ return false;
+
+ return left?.Id?.CompareTo(right?.Id) == 0;
+ }
}