Repository: identique/idnumbers (language: python)

Issue:
Add more information to the metadata
**Is your feature request related to a problem? Please describe.**
Some national ids may not called the national id in the local. We should support more informatiion to the metadata structure.

**Describe the solution you'd like**
Add more properties, like:
```
{
  "alias": ["A", "B", "C"],
  "links": ["https://www.wikipedia...", "...."]
}
```

**Describe alternatives you've considered**
N/A

**Additional context**
Ref: https://learn.microsoft.com/en-us/microsoft-365/compliance/sit-defn-india-unique-identification-number?view=o365-worldwide

Add more information to the metadata
**Is your feature request related to a problem? Please describe.**
Some national ids may not called the national id in the local. We should support more informatiion to the metadata structure.

**Describe the solution you'd like**
Add more properties, like:
```
{
  "alias": ["A", "B", "C"],
  "links": ["https://www.wikipedia...", "...."]
}
```

**Describe alternatives you've considered**
N/A

**Additional context**
Ref: https://learn.microsoft.com/en-us/microsoft-365/compliance/sit-defn-india-unique-identification-number?view=o365-worldwide



Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index e0cf8aab..7c85ba1b 100644
--- a/README.md
+++ b/README.md
@@ -185,6 +185,10 @@ it is an actual issued ID number.
 Here's the list of the countries we have
 implemented [Country List](https://identique.github.io/idnumbers/idnumbers/nationalid.html)
 
+# Metadata Structure of each ID
+
+Here's the metadata definitions and how to use it in idnumbers: [METADATA](https://github.com/identique/idnumbers/blob/main/docs/nationalid/METADATA.md)
+
 # Contribution
 
 The idnumbers project is an open-source project and contributions from the community are always welcome. There are
diff --git a/docs/nationalid/METADATA.md b/docs/nationalid/METADATA.md
index c95bfa1c..f0e29001 100644
--- a/docs/nationalid/METADATA.md
+++ b/docs/nationalid/METADATA.md
@@ -14,6 +14,10 @@ The `METADATA` structure are the same among all classes. If you find any inconsi
 | parsable       | boolean                                                                         | To indicate if we could parse information from ID. If it is true, the class supports `parse` function.        |
 | checksum       | boolean                                                                         | To indicate if the ID supports checksum in its design. If it is true, the class supports `checksum` function. |
 | regexp         | [Pattern](https://docs.python.org/3/library/re.html#regular-expression-objects) | The pattern object for validate the ID.                                                                       | 
+| alias_of       | Python Cls                                                                      | The original class of this ID number. It is none if it is not an alias                                        |
+| names          | Array of string                                                                 | The possible names we could see in the ID cards or other places.                                              |
+| links          | Array of string                                                                 | The reference links of this ID                                                                                |
+| deprecated     | boolean                                                                         | To indicate if the ID is deprecated by the country of not. New or Old version.                                |
 
 ## Use properties
 
diff --git a/idnumbers/nationalid/ALB.py b/idnumbers/nationalid/ALB.py
index 359eb9a6..78d4de10 100644
--- a/idnumbers/nationalid/ALB.py
+++ b/idnumbers/nationalid/ALB.py
@@ -1,11 +1,11 @@
 from .alb.identity_number import IdentityNumber
+from .util import alias_of
 
-
-NationalID = IdentityNumber
+NationalID = alias_of(IdentityNumber)
 """alias of IdentityNumber"""
-NISH = IdentityNumber
+NISH = alias_of(IdentityNumber)
 """alias of IdentityNumber"""
-NIPT = IdentityNumber
+NIPT = alias_of(IdentityNumber)
 """alias of IdentityNumber"""
-NID = IdentityNumber
+NID = alias_of(IdentityNumber)
 """alias of IdentityNumber"""
diff --git a/idnumbers/nationalid/ARE.py b/idnumbers/nationalid/ARE.py
index 76c1da6b..abc931fc 100644
--- a/idnumbers/nationalid/ARE.py
+++ b/idnumbers/nationalid/ARE.py
@@ -1,4 +1,5 @@
 from .are.emirates_id import EmiratesIDNumber
+from .util import alias_of
 
-NationalID = EmiratesIDNumber
+NationalID = alias_of(EmiratesIDNumber)
 """alias of EmiratesIDNumber"""
diff --git a/idnumbers/nationalid/AUS.py b/idnumbers/nationalid/AUS.py
index a5588ad6..cbe24632 100644
--- a/idnumbers/nationalid/AUS.py
+++ b/idnumbers/nationalid/AUS.py
@@ -1,7 +1,8 @@
 from .aus.driver_license import DriverLicenseNumber
 from .aus.medicare import MedicareNumber
 from .aus.tax_file import TaxFileNumber
+from .util import alias_of
 
 
-NationalID = DriverLicenseNumber
+NationalID = alias_of(DriverLicenseNumber)
 """use driver license as national id"""
diff --git a/idnumbers/nationalid/AUT.py b/idnumbers/nationalid/AUT.py
index f37fe18f..03041a34 100644
--- a/idnumbers/nationalid/AUT.py
+++ b/idnumbers/nationalid/AUT.py
@@ -1,4 +1,5 @@
 from .aut.tax_id import TaxIDNumber
+from .util import alias_of
 
-NationalID = TaxIDNumber
+NationalID = alias_of(TaxIDNumber)
 """alias of TaxIDNumber"""
diff --git a/idnumbers/nationalid/BEL.py b/idnumbers/nationalid/BEL.py
index 27d5e466..0f6ee12f 100644
--- a/idnumbers/nationalid/BEL.py
+++ b/idnumbers/nationalid/BEL.py
@@ -1,4 +1,5 @@
 from .bel.national_registration import NationalRegistrationNumber
+from .util import alias_of
 
-NationalID = NationalRegistrationNumber
+NationalID = alias_of(NationalRegistrationNumber)
 """alias of national registration number"""
diff --git a/idnumbers/nationalid/BGR.py b/idnumbers/nationalid/BGR.py
index 31b9c81d..7bce5627 100644
--- a/idnumbers/nationalid/BGR.py
+++ b/idnumbers/nationalid/BGR.py
@@ -1,4 +1,5 @@
 from .bgr.uniform_civil import UniformCivilNumber
+from .util import alias_of
 
-NationalID = UniformCivilNumber
+NationalID = alias_of(UniformCivilNumber)
 """alias of UniformCivilNumber"""
diff --git a/idnumbers/nationalid/BHR.py b/idnumbers/nationalid/BHR.py
index 0bafdd55..eccb8686 100644
--- a/idnumbers/nationalid/BHR.py
+++ b/idnumbers/nationalid/BHR.py
@@ -1,4 +1,5 @@
 from .bhr.personal_number import PersonalNumber
+from .util import alias_of
 
-NationalID = PersonalNumber
+NationalID = alias_of(PersonalNumber)
 """alias of PersonalNumber"""
diff --git a/idnumbers/nationalid/BIH.py b/idnumbers/nationalid/BIH.py
index 7b9e46d8..e3c5e063 100644
--- a/idnumbers/nationalid/BIH.py
+++ b/idnumbers/nationalid/BIH.py
@@ -1,6 +1,7 @@
 from .bih.jmbg import UniqueMasterCitizenNumber
+from .util import alias_of
 
-NationalID = UniqueMasterCitizenNumber
+NationalID = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/BRA.py b/idnumbers/nationalid/BRA.py
index 0123d7bd..e6618f96 100644
--- a/idnumbers/nationalid/BRA.py
+++ b/idnumbers/nationalid/BRA.py
@@ -1,5 +1,6 @@
 from .bra.rg_number import RGNumber
 from .bra.cpf import CPFNumber
+from .util import alias_of
 
-NationalID = CPFNumber
+NationalID = alias_of(CPFNumber)
 """alias of CPF Number"""
diff --git a/idnumbers/nationalid/CAN.py b/idnumbers/nationalid/CAN.py
index c0729d5f..3ea6d304 100644
--- a/idnumbers/nationalid/CAN.py
+++ b/idnumbers/nationalid/CAN.py
@@ -1,4 +1,5 @@
 from .can.social_insurance import SocialInsuranceNumber
+from .util import alias_of
 
-NationalID = SocialInsuranceNumber
+NationalID = alias_of(SocialInsuranceNumber)
 """alias of SocialInsuranceNumber"""
diff --git a/idnumbers/nationalid/CHE.py b/idnumbers/nationalid/CHE.py
index 729a3cd2..2a190222 100644
--- a/idnumbers/nationalid/CHE.py
+++ b/idnumbers/nationalid/CHE.py
@@ -1,8 +1,11 @@
 from .che.social_security import SocialSecurityNumber
 from .che.business_id import BusinessID
+from .util import alias_of
 
-AVH = SocialSecurityNumber
+AVH = alias_of(SocialSecurityNumber)
+"""alias of SocialSecurityNumber"""
+NationalID = alias_of(SocialSecurityNumber)
 """alias of SocialSecurityNumber"""
 
-UID = BusinessID
+UID = alias_of(BusinessID)
 """alias of Business ID"""
diff --git a/idnumbers/nationalid/CHL.py b/idnumbers/nationalid/CHL.py
index 4cbd0708..67b0e6be 100644
--- a/idnumbers/nationalid/CHL.py
+++ b/idnumbers/nationalid/CHL.py
@@ -1,6 +1,7 @@
 from .chl.national_id import NationalID
+from .util import alias_of
 
-RUN = NationalID
+RUN = alias_of(NationalID)
 """alias of NationalID"""
-RUT = NationalID
+RUT = alias_of(NationalID)
 """alias of NationalID"""
diff --git a/idnumbers/nationalid/CHN.py b/idnumbers/nationalid/CHN.py
index f1ec84fe..681973ff 100644
--- a/idnumbers/nationalid/CHN.py
+++ b/idnumbers/nationalid/CHN.py
@@ -1,4 +1,5 @@
 from .chn.resident_id import ResidentID
+from .util import alias_of
 
-NationalID = ResidentID
+NationalID = alias_of(ResidentID)
 """alias of ResidentID"""
diff --git a/idnumbers/nationalid/COL.py b/idnumbers/nationalid/COL.py
index 1ac075ba..0433c42b 100644
--- a/idnumbers/nationalid/COL.py
+++ b/idnumbers/nationalid/COL.py
@@ -1,4 +1,7 @@
-from .col.unique_persional_id import UniquePersonalID, NUIP
+from .col.unique_persional_id import UniquePersonalID
+from .util import alias_of
 
-NationalID = UniquePersonalID
+NationalID = alias_of(UniquePersonalID)
+"""alias of UniquePersonalID"""
+NUIP = alias_of(UniquePersonalID)
 """alias of UniquePersonalID"""
diff --git a/idnumbers/nationalid/CZE.py b/idnumbers/nationalid/CZE.py
index 1c758552..c3ece28f 100644
--- a/idnumbers/nationalid/CZE.py
+++ b/idnumbers/nationalid/CZE.py
@@ -1,4 +1,5 @@
 from .cze.birth_number import BirthNumber
+from .util import alias_of
 
-NationalID = BirthNumber
+NationalID = alias_of(BirthNumber)
 """alias of BirthNumber"""
diff --git a/idnumbers/nationalid/DEU.py b/idnumbers/nationalid/DEU.py
index 9b0484b0..f9c3bec3 100644
--- a/idnumbers/nationalid/DEU.py
+++ b/idnumbers/nationalid/DEU.py
@@ -1,6 +1,9 @@
 from .deu.tax_id import TaxID
+from .util import alias_of
 
-NationalID = TaxID
+NationalID = alias_of(TaxID)
+"""alias of TaxID"""
+IdNr = alias_of(TaxID)
 """alias of TaxID"""
 
 # TODO: implement TaxNumber
diff --git a/idnumbers/nationalid/DNK.py b/idnumbers/nationalid/DNK.py
index e4b08250..d73a6029 100644
--- a/idnumbers/nationalid/DNK.py
+++ b/idnumbers/nationalid/DNK.py
@@ -1,4 +1,7 @@
 from .dnk.personal_id import PersonalIdentityNumber
+from .util import alias_of
 
-NationalID = PersonalIdentityNumber
+NationalID = alias_of(PersonalIdentityNumber)
+"""alias of PersonalIdentityNumber"""
+CPR = alias_of(PersonalIdentityNumber)
 """alias of PersonalIdentityNumber"""
diff --git a/idnumbers/nationalid/ESP.py b/idnumbers/nationalid/ESP.py
index 4997ca75..d061d5b8 100644
--- a/idnumbers/nationalid/ESP.py
+++ b/idnumbers/nationalid/ESP.py
@@ -1,4 +1,5 @@
 from .esp.dni import DNI
+from .util import alias_of
 
-NationalID = DNI
+NationalID = alias_of(DNI)
 """alias of DNI"""
diff --git a/idnumbers/nationalid/EST.py b/idnumbers/nationalid/EST.py
index df5c9dc2..bf8d17ac 100644
--- a/idnumbers/nationalid/EST.py
+++ b/idnumbers/nationalid/EST.py
@@ -1,4 +1,5 @@
 from .est.personal_id import PersonalID
+from .util import alias_of
 
-NationalID = PersonalID
+NationalID = alias_of(PersonalID)
 """alias of PersonalID"""
diff --git a/idnumbers/nationalid/FIN.py b/idnumbers/nationalid/FIN.py
index 84325db5..0cd7d626 100644
--- a/idnumbers/nationalid/FIN.py
+++ b/idnumbers/nationalid/FIN.py
@@ -1,6 +1,7 @@
 from .fin.personal_id import PersonalIdentityCode
+from .util import alias_of
 
-NationalID = PersonalIdentityCode
+NationalID = alias_of(PersonalIdentityCode)
 """alias of PersonalIdentityCode"""
-HETU = PersonalIdentityCode
+HETU = alias_of(PersonalIdentityCode)
 """alias of PersonalIdentityCode"""
diff --git a/idnumbers/nationalid/FRA.py b/idnumbers/nationalid/FRA.py
index 7f8bf36a..848ca088 100644
--- a/idnumbers/nationalid/FRA.py
+++ b/idnumbers/nationalid/FRA.py
@@ -1,4 +1,5 @@
 from .fra.insee import INSEE
+from .util import alias_of
 
-NationalID = INSEE
+NationalID = alias_of(INSEE)
 """alias of INSEE"""
diff --git a/idnumbers/nationalid/GBR.py b/idnumbers/nationalid/GBR.py
index 32c2e162..3d8a471e 100644
--- a/idnumbers/nationalid/GBR.py
+++ b/idnumbers/nationalid/GBR.py
@@ -1,4 +1,5 @@
 from .gbr.national_insurance import NationalInsuranceNumber
+from .util import alias_of
 
-NationalID = NationalInsuranceNumber
+NationalID = alias_of(NationalInsuranceNumber)
 """alias of NationalInsuranceNumber"""
diff --git a/idnumbers/nationalid/GEO.py b/idnumbers/nationalid/GEO.py
index a9ef5c29..7c540c8a 100644
--- a/idnumbers/nationalid/GEO.py
+++ b/idnumbers/nationalid/GEO.py
@@ -1,4 +1,5 @@
 from .geo.personal_number import PersonalNumber
+from .util import alias_of
 
-NationalID = PersonalNumber
+NationalID = alias_of(PersonalNumber)
 """alias of PersonalNumber"""
diff --git a/idnumbers/nationalid/GRC.py b/idnumbers/nationalid/GRC.py
index 04f7c949..80289b84 100644
--- a/idnumbers/nationalid/GRC.py
+++ b/idnumbers/nationalid/GRC.py
@@ -1,8 +1,9 @@
 from .grc.tax_id import TaxIdentityNumber
 from .grc.identity_card import IdentityCard
 from .grc.old_identity_card import OldIdentityCard
+from .util import alias_of
 
-NationalID = IdentityCard
+NationalID = alias_of(IdentityCard)
 """
 alias of IdentityCard
 """
diff --git a/idnumbers/nationalid/HRV.py b/idnumbers/nationalid/HRV.py
index 8b5443a5..15520be9 100644
--- a/idnumbers/nationalid/HRV.py
+++ b/idnumbers/nationalid/HRV.py
@@ -1,7 +1,12 @@
-from .hrv.personal_id import PersonalID, OIB
+from .hrv.personal_id import PersonalID
+from .util import alias_of
 
 
-NationalID = PersonalID
+NationalID = alias_of(PersonalID)
+"""
+alias of PersonalID
+"""
+OIB = alias_of(PersonalID)
 """
 alias of PersonalID
 """
diff --git a/idnumbers/nationalid/HUN.py b/idnumbers/nationalid/HUN.py
index bd7b6aa7..1aefe152 100644
--- a/idnumbers/nationalid/HUN.py
+++ b/idnumbers/nationalid/HUN.py
@@ -1,4 +1,5 @@
 from .hun.personal_id import PersonalID
+from .util import alias_of
 
-NationalID = PersonalID
+NationalID = alias_of(PersonalID)
 """alias of PersonalID"""
diff --git a/idnumbers/nationalid/IDN.py b/idnumbers/nationalid/IDN.py
index 11c6da51..e2271d88 100644
--- a/idnumbers/nationalid/IDN.py
+++ b/idnumbers/nationalid/IDN.py
@@ -1,5 +1,5 @@
 from .idn.national_id import NIK
+from .util import alias_of
 
-
-NationalID = NIK
+NationalID = alias_of(NIK)
 """alias of NIK"""
diff --git a/idnumbers/nationalid/IND.py b/idnumbers/nationalid/IND.py
index a3d35175..5e2cda95 100644
--- a/idnumbers/nationalid/IND.py
+++ b/idnumbers/nationalid/IND.py
@@ -1,1 +1,4 @@
 from .ind.national_id import NationalID
+from .util import alias_of
+
+UID = alias_of(NationalID)
diff --git a/idnumbers/nationalid/IRL.py b/idnumbers/nationalid/IRL.py
index 272884e4..89879a4b 100644
--- a/idnumbers/nationalid/IRL.py
+++ b/idnumbers/nationalid/IRL.py
@@ -1,4 +1,5 @@
 from .irl.pps import PersonalPublicServiceNumber
+from .util import alias_of
 
-NationalID = PersonalPublicServiceNumber
+NationalID = alias_of(PersonalPublicServiceNumber)
 """alias of PersonalPublicServiceNumber"""
diff --git a/idnumbers/nationalid/ISL.py b/idnumbers/nationalid/ISL.py
index b8bda257..5d64961f 100644
--- a/idnumbers/nationalid/ISL.py
+++ b/idnumbers/nationalid/ISL.py
@@ -1,4 +1,5 @@
 from .isl.icelandic_id import IcelandicID
+from .util import alias_of
 
-NationalID = IcelandicID
+NationalID = alias_of(IcelandicID)
 """alias of IcelandicID"""
diff --git a/idnumbers/nationalid/ITA.py b/idnumbers/nationalid/ITA.py
index fe65fee0..dce19e8b 100644
--- a/idnumbers/nationalid/ITA.py
+++ b/idnumbers/nationalid/ITA.py
@@ -1,4 +1,5 @@
 from .ita.fiscal_code import FiscalCode
+from .util import alias_of
 
-NationalID = FiscalCode
+NationalID = alias_of(FiscalCode)
 """alias of FiscalCode"""
diff --git a/idnumbers/nationalid/JPN.py b/idnumbers/nationalid/JPN.py
index 977e9c13..7c6d33e1 100644
--- a/idnumbers/nationalid/JPN.py
+++ b/idnumbers/nationalid/JPN.py
@@ -1,1 +1,5 @@
-from .jpn.national_id import NationalID
+from .jpn.national_id import MyNumber
+from .util import alias_of
+
+NationalID = alias_of(MyNumber)
+"""alias of MyNumber"""
diff --git a/idnumbers/nationalid/KAZ.py b/idnumbers/nationalid/KAZ.py
index 262ea924..bd429cf5 100644
--- a/idnumbers/nationalid/KAZ.py
+++ b/idnumbers/nationalid/KAZ.py
@@ -1,6 +1,7 @@
 from .kaz.business_id import BusinessIDNumber
 from .kaz.individual_id import IndividualIDNumber
 from .kaz.util import EntityType, EntityDivision
+from .util import alias_of
 
-NationalID = IndividualIDNumber
+NationalID = alias_of(IndividualIDNumber)
 """alias of IndividualIDNumber"""
diff --git a/idnumbers/nationalid/KOR.py b/idnumbers/nationalid/KOR.py
index a9196f94..fb009e8d 100644
--- a/idnumbers/nationalid/KOR.py
+++ b/idnumbers/nationalid/KOR.py
@@ -1,3 +1,6 @@
-from .kor.national_id import NationalID
-from .kor.old_national_id import OldNationalID
+from .kor.resident_registration import ResidentRegistration
+from .kor.old_registration_registration import OldResidentRegistration
 from .kor.arc import ARC
+from .util import alias_of
+
+NationalID = alias_of(ResidentRegistration)
diff --git a/idnumbers/nationalid/KWT.py b/idnumbers/nationalid/KWT.py
index 8cd61b44..c79937e2 100644
--- a/idnumbers/nationalid/KWT.py
+++ b/idnumbers/nationalid/KWT.py
@@ -1,4 +1,5 @@
 from .kwt.civil_number import CivilNumber
+from .util import alias_of
 
-NationalID = CivilNumber
+NationalID = alias_of(CivilNumber)
 """alias of CivilNumber"""
diff --git a/idnumbers/nationalid/LTU.py b/idnumbers/nationalid/LTU.py
index ad92f370..e7227406 100644
--- a/idnumbers/nationalid/LTU.py
+++ b/idnumbers/nationalid/LTU.py
@@ -1,4 +1,5 @@
 from .ltu.personal_code import PersonalCode
+from .util import alias_of
 
-NationalID = PersonalCode
+NationalID = alias_of(PersonalCode)
 """alias of FiscalCode"""
diff --git a/idnumbers/nationalid/LVA.py b/idnumbers/nationalid/LVA.py
index 352796c3..822ab616 100644
--- a/idnumbers/nationalid/LVA.py
+++ b/idnumbers/nationalid/LVA.py
@@ -1,6 +1,7 @@
 from typing import Union
 from .lva.personal_code import PersonalCode
 from .lva.old_personal_code import OldPersonalCode
+from .util import alias_of
 
 
 def get_validator(id_number: str) -> Union[type[PersonalCode], type[OldPersonalCode]]:
@@ -12,5 +13,5 @@ def get_validator(id_number: str) -> Union[type[PersonalCode], type[OldPersonalC
         return OldPersonalCode
 
 
-NationalID = PersonalCode
+NationalID = alias_of(PersonalCode)
 """alias of PersonalCode"""
diff --git a/idnumbers/nationalid/MAC.py b/idnumbers/nationalid/MAC.py
index 27a89425..97f170cb 100644
--- a/idnumbers/nationalid/MAC.py
+++ b/idnumbers/nationalid/MAC.py
@@ -1,2 +1,7 @@
-from .mac.national_id import NationalID, BIRP, DocType
-from .mac.arc import ARC, BIRNP
+from .mac.national_id import NationalID, DocType
+from .mac.arc import ARC
+from .util import alias_of
+
+BIRP = alias_of(NationalID)
+BIRNP = alias_of(NationalID)
+"""alias of NationalID"""
diff --git a/idnumbers/nationalid/MDA.py b/idnumbers/nationalid/MDA.py
index ae0042b5..37cf2cb4 100644
--- a/idnumbers/nationalid/MDA.py
+++ b/idnumbers/nationalid/MDA.py
@@ -1,4 +1,5 @@
 from .mda.personal_code import PersonalCode
+from .util import alias_of
 
-NationalID = PersonalCode
+NationalID = alias_of(PersonalCode)
 """alias of PersonalCode"""
diff --git a/idnumbers/nationalid/MEX.py b/idnumbers/nationalid/MEX.py
index 9a4a4cec..930b048d 100644
--- a/idnumbers/nationalid/MEX.py
+++ b/idnumbers/nationalid/MEX.py
@@ -1,4 +1,5 @@
 from .mex.curp import CURP
+from .util import alias_of
 
-NationalID = CURP
+NationalID = alias_of(CURP)
 """alias of CURP"""
diff --git a/idnumbers/nationalid/MKD.py b/idnumbers/nationalid/MKD.py
index 771b10bc..1f0eb281 100644
--- a/idnumbers/nationalid/MKD.py
+++ b/idnumbers/nationalid/MKD.py
@@ -1,6 +1,7 @@
 from .mkd.jmbg import UniqueMasterCitizenNumber
+from .util import alias_of
 
-NationalID = UniqueMasterCitizenNumber
+NationalID = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/MNE.py b/idnumbers/nationalid/MNE.py
index 272b1218..ccb15d39 100644
--- a/idnumbers/nationalid/MNE.py
+++ b/idnumbers/nationalid/MNE.py
@@ -1,6 +1,7 @@
 from .mne.jmbg import UniqueMasterCitizenNumber
+from .util import alias_of
 
-NationalID = UniqueMasterCitizenNumber
+NationalID = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/MYS.py b/idnumbers/nationalid/MYS.py
index 8ca41e73..c153c3e8 100644
--- a/idnumbers/nationalid/MYS.py
+++ b/idnumbers/nationalid/MYS.py
@@ -1,4 +1,5 @@
 from .mys.nric import NRIC
+from .util import alias_of
 
-NationalID = NRIC
+NationalID = alias_of(NRIC)
 """alias of NRIC"""
diff --git a/idnumbers/nationalid/NLD.py b/idnumbers/nationalid/NLD.py
index 98aa82b8..799ad030 100644
--- a/idnumbers/nationalid/NLD.py
+++ b/idnumbers/nationalid/NLD.py
@@ -1,4 +1,5 @@
 from .nld.national_id import BSN
+from .util import alias_of
 
-NationalID = BSN
+NationalID = alias_of(BSN)
 """alias of BSN"""
diff --git a/idnumbers/nationalid/NPL.py b/idnumbers/nationalid/NPL.py
index a9407fe4..1c05b4f4 100644
--- a/idnumbers/nationalid/NPL.py
+++ b/idnumbers/nationalid/NPL.py
@@ -1,1 +1,7 @@
 from .npl.national_id import NationalID
+from .util import alias_of
+
+NIN = alias_of(NationalID)
+"""
+alias of https://nimc.gov.ng/about-nin/
+"""
diff --git a/idnumbers/nationalid/NZL.py b/idnumbers/nationalid/NZL.py
index 61ec44be..4a8f3d1d 100644
--- a/idnumbers/nationalid/NZL.py
+++ b/idnumbers/nationalid/NZL.py
@@ -2,3 +2,6 @@
 from .nzl.inland_revenue_department import InlandRevenueDepartmentNumber
 from .nzl.passport import PassportNumber
 from .nzl.health_index import NationalHealthIndexNumber
+from .util import alias_of
+
+NationalID = alias_of(DriverLicenseNumber)
diff --git a/idnumbers/nationalid/PHL.py b/idnumbers/nationalid/PHL.py
index 42c81ce7..4f2eca79 100644
--- a/idnumbers/nationalid/PHL.py
+++ b/idnumbers/nationalid/PHL.py
@@ -1,1 +1,4 @@
-from .phl.national_id import NationalID
+from .phl.phil_id import PhilID
+from .util import alias_of
+
+NationalID = alias_of(PhilID)
diff --git a/idnumbers/nationalid/POL.py b/idnumbers/nationalid/POL.py
index 67b683f8..51702410 100644
--- a/idnumbers/nationalid/POL.py
+++ b/idnumbers/nationalid/POL.py
@@ -1,4 +1,5 @@
 from .pol.pesel import PESEL
+from .util import alias_of
 
-NationalID = PESEL
+NationalID = alias_of(PESEL)
 """alias of PESEL"""
diff --git a/idnumbers/nationalid/PRT.py b/idnumbers/nationalid/PRT.py
index 39d95f77..1196d847 100644
--- a/idnumbers/nationalid/PRT.py
+++ b/idnumbers/nationalid/PRT.py
@@ -1,5 +1,6 @@
 from .prt.tax_id import TaxIDNumber
 from .prt.civil_id import CivilIDNumber
+from .util import alias_of
 
-NationalID = CivilIDNumber
+NationalID = alias_of(CivilIDNumber)
 """alias of CivilIDNumber"""
diff --git a/idnumbers/nationalid/ROU.py b/idnumbers/nationalid/ROU.py
index 25878b64..852c0437 100644
--- a/idnumbers/nationalid/ROU.py
+++ b/idnumbers/nationalid/ROU.py
@@ -1,4 +1,5 @@
 from .rou.personal_code import PersonalNumericalCode
+from .util import alias_of
 
-NationalID = PersonalNumericalCode
+NationalID = alias_of(PersonalNumericalCode)
 """ alias of PersonalNumericalCode """
diff --git a/idnumbers/nationalid/SMR.py b/idnumbers/nationalid/SMR.py
index e9f2685b..0b3c68d9 100644
--- a/idnumbers/nationalid/SMR.py
+++ b/idnumbers/nationalid/SMR.py
@@ -1,7 +1,8 @@
 from .smr.social_security import SocialSecurityNumber
 from .smr.tax_registration import TaxRegistrationNumber
+from .util import alias_of
 
-NationalID = SocialSecurityNumber
+NationalID = alias_of(SocialSecurityNumber)
 """
 alias of SocialSecurityNumber
 """
diff --git a/idnumbers/nationalid/SRB.py b/idnumbers/nationalid/SRB.py
index 56f3571e..a00697df 100644
--- a/idnumbers/nationalid/SRB.py
+++ b/idnumbers/nationalid/SRB.py
@@ -1,6 +1,7 @@
 from .srb.jmbg import UniqueMasterCitizenNumber
+from .util import alias_of
 
-NationalID = UniqueMasterCitizenNumber
+NationalID = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/SVK.py b/idnumbers/nationalid/SVK.py
index ee3e8517..6767a56a 100644
--- a/idnumbers/nationalid/SVK.py
+++ b/idnumbers/nationalid/SVK.py
@@ -1,5 +1,6 @@
 from .svk.birth_number import BirthNumber
 from .svk.citizen_id import CitizenIDNumber
+from .util import alias_of
 
-NationalID = BirthNumber
+NationalID = alias_of(BirthNumber)
 """alias of BirthNumber"""
diff --git a/idnumbers/nationalid/SVN.py b/idnumbers/nationalid/SVN.py
index dcd9232a..6059f2ca 100644
--- a/idnumbers/nationalid/SVN.py
+++ b/idnumbers/nationalid/SVN.py
@@ -1,6 +1,7 @@
 from .svn.jmbg import UniqueMasterCitizenNumber
+from .util import alias_of
 
-NationalID = UniqueMasterCitizenNumber
+NationalID = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/SWE.py b/idnumbers/nationalid/SWE.py
index c312bc36..335aa15d 100644
--- a/idnumbers/nationalid/SWE.py
+++ b/idnumbers/nationalid/SWE.py
@@ -1,4 +1,5 @@
 from .swe.personal_id import PersonalIdentityNumber
+from .util import alias_of
 
-NationalID = PersonalIdentityNumber
+NationalID = alias_of(PersonalIdentityNumber)
 """alias of PersonalIdentityNumber"""
diff --git a/idnumbers/nationalid/UKR.py b/idnumbers/nationalid/UKR.py
index 6f987fa1..ff0f763c 100644
--- a/idnumbers/nationalid/UKR.py
+++ b/idnumbers/nationalid/UKR.py
@@ -1,5 +1,6 @@
 from .ukr.entity_id import EntityIDNumber
 from .ukr.taxpayer_id import TaxpayerIDNumber
+from .util import alias_of
 
-NationalID = TaxpayerIDNumber
+NationalID = alias_of(TaxpayerIDNumber)
 """alias of TaxpayerIDNumber"""
diff --git a/idnumbers/nationalid/USA.py b/idnumbers/nationalid/USA.py
index dfbc5a68..9c818390 100644
--- a/idnumbers/nationalid/USA.py
+++ b/idnumbers/nationalid/USA.py
@@ -1,4 +1,5 @@
 from .usa.social_security import SocialSecurityNumber
+from .util import alias_of
 
-NationalID = SocialSecurityNumber
+NationalID = alias_of(SocialSecurityNumber)
 """alias of SocialSecurityNumber"""
diff --git a/idnumbers/nationalid/VEN.py b/idnumbers/nationalid/VEN.py
index 133598ba..378ba4b0 100644
--- a/idnumbers/nationalid/VEN.py
+++ b/idnumbers/nationalid/VEN.py
@@ -1,5 +1,6 @@
 from .ven.id_card import IDCardNumber
 from .ven.fiscal_info import FiscalInformationNumber
+from .util import alias_of
 
-NationalID = IDCardNumber
+NationalID = alias_of(IDCardNumber)
 """alias of IDCardNumber"""
diff --git a/idnumbers/nationalid/alb/identity_number.py b/idnumbers/nationalid/alb/identity_number.py
index b57a315c..4661e2e9 100644
--- a/idnumbers/nationalid/alb/identity_number.py
+++ b/idnumbers/nationalid/alb/identity_number.py
@@ -32,7 +32,16 @@ class IdentityNumber:
         'checksum': False,  # There is a checksum algorithm. But we cannot find it.
         'regexp': re.compile(r'^(?P<yy>[0-9A-T]\d)(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<sn>\d{3})[ -]?'
-                             r'(?P<checksum>[A-W])$')
+                             r'(?P<checksum>[A-W])$'),
+        'alias_of': None,
+        'names': ['Albania Identity Number',
+                  'Numri i Identitetit',
+                  'NID',
+                  'Numri i Identitetit të Shtetasit'
+                  'NISH',
+                  'NIPT'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Albania'],
+        'deprecated': False
     })
 
     BASE_YEAR_MAP = '0123456789ABCDEFGHIJKLMNOPQRST'
diff --git a/idnumbers/nationalid/are/emirates_id.py b/idnumbers/nationalid/are/emirates_id.py
index 0657eda4..208bb6e8 100644
--- a/idnumbers/nationalid/are/emirates_id.py
+++ b/idnumbers/nationalid/are/emirates_id.py
@@ -34,7 +34,13 @@ class EmiratesIDNumber:
         'regexp': re.compile(r'^784[ -]?'
                              r'(?P<yyyy>\d{4})[ -]?'
                              r'(?P<sn>\d{7})[ -]?'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Emirates ID',
+                  'Resident ID',
+                  'رقم الهوية'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#United_Arab_Emirates'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/arg/national_id.py b/idnumbers/nationalid/arg/national_id.py
index 8273b3e3..95aa6439 100644
--- a/idnumbers/nationalid/arg/national_id.py
+++ b/idnumbers/nationalid/arg/national_id.py
@@ -16,7 +16,13 @@ class NationalID:
         'max_length': 8,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^(\d{2}\.?\d{3}\.?\d{3})$')
+        'regexp': re.compile(r'^(\d{2}\.?\d{3}\.?\d{3})$'),
+        'alias_of': None,
+        'names': ['Documento Nacional de Identidad',
+                  'DNI'],
+        'links': ['https://www.protecto.ai/argentina-national-identity-number-download-sample-data-for-testing/',
+                  'https://en.wikipedia.org/wiki/Documento_Nacional_de_Identidad_(Argentina)'],
+        'deprecated': False
 
     })
 
diff --git a/idnumbers/nationalid/aus/driver_license.py b/idnumbers/nationalid/aus/driver_license.py
index bf8f7cac..dd21b41c 100644
--- a/idnumbers/nationalid/aus/driver_license.py
+++ b/idnumbers/nationalid/aus/driver_license.py
@@ -25,7 +25,17 @@ class DriverLicenseNumber:
                              r'\d{8}|\d{2} \d{3} \d{3}|'
                              r'[A-Za-z]\d{5}|'
                              r'\d{10}|\d{3}-\d{3}-\d{4}'
-                             r')$')
+                             r')$'),
+        'alias_of': None,
+        'names': ['Driver Licence Number'],
+        'links': [
+            'https://learn.microsoft.com/en-us/microsoft-365/compliance/'
+            'sit-defn-australia-drivers-license-number?view=o365-worldwide',
+            'https://techdocs.broadcom.com/us/en/symantec-security-software/information-security/'
+            'data-loss-prevention/15-8/about-data-loss-prevention-policies-v27576413-d327e9/'
+            'library-of-system-data-identifiers-v95989112-d327e56315/'
+            'australia-driver-s-license-number-v130004514-d327e56830.html'],
+        'deprecated': False
     })
 
     BLACK_TRAILING_NUMBER = ['00000', '11111', '22222', '33333', '44444', '55555', '66666', '77777', '88888', '99999']
diff --git a/idnumbers/nationalid/aus/medicare.py b/idnumbers/nationalid/aus/medicare.py
index cec6f9fa..4a5e3fe6 100644
--- a/idnumbers/nationalid/aus/medicare.py
+++ b/idnumbers/nationalid/aus/medicare.py
@@ -25,7 +25,16 @@ class MedicareNumber:
                              r'[2-6]\d{9}|[2-6]\d{9}([-/]\d)?|'
                              r'[2-6]\d{3} \d{5} \d([-/]\d)?|[2-6]\d{3}-\d{5}-\d([-/]\d)?|'
                              r'[2-6]\d{3} \d{5} \d \d|[2-6]\d{3}-\d{5}-\d-\d'
-                             r')$')
+                             r')$'),
+        'alias_of': None,
+        'names': ['Medicare Number', 'Medicare No'],
+        'links': [
+            'https://techdocs.broadcom.com/us/en/symantec-security-software/'
+            'information-security/data-loss-prevention/15-8/'
+            'about-data-loss-prevention-policies-v27576413-d327e9'
+            '/library-of-system-data-identifiers-v95989112-d327e56315/'
+            'australian-medicare-number-v115447646-d327e57399.html'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [1, 3, 7, 9, 1, 3, 7, 9]
diff --git a/idnumbers/nationalid/aus/tax_file.py b/idnumbers/nationalid/aus/tax_file.py
index e0f29f0d..4a0098cc 100644
--- a/idnumbers/nationalid/aus/tax_file.py
+++ b/idnumbers/nationalid/aus/tax_file.py
@@ -1,7 +1,7 @@
 import re
 from types import SimpleNamespace
 from typing import Optional
-from ..util import CHECK_DIGIT, validate_regexp
+from ..util import CHECK_DIGIT, alias_of, validate_regexp
 from .util import normalize
 
 
@@ -24,10 +24,19 @@ class TaxFileNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{9}|\d{8})$')
+        'regexp': re.compile(r'^(\d{9}|\d{8})$'),
+        'alias_of': None,
+        'names': ['Tax file number',
+                  'TFN'],
+        'links': [
+            'https://en.wikipedia.org/wiki/National_identification_number#Australia',
+            'https://en.wikipedia.org/wiki/Tax_file_number',
+            'https://www.ato.gov.au/General/What-is-a-tax-file-number----Easy-Read/',
+            'https://en-academic.com/dic.nsf/enwiki/436130'],
+        'deprecated': False
     })
 
-    MAGIC_MULTIPLIER = [1, 4, 3, 7, 5, 8, 6, 9, 10]
+    MULTIPLIER = [1, 4, 3, 7, 5, 8, 6, 9, 10]
     """The magic multiplier for checksum"""
 
     @staticmethod
@@ -48,4 +57,8 @@ def checksum(id_number: str) -> Optional[CHECK_DIGIT]:
         if len(normalized) == 8:
             normalized = normalized[0:7] + '0' + normalized[7]
         number_list = [int(char) for char in list(normalized)]
-        return sum([value * TaxFileNumber.MAGIC_MULTIPLIER[index] for (index, value) in enumerate(number_list)]) % 11
+        return sum([value * TaxFileNumber.MULTIPLIER[index] for (index, value) in enumerate(number_list)]) % 11
+
+
+TFN = alias_of(TaxFileNumber)
+"""alias of TaxFileNumber"""
diff --git a/idnumbers/nationalid/aut/tax_id.py b/idnumbers/nationalid/aut/tax_id.py
index 118db91b..a2a11ef4 100644
--- a/idnumbers/nationalid/aut/tax_id.py
+++ b/idnumbers/nationalid/aut/tax_id.py
@@ -23,7 +23,12 @@ class TaxIDNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{2}-?\d{3}/?\d{4})$')
+        'regexp': re.compile(r'^(\d{2}-?\d{3}/?\d{4})$'),
+        'alias_of': None,
+        'names': ['Tax ID number'],
+        'links': ['https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Austria-TIN.pdf'],
+        'deprecated': False
     })
 
     MULTIPLIER = [1, 2, 1, 2, 1, 2, 1, 2]
diff --git a/idnumbers/nationalid/bel/national_registration.py b/idnumbers/nationalid/bel/national_registration.py
index 2fd8e38b..24991e9b 100644
--- a/idnumbers/nationalid/bel/national_registration.py
+++ b/idnumbers/nationalid/bel/national_registration.py
@@ -37,7 +37,15 @@ class NationalRegistrationNumber:
         'checksum': True,
         'regexp': re.compile(r'^(?P<yy>\d{2})\.?(?P<mm>\d{2})\.?(?P<dd>\d{2})-?'
                              r'(?P<sn>\d{3})\.?'
-                             r'(?P<checksum>\d{2})$')
+                             r'(?P<checksum>\d{2})$'),
+        'alias_of': None,
+        'names': ['National registration number',
+                  'Belgian identity card',
+                  'Identiteitskaart',
+                  'Carte d’identité',
+                  'Personalausweis'],
+        'links': ['https://en.wikipedia.org/wiki/Belgian_identity_card'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/bgd/national_id.py b/idnumbers/nationalid/bgd/national_id.py
index 72cd6992..21364e5e 100644
--- a/idnumbers/nationalid/bgd/national_id.py
+++ b/idnumbers/nationalid/bgd/national_id.py
@@ -30,7 +30,17 @@ class NationalID(OldNationalID):
                              r'(?P<rmo>\d)'
                              r'(?P<police>\d{2})'
                              r'(?P<union>\d{2})'
-                             r'(?P<sn>\d{6})$')
+                             r'(?P<sn>\d{6})$'),
+        'alias_of': None,
+        'names': ['Bangladesh national ID number',
+                  'জাতীয় পরিচয়পত্র',
+                  'NID',
+                  'BD'],
+        'links': [
+            'https://en.wikipedia.org/wiki/National_identity_card_(Bangladesh)',
+            'http://nationalidcardbangladesh.blogspot.com/2016/04/voter-id-national-id-card-number.html',
+            'https://www.facebook.com/428195627559147/photos/a.428251897553520/428251617553548/?type=3'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/bgd/old_national_id.py b/idnumbers/nationalid/bgd/old_national_id.py
index e950b471..2ff6da22 100644
--- a/idnumbers/nationalid/bgd/old_national_id.py
+++ b/idnumbers/nationalid/bgd/old_national_id.py
@@ -46,7 +46,17 @@ class OldNationalID:
                              r'(?P<rmo>\d)'
                              r'(?P<police>\d{2})'
                              r'(?P<union>\d{2})'
-                             r'(?P<sn>\d{6})$')
+                             r'(?P<sn>\d{6})$'),
+        'alias_of': None,
+        'names': ['Bangladesh national ID number',
+                  'জাতীয় পরিচয়পত্র',
+                  'NID',
+                  'BD'],
+        'links': [
+            'https://en.wikipedia.org/wiki/National_identity_card_(Bangladesh)',
+            'http://nationalidcardbangladesh.blogspot.com/2016/04/voter-id-national-id-card-number.html',
+            'https://www.facebook.com/428195627559147/photos/a.428251897553520/428251617553548/?type=3'],
+        'deprecated': True
     })
 
     RMO_MAP = {
diff --git a/idnumbers/nationalid/bgr/uniform_civil.py b/idnumbers/nationalid/bgr/uniform_civil.py
index 0f6a9904..54625d79 100644
--- a/idnumbers/nationalid/bgr/uniform_civil.py
+++ b/idnumbers/nationalid/bgr/uniform_civil.py
@@ -34,7 +34,15 @@ class UniformCivilNumber:
                              r'(?P<dd>\d{2})'
                              r'\d{2}'
                              r'(?P<gender>\d)'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Uniform civil number',
+                  'Единен граждански номер',
+                  'Edinen grazhdanski nomer',
+                  'ЕГН',
+                  'EGN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Bulgaria'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/bhr/personal_number.py b/idnumbers/nationalid/bhr/personal_number.py
index 26c2700d..13658096 100644
--- a/idnumbers/nationalid/bhr/personal_number.py
+++ b/idnumbers/nationalid/bhr/personal_number.py
@@ -27,7 +27,17 @@ class PersonalNumber:
         'checksum': False,
         'regexp': re.compile(r'^(?P<yymm>\d{2}(?:0[1-9]|1[012]))'
                              r'(?P<sn>\d{4})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal number',
+                  'Identification card number',
+                  'بطاقة الهوية',
+                  'الرقم الشخصي',
+                  'Central population registration number',
+                  'CPR',
+                  'الرقم السكاني'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Bahrain'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/bih/jmbg.py b/idnumbers/nationalid/bih/jmbg.py
index f2430db8..39a5b018 100644
--- a/idnumbers/nationalid/bih/jmbg.py
+++ b/idnumbers/nationalid/bih/jmbg.py
@@ -2,6 +2,7 @@
 from typing import Optional, Tuple
 from ..constant import Citizenship
 from ..yugoslavia import ParseResult, UniqueMasterCitizenNumber as YugoslaviaJMBG
+from ..util import alias_of
 
 BIH_METADATA = copy(YugoslaviaJMBG.METADATA)
 BIH_METADATA.iso3166_alpha2 = 'BA'
@@ -41,7 +42,7 @@ def check_location(location: str) -> Optional[Tuple[Citizenship, str]]:
         return Citizenship.RESIDENT, location
 
 
-JMBG = UniqueMasterCitizenNumber
+JMBG = alias_of(UniqueMasterCitizenNumber)
 """
 Alias of UniqueMasterCitizenNumber
 """
diff --git a/idnumbers/nationalid/bra/cpf.py b/idnumbers/nationalid/bra/cpf.py
index 38bc15c3..6a955a9c 100644
--- a/idnumbers/nationalid/bra/cpf.py
+++ b/idnumbers/nationalid/bra/cpf.py
@@ -16,7 +16,12 @@ class CPFNumber:
         'max_length': 11,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^(\d{3}\.?\d{3}\.?\d{3}-?\d{2})$')
+        'regexp': re.compile(r'^(\d{3}\.?\d{3}\.?\d{3}-?\d{2})$'),
+        'alias_of': None,
+        'names': ['CPF number',
+                  'Cadastro de Pessoas Físicas'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Brazil'],
+        'deprecated': False
     })
 
     MULTIPLIER1 = [10, 9, 8, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/bra/rg_number.py b/idnumbers/nationalid/bra/rg_number.py
index 7126e9bb..dc63e6f7 100644
--- a/idnumbers/nationalid/bra/rg_number.py
+++ b/idnumbers/nationalid/bra/rg_number.py
@@ -17,7 +17,13 @@ class RGNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^(\d{2}[.]\d{3}[.]\d{3}[-][\d|X])$')
+        'regexp': re.compile(r'^(\d{2}\.\d{3}\.\d{3}-[\d|X])$'),
+        'alias_of': None,
+        'names': ['RG number',
+                  'Registro Geral number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Brazil',
+                  'https://en.wikipedia.org/wiki/Brazilian_identity_cards'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/can/social_insurance.py b/idnumbers/nationalid/can/social_insurance.py
index 27ebc9d5..d7989597 100644
--- a/idnumbers/nationalid/can/social_insurance.py
+++ b/idnumbers/nationalid/can/social_insurance.py
@@ -19,7 +19,11 @@ class SocialInsuranceNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{9}$')
+        'regexp': re.compile(r'^\d{9}$'),
+        'alias_of': None,
+        'names': ['Social Insurance Number',
+                  'SIN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Canada']
     })
 
     MULTIPLIER = [1, 2, 1, 2, 1, 2, 1, 2, 1]
diff --git a/idnumbers/nationalid/che/business_id.py b/idnumbers/nationalid/che/business_id.py
index ba84aded..7e960183 100644
--- a/idnumbers/nationalid/che/business_id.py
+++ b/idnumbers/nationalid/che/business_id.py
@@ -15,7 +15,15 @@ class BusinessID:
         'max_length': 12,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^CHE-?\d{3}\.?\d{3}\.?\d{3}$')
+        'regexp': re.compile(r'^CHE-?\d{3}\.?\d{3}\.?\d{3}$'),
+        'alias_of': None,
+        'names': ['business identification number',
+                  'UID'],
+        'links': [
+            'https://www.bfs.admin.ch/bfs/en/home/registers/enterprise-register/'
+            'enterprise-identification/uid-general.html'
+        ],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/che/social_security.py b/idnumbers/nationalid/che/social_security.py
index cb6c7958..f2ec3488 100644
--- a/idnumbers/nationalid/che/social_security.py
+++ b/idnumbers/nationalid/che/social_security.py
@@ -20,7 +20,13 @@ class SocialSecurityNumber:
         'max_length': 13,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^756\.\d{4}\.\d{4}.\d{2}$')
+        'regexp': re.compile(r'^756\.\d{4}\.\d{4}.\d{2}$'),
+        'alias_of': None,
+        'names': ['Social Security Number',
+                  'AHV-Nr.',
+                  'No AVS'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Switzerland'],
+        'deprecated': False
 
     })
 
diff --git a/idnumbers/nationalid/chl/national_id.py b/idnumbers/nationalid/chl/national_id.py
index 05b3eca4..9654b0f1 100644
--- a/idnumbers/nationalid/chl/national_id.py
+++ b/idnumbers/nationalid/chl/national_id.py
@@ -23,7 +23,14 @@ class NationalID:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{1,2}\.\d{3}\.\d{3}-[\d|K])$')
+        'regexp': re.compile(r'^(\d{1,2}\.\d{3}\.\d{3}-[\d|K])$'),
+        'alias_of': None,
+        'names': ['Rol Único Nacional',
+                  'RUN',
+                  'Rol Único Tributario',
+                  'RUT'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Chile'],
+        'deprecated': False
     })
 
     MULTIPLIER = [3, 2, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/chn/resident_id.py b/idnumbers/nationalid/chn/resident_id.py
index 8aca7fca..fe3f1f8c 100644
--- a/idnumbers/nationalid/chn/resident_id.py
+++ b/idnumbers/nationalid/chn/resident_id.py
@@ -41,7 +41,14 @@ class ResidentID:
                              r'(?P<mm>0[1-9]|1[12])'
                              r'(?P<dd>0[1-9]|[12][0-9]|3[01])'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>(\d|X))$')
+                             r'(?P<checksum>(\d|X))$'),
+        'alias_of': None,
+        'names': ['Resident Identity Number',
+                  '居民身份证',
+                  'Jūmín Shēnfènzhèng'],
+        'links': ['https://en.wikipedia.org/wiki/Resident_Identity_Card',
+                  'https://en.wikipedia.org/wiki/National_identification_number#China'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/col/unique_persional_id.py b/idnumbers/nationalid/col/unique_persional_id.py
index 31f55ca8..e1e42246 100644
--- a/idnumbers/nationalid/col/unique_persional_id.py
+++ b/idnumbers/nationalid/col/unique_persional_id.py
@@ -40,7 +40,15 @@ class UniquePersonalID:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{2,3}\.?\d{3}\.?\d{3}-?\d)$')
+        'regexp': re.compile(r'^(\d{2,3}\.?\d{3}\.?\d{3}-?\d)$'),
+        'alias_of': None,
+        'names': ['Unique Personal ID',
+                  'NUIP',
+                  'Número único de identidad personal'],
+        'links': ['https://en.wikipedia.org/wiki/Colombian_identity_card',
+                  'https://en.wikipedia.org/wiki/National_identification_number#Colombia',
+                  'https://validatetin.com/colombia/#'],
+        'deprecated': False
     })
 
     WEIGHTS = [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71]
@@ -59,7 +67,3 @@ def checksum(id_number: str) -> CHECK_DIGIT:
         if not validate_regexp(id_number, UniquePersonalID.METADATA.regexp):
             return False
         return colombia_checksum(id_number)
-
-
-NUIP = UniquePersonalID
-"""alias of UniquePersonalID"""
diff --git a/idnumbers/nationalid/cze/birth_number.py b/idnumbers/nationalid/cze/birth_number.py
index 434e4751..32666562 100644
--- a/idnumbers/nationalid/cze/birth_number.py
+++ b/idnumbers/nationalid/cze/birth_number.py
@@ -4,6 +4,7 @@
 
 CZE_METADATA = copy(SVKBirthNumber.METADATA)
 CZE_METADATA.iso3166_alpha2 = 'CZ'
+CZE_METADATA.links = ['https://en.wikipedia.org/wiki/National_identification_number#Czech_Republic_and_Slovakia']
 
 
 class BirthNumber(SVKBirthNumber):
diff --git a/idnumbers/nationalid/deu/tax_id.py b/idnumbers/nationalid/deu/tax_id.py
index d1bb9c5c..16cd2b7b 100644
--- a/idnumbers/nationalid/deu/tax_id.py
+++ b/idnumbers/nationalid/deu/tax_id.py
@@ -22,7 +22,17 @@ class TaxID:
         'max_length': 11,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^\d{2} ?\d{3} ?\d{3} ?\d{3}$')
+        'regexp': re.compile(r'^\d{2} ?\d{3} ?\d{3} ?\d{3}$'),
+        'alias_of': None,
+        'names': ['Tax ID',
+                  'Steuerliche Identifikationsnummer',
+                  'Persönliche Identificationsnummer',
+                  'Identifikationsnummer',
+                  'Steuer-IdNr.',
+                  'IdNr',
+                  'Steuer-ID'],
+        'links': ['https://allaboutberlin.com/guides/german-tax-id-steuernummer'],
+        'deprecated': False
     })
 
     @staticmethod
@@ -82,7 +92,3 @@ def check_consecutive_position(id_number: str) -> bool:
             if normalized[index] == normalized[index + 1] and normalized[index] == normalized[index + 2]:
                 return False
         return True
-
-
-IdNr = TaxID
-"""alias of TaxID"""
diff --git a/idnumbers/nationalid/dnk/personal_id.py b/idnumbers/nationalid/dnk/personal_id.py
index 115916ca..86581e89 100644
--- a/idnumbers/nationalid/dnk/personal_id.py
+++ b/idnumbers/nationalid/dnk/personal_id.py
@@ -25,7 +25,13 @@ class PersonalIdentityNumber:
         'parsable': True,
         'checksum': False,
         'regexp': re.compile(r'^(?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})-?'
-                             r'(?P<sn>\d{4})$')
+                             r'(?P<sn>\d{4})$'),
+        'alias_of': None,
+        'names': ['personal identity number',
+                  'CPR',
+                  'Det Centrale Personregister'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Denmark'],
+        'deprecated': False
     })
 
     @staticmethod
@@ -55,7 +61,3 @@ def parse(id_number: str) -> Optional[ParseResult]:
             }
         except ValueError:
             return None
-
-
-CPR = PersonalIdentityNumber
-"""alias of PersonalIdentityNumber"""
diff --git a/idnumbers/nationalid/esp/dni.py b/idnumbers/nationalid/esp/dni.py
index bc72fb1f..a38d715c 100644
--- a/idnumbers/nationalid/esp/dni.py
+++ b/idnumbers/nationalid/esp/dni.py
@@ -18,7 +18,13 @@ class DNI:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^(\d{8})([A-Z])$')
+        'regexp': re.compile(r'^(\d{8})([A-Z])$'),
+        'alias_of': None,
+        'names': ['Documento Nacional de Identidad',
+                  'DNI'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Spain',
+                  'https://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/est/personal_id.py b/idnumbers/nationalid/est/personal_id.py
index 742d860c..9d36edb3 100644
--- a/idnumbers/nationalid/est/personal_id.py
+++ b/idnumbers/nationalid/est/personal_id.py
@@ -33,7 +33,13 @@ class PersonalID:
         'regexp': re.compile(r'^(?P<gender_century>\d)'
                              r'(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal ID Number',
+                  'isikukood'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Estonia',
+                  'https://et.wikipedia.org/wiki/Isikukood'],
+        'deprecated': False
     })
 
     WEIGHTS1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
diff --git a/idnumbers/nationalid/fin/personal_id.py b/idnumbers/nationalid/fin/personal_id.py
index 01d84b79..f6afb250 100644
--- a/idnumbers/nationalid/fin/personal_id.py
+++ b/idnumbers/nationalid/fin/personal_id.py
@@ -39,7 +39,12 @@ class PersonalIdentityCode:
         'regexp': re.compile(r'^(?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})'
                              r'(?P<century>[-+ABCDEFUVWXY])'
                              r'(?P<sn>\d{3})'
-                             r'(?P<check>[0-9A-Z])$')
+                             r'(?P<check>[0-9A-Z])$'),
+        'alias_of': None,
+        'names': ['personal identity code',
+                  'HETU'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Finland'],
+        'deprecated': False
     })
 
     DOB_BASE_MAP = {
@@ -104,7 +109,3 @@ def checksum(id_number: str) -> bool:
         numbers = int(match_obj.group('dd') + match_obj.group('mm') + match_obj.group('yy') + match_obj.group('sn'))
         check_digit = PersonalIdentityCode.CHECKSUM_LIST[numbers % 31]
         return match_obj.group('check') == check_digit
-
-
-HETU = PersonalIdentityCode
-"""alias of PersonalIdentityCode"""
diff --git a/idnumbers/nationalid/fra/insee.py b/idnumbers/nationalid/fra/insee.py
index 30b560d7..3318ae82 100644
--- a/idnumbers/nationalid/fra/insee.py
+++ b/idnumbers/nationalid/fra/insee.py
@@ -44,7 +44,16 @@ class INSEE:
                              r'(?P<mm>(0[1-9]|1[0-2]|[2-3][0-9]|4[0-2]|[5-9][0-9]))'
                              r'(?P<birth_department>((\d{2}|2[AaBb])\d{3}))'
                              r'(?P<cert_number>((?!000)\d{3}))'
-                             r'(?P<control_key>((?!(00|98|99))\d{2}))$')
+                             r'(?P<control_key>((?!(00|98|99))\d{2}))$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'INSEE',
+                  'NIR',
+                  'NIRPP'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#France',
+                  'https://fr.wikipedia.org/wiki/'
+                  'Num%C3%A9ro_de_s%C3%A9curit%C3%A9_sociale_en_France#Signification_des_chiffres_du_NIR'],
+        'deprecated': False
 
     })
 
diff --git a/idnumbers/nationalid/gbr/national_insurance.py b/idnumbers/nationalid/gbr/national_insurance.py
index c4805bfa..48eb991a 100644
--- a/idnumbers/nationalid/gbr/national_insurance.py
+++ b/idnumbers/nationalid/gbr/national_insurance.py
@@ -15,7 +15,14 @@ class NationalInsuranceNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^[A-Z]{2}\d{6}[A-Z]$')
+        'regexp': re.compile(r'^[A-Z]{2}\d{6}[A-Z]$'),
+        'alias_of': None,
+        'names': ['National Insurance Number',
+                  'NI No',
+                  'NINO'],
+        'links': ['https://en.wikipedia.org/wiki/National_Insurance_number',
+                  'https://www.gov.uk/hmrc-internal-manuals/national-insurance-manual/nim39110'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/geo/personal_number.py b/idnumbers/nationalid/geo/personal_number.py
index 7bbe9db9..7e920ead 100644
--- a/idnumbers/nationalid/geo/personal_number.py
+++ b/idnumbers/nationalid/geo/personal_number.py
@@ -14,7 +14,11 @@ class PersonalNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^\d{9}$')
+        'regexp': re.compile(r'^\d{9}$'),
+        'alias_of': None,
+        'names': ['personal number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Georgia'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/grc/identity_card.py b/idnumbers/nationalid/grc/identity_card.py
index 79029b3e..0041d769 100644
--- a/idnumbers/nationalid/grc/identity_card.py
+++ b/idnumbers/nationalid/grc/identity_card.py
@@ -14,8 +14,12 @@ class IdentityCard:
         'max_length': 7,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^[ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩABEZHIKMNOPTYX]{2}-?\d{6}$')
+        'regexp': re.compile(r'^[ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩABEZHIKMNOPTYX]{2}-?\d{6}$'),
         # They are two different char set, the former is Greek alphabet, the latter is Latin alphabet
+        'alias_of': None,
+        'names': ['Identity Card Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Greece'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/grc/old_identity_card.py b/idnumbers/nationalid/grc/old_identity_card.py
index 24f134f2..81b263e5 100644
--- a/idnumbers/nationalid/grc/old_identity_card.py
+++ b/idnumbers/nationalid/grc/old_identity_card.py
@@ -14,7 +14,11 @@ class OldIdentityCard:
         'max_length': 7,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^[ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ]-?\d{6}$')
+        'regexp': re.compile(r'^[ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ]-?\d{6}$'),
+        'alias_of': None,
+        'names': ['Identity Card Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Greece'],
+        'deprecated': True
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/grc/tax_id.py b/idnumbers/nationalid/grc/tax_id.py
index e9c123d0..5d935ca3 100644
--- a/idnumbers/nationalid/grc/tax_id.py
+++ b/idnumbers/nationalid/grc/tax_id.py
@@ -15,7 +15,11 @@ class TaxIdentityNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^\d{9}$')
+        'regexp': re.compile(r'^\d{9}$'),
+        'alias_of': None,
+        'names': ['Tax Identity Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Greece'],
+        'deprecated': False
     })
 
     MULTIPLIER = [256, 128, 64, 32, 16, 8, 4, 2]
diff --git a/idnumbers/nationalid/hkg/national_id.py b/idnumbers/nationalid/hkg/national_id.py
index 55f139cf..3f67ddd1 100644
--- a/idnumbers/nationalid/hkg/national_id.py
+++ b/idnumbers/nationalid/hkg/national_id.py
@@ -21,7 +21,14 @@ class NationalID:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r"^[A-Z]{1,2}[0-9]{6}[0-9A]$")
+        'regexp': re.compile(r"^[A-Z]{1,2}[0-9]{6}[0-9A]$"),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  '香港身份證'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Hong_Kong',
+                  'https://pinkylam.me/playground/hkid/'],
+        'deprecated': False
+
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/hrv/personal_id.py b/idnumbers/nationalid/hrv/personal_id.py
index 61aeae96..b972103a 100644
--- a/idnumbers/nationalid/hrv/personal_id.py
+++ b/idnumbers/nationalid/hrv/personal_id.py
@@ -15,7 +15,14 @@ class PersonalID:
         'max_length': 11,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r"^\d{11}$")
+        'regexp': re.compile(r"^\d{11}$"),
+        'alias_of': None,
+        'names': ['Personal ID Number',
+                  'Osobni identifikacijski broj',
+                  'OIB'],
+        'links': ['https://en.wikipedia.org/wiki/Personal_identification_number_(Croatia)'],
+        'deprecated': False
+
     })
 
     @staticmethod
@@ -35,9 +42,3 @@ def checksum(id_number: str) -> bool:
         numbers = [int(char) for char in id_number]
         checksum = modulus_overflow_mod10(mn_modulus_digit(numbers[:-1], 10, 11))
         return numbers[-1] == checksum
-
-
-OIB = PersonalID
-"""
-alias of PersonalID
-"""
diff --git a/idnumbers/nationalid/hun/personal_id.py b/idnumbers/nationalid/hun/personal_id.py
index dbf701b2..92b4dac6 100644
--- a/idnumbers/nationalid/hun/personal_id.py
+++ b/idnumbers/nationalid/hun/personal_id.py
@@ -39,7 +39,11 @@ class PersonalID:
         'regexp': re.compile(r'^(?P<gender>\d)[ -]?'
                              r'(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})[ -]?'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Hungary'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
diff --git a/idnumbers/nationalid/idn/national_id.py b/idnumbers/nationalid/idn/national_id.py
index f8d70047..4ee18910 100644
--- a/idnumbers/nationalid/idn/national_id.py
+++ b/idnumbers/nationalid/idn/national_id.py
@@ -37,7 +37,13 @@ class NIK:
                              r'(?P<dd>[0-7]\d)'
                              r'(?P<mm>(0[1-9]|1[012]))'
                              r'(?P<yy>\d{2})'
-                             r'(?!0000)\d{4}$')
+                             r'(?!0000)\d{4}$'),
+        'alias_of': None,
+        'names': ['ID Number',
+                  'NIK',
+                  'Nomor Induk Kependudukan'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Indonesia'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/ind/national_id.py b/idnumbers/nationalid/ind/national_id.py
index b9a694aa..fc8d1f88 100644
--- a/idnumbers/nationalid/ind/national_id.py
+++ b/idnumbers/nationalid/ind/national_id.py
@@ -21,7 +21,14 @@ class NationalID:
         'max_length': 12,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^[2-9]\d{3}[ -]?\d{4}[ -]?\d{4}$')
+        'regexp': re.compile(r'^[2-9]\d{3}[ -]?\d{4}[ -]?\d{4}$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'Unique Identification Number',
+                  'UID'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#India',
+                  'https://archive.org/details/Aadhaar_numbering_scheme/page/n12/mode/1up?view=theater'],
+        'deprecated': False
     })
 
     @staticmethod
@@ -37,5 +44,3 @@ def checksum(id_number) -> bool:
         if not validate_regexp(id_number, NationalID.METADATA.regexp):
             return False
         return verhoeff_check([int(char) for char in normalize(id_number)])
-
-UID = NationalID
diff --git a/idnumbers/nationalid/irl/pps.py b/idnumbers/nationalid/irl/pps.py
index 22e15196..a73c2611 100644
--- a/idnumbers/nationalid/irl/pps.py
+++ b/idnumbers/nationalid/irl/pps.py
@@ -20,7 +20,16 @@ class PersonalPublicServiceNumber:
         'parsable': False,
         'checksum': True,
         'regexp': re.compile(r'^\d{7}[A-W][A-W\s]?$|'
-                             r'^\d{7}[A-W]/[A-W\s]?$')
+                             r'^\d{7}[A-W]/[A-W\s]?$'),
+        'alias_of': None,
+        'names': ['Personal Public Service Number',
+                  'PPS',
+                  'Uimhir Phearsanta Seirbhíse Poiblí',
+                  'Uimh. PSP',
+                  'Revenue and Social Insurance Number',
+                  'RSI No'],
+        'links': ['https://en.wikipedia.org/wiki/Personal_Public_Service_Number'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [8, 7, 6, 5, 4, 3, 2, 9]
diff --git a/idnumbers/nationalid/irn/national_id.py b/idnumbers/nationalid/irn/national_id.py
index f1d57526..45a3d9ff 100644
--- a/idnumbers/nationalid/irn/national_id.py
+++ b/idnumbers/nationalid/irn/national_id.py
@@ -1,7 +1,7 @@
 import re
 from types import SimpleNamespace
 from typing import Optional
-from ..util import CHECK_DIGIT, validate_regexp, weighted_modulus_digit, letter_to_number
+from ..util import CHECK_DIGIT, validate_regexp, weighted_modulus_digit
 
 
 def normalize(id_number: str) -> str:
@@ -20,7 +20,13 @@ class NationalID:
         'max_length': 10,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^\d{3}-?\d{6}-?\d$')
+        'regexp': re.compile(r'^\d{3}-?\d{6}-?\d$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'kart-e-meli',
+                  'کارت ملی'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Iran,_Islamic_Republic_of'],
+        'deprecated': False
     })
 
     MULTIPLIER = [10, 9, 8, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/irq/national_id.py b/idnumbers/nationalid/irq/national_id.py
index e53fd5cb..c0e3fdab 100644
--- a/idnumbers/nationalid/irq/national_id.py
+++ b/idnumbers/nationalid/irq/national_id.py
@@ -4,7 +4,7 @@
 
 
 class NationalID:
-    """s
+    """
     Iraq National Card number. not enough docs to research.
     https://en.wikipedia.org/wiki/Iraq_National_Card
     """
@@ -14,7 +14,13 @@ class NationalID:
         'max_length': 12,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^\d{12}$')
+        'regexp': re.compile(r'^\d{12}$'),
+        'alias_of': None,
+        'names': ['National Card Number',
+                  'البطاقة الوطنية',
+                  'كارتى نيشتمانى'],
+        'links': ['https://en.wikipedia.org/wiki/Iraq_National_Card'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/isl/icelandic_id.py b/idnumbers/nationalid/isl/icelandic_id.py
index ba11f4b5..4fa40acd 100644
--- a/idnumbers/nationalid/isl/icelandic_id.py
+++ b/idnumbers/nationalid/isl/icelandic_id.py
@@ -34,7 +34,13 @@ class IcelandicID:
         'regexp': re.compile(r'^(?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})-?'
                              r'(?P<sn>\d{2})'
                              r'(?P<checksum>\d)'
-                             r'(?P<century>\d)$')
+                             r'(?P<century>\d)$'),
+        'alias_of': None,
+        'names': ['Icelandic identification number',
+                  'kennitala',
+                  'kt.'],
+        'links': ['https://en.wikipedia.org/wiki/Icelandic_identification_number'],
+        'deprecated': False
     })
 
     WEIGHTS = [3, 2, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/isr/national_id.py b/idnumbers/nationalid/isr/national_id.py
index 46668740..2791d63b 100644
--- a/idnumbers/nationalid/isr/national_id.py
+++ b/idnumbers/nationalid/isr/national_id.py
@@ -21,7 +21,14 @@ class NationalID:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{9})$')
+        'regexp': re.compile(r'^(\d{9})$'),
+        'alias_of': None,
+        'names': ['Identity Number',
+                  'מספר זהות',
+                  'Mispar Zehut'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Israel',
+                  'https://taxid.pro/docs/countries/israel'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/ita/fiscal_code.py b/idnumbers/nationalid/ita/fiscal_code.py
index 9085b242..a5504a9a 100644
--- a/idnumbers/nationalid/ita/fiscal_code.py
+++ b/idnumbers/nationalid/ita/fiscal_code.py
@@ -40,7 +40,13 @@ class FiscalCode:
                              r'(?P<m>[A-EHLMPR-T])'
                              r'(?P<dd>[0-9A-Z]{2})'
                              r'(?P<area_code>[A-Z][0-9A-Z]{3})'
-                             r'(?P<checksum>[A-Z])$')
+                             r'(?P<checksum>[A-Z])$'),
+        'alias_of': None,
+        'names': ['Fiscal Code',
+                  'Codice fiscale'],
+        'links': ['https://en.wikipedia.org/wiki/Italian_fiscal_code',
+                  'https://en.wikipedia.org/wiki/National_identification_number#Italy'],
+        'deprecated': False
     })
 
     MONTH_MAP = {'A': 1, 'B': 2, 'C': 3, 'D': 4,
diff --git a/idnumbers/nationalid/jpn/national_id.py b/idnumbers/nationalid/jpn/national_id.py
index 25f7350d..df985243 100644
--- a/idnumbers/nationalid/jpn/national_id.py
+++ b/idnumbers/nationalid/jpn/national_id.py
@@ -4,9 +4,9 @@
 from ..util import validate_regexp, weighted_modulus_digit
 
 
-class NationalID:
+class MyNumber:
     """
-    Japan national ID number format
+    Japan my number format
     https://en.wikipedia.org/wiki/National_identification_number#Japan
     https://tin-check.com/en/
     https://github.com/kufu/tsubaki/blob/433d65aac341bcd58e7d8141f3f4ac374977617f/lib/tsubaki/my_number.rb#L12
@@ -21,7 +21,13 @@ class NationalID:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{12}$)')
+        'regexp': re.compile(r'^(\d{12}$)'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'My Number',
+                  'マイナンバー'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Japan'],
+        'deprecated': False
     })
 
     MULTIPLIER = [6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
@@ -32,13 +38,13 @@ def validate(id_number: str) -> bool:
         """
         Validate JPN national id number
         """
-        if not validate_regexp(id_number, NationalID.METADATA.regexp):
+        if not validate_regexp(id_number, MyNumber.METADATA.regexp):
             return False
-        return NationalID.checksum(id_number) == id_number[-1]
+        return MyNumber.checksum(id_number) == id_number[-1]
 
     @staticmethod
     def checksum(id_number: str) -> str:
         """Calculate Japan national id checksum"""
         arr = [int(i) for i in id_number[:11]]
-        rem = weighted_modulus_digit(arr, NationalID.MULTIPLIER, 11, True)
+        rem = weighted_modulus_digit(arr, MyNumber.MULTIPLIER, 11, True)
         return str(0 if rem <= 1 else (11 - rem))
diff --git a/idnumbers/nationalid/kaz/business_id.py b/idnumbers/nationalid/kaz/business_id.py
index 94770436..8b3e6cc7 100644
--- a/idnumbers/nationalid/kaz/business_id.py
+++ b/idnumbers/nationalid/kaz/business_id.py
@@ -36,7 +36,12 @@ class BusinessIDNumber:
                              r'(?P<type>[4-6])'
                              r'(?P<division>[0-3])'
                              r'(?P<sn>\d{5})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Business Identification Number',
+                  'Бизнес-идентификационный номер'],
+        'links': ['https://korgan-zan.kz/en/obtaining-iin-and-bin-in-kazakhstan/'],
+        'deprecated': False
     })
 
     ENTITY_TYPE_MAP = {
diff --git a/idnumbers/nationalid/kaz/individual_id.py b/idnumbers/nationalid/kaz/individual_id.py
index 4740e0fd..fc592fd0 100644
--- a/idnumbers/nationalid/kaz/individual_id.py
+++ b/idnumbers/nationalid/kaz/individual_id.py
@@ -35,7 +35,18 @@ class IndividualIDNumber:
         'regexp': re.compile(r'^(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<century>\d)'
                              r'(?P<sn>\d{4})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Individual Identification Number',
+                  'ЖСН',
+                  'ZhSN',
+                  'ИИН',
+                  'IIN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Kazakhstan',
+                  'https://korgan-zan.kz/en/obtaining-iin-and-bin-in-kazakhstan/',
+                  'https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Kazakhstan-TIN.pdf'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/kor/arc.py b/idnumbers/nationalid/kor/arc.py
index 580a5bd1..3d1de73f 100644
--- a/idnumbers/nationalid/kor/arc.py
+++ b/idnumbers/nationalid/kor/arc.py
@@ -1,4 +1,5 @@
-from .national_id import NationalID
+from .resident_registration import ResidentRegistration
+from ..util import alias_of
 
-ARC = NationalID
-"""alias of NationalID"""
+ARC = alias_of(ResidentRegistration)
+"""alias of ResidentRegistration"""
diff --git a/idnumbers/nationalid/kor/old_national_id.py b/idnumbers/nationalid/kor/old_registration_registration.py
similarity index 64%
rename from idnumbers/nationalid/kor/old_national_id.py
rename to idnumbers/nationalid/kor/old_registration_registration.py
index dafced3e..993af550 100644
--- a/idnumbers/nationalid/kor/old_national_id.py
+++ b/idnumbers/nationalid/kor/old_registration_registration.py
@@ -2,7 +2,7 @@
 from types import SimpleNamespace
 from typing import Literal, Optional
 from ..util import weighted_modulus_digit, modulus_overflow_mod10, validate_regexp
-from .national_id import NationalID, ParseResult
+from .resident_registration import ResidentRegistration, ParseResult
 
 
 def normalize(id_number):
@@ -18,7 +18,7 @@ class OldIDParseResult(ParseResult):
     """check digits"""
 
 
-class OldNationalID(NationalID):
+class OldResidentRegistration(ResidentRegistration):
     """
     KOR National ID number format. The ARC is the same as NationalID.
     # https://en.wikipedia.org/wiki/Resident_registration_number
@@ -34,7 +34,16 @@ class OldNationalID(NationalID):
                              r'(?P<gender>\d)'
                              r'(?P<location>\d{4})'
                              r'(?P<sn>\d)'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Resident Registration Number',
+                  '주민등록번호',
+                  'RRN',
+                  '住民登錄番號',
+                  'Jumin Deungnok Beonho'],
+        'links': ['https://en.wikipedia.org/wiki/Resident_registration_number',
+                  'https://centers.ibs.re.kr/html/living_en/overview/arc.html'],
+        'deprecated': True
     })
 
     MAGIC_MULTIPLIER = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
@@ -45,18 +54,18 @@ def validate(id_number: str) -> bool:
         """
         Validate the old KOR id number
         """
-        if not validate_regexp(id_number, OldNationalID.METADATA.regexp):
+        if not validate_regexp(id_number, OldResidentRegistration.METADATA.regexp):
             return False
-        return OldNationalID.parse(id_number) is not None
+        return OldResidentRegistration.parse(id_number) is not None
 
     @staticmethod
     def parse(id_number: str) -> Optional[OldIDParseResult]:
         """prase the result"""
-        match_obj = re.match(OldNationalID.METADATA.regexp, id_number)
-        new_result = NationalID.parse(id_number)
+        match_obj = re.match(OldResidentRegistration.METADATA.regexp, id_number)
+        new_result = ResidentRegistration.parse(id_number)
         if not new_result:
             return None
-        if not OldNationalID.checksum(id_number):
+        if not OldResidentRegistration.checksum(id_number):
             return None
         return {
             **new_result,
@@ -68,10 +77,11 @@ def parse(id_number: str) -> Optional[OldIDParseResult]:
     @staticmethod
     def checksum(id_number) -> bool:
         """multiply the magic number and find the modulus"""
-        if not validate_regexp(id_number, OldNationalID.METADATA.regexp):
+        if not validate_regexp(id_number, OldResidentRegistration.METADATA.regexp):
             return False
         normalized = normalize(id_number)
         # it uses modulus 11 algorithm with magic numbers
         numbers = [int(char) for char in normalized]
-        modulus = modulus_overflow_mod10(weighted_modulus_digit(numbers[:-1], OldNationalID.MAGIC_MULTIPLIER, 11))
+        modulus = modulus_overflow_mod10(
+            weighted_modulus_digit(numbers[:-1], OldResidentRegistration.MAGIC_MULTIPLIER, 11))
         return modulus == numbers[-1]
diff --git a/idnumbers/nationalid/kor/national_id.py b/idnumbers/nationalid/kor/resident_registration.py
similarity index 71%
rename from idnumbers/nationalid/kor/national_id.py
rename to idnumbers/nationalid/kor/resident_registration.py
index 60d26a45..06779eff 100644
--- a/idnumbers/nationalid/kor/national_id.py
+++ b/idnumbers/nationalid/kor/resident_registration.py
@@ -26,9 +26,9 @@ class OldIDParseResult(ParseResult):
     """check digits"""
 
 
-class NationalID:
+class ResidentRegistration:
     """
-    KOR National ID number format. The ARC is the same as NationalID. KOR removed the checksum and location
+    KOR resident registration number format. The ARC is the same as ResidentRegistration. KOR removed the checksum and location
     from Oct. 2020 to protect privacy.
     # https://en.wikipedia.org/wiki/Resident_registration_number
     # https://centers.ibs.re.kr/html/living_en/overview/arc.html
@@ -41,7 +41,16 @@ class NationalID:
         'checksum': False,
         'regexp': re.compile(r'^(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})-'
                              r'(?P<gender>\d)'
-                             r'(?P<sn>\d{6})$')
+                             r'(?P<sn>\d{6})$'),
+        'alias_of': None,
+        'names': ['Resident Registration Number',
+                  '주민등록번호',
+                  'RRN',
+                  '住民登錄番號',
+                  'Jumin Deungnok Beonho'],
+        'links': ['https://en.wikipedia.org/wiki/Resident_registration_number',
+                  'https://centers.ibs.re.kr/html/living_en/overview/arc.html'],
+        'deprecated': False
     })
 
     CITIZENSHIP_MAP = {
@@ -77,15 +86,15 @@ def validate(id_number: str) -> bool:
         """
         Validate the KOR id number
         """
-        if not validate_regexp(id_number, NationalID.METADATA.regexp):
+        if not validate_regexp(id_number, ResidentRegistration.METADATA.regexp):
             return False
-        return NationalID.parse(id_number) is not None
+        return ResidentRegistration.parse(id_number) is not None
 
     @staticmethod
     def parse(id_number: str) -> Optional[ParseResult]:
         """parse the result"""
-        match_obj = NationalID.METADATA.regexp.match(id_number)
-        return NationalID.build_parse_result(match_obj)
+        match_obj = ResidentRegistration.METADATA.regexp.match(id_number)
+        return ResidentRegistration.build_parse_result(match_obj)
 
     @staticmethod
     def build_parse_result(match_obj: re.Match[str]) -> Optional[ParseResult]:
@@ -96,12 +105,12 @@ def build_parse_result(match_obj: re.Match[str]) -> Optional[ParseResult]:
         dd = int(match_obj.group('dd'))
         gender = int(match_obj.group('gender'))
         sn = match_obj.group('sn')
-        yyyy_base = NationalID.DOB_BASE_MAP[gender]
+        yyyy_base = ResidentRegistration.DOB_BASE_MAP[gender]
         try:
             return {
                 'yyyymmdd': date(yyyy_base + yy, mm, dd),
                 'gender': Gender.MALE if gender % 2 == 1 else Gender.FEMALE,
-                'citizenship': NationalID.CITIZENSHIP_MAP[gender],
+                'citizenship': ResidentRegistration.CITIZENSHIP_MAP[gender],
                 'sn': sn
             }
         except ValueError:
diff --git a/idnumbers/nationalid/kwt/civil_number.py b/idnumbers/nationalid/kwt/civil_number.py
index 5b720746..3b9d5f91 100644
--- a/idnumbers/nationalid/kwt/civil_number.py
+++ b/idnumbers/nationalid/kwt/civil_number.py
@@ -31,7 +31,13 @@ class CivilNumber:
                              r'(?P<mm>\d{2})'
                              r'(?P<dd>\d{2})'
                              r'(?P<sn>\d{4})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Civil Number',
+                  'الرقم المدني'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Kuwait',
+                  'https://prakhar.me/articles/kuwait-civil-id-checksum/'],
+        'deprecated': False
     })
 
     MULTIPLIER = [2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
diff --git a/idnumbers/nationalid/lka/national_id.py b/idnumbers/nationalid/lka/national_id.py
index e1c4541d..3a573382 100644
--- a/idnumbers/nationalid/lka/national_id.py
+++ b/idnumbers/nationalid/lka/national_id.py
@@ -34,7 +34,12 @@ class NationalID:
         'regexp': re.compile(r'^(?P<year>\d{4})'
                              r'(?P<days>\d{3})'
                              r'(?P<sn>\d{4})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Sri_Lanka',
+                  'https://drp.gov.lk/Templates/Artical%20-%20English%20new%20number.html'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [8, 4, 3, 2, 7, 6, 5, 7, 4, 3, 2]
diff --git a/idnumbers/nationalid/lka/old_national_id.py b/idnumbers/nationalid/lka/old_national_id.py
index 5bbd3626..a0b8b572 100644
--- a/idnumbers/nationalid/lka/old_national_id.py
+++ b/idnumbers/nationalid/lka/old_national_id.py
@@ -26,7 +26,12 @@ class OldNationalID:
                              r'(?P<days>\d{3})'
                              r'(?P<sn>\d{3})'
                              r'(?P<checksum>\d)'
-                             r'(?P<citizenship>[XxVv])$')
+                             r'(?P<citizenship>[XxVv])$'),
+        'alias_of': None,
+        'names': ['National ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Sri_Lanka',
+                  'https://drp.gov.lk/Templates/Artical%20-%20English%20new%20number.html'],
+        'deprecated': True
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/ltu/personal_code.py b/idnumbers/nationalid/ltu/personal_code.py
index 30599b04..e91d79c1 100644
--- a/idnumbers/nationalid/ltu/personal_code.py
+++ b/idnumbers/nationalid/ltu/personal_code.py
@@ -33,7 +33,14 @@ class PersonalCode:
         'regexp': re.compile(r'^(?P<g>\d)'
                              r'(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal Code',
+                  'asmens kodas'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Lithuania',
+                  'https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Lithuania-TIN.pdf'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/lux/national_id.py b/idnumbers/nationalid/lux/national_id.py
index 76daef5e..85b58eab 100644
--- a/idnumbers/nationalid/lux/national_id.py
+++ b/idnumbers/nationalid/lux/national_id.py
@@ -32,7 +32,13 @@ class NationalID:
         'regexp': re.compile(r'^(?P<yyyy>\d{4})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<sn>\d{3})'
                              r'(?P<checksum1>\d)'
-                             r'(?P<checksum2>\d)$')
+                             r'(?P<checksum2>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Luxembourg',
+                  'https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Luxembourg-TIN.pdf'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/lva/old_personal_code.py b/idnumbers/nationalid/lva/old_personal_code.py
index 7c5d6a99..17da9c85 100644
--- a/idnumbers/nationalid/lva/old_personal_code.py
+++ b/idnumbers/nationalid/lva/old_personal_code.py
@@ -19,7 +19,7 @@ class OldParseResult(TypedDict):
 
 class OldPersonalCode:
     """
-    Old Latvia national ID number format, personas kods
+    Old Latvia personal code format, personas kods
     https://en.wikipedia.org/wiki/National_identification_number#Latvia
     https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Latvia-TIN.pdf
     """
@@ -36,7 +36,14 @@ class OldPersonalCode:
         'regexp': re.compile(r'^(?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})-?'
                              r'(?P<century>\d)'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal Code',
+                  'personas kods'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Latvia',
+                  'https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Latvia-TIN.pdf'],
+        'deprecated': True
     })
 
     MULTIPLIER = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
diff --git a/idnumbers/nationalid/lva/personal_code.py b/idnumbers/nationalid/lva/personal_code.py
index 82ec9906..7b3012ad 100644
--- a/idnumbers/nationalid/lva/personal_code.py
+++ b/idnumbers/nationalid/lva/personal_code.py
@@ -8,7 +8,7 @@
 
 class PersonalCode:
     """
-    Latvia national ID number format, personas kods
+    Latvia Personal Code format, personas kods
     https://en.wikipedia.org/wiki/National_identification_number#Latvia
     https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Latvia-TIN.pdf
     """
@@ -22,7 +22,14 @@ class PersonalCode:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(\d{6}-?\d{5}$)')
+        'regexp': re.compile(r'^(\d{6}-?\d{5}$)'),
+        'alias_of': None,
+        'names': ['Personal Code',
+                  'personas kods'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Latvia',
+                  'https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/Latvia-TIN.pdf'],
+        'deprecated': False
     })
 
     MULTIPLIER = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
diff --git a/idnumbers/nationalid/mac/arc.py b/idnumbers/nationalid/mac/arc.py
index 5fee9737..658823f6 100644
--- a/idnumbers/nationalid/mac/arc.py
+++ b/idnumbers/nationalid/mac/arc.py
@@ -1,5 +1,5 @@
 from .national_id import NationalID
+from ..util import alias_of
 
-ARC = NationalID
-BIRNP = NationalID
+ARC = alias_of(NationalID)
 """alias of NationalID"""
diff --git a/idnumbers/nationalid/mac/national_id.py b/idnumbers/nationalid/mac/national_id.py
index 4d085f08..70975abd 100644
--- a/idnumbers/nationalid/mac/national_id.py
+++ b/idnumbers/nationalid/mac/national_id.py
@@ -42,7 +42,17 @@ class NationalID:
         'checksum': False,
         'regexp': re.compile(r'^(?P<doc_type>[01578])'
                              r'(?P<sn>\d{6})'
-                             r'\(?(?P<extra>\d)\)?$')
+                             r'\(?(?P<extra>\d)\)?$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'Permanent Resident Identity Card',
+                  'BIRP',
+                  'Non-Permanent Resident Identity Card',
+                  'BIRNP'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Macau',
+                  'https://en.wikipedia.org/wiki/Macau_Resident_Identity_Card',
+                  'https://validatetin.com/macao/'],
+        'deprecated': False
     })
 
     TYPE_MAP = {'0': DocType.CI, '1': DocType.FIRST_GEN, '5': DocType.MCA, '7': DocType.MPSP, '8': DocType.ENTITY}
@@ -73,7 +83,3 @@ def parse(id_number: str) -> Optional[ParseResult]:
             }
         except ValueError:
             return None
-
-
-BIRP = NationalID
-"""alias of NationalID"""
diff --git a/idnumbers/nationalid/mda/personal_code.py b/idnumbers/nationalid/mda/personal_code.py
index aae8e89b..c8c8073d 100644
--- a/idnumbers/nationalid/mda/personal_code.py
+++ b/idnumbers/nationalid/mda/personal_code.py
@@ -19,7 +19,12 @@ class PersonalCode:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{13}$')
+        'regexp': re.compile(r'^\d{13}$'),
+        'alias_of': None,
+        'names': ['Personal Code',
+                  'IDNP'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Moldova'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/mex/curp.py b/idnumbers/nationalid/mex/curp.py
index 8c6d05dc..a93548cd 100644
--- a/idnumbers/nationalid/mex/curp.py
+++ b/idnumbers/nationalid/mex/curp.py
@@ -43,7 +43,15 @@ class CURP:
                              r'(?P<location>[A-Z]{2})'
                              r'(?P<consonant>[A-Z]{3})'
                              r'(?P<sn>[0-9A-Z])'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['CURP',
+                  'Clave Única de Registro de Población',
+                  'Unique Population Registry Code',
+                  'Personal ID Code Number'],
+        'links': ['https://en.wikipedia.org/wiki/Unique_Population_Registry_Code',
+                  'http://sistemas.uaeh.edu.mx/dce/admisiones/docs/guia_CURP.pdf'],
+        'deprecated': False
     })
 
     ID_CHARS = '0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ'
diff --git a/idnumbers/nationalid/mys/nric.py b/idnumbers/nationalid/mys/nric.py
index 3678409a..6c7778b2 100644
--- a/idnumbers/nationalid/mys/nric.py
+++ b/idnumbers/nationalid/mys/nric.py
@@ -36,7 +36,13 @@ class NRIC:
         'checksum': False,
         'regexp': re.compile(r'^(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})-?'
                              r'(?P<pb>\d{2})-?'
-                             r'(?P<sn>\d{4})$')
+                             r'(?P<sn>\d{4})$'),
+        'alias_of': None,
+        'names': ['National Registration Identity Card Number',
+                  'NRIC'],
+        'links': ['https://en.wikipedia.org/wiki/Malaysian_identity_card#'
+                  'Structure_of_the_National_Registration_Identity_Card_Number_(NRIC)'],
+        'deprecated': False
     })
 
     WRONG_PB_CODE = ['00', '17', '18', '19', '20',
diff --git a/idnumbers/nationalid/nga/national_id.py b/idnumbers/nationalid/nga/national_id.py
index 862f5c15..d23ff17e 100644
--- a/idnumbers/nationalid/nga/national_id.py
+++ b/idnumbers/nationalid/nga/national_id.py
@@ -18,7 +18,12 @@ class NationalID:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{11}$')
+        'regexp': re.compile(r'^\d{11}$'),
+        'alias_of': None,
+        'names': ['National Identification Number',
+                  'NIN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Nigeria'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/nld/national_id.py b/idnumbers/nationalid/nld/national_id.py
index 18487ed5..6ca9d7c4 100644
--- a/idnumbers/nationalid/nld/national_id.py
+++ b/idnumbers/nationalid/nld/national_id.py
@@ -22,7 +22,15 @@ class BSN:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'(?!0000.00.000)^\d{4}\.\d{2}\.\d{3}$')
+        'regexp': re.compile(r'(?!0000.00.000)^\d{4}\.\d{2}\.\d{3}$'),
+        'alias_of': None,
+        'names': ['Burgerservicenummer',
+                  'BSN',
+                  'Citizen Service Number',
+                  'Personal Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Netherlands',
+                  'https://nl.wikipedia.org/wiki/Burgerservicenummer'],
+        'deprecated': False
 
     })
 
diff --git a/idnumbers/nationalid/nor/national_id.py b/idnumbers/nationalid/nor/national_id.py
index ab58b38e..617d1b8c 100644
--- a/idnumbers/nationalid/nor/national_id.py
+++ b/idnumbers/nationalid/nor/national_id.py
@@ -34,7 +34,15 @@ class NationalID:
                              r'(?P<mm>\d{2})'
                              r'(?P<yy>\d{2})'
                              r'(?P<individual_number>\d{3})'
-                             r'(?P<checksum>\d{2})$')
+                             r'(?P<checksum>\d{2})$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'fødselsnummer',
+                  'birth number',
+                  'riegádannummir'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Norway',
+                  'https://en.wikipedia.org/wiki/National_identity_number_(Norway)'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/npl/national_id.py b/idnumbers/nationalid/npl/national_id.py
index fa828685..b73c392a 100644
--- a/idnumbers/nationalid/npl/national_id.py
+++ b/idnumbers/nationalid/npl/national_id.py
@@ -19,8 +19,14 @@ class NationalID:
         # has parse function
         'checksum': False,
         # has checksum function
-        'regexp': re.compile(r'^\d{11}$')
+        'regexp': re.compile(r'^\d{11}$'),
         # regular expression to validate the id
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'NIN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Nepal',
+                  'https://nimc.gov.ng/about-nin/'],
+        'deprecated': False
     })
 
     @staticmethod
@@ -29,9 +35,3 @@ def validate(id_number: str) -> bool:
         Validate
         """
         return validate_regexp(id_number, NationalID.METADATA.regexp)
-
-
-NIN = NationalID
-"""
-alias of https://nimc.gov.ng/about-nin/
-"""
diff --git a/idnumbers/nationalid/nzl/driver_license.py b/idnumbers/nationalid/nzl/driver_license.py
index 6ea7bec3..b3fac659 100644
--- a/idnumbers/nationalid/nzl/driver_license.py
+++ b/idnumbers/nationalid/nzl/driver_license.py
@@ -19,7 +19,15 @@ class DriverLicenseNumber:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\w{2}\d{6}$')
+        'regexp': re.compile(r'^\w{2}\d{6}$'),
+        'alias_of': None,
+        'names': ['Driver License'],
+        'links': ['https://techdocs.broadcom.com/us/en/symantec-security-software/information-security/'
+                  'data-loss-prevention/15-8/about-data-loss-prevention-policies-v27576413-d327e9/'
+                  'library-of-system-data-identifiers-v95989112-d327e56315/'
+                  'new-zealand-driver-s-licence-number-v130004625-d327e90104/'
+                  'new-zealand-driver-s-licence-number-narrow-breadth-v130007408-d327e90179.html#v130007408'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/nzl/health_index.py b/idnumbers/nationalid/nzl/health_index.py
index ffae6dbc..fc5a4957 100644
--- a/idnumbers/nationalid/nzl/health_index.py
+++ b/idnumbers/nationalid/nzl/health_index.py
@@ -23,7 +23,16 @@ class NationalHealthIndexNumber:
         'regexp': re.compile(r'^('
                              r'[A-HJ-NP-Z]{3}\d{4}|'
                              r'[A-HJ-NP-Z]{3}\d{2}[A-HJ-NP-Z]{2}|'
-                             r')$')
+                             r')$'),
+        'alias_of': None,
+        'names': ['National Health Index Number',
+                  'NHI'],
+        'links': ['https://techdocs.broadcom.com/us/en/symantec-security-software/information-security/'
+                  'data-loss-prevention/15-8/about-data-loss-prevention-policies-v27576413-d327e9/'
+                  'library-of-system-data-identifiers-v95989112-d327e56315/'
+                  'new-zealand-national-health-index-number-v117807810-d327e90250/'
+                  'new-zealand-national-health-index-number-narrow-br-v117808786-d327e90350.html'],
+        'deprecated': False
     })
 
     ALPHABET_LIST = list('ABCDEFGHJKLMNPQRSTUVWXYZ')
diff --git a/idnumbers/nationalid/nzl/inland_revenue_department.py b/idnumbers/nationalid/nzl/inland_revenue_department.py
index 0e0eda94..856f6d67 100644
--- a/idnumbers/nationalid/nzl/inland_revenue_department.py
+++ b/idnumbers/nationalid/nzl/inland_revenue_department.py
@@ -28,7 +28,13 @@ class InlandRevenueDepartmentNumber:
         'regexp': re.compile(r'^('
                              r'\d{9}|\d{3}-\d{3}-\d{3}|'
                              r'\d{8}|\d{2}-\d{3}-\d{3}'
-                             r')$')
+                             r')$'),
+        'alias_of': None,
+        'names': ['Inland Revenue Department Number',
+                  'IRD'],
+        'links': ['https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/New%20Zealand-TIN.pdf'],
+        'deprecated': False
     })
 
     PHASE1_MULTIPLIER = [3, 2, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/nzl/passport.py b/idnumbers/nationalid/nzl/passport.py
index d26f4982..72476eac 100644
--- a/idnumbers/nationalid/nzl/passport.py
+++ b/idnumbers/nationalid/nzl/passport.py
@@ -19,7 +19,16 @@ class PassportNumber:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^([Ll][Aa]|[Ll][Dd]|[Ll][Ff]|[Nn]|[Ee][Aa]|[Ll][Hh])\d{6}$')
+        'regexp': re.compile(r'^([Ll][Aa]|[Ll][Dd]|[Ll][Ff]|[Nn]|[Ee][Aa]|[Ll][Hh])\d{6}$'),
+        'alias_of': None,
+        'names': ['Passport Number',
+                  'NIN'],
+        'links': ['https://techdocs.broadcom.com/us/en/symantec-security-software/information-security/'
+                  'data-loss-prevention/15-8/about-data-loss-prevention-policies-v27576413-d327e9/'
+                  'library-of-system-data-identifiers-v95989112-d327e56315/'
+                  'new-zealand-passport-number-v130004628-d327e90423/'
+                  'new-zealand-passport-number-narrow-breadth-v130007458-d327e90528.html'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/pak/national_id.py b/idnumbers/nationalid/pak/national_id.py
index ba49e3df..ded5a851 100644
--- a/idnumbers/nationalid/pak/national_id.py
+++ b/idnumbers/nationalid/pak/national_id.py
@@ -32,7 +32,18 @@ class NationalID:
         'checksum': False,
         'regexp': re.compile(r'^(?P<location>\d{5})-?'
                              r'(?P<sn>\d{7})-?'
-                             r'(?P<gender>\d)$')
+                             r'(?P<gender>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Card Number',
+                  'CNIC',
+                  'NIC',
+                  'قومی شناختی کارڈ'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Pakistan',
+                  'https://en.wikipedia.org/wiki/CNIC_(Pakistan)#Security_features',
+                  'https://www.geo.tv/latest/250118-mystery-behind-13-digit-cnic-number',
+                  'https://www.informationpk.com/'
+                  'interesting-information-about-or-meaning-of-nadra-cnic-13-digits-number/'],
+        'deprecated': False
     })
     """metadata of this id"""
 
diff --git a/idnumbers/nationalid/phl/national_id.py b/idnumbers/nationalid/phl/phil_id.py
similarity index 50%
rename from idnumbers/nationalid/phl/national_id.py
rename to idnumbers/nationalid/phl/phil_id.py
index ff9b0c63..d4d985df 100644
--- a/idnumbers/nationalid/phl/national_id.py
+++ b/idnumbers/nationalid/phl/phil_id.py
@@ -3,9 +3,9 @@
 from ..util import validate_regexp
 
 
-class NationalID:
+class PhilID:
     """
-    Philippines National ID number, PCN
+    Philippines PhilID Card Number, PCN
     https://en.wikipedia.org/wiki/National_identification_number#Philippines
     """
     METADATA = SimpleNamespace(**{
@@ -15,7 +15,14 @@ class NationalID:
         'max_length': 12,
         'parsable': False,
         'checksum': False,
-        'regexp': re.compile(r'^(\d{4}[ -]?\d{7}[ -]?\d)$')
+        'regexp': re.compile(r'^(\d{4}[ -]?\d{7}[ -]?\d)$'),
+        'alias_of': None,
+        'names': ['PhilID Card Number',
+                  'PCN',
+                  'PhilSys'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Philippines',
+                  'https://en.wikipedia.org/wiki/Philippine_national_identity_card'],
+        'deprecated': False
 
     })
 
@@ -24,4 +31,4 @@ def validate(id_number: str) -> bool:
         """
         Validate the PHL id number
         """
-        return validate_regexp(id_number, NationalID.METADATA.regexp)
+        return validate_regexp(id_number, PhilID.METADATA.regexp)
diff --git a/idnumbers/nationalid/png/national_id.py b/idnumbers/nationalid/png/national_id.py
index 7aea11f3..77a517a6 100644
--- a/idnumbers/nationalid/png/national_id.py
+++ b/idnumbers/nationalid/png/national_id.py
@@ -7,7 +7,7 @@
 class NationalID:
     """
     Papua New Guinea national id, NID
-    https://en.wikipedia.org/wiki/National_identification_number#Moldova
+    https://en.wikipedia.org/wiki/National_identification_number#Papua_New_Guinea
     """
     METADATA = SimpleNamespace(**{
         'iso3166_alpha2': 'PG',
@@ -19,7 +19,12 @@ class NationalID:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{10}$')
+        'regexp': re.compile(r'^\d{10}$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'NID'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Papua_New_Guinea'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/pol/pesel.py b/idnumbers/nationalid/pol/pesel.py
index 0defd114..34c145e8 100644
--- a/idnumbers/nationalid/pol/pesel.py
+++ b/idnumbers/nationalid/pol/pesel.py
@@ -36,7 +36,14 @@ class PESEL:
                              r'(?P<mm>\d{2})'
                              r'(?P<dd>\d{2})'
                              r'(?P<sn>\d{4})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['PESEL',
+                  'Powszechny Elektroniczny System Ewidencji Ludności',
+                  'Universal Electronic System for Registration of the Population'],
+        'links': ['https://en.wikipedia.org/wiki/PESEL',
+                  'https://en.wikipedia.org/wiki/National_identification_number#Poland'],
+        'deprecated': False
     })
 
     MAGIC_NUMBERS = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
diff --git a/idnumbers/nationalid/prt/civil_id.py b/idnumbers/nationalid/prt/civil_id.py
index 3a51b673..72ceef66 100644
--- a/idnumbers/nationalid/prt/civil_id.py
+++ b/idnumbers/nationalid/prt/civil_id.py
@@ -17,7 +17,15 @@ class CivilIDNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^(\d{9})$')
+        'regexp': re.compile(r'^(\d{9})$'),
+        'alias_of': None,
+        'names': ['Civil ID Number',
+                  'Número de identificação civil',
+                  'NIC',
+                  'BI'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Portugal',
+                  'https://www.atractor.pt/mat/alg_controlo/bifm2-_en.html'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/prt/tax_id.py b/idnumbers/nationalid/prt/tax_id.py
index c361ef0b..72bc8244 100644
--- a/idnumbers/nationalid/prt/tax_id.py
+++ b/idnumbers/nationalid/prt/tax_id.py
@@ -16,7 +16,13 @@ class TaxIDNumber:
         'max_length': 9,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^([12356][0-9]|45|7[012]|9[0189])\d{7}$')
+        'regexp': re.compile(r'^([12356][0-9]|45|7[012]|9[0189])\d{7}$'),
+        'alias_of': None,
+        'names': ['Tax ID Number',
+                  'Número de identificação fiscal'
+                  'NIF'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Portugal'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/rou/personal_code.py b/idnumbers/nationalid/rou/personal_code.py
index acdebccb..496dc0fb 100644
--- a/idnumbers/nationalid/rou/personal_code.py
+++ b/idnumbers/nationalid/rou/personal_code.py
@@ -38,7 +38,15 @@ class PersonalNumericalCode:
                              r'(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<location>\d{2})'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal Numerical Code',
+                  'Cod Numeric Personal',
+                  'CNP',
+                  'Carte de identitate'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Romania',
+                  'https://en.wikipedia.org/wiki/Romanian_identity_card'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9]
diff --git a/idnumbers/nationalid/sgp/national_id.py b/idnumbers/nationalid/sgp/national_id.py
index dec6f4e9..20b3be31 100644
--- a/idnumbers/nationalid/sgp/national_id.py
+++ b/idnumbers/nationalid/sgp/national_id.py
@@ -18,7 +18,15 @@ class NationalID:
         'checksum': True,
         'regexp': re.compile(r'^(?P<type>[STFGM])'
                              r'(?P<sn>\d{7})'
-                             r'(?P<checksum>[A-Z])$')
+                             r'(?P<checksum>[A-Z])$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'NRIC',
+                  'UIN',
+                  'FIN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Singapore',
+                  'https://www.ngiam.net/NRIC/NRIC_numbers.pdf'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [2, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/smr/social_security.py b/idnumbers/nationalid/smr/social_security.py
index 217443a5..f7ba0fe9 100644
--- a/idnumbers/nationalid/smr/social_security.py
+++ b/idnumbers/nationalid/smr/social_security.py
@@ -18,8 +18,14 @@ class SocialSecurityNumber:
         # has parse function
         'checksum': False,
         # has checksum function
-        'regexp': re.compile(r'^\d{9}$')
+        'regexp': re.compile(r'^\d{9}$'),
         # regular expression to validate the id
+        'alias_of': None,
+        'names': ['Social Security Number',
+                  'SSI'],
+        'links': ['https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/San-Marino-TIN.pdf'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/smr/tax_registration.py b/idnumbers/nationalid/smr/tax_registration.py
index 30a4b3fd..367d92b1 100644
--- a/idnumbers/nationalid/smr/tax_registration.py
+++ b/idnumbers/nationalid/smr/tax_registration.py
@@ -18,8 +18,14 @@ class TaxRegistrationNumber:
         # has parse function
         'checksum': False,
         # has checksum function
-        'regexp': re.compile(r'^SM\d{5}$')
+        'regexp': re.compile(r'^SM\d{5}$'),
         # regular expression to validate the id
+        'alias_of': None,
+        'names': ['Entity Tax Registration Number',
+                  'COE'],
+        'links': ['https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/'
+                  'tax-identification-numbers/San-Marino-TIN.pdf'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/svk/birth_number.py b/idnumbers/nationalid/svk/birth_number.py
index bc17d874..27b5bd92 100644
--- a/idnumbers/nationalid/svk/birth_number.py
+++ b/idnumbers/nationalid/svk/birth_number.py
@@ -36,8 +36,14 @@ class BirthNumber:
                              r'(?P<mm>\d{2})'
                              r'(?P<dd>\d{2})/?'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
         # regular expression to validate the id
+        'alias_of': None,
+        'names': ['Birth Number',
+                  'rodné číslo',
+                  'RČ'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Slovakia'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/svk/citizen_id.py b/idnumbers/nationalid/svk/citizen_id.py
index 4d44eaa1..ab0e6027 100644
--- a/idnumbers/nationalid/svk/citizen_id.py
+++ b/idnumbers/nationalid/svk/citizen_id.py
@@ -19,8 +19,15 @@ class CitizenIDNumber:
         # has parse function
         'checksum': False,
         # has checksum function
-        'regexp': re.compile(r'^[A-Z]{2} ?\d{6}$')
+        'regexp': re.compile(r'^[A-Z]{2} ?\d{6}$'),
         # regular expression to validate the id
+        'alias_of': None,
+        'names': ['Citizen Identification Card Number',
+                  'Číslo občianskeho preukazu',
+                  'ČOP'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Slovakia',
+                  'https://en.wikipedia.org/wiki/Slovak_identity_card'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/swe/personal_id.py b/idnumbers/nationalid/swe/personal_id.py
index 6246d499..e2bdaed2 100644
--- a/idnumbers/nationalid/swe/personal_id.py
+++ b/idnumbers/nationalid/swe/personal_id.py
@@ -39,7 +39,15 @@ class PersonalIdentityNumber:
         'regexp': re.compile(r'^(?P<yy>\d{2})(?P<mm>\d{2})(?P<dd>\d{2})'
                              r'(?P<sep>[+|-])'
                              r'(?!000)(?P<birth_number>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Personal Identity Number',
+                  'personnummer'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Sweden',
+                  'https://en.wikipedia.org/wiki/Personal_identity_number_(Sweden)',
+                  'https://swedish.identityinfo.net/',
+                  'https://personnummer.dev/'],
+        'deprecated': False
 
     })
 
diff --git a/idnumbers/nationalid/tha/national_id.py b/idnumbers/nationalid/tha/national_id.py
index 0f995c15..d9a827ff 100644
--- a/idnumbers/nationalid/tha/national_id.py
+++ b/idnumbers/nationalid/tha/national_id.py
@@ -64,7 +64,16 @@ class NationalID:
                              r'(?P<province>\d{2})'
                              r'(?P<district>\d{2})[ -]?'
                              r'(?P<sn>\d{5}[ -]?\d{2})[ -]?'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'Population Identification Code',
+                  'บัตรประชาชน',
+                  'รหัสบัตรประชาชน'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Thailand',
+                  'https://learn.microsoft.com/en-us/microsoft-365/compliance/'
+                  'sit-defn-thai-population-identification-code?view=o365-worldwide'],
+        'deprecated': False
     })
 
     PROVINCE_LIST = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19',
diff --git a/idnumbers/nationalid/tur/national_id.py b/idnumbers/nationalid/tur/national_id.py
index f984f027..fe7bbe25 100644
--- a/idnumbers/nationalid/tur/national_id.py
+++ b/idnumbers/nationalid/tur/national_id.py
@@ -16,7 +16,13 @@ class NationalID:
         'max_length': 11,
         'parsable': False,
         'checksum': True,
-        'regexp': re.compile(r'^[1-9]\d{10}$')
+        'regexp': re.compile(r'^[1-9]\d{10}$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'Türkiye Cumhuriyeti Kimlik Numarası',
+                  'T.C. Kimlik No.'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Turkey'],
+        'deprecated': False
     })
 
     MULTIPLIERS = [7, -1, 7, -1, 7, -1, 7, -1, 7]
diff --git a/idnumbers/nationalid/twn/national_id.py b/idnumbers/nationalid/twn/national_id.py
index 5f606b60..2ac62f4c 100644
--- a/idnumbers/nationalid/twn/national_id.py
+++ b/idnumbers/nationalid/twn/national_id.py
@@ -34,7 +34,15 @@ class NationalID:
         'regexp': re.compile(r'^(?P<location>[A-Z])'
                              r'(?P<gender>[12])'
                              r'(?P<sn>\d{7})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  '國民身分證統一編號',
+                  '身分證字號'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Taiwan',
+                  'https://zh.wikipedia.org/wiki/'
+                  '%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89'],
+        'deprecated': False
     })
 
     LOCATION_NUM = [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6],
diff --git a/idnumbers/nationalid/ukr/entity_id.py b/idnumbers/nationalid/ukr/entity_id.py
index 996aad7d..0d6ae897 100644
--- a/idnumbers/nationalid/ukr/entity_id.py
+++ b/idnumbers/nationalid/ukr/entity_id.py
@@ -22,7 +22,14 @@ class EntityIDNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{8}$')
+        'regexp': re.compile(r'^\d{8}$'),
+        'alias_of': None,
+        'names': ['Legal Entity ID Number',
+                  'EDRPOU',
+                  'ЄДРПОУ'],
+        'links': ['https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%84%D0%94%D0%A0%D0%9F%D0%9E%D0%A3',
+                  'https://1cinfo.com.ua/Article/Detail/Proverka_koda_po_EDRPOU/'],
+        'deprecated': False
     })
 
     PHASE1_MULTIPLIER = [1, 2, 3, 4, 5, 6, 7]
diff --git a/idnumbers/nationalid/ukr/taxpayer_id.py b/idnumbers/nationalid/ukr/taxpayer_id.py
index ebe46e4b..7d1cf0e4 100644
--- a/idnumbers/nationalid/ukr/taxpayer_id.py
+++ b/idnumbers/nationalid/ukr/taxpayer_id.py
@@ -30,7 +30,14 @@ class TaxpayerIDNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^\d{10}$')
+        'regexp': re.compile(r'^\d{10}$'),
+        'alias_of': None,
+        'names': ['Taxpayer ID Number',
+                  'RNTRC',
+                  'РНОКПП',
+                  'taxpayer registration number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Ukraine'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER: List[int] = [-1, 5, 7, 9, 4, 6, 10, 5, 7]
diff --git a/idnumbers/nationalid/usa/social_security.py b/idnumbers/nationalid/usa/social_security.py
index 466257ff..c81f44c8 100644
--- a/idnumbers/nationalid/usa/social_security.py
+++ b/idnumbers/nationalid/usa/social_security.py
@@ -20,7 +20,12 @@ class SocialSecurityNumber:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$')
+        'regexp': re.compile(r'^(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$'),
+        'alias_of': None,
+        'names': ['Social Security number',
+                  'SSN'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#United_States'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/util.py b/idnumbers/nationalid/util.py
index a3833c57..5cb4d7f6 100644
--- a/idnumbers/nationalid/util.py
+++ b/idnumbers/nationalid/util.py
@@ -1,3 +1,4 @@
+from copy import copy
 from re import Pattern
 from typing import List, Literal, Optional, Type, cast
 
@@ -151,3 +152,14 @@ def ean13_digit(numbers: List[int]) -> CHECK_DIGIT:
     modulus = total % 10
     return cast(CHECK_DIGIT,
                 0 if modulus == 0 else (10 - modulus))
+
+
+def alias_of(cls: Type) -> Type:
+    assert hasattr(cls, 'METADATA'), f'the type {cls} must have METADATA attribute'
+    metadata = copy(cls.METADATA)
+    metadata.alias_of = cls
+
+    class AliasType(cls):
+        METADATA = metadata
+
+    return AliasType
diff --git a/idnumbers/nationalid/ven/fiscal_info.py b/idnumbers/nationalid/ven/fiscal_info.py
index 1574abf1..0321b55c 100644
--- a/idnumbers/nationalid/ven/fiscal_info.py
+++ b/idnumbers/nationalid/ven/fiscal_info.py
@@ -26,7 +26,13 @@ class FiscalInformationNumber:
         # has checksum function
         'checksum': True,
         # regular expression to validate the id
-        'regexp': re.compile(r'^[VEJPG]-?\d{8}-?\d$')
+        'regexp': re.compile(r'^[VEJPG]-?\d{8}-?\d$'),
+        'alias_of': None,
+        'names': ['Fiscal Information Number',
+                  'RIF',
+                  'Registro de Informacion Fiscal'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Venezuela'],
+        'deprecated': False
     })
 
     WEIGHTS = [1, 3, 2, 7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/ven/id_card.py b/idnumbers/nationalid/ven/id_card.py
index 36115d90..4c23a668 100644
--- a/idnumbers/nationalid/ven/id_card.py
+++ b/idnumbers/nationalid/ven/id_card.py
@@ -19,7 +19,12 @@ class IDCardNumber:
         # has checksum function
         'checksum': False,
         # regular expression to validate the id
-        'regexp': re.compile(r'^V ?\d{2}\.?\d{3}\.?\d{3}$')
+        'regexp': re.compile(r'^V ?\d{2}\.?\d{3}\.?\d{3}$'),
+        'alias_of': None,
+        'names': ['ID Card Number',
+                  'Cédula de Identidad'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Venezuela'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/vnm/national_id.py b/idnumbers/nationalid/vnm/national_id.py
index f8ec5dfe..6f2e830d 100644
--- a/idnumbers/nationalid/vnm/national_id.py
+++ b/idnumbers/nationalid/vnm/national_id.py
@@ -37,7 +37,16 @@ class NationalID:
         'regexp': re.compile(r'^(?P<province_country_code>\d{3})'
                              r'(?P<gender>\d)'
                              r'(?P<yy>\d{2})'
-                             r'(?P<sn>\d{6})$')
+                             r'(?P<sn>\d{6})$'),
+        'alias_of': None,
+        'names': ['National ID Number',
+                  'Thẻ căn cước công dân',
+                  ],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Vietnam',
+                  'https://vietnaminsider.vn/what-do-the-12-digits-on-the-citizen-id-card-with-chip-mean/',
+                  'https://lawnet.vn/en/vb/Circular-07-2016-TT-BCA-detailing-Law-on-Citizen-Identification'
+                  '-137-2015-ND-CP-5CCC3.html'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/yugoslavia.py b/idnumbers/nationalid/yugoslavia.py
index 0de924de..24dfde15 100644
--- a/idnumbers/nationalid/yugoslavia.py
+++ b/idnumbers/nationalid/yugoslavia.py
@@ -40,7 +40,19 @@ class UniqueMasterCitizenNumber:
                              r'(?P<yyy>\d{3})'
                              r'(?P<location>\d{2})'
                              r'(?P<sn>\d{3})'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['Unique  master citizen number',
+                  'JMBG',
+                  'Jedinstveni matični broj građana',
+                  'Јединствени матични број грађана',
+                  'ЈМБГ',
+                  'Единствен матичен број на граѓанинот',
+                  'ЕМБГ',
+                  'Enotna matična številka občana,',
+                  'EMŠO'],
+        'links': ['https://en.wikipedia.org/wiki/Unique_Master_Citizen_Number'],
+        'deprecated': False
     })
 
     MAGIC_MULTIPLIER = [7, 6, 5, 4, 3, 2]
diff --git a/idnumbers/nationalid/zaf/national_id.py b/idnumbers/nationalid/zaf/national_id.py
index d625ee2c..2c2ff2df 100644
--- a/idnumbers/nationalid/zaf/national_id.py
+++ b/idnumbers/nationalid/zaf/national_id.py
@@ -40,7 +40,12 @@ class NationalID:
                              r'(?P<dd>0[1-9]|[12][0-9]|3[01])'
                              r'(?P<sn>\d{4})'
                              r'(?P<citizenship>[01])([89])'
-                             r'(?P<checksum>\d)$')
+                             r'(?P<checksum>\d)$'),
+        'alias_of': None,
+        'names': ['National ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#South_Africa',
+                  'https://www.westerncape.gov.za/general-publication/decoding-your-south-african-id-number-0'],
+        'deprecated': False
     })
 
     @staticmethod
diff --git a/idnumbers/nationalid/zwe/national_id.py b/idnumbers/nationalid/zwe/national_id.py
index ba18b8b8..259dac52 100644
--- a/idnumbers/nationalid/zwe/national_id.py
+++ b/idnumbers/nationalid/zwe/national_id.py
@@ -28,7 +28,11 @@ class NationalID:
         'regexp': re.compile(r'^(?P<register_office_code>\d{2})'
                              r'(?P<national_num>(\d{6}|\d{7}))'
                              r'(?P<checksum>[A-Z])'
-                             r'(?P<district_code>\d{2}$)')
+                             r'(?P<district_code>\d{2}$)'),
+        'alias_of': None,
+        'names': ['National ID Number'],
+        'links': ['https://en.wikipedia.org/wiki/National_identification_number#Zimbabwe'],
+        'deprecated': False
     })
 
     @staticmethod


Test patch:
diff --git a/tests/nationalid/test_ALB.py b/tests/nationalid/test_ALB.py
index 02df2c2a..849d5991 100644
--- a/tests/nationalid/test_ALB.py
+++ b/tests/nationalid/test_ALB.py
@@ -5,15 +5,19 @@
 
 class TestALBValidation(TestCase):
     def test_normal_case(self):
-        self.assertTrue(ALB.IdentityNumber.validate('I90308094A'))
+        self.assertTrue(ALB.NationalID.validate('I90308094A'))
 
     def test_error_case(self):
-        self.assertFalse(ALB.IdentityNumber.validate('Z90308094Z'))
+        self.assertFalse(ALB.NationalID.validate('Z90308094Z'))
 
     def test_parse(self):
-        result = ALB.IdentityNumber.parse('I90308094A')
+        result = ALB.NationalID.parse('I90308094A')
         self.assertEqual(1989, result['yyyymmdd'].year)
         self.assertEqual(3, result['yyyymmdd'].month)
         self.assertEqual(8, result['yyyymmdd'].day)
         self.assertEqual('094', result['sn'])
         self.assertEqual('A', result['checksum'])
+
+    def test_alias(self):
+        self.assertIsNone(ALB.IdentityNumber.METADATA.alias_of)
+        self.assertEqual(ALB.IdentityNumber, ALB.NationalID.METADATA.alias_of)
diff --git a/tests/nationalid/test_KOR.py b/tests/nationalid/test_KOR.py
index c9191859..95def053 100644
--- a/tests/nationalid/test_KOR.py
+++ b/tests/nationalid/test_KOR.py
@@ -9,14 +9,14 @@ def test_normal_case(self):
         self.assertTrue(KOR.NationalID.validate('820701-2409184'))
         self.assertTrue(KOR.NationalID.validate('850408-5761193'))
         self.assertTrue(KOR.NationalID.validate('860121-4500147'))
-        self.assertTrue(KOR.OldNationalID.validate('510724-1057122'))
-        self.assertTrue(KOR.OldNationalID.validate('690212-1148921'))
-        self.assertTrue(KOR.OldNationalID.validate('731228-2686181'))
+        self.assertTrue(KOR.OldResidentRegistration.validate('510724-1057122'))
+        self.assertTrue(KOR.OldResidentRegistration.validate('690212-1148921'))
+        self.assertTrue(KOR.OldResidentRegistration.validate('731228-2686181'))
         self.assertTrue(KOR.ARC.validate('850526-6260197'))
         self.assertTrue(KOR.ARC.validate('840609-5260291'))
 
     def test_error_case(self):
-        self.assertFalse(KOR.OldNationalID.validate('820701-2409184'))
+        self.assertFalse(KOR.OldResidentRegistration.validate('820701-2409184'))
         self.assertFalse(KOR.NationalID.validate('8207012409184'))
 
     def test_parse(self):
@@ -35,7 +35,7 @@ def test_parse(self):
         self.assertEqual(Citizenship.RESIDENT, result['citizenship'])
         self.assertEqual('260197', result['sn'])
 
-        result = KOR.OldNationalID.parse('510724-1057122')
+        result = KOR.OldResidentRegistration.parse('510724-1057122')
         self.assertEqual(1951, result['yyyymmdd'].year)
         self.assertEqual(7, result['yyyymmdd'].month)
         self.assertEqual(24, result['yyyymmdd'].day)
diff --git a/tests/nationalid/test_PHL.py b/tests/nationalid/test_PHL.py
index f1aba912..46b0f58f 100644
--- a/tests/nationalid/test_PHL.py
+++ b/tests/nationalid/test_PHL.py
@@ -5,11 +5,11 @@
 
 class TestPHLValidation(TestCase):
     def test_normal_case(self):
-        self.assertTrue(PHL.NationalID.validate('1234-5678912-3'))
-        self.assertTrue(PHL.NationalID.validate('123456789123'))
+        self.assertTrue(PHL.PhilID.validate('1234-5678912-3'))
+        self.assertTrue(PHL.PhilID.validate('123456789123'))
 
     def test_error_case(self):
-        self.assertFalse(PHL.NationalID.validate('1234567890'))
+        self.assertFalse(PHL.PhilID.validate('1234567890'))
 
 
 if __name__ == '__main__':