diff --git a/nomad/datamodel/__init__.py b/nomad/datamodel/__init__.py
index af011a3fc4d960629111adccff0707c974a1b673..ef4a4aa662babab2992c128c1d9116275ea68ef8 100644
--- a/nomad/datamodel/__init__.py
+++ b/nomad/datamodel/__init__.py
@@ -19,7 +19,7 @@
 import sys
 
 from nomad.metainfo import Environment
-from .data import User, Author, user_reference, author_reference
+from .data import User, Author, UserReference, AuthorReference
 from .datamodel import (
     Dataset,
     EditableUserMetadata,
diff --git a/nomad/datamodel/data.py b/nomad/datamodel/data.py
index f5aa652d28a6078ce830b89358cd6dcbe51054dd..a3c149c8a82682a7c15c348dfc8d99e3cce52e62 100644
--- a/nomad/datamodel/data.py
+++ b/nomad/datamodel/data.py
@@ -208,9 +208,6 @@ class UserReference(Reference):
         return value.user_id
 
 
-user_reference = UserReference
-
-
 class AuthorReference(Reference):
     def __init__(self):
         super().__init__(Author.m_def)
@@ -233,9 +230,6 @@ class AuthorReference(Reference):
         raise ValueError(f'Cannot serialize {value}.')
 
 
-author_reference = AuthorReference
-
-
 class Query(JSON):
     """
     To represent a search query, including the applied filters and the results.
diff --git a/nomad/datamodel/datamodel.py b/nomad/datamodel/datamodel.py
index ba5b16e1dae94d278cfe12611a27782db60c0c5d..7621971c6ca412fea23cac18c98aa90adfa1548f 100644
--- a/nomad/datamodel/datamodel.py
+++ b/nomad/datamodel/datamodel.py
@@ -59,7 +59,7 @@ from ..metainfo.metainfo import Reference
 m_package = Package()
 
 from .results import Results  # noqa
-from .data import EntryData, ArchiveSection, User, user_reference, author_reference  # noqa
+from .data import EntryData, ArchiveSection, User, UserReference, AuthorReference  # noqa
 from .optimade import OptimadeEntry  # noqa
 from .metainfo.simulation.legacy_workflows import Workflow as LegacySimulationWorkflow  # noqa
 from .metainfo.workflow import Workflow  # noqa
@@ -184,7 +184,7 @@ class Dataset(MSection):
     entries = Quantity(type=str, shape=['*'], a_mongo=Mongo())
 
 
-class m_dataset_reference(Reference):
+class DatasetReference(Reference):
     def __init__(self):
         super().__init__(Dataset.m_def)
 
@@ -201,10 +201,6 @@ class m_dataset_reference(Reference):
         return value.dataset_id
 
 
-DatasetReference = m_dataset_reference
-dataset_reference = DatasetReference()
-
-
 class EditableUserMetadata(MCategory):
     """NOMAD entry metadata quantities that can be edited by the user before or after publish."""
 
@@ -738,7 +734,7 @@ class EntryMetadata(MSection):
     )
 
     main_author = Quantity(
-        type=user_reference,
+        type=UserReference,
         categories=[MongoUploadMetadata, EditableUserMetadata],
         description='The main author of the entry',
         a_auth_level=AuthLevel.admin,
@@ -747,7 +743,7 @@ class EntryMetadata(MSection):
 
     coauthors = Quantity(
         # Note: This attribute is not stored in ES
-        type=author_reference,
+        type=AuthorReference,
         shape=['0..*'],
         default=[],
         categories=[MongoUploadMetadata, EditableUserMetadata],
@@ -770,7 +766,7 @@ class EntryMetadata(MSection):
 
     entry_coauthors = Quantity(
         # Note: This attribute is not stored in ES
-        type=author_reference,
+        type=AuthorReference,
         shape=['0..*'],
         default=[],
         categories=[MongoEntryMetadata],
@@ -782,7 +778,7 @@ class EntryMetadata(MSection):
 
     reviewers = Quantity(
         # Note: This attribute is not stored in ES
-        type=user_reference,
+        type=UserReference,
         shape=['0..*'],
         default=[],
         categories=[MongoUploadMetadata, EditableUserMetadata],
@@ -804,7 +800,7 @@ class EntryMetadata(MSection):
     )
 
     authors = Quantity(
-        type=author_reference,
+        type=AuthorReference,
         shape=['0..*'],
         description='All authors (main author and co-authors)',
         derived=derive_authors,
@@ -814,7 +810,7 @@ class EntryMetadata(MSection):
     )
 
     writers = Quantity(
-        type=user_reference,
+        type=UserReference,
         shape=['0..*'],
         description='All writers (main author, upload coauthors)',
         derived=lambda entry: (
@@ -833,7 +829,7 @@ class EntryMetadata(MSection):
     )
 
     viewers = Quantity(
-        type=user_reference,
+        type=UserReference,
         shape=['0..*'],
         description='All viewers (main author, upload coauthors, and reviewers)',
         derived=lambda entry: (
@@ -853,7 +849,7 @@ class EntryMetadata(MSection):
     )
 
     datasets = Quantity(
-        type=dataset_reference,
+        type=DatasetReference(),
         shape=['0..*'],
         default=[],
         categories=[MongoEntryMetadata, EditableUserMetadata],
diff --git a/nomad/datamodel/metainfo/eln/__init__.py b/nomad/datamodel/metainfo/eln/__init__.py
index 1dbc30ea254f58dfc066eb8da3a4d0a50232dc22..6c3dfd2934305ec8c43cfe3f21ffcc537240c0ae 100644
--- a/nomad/datamodel/metainfo/eln/__init__.py
+++ b/nomad/datamodel/metainfo/eln/__init__.py
@@ -36,7 +36,7 @@ from nomad.datamodel.data import (
     ArchiveSection,
     BasicElnCategory,
     EntryData,
-    author_reference,
+    AuthorReference,
 )
 from nomad.datamodel.metainfo.annotations import (
     ELNAnnotation,
@@ -123,7 +123,7 @@ m_package = Package(name='eln')
 
 class User(MSection):
     user = Quantity(
-        type=author_reference,
+        type=AuthorReference,
         description='The corresponding user for the activity.',
         a_eln=dict(component='AuthorEditQuantity'),
     )
diff --git a/nomad/search.py b/nomad/search.py
index 3cdfd38923e996102e8d6289b2ae523c6531d7bc..6eef2d16e8988604c81a1ee5950e75c8850cfa33 100644
--- a/nomad/search.py
+++ b/nomad/search.py
@@ -95,8 +95,8 @@ from nomad.config import config
 from nomad.datamodel import (
     EntryArchive,
     EntryMetadata,
-    author_reference,
-    user_reference,
+    AuthorReference,
+    UserReference,
 )
 from nomad.groups import UserGroup
 from nomad.metainfo import Datetime, Package, Quantity
@@ -368,7 +368,7 @@ _entry_metadata_defaults = {
 _all_author_quantities = [
     quantity.name
     for quantity in EntryMetadata.m_def.all_quantities.values()
-    if quantity.type in [user_reference, author_reference]
+    if isinstance(quantity.type, (UserReference, AuthorReference))
 ]
 
 
diff --git a/tests/metainfo/test_references.py b/tests/metainfo/test_references.py
index 79e6a6cf34399e10d2cdc87af65cafb3c8b2fdcf..e050719d9aeddd8518485139c9ac8e8a5f829d94 100644
--- a/tests/metainfo/test_references.py
+++ b/tests/metainfo/test_references.py
@@ -20,7 +20,7 @@ from typing import cast
 import pytest
 import os.path
 
-from nomad.datamodel import user_reference, author_reference
+from nomad.datamodel import UserReference, AuthorReference
 from nomad.metainfo import (
     MSection,
     Quantity,
@@ -400,15 +400,15 @@ def test_parse_with_references(mainfile):
     'def_type, value, expected_name',
     [
         pytest.param(
-            user_reference, '00000000-0000-0000-0000-000000000001', 'Sheldon Cooper'
+            UserReference, '00000000-0000-0000-0000-000000000001', 'Sheldon Cooper'
         ),
         pytest.param(
-            author_reference,
+            AuthorReference,
             {'first_name': 'Mohammad', 'last_name': 'Nakhaee'},
             'Mohammad Nakhaee',
         ),
         pytest.param(
-            author_reference, '00000000-0000-0000-0000-000000000001', 'Sheldon Cooper'
+            AuthorReference, '00000000-0000-0000-0000-000000000001', 'Sheldon Cooper'
         ),
     ],
 )