diff --git a/goblin/element.py b/goblin/element.py
index 722bbf5d95561dda3e71888e06001a05ccd166db..c93e72383917056dcb3e430c712bdb7f4f735321 100644
--- a/goblin/element.py
+++ b/goblin/element.py
@@ -7,7 +7,7 @@ from gremlin_python.process.traversal import Cardinality # type: ignore
 from enum import Enum
 
 from goblin import abc, exception, mapper, properties
-#from goblin.element import Property
+from abc import ABCMeta
 
 logger = logging.getLogger(__name__)
 
@@ -19,7 +19,7 @@ class LockingMode(Enum):
     OFF = 0
     OPTIMISTIC_LOCKING = 1
 
-class ElementMeta(type):
+class ElementMeta(ABCMeta):
     """
     Metaclass for graph elements. Responsible for creating the
     :py:class:`Mapping<goblin.mapper.Mapping>` object and replacing user
@@ -61,7 +61,7 @@ class ElementMeta(type):
         new_namespace['__properties__'] = props
         new_namespace['__immutable__'] = namespace.get('__immutable__', ImmutableMode.OFF)
         new_namespace['__locking__'] = namespace.get('__locking__', LockingMode.OFF)
-        result = type.__new__(cls, name, bases, new_namespace)
+        result = ABCMeta.__new__(cls, name, bases, new_namespace)
         return result