diff --git a/toardb/auth_user/models.py b/toardb/auth_user/models.py
index 9284dd15d552b0e9932e39167e3d049a05da65d4..f00765d2e55ec5b800b1b65947c8e053afe57d50 100644
--- a/toardb/auth_user/models.py
+++ b/toardb/auth_user/models.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 from sqlalchemy import ARRAY, BigInteger, Boolean, CheckConstraint, Column, DateTime, Float, ForeignKey, \
                        Index, Integer, SmallInteger, String, Table, Text, UniqueConstraint, text, Sequence
 from sqlalchemy.orm import relationship
diff --git a/toardb/base.py b/toardb/base.py
index 531e94bff4f9baa3766cdbf1cbd87bece716803a..c1cfda241073249584d8c76ecd8e925909c41087 100644
--- a/toardb/base.py
+++ b/toardb/base.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 from sqlalchemy.ext.declarative import declarative_base
 
 Base = declarative_base()
diff --git a/toardb/contacts/crud.py b/toardb/contacts/crud.py
index 49e1d4f50a88091f2054395d92fe4436904c8db0..a4fd3ff0d7739ccbf552155ebc97bad3d668504a 100644
--- a/toardb/contacts/crud.py
+++ b/toardb/contacts/crud.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Create, Read, Update, Delete functionality
 
@@ -7,10 +6,9 @@ Create, Read, Update, Delete functionality
 from sqlalchemy.orm import Session
 from fastapi.responses import JSONResponse
 from . import models
-from .models import OK_enum
-from toardb.stationmeta.models import CN_enum
 from .schemas import PersonCreate, OrganisationCreate
 from toardb.utils.utils import get_value_from_str
+import toardb
 
 
 def get_organisation(db: Session, organisation_id: int):
@@ -27,8 +25,8 @@ def get_organisation_by_name(db: Session, name: str):
 
 def create_organisation(db: Session, organisation: OrganisationCreate):
     db_organisation = models.Organisation(**organisation.dict())
-    db_organisation.kind = get_value_from_str(OK_enum,db_organisation.kind)
-    db_organisation.country = get_value_from_str(CN_enum,db_organisation.country)
+    db_organisation.kind = get_value_from_str(toardb.toardb.OK_vocabulary,db_organisation.kind)
+    db_organisation.country = get_value_from_str(toardb.toardb.CN_vocabulary,db_organisation.country)
     db.add(db_organisation)
     result = db.commit()
     db.refresh(db_organisation)
diff --git a/toardb/contacts/models.py b/toardb/contacts/models.py
index 014eb5e5dd611fd9cef71d719388e8412d615eb6..d8b8aa33baeedd645a28e70baf08b4b8ac7356cf 100644
--- a/toardb/contacts/models.py
+++ b/toardb/contacts/models.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class Contact(Base)
 ===================
@@ -23,19 +22,6 @@ OK_enum_table = Table("ok_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-OK_enum = (
-    Enumdict(1, 'Government', 'government'),
-    Enumdict(2, 'Research', 'research'),
-    Enumdict(3, 'University', 'university'),
-    Enumdict(4, 'International', 'international'),
-    Enumdict(5, 'NonProfit', 'non-profit'),
-    Enumdict(6, 'Commercial', 'commercial'),
-    Enumdict(7, 'Individual', 'individual'),
-    Enumdict(8, 'Other', 'other')
-    )
 
 CONTACTS_ID_SEQ = Sequence('contacts_id_seq')  # define sequence explicitly
 class Contact(Base):
diff --git a/toardb/contacts/models_organisation.py b/toardb/contacts/models_organisation.py
index 59f15dfcd1375bdd9fb192e991e4f83fa4800c16..9a37ab4660e0a7da7c58fc054fe106f56246933d 100644
--- a/toardb/contacts/models_organisation.py
+++ b/toardb/contacts/models_organisation.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class Organisation (Base)
 =========================
diff --git a/toardb/contacts/models_person.py b/toardb/contacts/models_person.py
index e4071d6c51d310594c07d110411ecafba094cab1..d02a723593d344ab6ec955677c9b626c856a64bb 100644
--- a/toardb/contacts/models_person.py
+++ b/toardb/contacts/models_person.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class Person (Base)
 ===================
diff --git a/toardb/contacts/schemas.py b/toardb/contacts/schemas.py
index 796bdd4305e7541035a869327a0a027f55dc90aa..6c52e68bea9c25632c0e44f6fb9a71c24af52b78 100644
--- a/toardb/contacts/schemas.py
+++ b/toardb/contacts/schemas.py
@@ -4,10 +4,9 @@ Pydantic schemas for TOAR database
 """
 
 from typing import List, Dict, Any
-
 from pydantic import BaseModel, validator, Field
-from .models import OK_enum
-from toardb.stationmeta.models import CN_enum
+#from toardb.toardb import OK_vocabulary, CN_vocabulary
+import toardb
 
 class OrganisationBase(BaseModel):
     id: int = Field(None, description="for internal use only")
@@ -22,11 +21,11 @@ class OrganisationBase(BaseModel):
 
     @validator('kind')
     def check_kind(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), OK_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.OK_vocabulary))[0].display_str
 
     @validator('country')
     def check_country(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CN_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CN_vocabulary))[0].display_str
 
 
 class OrganisationCreate(OrganisationBase):
@@ -36,14 +35,14 @@ class OrganisationCreate(OrganisationBase):
 
     @validator('kind') 
     def check_kind(cls, v):
-        if tuple(filter(lambda x: x.string == v, OK_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.OK_vocabulary)):
             return v
         else:
             raise ValueError(f"kind of organisation not known: {v}")
 
     @validator('country')
     def check_country(cls, v):
-        if tuple(filter(lambda x: x.string == v, CN_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.CN_vocabulary)):
             return v
         else:
             raise ValueError(f"country not known: {v}")
diff --git a/toardb/data/crud.py b/toardb/data/crud.py
index 092a1966bd6f251e4a3809ee39fe0d885aa6b56c..c4312706569a58af863d0dd6978be1dda51693f5 100644
--- a/toardb/data/crud.py
+++ b/toardb/data/crud.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Create, Read, Update, Delete functionality
 
@@ -13,15 +12,14 @@ from fastapi import File, UploadFile
 from typing import List
 from fastapi.responses import JSONResponse, FileResponse
 from . import models, schemas
-from .models import DF_enum
 from toardb.variables import models as variables_models
 from toardb.stationmeta import models as stationmeta_models
 from toardb.stationmeta.crud import get_stationmeta_core
 from toardb.stationmeta.schemas import get_coordinates_from_geom, get_geom_from_coordinates
 from toardb.timeseries.models import TimeseriesChangelog
 from toardb.timeseries.crud import get_timeseries_by_unique_constraints
-from toardb.generic.models import CL_enum
 from toardb.utils.utils import get_value_from_str, get_str_from_value
+import toardb
 from autoqc.autoqc.autoqc_runner import run_autoqc
 import datetime as dt
 import pandas as pd
@@ -61,7 +59,7 @@ def get_all_data(db: Session, skip : int = 0, limit: int = 100):
 def create_data_record(db: Session, engine: Engine,
         series_id: int, datetime: dt.datetime,
         value: float, flag: str, version: str):
-    flag_num = get_value_from_str(DF_enum,flag)
+    flag_num = get_value_from_str(toardb.toardb.DF_vocabulary,flag)
     data_dict = {"datetime": datetime,
                  "value": value,
                  "flags": flag_num,
@@ -115,7 +113,7 @@ def insert_dataframe (db: Session, engine: Engine, df: pd.DataFrame, with_autoqc
 #   flags = flags.where(flags == ' Erroneous ','ErroneousValidatedUnconfirmed')
     flags = flags.where(flags == ' Erroneous ','ErroneousValidatedConfirmed')
     # exchange combined flags in dataframe
-    flag_num = [get_value_from_str(DF_enum,flag.strip()) for flag in flags]
+    flag_num = [get_value_from_str(toardb.toardb.DF_vocabulary,flag.strip()) for flag in flags]
     del df['flags']
     df.insert(1, 'flags', flag_num)
     if dry_run:
@@ -192,7 +190,7 @@ def create_data(db: Session, engine: Engine, input_handle: UploadFile = File(...
 
 def create_bulk_data(db: Session, engine: Engine, bulk: List[schemas.DataCreate], with_autoqc: bool = False, dry_run: bool = False):
     df = pd.DataFrame([x.dict() for x in bulk]).set_index("datetime")
-    flag_num = [get_value_from_str(DF_enum,flag) for flag in df['flags']]
+    flag_num = [get_value_from_str(toardb.toardb.DF_vocabulary,flag) for flag in df['flags']]
     del df['flags']
     df.insert(1, 'flags', flag_num)
     insert_result = insert_dataframe (db, engine, df, with_autoqc=with_autoqc, dry_run=dry_run)
@@ -289,7 +287,7 @@ def patch_data(db: Session, engine: Engine, description: str, version: str, inpu
         # how to determine type_of_change?
         # 4 – unspecified data value corrections (this holds also, if there is only one single value to be corrected; the addition "unspecified" keeps all possibilities open to add "specified" corrections later (e. g. from QC)
         # 5 – replaced data with a new version
-        type_of_change = get_value_from_str(CL_enum,"UnspecifiedData")
+        type_of_change = get_value_from_str(toardb.toardb.CL_vocabulary,"UnspecifiedData")
         db_changelog = TimeseriesChangelog(description=description, timeseries_id=timeseries_id, author_id=1, type_of_change=type_of_change,
                                             old_value="", new_value="", period_start=period_start, period_end=period_end, version=version)
         db.add(db_changelog)
diff --git a/toardb/data/fixtures/data.json b/toardb/data/fixtures/data.json
index 73f1c9a4300053c5b7cc7816e37f457badbd2ffd..de55906e59ec51266da33b7fa4c198c05398ea42 100644
--- a/toardb/data/fixtures/data.json
+++ b/toardb/data/fixtures/data.json
@@ -1,69 +1,69 @@
 [
   {
-    "datetime":"2012-12-16 21:00:00+01",
+    "datetime":"2012-12-16 21:00:00+00",
     "value":21.581,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-16 22:00:00+01",
+    "datetime":"2012-12-16 22:00:00+00",
     "value":13.734,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-16 23:00:00+01",
+    "datetime":"2012-12-16 23:00:00+00",
     "value":13.734,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 00:00:00+01",
+    "datetime":"2012-12-17 00:00:00+00",
     "value":7.848,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 01:00:00+01",
+    "datetime":"2012-12-17 01:00:00+00",
     "value":15.696,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 02:00:00+01",
+    "datetime":"2012-12-17 02:00:00+00",
     "value":11.772,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 03:00:00+01",
+    "datetime":"2012-12-17 03:00:00+00",
     "value":13.734,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 04:00:00+01",
+    "datetime":"2012-12-17 04:00:00+00",
     "value":19.62,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 05:00:00+01",
+    "datetime":"2012-12-17 05:00:00+00",
     "value":15.696,
     "flags":0,
     "timeseries_id":1,
     "version":"000001.000000.00000000000000"
   },
   {
-    "datetime":"2012-12-17 06:00:00+01",
+    "datetime":"2012-12-17 06:00:00+00",
     "value":5.886,
     "flags":0,
     "timeseries_id":1,
diff --git a/toardb/data/models.py b/toardb/data/models.py
index f9d5ec21f9a1d98f4246f57cd7fda006e9e72395..8cdc61a8bcb7ad17bc42479c3df3b31bde33545f 100644
--- a/toardb/data/models.py
+++ b/toardb/data/models.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 from sqlalchemy import PrimaryKeyConstraint, Column, DateTime, Float, ForeignKey, Integer, text, \
                        Table, String, CHAR
 from sqlalchemy.orm import relationship
@@ -103,30 +102,4 @@ DF_enum_table = Table("df_vocabulary",
                       Column("enum_str", String),
                       Column("enum_display_str", String)
                       )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-DF_enum = (
-    Enumdict( 0, 'OKValidatedVerified', 'OK validated verified'),
-    Enumdict( 1, 'OKValidatedQCPassed', 'OK validated QC passed'),
-    Enumdict( 2, 'OKValidatedModified', 'OK validated modified'),
-    Enumdict( 3, 'OKPreliminaryVerified', 'OK preliminary verified'),
-    Enumdict( 4, 'OKPreliminaryQCPassed', 'OK preliminary QC passed'),
-    Enumdict( 5, 'OKPreliminaryModified', 'OK preliminary modified'),
-    Enumdict( 6, 'OKEstimated', 'OK estimated'),
-    Enumdict(10, 'QuestionnableValidatedConfirmed', 'questionnable validated confirmed'),
-    Enumdict(11, 'QuestionnableValidatedUnconfirmed', 'questionnable validated unconfirmed'),
-    Enumdict(12, 'QuestionnableValidatedFlagged', 'questionnable validated flagged'),
-    Enumdict(13, 'QuestionnablePreliminaryConfirmed', 'questionnable preliminary confirmed'),
-    Enumdict(14, 'QuestionnablePreliminaryUnconfirmed', 'questionnable preliminary unconfirmed'),
-    Enumdict(15, 'QuestionnablePreliminaryFlagged', 'questionnable preliminary flagged'),
-    Enumdict(20, 'ErroneousValidatedConfirmed', 'erroneous validated confirmed'),
-    Enumdict(21, 'ErroneousValidatedUnconfirmed', 'erroneous validated unconfirmed'),
-    Enumdict(22, 'ErroneousValidatedFlagged', 'erroneous validated flagged'),
-    Enumdict(23, 'ErroneousPreliminaryConfirmed', 'erroneous preliminary confirmed'),
-    Enumdict(24, 'ErroneousPreliminaryUnconfirmed', 'erroneous preliminary unconfirmed'),
-    Enumdict(25, 'ErroneousPreliminaryFlagged', 'erroneous preliminary flagged'),
-    Enumdict(90, 'MissingValue', 'missing value'),
-    Enumdict(91, 'UnknownQualityStatus', 'unknown quality status')
-    )
 
diff --git a/toardb/data/schemas.py b/toardb/data/schemas.py
index 08ac297308fe72be0f81c6b21e982e8ab8b7312e..fa3c9eb1d35cf3354ef5fdf6bf6df1cb30fc5499 100644
--- a/toardb/data/schemas.py
+++ b/toardb/data/schemas.py
@@ -7,7 +7,7 @@ from typing import List
 
 from pydantic import BaseModel, validator, Field
 import datetime as dt
-from .models import DF_enum
+import toardb
 
 class DataBase(BaseModel):
     datetime: dt.datetime = Field(..., description="date and time of observation")
@@ -18,14 +18,14 @@ class DataBase(BaseModel):
 
     @validator('flags')
     def check_flags(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), DF_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.DF_vocabulary))[0].display_str
 
 class DataCreate(DataBase):
     pass
 
     @validator('flags')
     def check_flags(cls, v):
-        if tuple(filter(lambda x: x.string == v, DF_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.DF_vocabulary)):
             return v
         else:
             raise ValueError(f"data flag not known: {v}")
diff --git a/toardb/data/test_data.py b/toardb/data/test_data.py
index 15b36937f64bbc1506b0418816557721869af3d9..78b6e1a77b9af33e3261b2e3488391159c75ae8d 100644
--- a/toardb/data/test_data.py
+++ b/toardb/data/test_data.py
@@ -151,10 +151,10 @@ class TestApps:
         response = client.get("/data/?limit=4")
         expected_status_code = 200
         assert response.status_code == expected_status_code
-        expected_resp = [{'datetime': '2012-12-16T21:00:00+01:00', 'value': 21.581, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-16T22:00:00+01:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-16T23:00:00+01:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T00:00:00+01:00', 'value':  7.848, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1}]
+        expected_resp = [{'datetime': '2012-12-16T21:00:00+00:00', 'value': 21.581, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-16T22:00:00+00:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-16T23:00:00+00:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T00:00:00+00:00', 'value':  7.848, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1}]
         assert response.json() == expected_resp
   
 
@@ -162,16 +162,16 @@ class TestApps:
         response = client.get("/data/1")
         expected_status_code = 200
         assert response.status_code == expected_status_code
-        expected_resp = [{'datetime': '2012-12-16T21:00:00+01:00', 'value': 21.581, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-16T22:00:00+01:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-16T23:00:00+01:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T00:00:00+01:00', 'value':  7.848, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T01:00:00+01:00', 'value': 15.696, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T02:00:00+01:00', 'value': 11.772, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T03:00:00+01:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T04:00:00+01:00', 'value': 19.62,  'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T05:00:00+01:00', 'value': 15.696, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
-                         {'datetime': '2012-12-17T06:00:00+01:00', 'value':  5.886, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1}]
+        expected_resp = [{'datetime': '2012-12-16T21:00:00+00:00', 'value': 21.581, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-16T22:00:00+00:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-16T23:00:00+00:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T00:00:00+00:00', 'value':  7.848, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T01:00:00+00:00', 'value': 15.696, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T02:00:00+00:00', 'value': 11.772, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T03:00:00+00:00', 'value': 13.734, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T04:00:00+00:00', 'value': 19.62,  'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T05:00:00+00:00', 'value': 15.696, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1},
+                         {'datetime': '2012-12-17T06:00:00+00:00', 'value':  5.886, 'flags': 'OK validated verified', 'version': '000001.000000.00000000000000', 'timeseries_id': 1}]
         assert response.json() == expected_resp
   
 
diff --git a/toardb/generic/models.py b/toardb/generic/models.py
index 6222dffbdee9456015cb2430f6bbb07103bea4c7..8d0798a56a7f99999bbf9b2c65969f18d2e83fd9 100644
--- a/toardb/generic/models.py
+++ b/toardb/generic/models.py
@@ -14,14 +14,6 @@ RS_enum_table = Table("rs_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-RS_enum = (
-    Enumdict(0, 'active', 'active'),
-    Enumdict(1, 'inactive', 'inactive'),
-    Enumdict(2, 'unknown', 'unknown')
-    )
  
 # Role Codes
 RC_enum_table = Table("rc_vocabulary",
@@ -30,15 +22,6 @@ RC_enum_table = Table("rc_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-RC_enum = (
-    Enumdict(0, 'PointOfContact', 'point of contact'),
-    Enumdict(1, 'PrincipalInvestigator', 'principal investigator'),
-    Enumdict(2, 'Originator', 'originator'),
-    Enumdict(3, 'Contributor', 'contributor'),
-    Enumdict(4, 'Collaborator', 'collaborator'),
-    Enumdict(5, 'ResourceProvider', 'resource provider')
-    )
 
 # Changelog: Type of Change
 CL_enum_table = Table("cl_vocabulary",
@@ -47,18 +30,6 @@ CL_enum_table = Table("cl_vocabulary",
                       Column("enum_str", String),
                       Column("enum_display_str", String)
                       )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-CL_enum = (
-    Enumdict(0, 'Created', 'created'),
-    Enumdict(1, 'SingleValue', 'single value correction in metadata'),
-    Enumdict(2, 'Comprehensive', 'comprehensive metadata revision'),
-    Enumdict(3, 'Typo', 'typographic correction of metadata'),
-    Enumdict(4, 'UnspecifiedData', 'unspecified data value corrections'),
-    Enumdict(5, 'Replaced', 'replaced data with a new version'),
-    Enumdict(6, 'Flagging', 'data value flagging')
-    )
 
 ## Annotations
 
@@ -69,11 +40,4 @@ AK_enum_table = Table("ak_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-AK_enum = (
-    Enumdict(0, 'User', 'user comment'),
-    Enumdict(1, 'Provider', 'provider comment')
-    )
- 
+
diff --git a/toardb/stationmeta/crud.py b/toardb/stationmeta/crud.py
index 210ba50453b954d6818dfc887a1d34d50ea83a37..2c6cc3b565b3473ed2f9de6b96900bb77f6c6a62 100644
--- a/toardb/stationmeta/crud.py
+++ b/toardb/stationmeta/crud.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Create, Read, Update, Delete functionality
 
@@ -15,14 +14,13 @@ from fastapi import File, UploadFile
 from fastapi.responses import JSONResponse
 from . import models
 from .models import StationmetaCore, StationmetaChangelog, stationmeta_core_stationmeta_roles_table, \
-                    stationmeta_core_stationmeta_annotations_table, \
-                    CZ_enum, CV_enum, ST_enum, TA_enum, TC_enum, CN_enum, TZ_enum
-from toardb.generic.models import RS_enum, RC_enum, AK_enum, CL_enum
+                    stationmeta_core_stationmeta_annotations_table
 from .schemas import get_coordinates_from_geom, get_geom_from_coordinates, \
                      StationmetaCreate, StationmetaPatch, Coordinates
 from pydantic import ValidationError
 from toardb.utils.utils import get_value_from_str, get_str_from_value
 import json
+import toardb
 
 
 def get_stationmeta_core(db: Session, station_code: str):
@@ -182,11 +180,11 @@ def create_stationmeta(db: Session, engine: Engine, stationmeta: StationmetaCrea
     else:
         status_code=200
         message=f'new station: {db_stationmeta.codes},{db_stationmeta.name},{db_stationmeta.coordinates}'
-        db_stationmeta.country = get_value_from_str(CN_enum,db_stationmeta.country)
-        db_stationmeta.timezone = get_value_from_str(TZ_enum,db_stationmeta.timezone)
-        db_stationmeta.type_of_environment = get_value_from_str(ST_enum,db_stationmeta.type_of_environment)
-        db_stationmeta.type_of_area = get_value_from_str(TA_enum,db_stationmeta.type_of_area)
-        db_stationmeta.coordinate_validation_status = get_value_from_str(CV_enum,db_stationmeta.coordinate_validation_status)
+        db_stationmeta.country = get_value_from_str(toardb.toardb.CN_vocabulary,db_stationmeta.country)
+        db_stationmeta.timezone = get_value_from_str(toardb.toardb.TZ_vocabulary,db_stationmeta.timezone)
+        db_stationmeta.type_of_environment = get_value_from_str(toardb.toardb.ST_vocabulary,db_stationmeta.type_of_environment)
+        db_stationmeta.type_of_area = get_value_from_str(toardb.toardb.TA_vocabulary,db_stationmeta.type_of_area)
+        db_stationmeta.coordinate_validation_status = get_value_from_str(toardb.toardb.CV_vocabulary,db_stationmeta.coordinate_validation_status)
         db.add(db_stationmeta)
         result = db.commit()
         db.refresh(db_stationmeta)
@@ -196,8 +194,8 @@ def create_stationmeta(db: Session, engine: Engine, stationmeta: StationmetaCrea
         if roles_data:
             for r in roles_data:
                 db_role = models.StationmetaRole(**r)
-                db_role.role = get_value_from_str(RC_enum,db_role.role)
-                db_role.status = get_value_from_str(RS_enum,db_role.status)
+                db_role.role = get_value_from_str(toardb.toardb.RC_vocabulary,db_role.role)
+                db_role.status = get_value_from_str(toardb.toardb.RS_vocabulary,db_role.status)
                 # check whether role is already present in database
                 db_object = get_unique_stationmeta_role(db, db_role.role, db_role.contact_id, db_role.status)
                 if db_object:
@@ -252,9 +250,9 @@ def create_stationmeta(db: Session, engine: Engine, stationmeta: StationmetaCrea
         if globalmeta_data:
             db_global = models.StationmetaGlobal(**globalmeta_data)
             if db_global.climatic_zone:
-                db_global.climatic_zone = get_value_from_str(CZ_enum,db_global.climatic_zone)
+                db_global.climatic_zone = get_value_from_str(toardb.toardb.CZ_vocabulary,db_global.climatic_zone)
             if db_global.toar1_category:
-                db_global.toar1_category = get_value_from_str(TC_enum,db_global.toar1_category)
+                db_global.toar1_category = get_value_from_str(toardb.toardb.TC_vocabulary,db_global.toar1_category)
             db_global.station_id = stationmeta_core_id
             db.add(db_global)
             db.commit()
@@ -285,9 +283,9 @@ def patch_stationmeta(db: Session, description: str, station_id: int, stationmet
     stationmeta_dict2 = {k: v for k, v in stationmeta_dict.items() if v is not None}
     number_of_elements = len(stationmeta_dict2)
     if (number_of_elements == 1):
-        type_of_change = get_value_from_str(CL_enum,"SingleValue")
+        type_of_change = get_value_from_str(toardb.toardb.CL_vocabulary,"SingleValue")
     else:
-        type_of_change = get_value_from_str(CL_enum,"Comprehensive")
+        type_of_change = get_value_from_str(toardb.toardb.CL_vocabulary,"Comprehensive")
     roles_data         = stationmeta_dict.pop('roles', None)
     annotations_data   = stationmeta_dict.pop('annotations', None)
     aux_images_data    = stationmeta_dict.pop('aux_images', None)
@@ -324,8 +322,8 @@ def patch_stationmeta(db: Session, description: str, station_id: int, stationmet
         old_value = old_value + "'roles': {"
         for oldr in db_old_roles:
             old_role = get_stationmeta_role_by_id(db, oldr.role_id)
-            old_value=old_value + "{'role': '" + get_str_from_value(RC_enum,old_role.role) + \
-                                "', 'status': '" + get_str_from_value(RS_enum,old_role.status) + \
+            old_value=old_value + "{'role': '" + get_str_from_value(toardb.toardb.RC_vocabulary,old_role.role) + \
+                                "', 'status': '" + get_str_from_value(toardb.toardb.RS_vocabulary,old_role.status) + \
                                 "', 'contact_id': " + str(old_role.contact_id) + '}'
         if (number_of_commas == 0):
             old_value=old_value + '}'
@@ -334,8 +332,8 @@ def patch_stationmeta(db: Session, description: str, station_id: int, stationmet
         number_of_commas = number_of_commas - 1
         for r in roles_data:
             db_role = models.StationmetaRole(**r)
-            db_role.role = get_value_from_str(RC_enum,db_role.role)
-            db_role.status = get_value_from_str(RS_enum,db_role.status)
+            db_role.role = get_value_from_str(toardb.toardb.RC_vocabulary,db_role.role)
+            db_role.status = get_value_from_str(toardb.toardb.RS_vocabulary,db_role.status)
             # check whether role is already present in database
             db_object = get_unique_stationmeta_role(db, db_role.role, db_role.contact_id, db_role.status)
             if db_object:
@@ -354,10 +352,10 @@ def patch_stationmeta(db: Session, description: str, station_id: int, stationmet
         db_old_annotations = get_stationmeta_annotations(db, station_id)
         for olda in db_old_annotations:
             old_annotation = get_stationmeta_annotation_by_id(db, olda.annotation_id)
-            old_value=old_value + "{'kind': '" + get_str_from_value(RC_enum,old_role.kind) + \
-                                "', 'text': '" + get_str_from_value(RS_enum,old_role.status) + \
-                                "', 'date_added': '" + get_str_from_value(RS_enum,old_role.status) + \
-                                "', 'approved': '" + get_str_from_value(RS_enum,old_role.status) + \
+            old_value=old_value + "{'kind': '" + get_str_from_value(toardb.toardb.RC_vocabulary,old_role.kind) + \
+                                "', 'text': '" + get_str_from_value(toardb.toardb.RS_vocabulary,old_role.status) + \
+                                "', 'date_added': '" + get_str_from_value(toardb.toardb.RS_vocabulary,old_role.status) + \
+                                "', 'approved': '" + get_str_from_value(toardb.toardb.RS_vocabulary,old_role.status) + \
                                 "', 'contributor_id': " + str(old_role.contact_id) + '}'
         if (number_of_commas == 0):
             old_value=old_value + '}'
@@ -405,7 +403,7 @@ def patch_stationmeta(db: Session, description: str, station_id: int, stationmet
     if globalmeta_data:
         db_global = models.StationmetaGlobal(**globalmeta_data)
         if db_global.climatic_zone:
-            db_global.climatic_zone = get_value_from_str(CZ_enum,db_global.climatic_zone)
+            db_global.climatic_zone = get_value_from_str(toardb.toardb.CZ_vocabulary,db_global.climatic_zone)
         db_global.station_id = station_id
         db.add(db_global)
         db.commit()
@@ -444,7 +442,7 @@ def delete_stationmeta_field(db: Session, station_id: int, field: str):
     tmp_coordinates = db_stationmeta.coordinates
     db_stationmeta.coordinates = get_geom_from_coordinates(db_stationmeta.coordinates)
     # also write changelog entry
-    type_of_change = get_value_from_str(CL_enum,"SingleValue")
+    type_of_change = get_value_from_str(toardb.toardb.CL_vocabulary,"SingleValue")
     description=f"delete field {field}"
     old_value = get_field_from_record(db, station_id, field, db_stationmeta)
     db_changelog = StationmetaChangelog(description=description, station_id=station_id, author_id=1, type_of_change=type_of_change,
diff --git a/toardb/stationmeta/models.py b/toardb/stationmeta/models.py
index 54c8a8fa0a9c8abc1c541791ca533c1aa597b7ce..5a529d68593002f1f6af10c64c924e76f21da7dc 100644
--- a/toardb/stationmeta/models.py
+++ b/toardb/stationmeta/models.py
@@ -20,35 +20,6 @@ CZ_enum_table = Table("cz_vocabulary",
     Column("enum_display_str", String)
 )
 
-
-# After loosing one day without solution, the following workaround is introduced!
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-#def __get_enum_dict(table: Table, db: Session = Depends(get_db)):
-# This is not working (whereever I put it!) -- I have to investigate, how to do testing
-# (and using tables in my testing environment!)"
-# AND (EVEN MORE IMPORTANT):
-# How to load enum_dicts once?!
-# This is important to be able to use the enum_dicts within the validator of the pydantic model
-# The following code is just a workaround:
-CZ_enum = (
-    Enumdict(-1, 'Undefined', 'undefined'),
-    Enumdict( 0, 'Unclassified', 'unclassified'),
-    Enumdict( 1, 'WarmTemperateMoist', 'warm temperate moist'),
-    Enumdict( 2, 'WarmTemperateDry', 'warm temperate dry'),
-    Enumdict( 3, 'CoolTemperateMoist', 'cool temperate moist'),
-    Enumdict( 4, 'CoolTemperateDry', 'cool temperate dry'),
-    Enumdict( 5, 'PolarMoist', 'polar moist'),
-    Enumdict( 6, 'PolarDry', 'polar dry'),
-    Enumdict( 7, 'BorealMoist', 'boreal moist'),
-    Enumdict( 8, 'BorealDry', 'boreal dry'),
-    Enumdict( 9, 'TropicalMontane', 'tropical montane'),
-    Enumdict(10, 'TropicalWet', 'tropical wet'),
-    Enumdict(11, 'TropicalMoist', 'tropical moist'),
-    Enumdict(12, 'TropicalDry', 'tropical dry')
-    )
-
-
 # Station Coordinate Validity
 CV_enum_table = Table("cv_vocabulary",
     Base.metadata,
@@ -56,14 +27,6 @@ CV_enum_table = Table("cv_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-CV_enum = (
-    Enumdict(0, 'NotChecked', 'not checked'),
-    Enumdict(1, 'Verified', 'verified'),
-    Enumdict(2, 'Plausible', 'plausible'),
-    Enumdict(3, 'Doubtful', 'doubtful'),
-    Enumdict(4, 'Unverifyable', 'not verifyable')
-    )
 
 # Station Types 
 ST_enum_table = Table("st_vocabulary",
@@ -72,13 +35,6 @@ ST_enum_table = Table("st_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-ST_enum = (
-    Enumdict(0, 'Unknown', 'unknown'),
-    Enumdict(1, 'Background', 'background'),
-    Enumdict(2, 'Traffic', 'traffic'),
-    Enumdict(3, 'Industrial', 'industrial')
-    )
 
 # Station Types of Area
 TA_enum_table = Table("ta_vocabulary",
@@ -87,13 +43,6 @@ TA_enum_table = Table("ta_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-TA_enum = (
-    Enumdict(0, 'Unknown', 'unknown'),
-    Enumdict(1, 'Urban', 'urban'),
-    Enumdict(2, 'Suburban', 'suburban'),
-    Enumdict(3, 'Rural', 'rural')
-    )
 
 # Station TOAR Categories
 TC_enum_table = Table("tc_vocabulary",
@@ -102,14 +51,6 @@ TC_enum_table = Table("tc_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-TC_enum = (
-    Enumdict(-1, 'Unknown', 'unknown'),
-    Enumdict( 0, 'Unclassified', 'unclassified'),
-    Enumdict( 1, 'RuralLowElevation', 'rural low elevation'),
-    Enumdict( 2, 'RuralHighElevation', 'rural high elevation'),
-    Enumdict( 3, 'Urban', 'urban')
-    )
 
 # Station HTAP Regions (TIER1)
 TR_enum_table = Table("tr_vocabulary",
@@ -118,27 +59,6 @@ TR_enum_table = Table("tr_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-TR_enum = (
-    Enumdict(-1, 'HTAPTier1Undefined', '-1 (undefined)'),
-    Enumdict( 1, 'HTAPTier1World', '1 (World)'),
-    Enumdict( 2, 'HTAPTier1OCN', '2 (OCN Non-arctic/Antarctic Ocean)'),
-    Enumdict( 3, 'HTAPTier1NAM', '3 (NAM US+Canada (upto 66 N; polar circle))'),
-    Enumdict( 4, 'HTAPTier1EUR', '4 (EUR Western + Eastern EU+Turkey (upto 66 N polar circle))'),
-    Enumdict( 5, 'HTAPTier1SAS', '5 (SAS South Asia: India, Nepal, Pakistan, Afghanistan, Bangadesh, Sri Lanka)'),
-    Enumdict( 6, 'HTAPTier1EAS', '6 (EAS East Asia: China, Korea, Japan)'),
-    Enumdict( 7, 'HTAPTier1SEA', '7 (SEA South East Asia)'),
-    Enumdict( 8, 'HTAPTier1PAN', '8 (PAN Pacific, Australia+ New Zealand)'),
-    Enumdict( 9, 'HTAPTier1NAF', '9 (NAF Northern Africa+Sahara+Sahel)'),
-    Enumdict(10, 'HTAPTier1SAF', '10 (SAF Sub Saharan/sub Sahel Africa)'),
-    Enumdict(11, 'HTAPTier1MDE', '11 (MDE Middle East: S. Arabia, Oman, etc, Iran, Iraq)'),
-    Enumdict(12, 'HTAPTier1MCA', '12 (MCA Mexico, Central America, Caribbean, Guyanas, Venezuela, Columbia)'),
-    Enumdict(13, 'HTAPTier1SAM', '13 (SAM S. America)'),
-    Enumdict(14, 'HTAPTier1RBU', '14 (RBU Russia, Belarussia, Ukraine)'),
-    Enumdict(15, 'HTAPTier1CAS', '15 (CAS Central Asia)'),
-    Enumdict(16, 'HTAPTier1NPO', '16 (NPO Arctic Circle (North of 66 N) + Greenland)'),
-    Enumdict(17, 'HTAPTier1SPO', '17 (SPO Antarctic)')
-    )
 
 # Station Dominant Landcover Types
 DL_enum_table = Table("dl_vocabulary",
@@ -147,28 +67,6 @@ DL_enum_table = Table("dl_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-DL_enum = (
-    Enumdict( -1, 'Undefined', '-1 (undefined)'),
-    Enumdict(  0, 'Water', '0 (Water)'),
-    Enumdict(  1, 'EGNeedleleaf', '1  (Evergreen Needleleaf forest)'),
-    Enumdict(  2, 'EGBroadleaf', '2  (Evergreen Broadleaf forest)'),
-    Enumdict(  3, 'DCNeedleleaf', '3  (Deciduous Needleleaf forest)'),
-    Enumdict(  4, 'DCBroadleaf', '4  (Deciduous Broadleaf forest)'),
-    Enumdict(  5, 'MixedForest', '5  (Mixed forest)'),
-    Enumdict(  6, 'ClosedShrublands', '6  (Closed shrublands)'),
-    Enumdict(  7, 'OpenShrublands', '7  (Open shrublands)'),
-    Enumdict(  8, 'WoodySavannas', '8  (Woody savannas)'),
-    Enumdict(  9, 'Savannas', '9  (Savannas)'),
-    Enumdict( 10, 'Grasslands', '10  (Grasslands)'),
-    Enumdict( 11, 'Wetlands', '11  (Permanent wetlands)'),
-    Enumdict( 12, 'Croplands', '12  (Croplands)'),
-    Enumdict( 13, 'Urban', '13  (Urban and built-up)'),
-    Enumdict( 14, 'Mosaic', '14  (Cropland/Natural vegetation mosaic)'),
-    Enumdict( 15, 'Snow', '15  (Snow and ice)'),
-    Enumdict( 16, 'Barren', '16  (Barren or sparsely vegetated)'),
-    Enumdict(255, 'Fill', '255 (Fill Value/Unclassified)')
-    )
 
 # Result Types
 RT_enum_table = Table("rt_vocabulary",
@@ -177,12 +75,6 @@ RT_enum_table = Table("rt_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-RT_enum = (
-    Enumdict(0, 'String', 'str'),
-    Enumdict(1, 'Integer', 'int'),
-    Enumdict(2, 'Float', 'float')
-    )
 
 # Country names 
 CN_enum_table = Table("cn_vocabulary",
@@ -191,260 +83,6 @@ CN_enum_table = Table("cn_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-CN_enum = (
-    Enumdict(-1, 'N/A', 'N/A'),
-    Enumdict(0, 'AF', 'Afghanistan'),
-    Enumdict(1, 'AX', 'Åland Islands'),
-    Enumdict(2, 'AL', 'Albania'),
-    Enumdict(3, 'DZ', 'Algeria'),
-    Enumdict(4, 'AS', 'American Samoa'),
-    Enumdict(5, 'AD', 'Andorra'),
-    Enumdict(6, 'AO', 'Angola'),
-    Enumdict(7, 'AI', 'Anguilla'),
-    Enumdict(8, 'AQ', 'Antarctica'),
-    Enumdict(9, 'AG', 'Antigua and Barbuda'),
-    Enumdict(10, 'AR', 'Argentina'),
-    Enumdict(11, 'AM', 'Armenia'),
-    Enumdict(12, 'AW', 'Aruba'),
-    Enumdict(13, 'AU', 'Australia'),
-    Enumdict(14, 'AT', 'Austria'),
-    Enumdict(15, 'AZ', 'Azerbaijan'),
-    Enumdict(16, 'BS', 'Bahamas'),
-    Enumdict(17, 'BH', 'Bahrain'),
-    Enumdict(18, 'BD', 'Bangladesh'),
-    Enumdict(19, 'BB', 'Barbados'),
-    Enumdict(20, 'BY', 'Belarus'),
-    Enumdict(21, 'BE', 'Belgium'),
-    Enumdict(22, 'BZ', 'Belize'),
-    Enumdict(23, 'BJ', 'Benin'),
-    Enumdict(24, 'BM', 'Bermuda'),
-    Enumdict(25, 'BT', 'Bhutan'),
-    Enumdict(26, 'BO', 'Plurinational State of Bolivia'),
-    Enumdict(27, 'BQ', 'Bonaire, Sint Eustatius and Saba'),
-    Enumdict(28, 'BA', 'Bosnia and Herzegovina'),
-    Enumdict(29, 'BW', 'Botswana'),
-    Enumdict(30, 'BV', 'Bouvet Island'),
-    Enumdict(31, 'BR', 'Brazil'),
-    Enumdict(32, 'IO', 'British Indian Ocean Territory'),
-    Enumdict(33, 'UM', 'United States Minor Outlying Islands'),
-    Enumdict(34, 'VG', 'British Virgin Islands'),
-    Enumdict(35, 'VI', 'U.S. Virgin Islands'),
-    Enumdict(36, 'BN', 'Brunei Darussalam'),
-    Enumdict(37, 'BG', 'Bulgaria'),
-    Enumdict(38, 'BF', 'Burkina Faso'),
-    Enumdict(39, 'BI', 'Burundi'),
-    Enumdict(40, 'KH', 'Cambodia'),
-    Enumdict(41, 'CM', 'Cameroon'),
-    Enumdict(42, 'CA', 'Canada'),
-    Enumdict(43, 'CV', 'Cabo Verde'),
-    Enumdict(44, 'KY', 'Cayman Islands'),
-    Enumdict(45, 'CF', 'Central African Republic'),
-    Enumdict(46, 'TD', 'Chad'),
-    Enumdict(47, 'CL', 'Chile'),
-    Enumdict(48, 'CN', 'China'),
-    Enumdict(49, 'CX', 'Christmas Island'),
-    Enumdict(50, 'CC', 'Cocos (Keeling) Islands'),
-    Enumdict(51, 'CO', 'Colombia'),
-    Enumdict(52, 'KM', 'Comoros'),
-    Enumdict(53, 'CG', 'Congo'),
-    Enumdict(54, 'CD', 'Democratic Republic of the Congo'),
-    Enumdict(55, 'CK', 'Cook Islands'),
-    Enumdict(56, 'CR', 'Costa Rica'),
-    Enumdict(57, 'HR', 'Croatia'),
-    Enumdict(58, 'CU', 'Cuba'),
-    Enumdict(59, 'CW', 'Curaçao'),
-    Enumdict(60, 'CY', 'Cyprus'),
-    Enumdict(61, 'CZ', 'Czech Republic'),
-    Enumdict(62, 'DK', 'Denmark'),
-    Enumdict(63, 'DJ', 'Djibouti'),
-    Enumdict(64, 'DM', 'Dominica'),
-    Enumdict(65, 'DO', 'Dominican Republic'),
-    Enumdict(66, 'EC', 'Ecuador'),
-    Enumdict(67, 'EG', 'Egypt'),
-    Enumdict(68, 'SV', 'El Salvador'),
-    Enumdict(69, 'GQ', 'Equatorial Guinea'),
-    Enumdict(70, 'ER', 'Eritrea'),
-    Enumdict(71, 'EE', 'Estonia'),
-    Enumdict(72, 'ET', 'Ethiopia'),
-    Enumdict(73, 'FK', 'Falkland Islands (Malvinas)'),
-    Enumdict(74, 'FO', 'Faroe Islands'),
-    Enumdict(75, 'FJ', 'Fiji'),
-    Enumdict(76, 'FI', 'Finland'),
-    Enumdict(77, 'FR', 'France'),
-    Enumdict(78, 'GF', 'French Guiana'),
-    Enumdict(79, 'PF', 'French Polynesia'),
-    Enumdict(80, 'TF', 'French Southern Territories'),
-    Enumdict(81, 'GA', 'Gabon'),
-    Enumdict(82, 'GM', 'Gambia'),
-    Enumdict(83, 'GE', 'Georgia'),
-    Enumdict(84, 'DE', 'Germany'),
-    Enumdict(85, 'GH', 'Ghana'),
-    Enumdict(86, 'GI', 'Gibraltar'),
-    Enumdict(87, 'GR', 'Greece'),
-    Enumdict(88, 'GL', 'Greenland'),
-    Enumdict(89, 'GD', 'Grenada'),
-    Enumdict(90, 'GP', 'Guadeloupe'),
-    Enumdict(91, 'GU', 'Guam'),
-    Enumdict(92, 'GT', 'Guatemala'),
-    Enumdict(93, 'GG', 'Guernsey'),
-    Enumdict(94, 'GN', 'Guinea'),
-    Enumdict(95, 'GW', 'Guinea-Bissau'),
-    Enumdict(96, 'GY', 'Guyana'),
-    Enumdict(97, 'HT', 'Haiti'),
-    Enumdict(98, 'HM', 'Heard Island and McDonald Islands'),
-    Enumdict(99, 'VA', 'Holy See'),
-    Enumdict(100, 'HN', 'Honduras'),
-    Enumdict(101, 'HK', 'Hong Kong'),
-    Enumdict(102, 'HU', 'Hungary'),
-    Enumdict(103, 'IS', 'Iceland'),
-    Enumdict(104, 'IN', 'India'),
-    Enumdict(105, 'ID', 'Indonesia'),
-    Enumdict(106, 'CI', 'Côte d''Ivoire'),
-    Enumdict(107, 'IR', 'Islamic Republic of Iran'),
-    Enumdict(108, 'IQ', 'Iraq'),
-    Enumdict(109, 'IE', 'Ireland'),
-    Enumdict(110, 'IM', 'Isle of Man'),
-    Enumdict(111, 'IL', 'Israel'),
-    Enumdict(112, 'IT', 'Italy'),
-    Enumdict(113, 'JM', 'Jamaica'),
-    Enumdict(114, 'JP', 'Japan'),
-    Enumdict(115, 'JE', 'Jersey'),
-    Enumdict(116, 'JO', 'Jordan'),
-    Enumdict(117, 'KZ', 'Kazakhstan'),
-    Enumdict(118, 'KE', 'Kenya'),
-    Enumdict(119, 'KI', 'Kiribati'),
-    Enumdict(120, 'KW', 'Kuwait'),
-    Enumdict(121, 'KG', 'Kyrgyzstan'),
-    Enumdict(122, 'LA', 'Lao People''s Democratic Republic'),
-    Enumdict(123, 'LV', 'Latvia'),
-    Enumdict(124, 'LB', 'Lebanon'),
-    Enumdict(125, 'LS', 'Lesotho'),
-    Enumdict(126, 'LR', 'Liberia'),
-    Enumdict(127, 'LY', 'Libya'),
-    Enumdict(128, 'LI', 'Liechtenstein'),
-    Enumdict(129, 'LT', 'Lithuania'),
-    Enumdict(130, 'LU', 'Luxembourg'),
-    Enumdict(131, 'MO', 'Macao'),
-    Enumdict(132, 'MK', 'North Macedonia'),
-    Enumdict(133, 'MG', 'Madagascar'),
-    Enumdict(134, 'MW', 'Malawi'),
-    Enumdict(135, 'MY', 'Malaysia'),
-    Enumdict(136, 'MV', 'Maldives'),
-    Enumdict(137, 'ML', 'Mali'),
-    Enumdict(138, 'MT', 'Malta'),
-    Enumdict(139, 'MH', 'Marshall Islands'),
-    Enumdict(140, 'MQ', 'Martinique'),
-    Enumdict(141, 'MR', 'Mauritania'),
-    Enumdict(142, 'MU', 'Mauritius'),
-    Enumdict(143, 'YT', 'Mayotte'),
-    Enumdict(144, 'MX', 'Mexico'),
-    Enumdict(145, 'FM', 'Federated States of Micronesia'),
-    Enumdict(146, 'MD', 'Republic of Moldova'),
-    Enumdict(147, 'MC', 'Monaco'),
-    Enumdict(148, 'MN', 'Mongolia'),
-    Enumdict(149, 'ME', 'Montenegro'),
-    Enumdict(150, 'MS', 'Montserrat'),
-    Enumdict(151, 'MA', 'Morocco'),
-    Enumdict(152, 'MZ', 'Mozambique'),
-    Enumdict(153, 'MM', 'Myanmar'),
-    Enumdict(154, 'NA', 'Namibia'),
-    Enumdict(155, 'NR', 'Nauru'),
-    Enumdict(156, 'NP', 'Nepal'),
-    Enumdict(157, 'NL', 'Netherlands'),
-    Enumdict(158, 'NC', 'New Caledonia'),
-    Enumdict(159, 'NZ', 'New Zealand'),
-    Enumdict(160, 'NI', 'Nicaragua'),
-    Enumdict(161, 'NE', 'Niger'),
-    Enumdict(162, 'NG', 'Nigeria'),
-    Enumdict(163, 'NU', 'Niue'),
-    Enumdict(164, 'NF', 'Norfolk Island'),
-    Enumdict(165, 'KP', 'Democratic People''s Republic of Korea'),
-    Enumdict(166, 'MP', 'Northern Mariana Islands'),
-    Enumdict(167, 'NO', 'Norway'),
-    Enumdict(168, 'OM', 'Oman'),
-    Enumdict(169, 'PK', 'Pakistan'),
-    Enumdict(170, 'PW', 'Palau'),
-    Enumdict(171, 'PS', 'State of Palestine'),
-    Enumdict(172, 'PA', 'Panama'),
-    Enumdict(173, 'PG', 'Papua New Guinea'),
-    Enumdict(174, 'PY', 'Paraguay'),
-    Enumdict(175, 'PE', 'Peru'),
-    Enumdict(176, 'PH', 'Philippines'),
-    Enumdict(177, 'PN', 'Pitcairn'),
-    Enumdict(178, 'PL', 'Poland'),
-    Enumdict(179, 'PT', 'Portugal'),
-    Enumdict(180, 'PR', 'Puerto Rico'),
-    Enumdict(181, 'QA', 'Qatar'),
-    Enumdict(182, 'XK', 'Republic of Kosovo'),
-    Enumdict(183, 'RE', 'Réunion'),
-    Enumdict(184, 'RO', 'Romania'),
-    Enumdict(185, 'RU', 'Russian Federation'),
-    Enumdict(186, 'RW', 'Rwanda'),
-    Enumdict(187, 'BL', 'Saint Barthélemy'),
-    Enumdict(188, 'SH', 'Saint Helena, Ascension and Tristan da Cunha'),
-    Enumdict(189, 'KN', 'Saint Kitts and Nevis'),
-    Enumdict(190, 'LC', 'Saint Lucia'),
-    Enumdict(191, 'MF', 'Saint Martin (French part)'),
-    Enumdict(192, 'PM', 'Saint Pierre and Miquelon'),
-    Enumdict(193, 'VC', 'Saint Vincent and the Grenadines'),
-    Enumdict(194, 'WS', 'Samoa'),
-    Enumdict(195, 'SM', 'San Marino'),
-    Enumdict(196, 'ST', 'Sao Tome and Principe'),
-    Enumdict(197, 'SA', 'Saudi Arabia'),
-    Enumdict(198, 'SN', 'Senegal'),
-    Enumdict(199, 'RS', 'Serbia'),
-    Enumdict(200, 'SC', 'Seychelles'),
-    Enumdict(201, 'SL', 'Sierra Leone'),
-    Enumdict(202, 'SG', 'Singapore'),
-    Enumdict(203, 'SX', 'Sint Maarten (Dutch part)'),
-    Enumdict(204, 'SK', 'Slovakia'),
-    Enumdict(205, 'SI', 'Slovenia'),
-    Enumdict(206, 'SB', 'Solomon Islands'),
-    Enumdict(207, 'SO', 'Somalia'),
-    Enumdict(208, 'ZA', 'South Africa'),
-    Enumdict(209, 'GS', 'South Georgia and the South Sandwich Islands'),
-    Enumdict(210, 'KR', 'Republic of Korea'),
-    Enumdict(211, 'SS', 'South Sudan'),
-    Enumdict(212, 'ES', 'Spain'),
-    Enumdict(213, 'LK', 'Sri Lanka'),
-    Enumdict(214, 'SD', 'Sudan'),
-    Enumdict(215, 'SR', 'Suriname'),
-    Enumdict(216, 'SJ', 'Svalbard and Jan Mayen'),
-    Enumdict(217, 'SZ', 'Swaziland'),
-    Enumdict(218, 'SE', 'Sweden'),
-    Enumdict(219, 'CH', 'Switzerland'),
-    Enumdict(220, 'SY', 'Syrian Arab Republic'),
-    Enumdict(221, 'TW', 'Taiwan'),
-    Enumdict(222, 'TJ', 'Tajikistan'),
-    Enumdict(223, 'TZ', 'United Republic of Tanzania'),
-    Enumdict(224, 'TH', 'Thailand'),
-    Enumdict(225, 'TL', 'Timor-Leste'),
-    Enumdict(226, 'TG', 'Togo'),
-    Enumdict(227, 'TK', 'Tokelau'),
-    Enumdict(228, 'TO', 'Tonga'),
-    Enumdict(229, 'TT', 'Trinidad and Tobago'),
-    Enumdict(230, 'TN', 'Tunisia'),
-    Enumdict(231, 'TR', 'Turkey'),
-    Enumdict(232, 'TM', 'Turkmenistan'),
-    Enumdict(233, 'TC', 'Turks and Caicos Islands'),
-    Enumdict(234, 'TV', 'Tuvalu'),
-    Enumdict(235, 'UG', 'Uganda'),
-    Enumdict(236, 'UA', 'Ukraine'),
-    Enumdict(237, 'AE', 'United Arab Emirates'),
-    Enumdict(238, 'GB', 'United Kingdom of Great Britain and Northern Ireland'),
-    Enumdict(239, 'US', 'United States of America'),
-    Enumdict(240, 'UY', 'Uruguay'),
-    Enumdict(241, 'UZ', 'Uzbekistan'),
-    Enumdict(242, 'VU', 'Vanuatu'),
-    Enumdict(243, 'VE', 'Bolivarian Republic of Venezuela'),
-    Enumdict(244, 'VN', 'Viet Nam'),
-    Enumdict(245, 'WF', 'Wallis and Futuna'),
-    Enumdict(246, 'EH', 'Western Sahara'),
-    Enumdict(247, 'YE', 'Yemen'),
-    Enumdict(248, 'ZM', 'Zambia'),
-    Enumdict(249, 'ZW', 'Zimbabwe')
-    )
 
 # Timezones
 TZ_enum_table = Table("tz_vocabulary",
@@ -453,600 +91,4 @@ TZ_enum_table = Table("tz_vocabulary",
     Column("enum_str", String),
     Column("enum_display_str", String)
 )
-# The following code is just a workaround (see above):
-TZ_enum = (
-    Enumdict(0, 'Africa/Abidjan', 'Africa/Abidjan'),
-    Enumdict(1, 'Africa/Accra', 'Africa/Accra'),
-    Enumdict(2, 'Africa/Addis_Ababa', 'Africa/Addis_Ababa'),
-    Enumdict(3, 'Africa/Algiers', 'Africa/Algiers'),
-    Enumdict(4, 'Africa/Asmara', 'Africa/Asmara'),
-    Enumdict(5, 'Africa/Asmera', 'Africa/Asmera'),
-    Enumdict(6, 'Africa/Bamako', 'Africa/Bamako'),
-    Enumdict(7, 'Africa/Bangui', 'Africa/Bangui'),
-    Enumdict(8, 'Africa/Banjul', 'Africa/Banjul'),
-    Enumdict(9, 'Africa/Bissau', 'Africa/Bissau'),
-    Enumdict(10, 'Africa/Blantyre', 'Africa/Blantyre'),
-    Enumdict(11, 'Africa/Brazzaville', 'Africa/Brazzaville'),
-    Enumdict(12, 'Africa/Bujumbura', 'Africa/Bujumbura'),
-    Enumdict(13, 'Africa/Cairo', 'Africa/Cairo'),
-    Enumdict(14, 'Africa/Casablanca', 'Africa/Casablanca'),
-    Enumdict(15, 'Africa/Ceuta', 'Africa/Ceuta'),
-    Enumdict(16, 'Africa/Conakry', 'Africa/Conakry'),
-    Enumdict(17, 'Africa/Dakar', 'Africa/Dakar'),
-    Enumdict(18, 'Africa/Dar_es_Salaam', 'Africa/Dar_es_Salaam'),
-    Enumdict(19, 'Africa/Djibouti', 'Africa/Djibouti'),
-    Enumdict(20, 'Africa/Douala', 'Africa/Douala'),
-    Enumdict(21, 'Africa/El_Aaiun', 'Africa/El_Aaiun'),
-    Enumdict(22, 'Africa/Freetown', 'Africa/Freetown'),
-    Enumdict(23, 'Africa/Gaborone', 'Africa/Gaborone'),
-    Enumdict(24, 'Africa/Harare', 'Africa/Harare'),
-    Enumdict(25, 'Africa/Johannesburg', 'Africa/Johannesburg'),
-    Enumdict(26, 'Africa/Juba', 'Africa/Juba'),
-    Enumdict(27, 'Africa/Kampala', 'Africa/Kampala'),
-    Enumdict(28, 'Africa/Khartoum', 'Africa/Khartoum'),
-    Enumdict(29, 'Africa/Kigali', 'Africa/Kigali'),
-    Enumdict(30, 'Africa/Kinshasa', 'Africa/Kinshasa'),
-    Enumdict(31, 'Africa/Lagos', 'Africa/Lagos'),
-    Enumdict(32, 'Africa/Libreville', 'Africa/Libreville'),
-    Enumdict(33, 'Africa/Lome', 'Africa/Lome'),
-    Enumdict(34, 'Africa/Luanda', 'Africa/Luanda'),
-    Enumdict(35, 'Africa/Lubumbashi', 'Africa/Lubumbashi'),
-    Enumdict(36, 'Africa/Lusaka', 'Africa/Lusaka'),
-    Enumdict(37, 'Africa/Malabo', 'Africa/Malabo'),
-    Enumdict(38, 'Africa/Maputo', 'Africa/Maputo'),
-    Enumdict(39, 'Africa/Maseru', 'Africa/Maseru'),
-    Enumdict(40, 'Africa/Mbabane', 'Africa/Mbabane'),
-    Enumdict(41, 'Africa/Mogadishu', 'Africa/Mogadishu'),
-    Enumdict(42, 'Africa/Monrovia', 'Africa/Monrovia'),
-    Enumdict(43, 'Africa/Nairobi', 'Africa/Nairobi'),
-    Enumdict(44, 'Africa/Ndjamena', 'Africa/Ndjamena'),
-    Enumdict(45, 'Africa/Niamey', 'Africa/Niamey'),
-    Enumdict(46, 'Africa/Nouakchott', 'Africa/Nouakchott'),
-    Enumdict(47, 'Africa/Ouagadougou', 'Africa/Ouagadougou'),
-    Enumdict(48, 'Africa/Porto-Novo', 'Africa/Porto-Novo'),
-    Enumdict(49, 'Africa/Sao_Tome', 'Africa/Sao_Tome'),
-    Enumdict(50, 'Africa/Timbuktu', 'Africa/Timbuktu'),
-    Enumdict(51, 'Africa/Tripoli', 'Africa/Tripoli'),
-    Enumdict(52, 'Africa/Tunis', 'Africa/Tunis'),
-    Enumdict(53, 'Africa/Windhoek', 'Africa/Windhoek'),
-    Enumdict(54, 'America/Adak', 'America/Adak'),
-    Enumdict(55, 'America/Anchorage', 'America/Anchorage'),
-    Enumdict(56, 'America/Anguilla', 'America/Anguilla'),
-    Enumdict(57, 'America/Antigua', 'America/Antigua'),
-    Enumdict(58, 'America/Araguaina', 'America/Araguaina'),
-    Enumdict(59, 'America/Argentina/Buenos_Aires', 'America/Argentina/Buenos_Aires'),
-    Enumdict(60, 'America/Argentina/Catamarca', 'America/Argentina/Catamarca'),
-    Enumdict(61, 'America/Argentina/ComodRivadavia', 'America/Argentina/ComodRivadavia'),
-    Enumdict(62, 'America/Argentina/Cordoba', 'America/Argentina/Cordoba'),
-    Enumdict(63, 'America/Argentina/Jujuy', 'America/Argentina/Jujuy'),
-    Enumdict(64, 'America/Argentina/La_Rioja', 'America/Argentina/La_Rioja'),
-    Enumdict(65, 'America/Argentina/Mendoza', 'America/Argentina/Mendoza'),
-    Enumdict(66, 'America/Argentina/Rio_Gallegos', 'America/Argentina/Rio_Gallegos'),
-    Enumdict(67, 'America/Argentina/Salta', 'America/Argentina/Salta'),
-    Enumdict(68, 'America/Argentina/San_Juan', 'America/Argentina/San_Juan'),
-    Enumdict(69, 'America/Argentina/San_Luis', 'America/Argentina/San_Luis'),
-    Enumdict(70, 'America/Argentina/Tucuman', 'America/Argentina/Tucuman'),
-    Enumdict(71, 'America/Argentina/Ushuaia', 'America/Argentina/Ushuaia'),
-    Enumdict(72, 'America/Aruba', 'America/Aruba'),
-    Enumdict(73, 'America/Asuncion', 'America/Asuncion'),
-    Enumdict(74, 'America/Atikokan', 'America/Atikokan'),
-    Enumdict(75, 'America/Atka', 'America/Atka'),
-    Enumdict(76, 'America/Bahia', 'America/Bahia'),
-    Enumdict(77, 'America/Bahia_Banderas', 'America/Bahia_Banderas'),
-    Enumdict(78, 'America/Barbados', 'America/Barbados'),
-    Enumdict(79, 'America/Belem', 'America/Belem'),
-    Enumdict(80, 'America/Belize', 'America/Belize'),
-    Enumdict(81, 'America/Blanc-Sablon', 'America/Blanc-Sablon'),
-    Enumdict(82, 'America/Boa_Vista', 'America/Boa_Vista'),
-    Enumdict(83, 'America/Bogota', 'America/Bogota'),
-    Enumdict(84, 'America/Boise', 'America/Boise'),
-    Enumdict(85, 'America/Buenos_Aires', 'America/Buenos_Aires'),
-    Enumdict(86, 'America/Cambridge_Bay', 'America/Cambridge_Bay'),
-    Enumdict(87, 'America/Campo_Grande', 'America/Campo_Grande'),
-    Enumdict(88, 'America/Cancun', 'America/Cancun'),
-    Enumdict(89, 'America/Caracas', 'America/Caracas'),
-    Enumdict(90, 'America/Catamarca', 'America/Catamarca'),
-    Enumdict(91, 'America/Cayenne', 'America/Cayenne'),
-    Enumdict(92, 'America/Cayman', 'America/Cayman'),
-    Enumdict(93, 'America/Chicago', 'America/Chicago'),
-    Enumdict(94, 'America/Chihuahua', 'America/Chihuahua'),
-    Enumdict(95, 'America/Coral_Harbour', 'America/Coral_Harbour'),
-    Enumdict(96, 'America/Cordoba', 'America/Cordoba'),
-    Enumdict(97, 'America/Costa_Rica', 'America/Costa_Rica'),
-    Enumdict(98, 'America/Creston', 'America/Creston'),
-    Enumdict(99, 'America/Cuiaba', 'America/Cuiaba'),
-    Enumdict(100, 'America/Curacao', 'America/Curacao'),
-    Enumdict(101, 'America/Danmarkshavn', 'America/Danmarkshavn'),
-    Enumdict(102, 'America/Dawson', 'America/Dawson'),
-    Enumdict(103, 'America/Dawson_Creek', 'America/Dawson_Creek'),
-    Enumdict(104, 'America/Denver', 'America/Denver'),
-    Enumdict(105, 'America/Detroit', 'America/Detroit'),
-    Enumdict(106, 'America/Dominica', 'America/Dominica'),
-    Enumdict(107, 'America/Edmonton', 'America/Edmonton'),
-    Enumdict(108, 'America/Eirunepe', 'America/Eirunepe'),
-    Enumdict(109, 'America/El_Salvador', 'America/El_Salvador'),
-    Enumdict(110, 'America/Ensenada', 'America/Ensenada'),
-    Enumdict(111, 'America/Fort_Nelson', 'America/Fort_Nelson'),
-    Enumdict(112, 'America/Fort_Wayne', 'America/Fort_Wayne'),
-    Enumdict(113, 'America/Fortaleza', 'America/Fortaleza'),
-    Enumdict(114, 'America/Glace_Bay', 'America/Glace_Bay'),
-    Enumdict(115, 'America/Godthab', 'America/Godthab'),
-    Enumdict(116, 'America/Goose_Bay', 'America/Goose_Bay'),
-    Enumdict(117, 'America/Grand_Turk', 'America/Grand_Turk'),
-    Enumdict(118, 'America/Grenada', 'America/Grenada'),
-    Enumdict(119, 'America/Guadeloupe', 'America/Guadeloupe'),
-    Enumdict(120, 'America/Guatemala', 'America/Guatemala'),
-    Enumdict(121, 'America/Guayaquil', 'America/Guayaquil'),
-    Enumdict(122, 'America/Guyana', 'America/Guyana'),
-    Enumdict(123, 'America/Halifax', 'America/Halifax'),
-    Enumdict(124, 'America/Havana', 'America/Havana'),
-    Enumdict(125, 'America/Hermosillo', 'America/Hermosillo'),
-    Enumdict(126, 'America/Indiana/Indianapolis', 'America/Indiana/Indianapolis'),
-    Enumdict(127, 'America/Indiana/Knox', 'America/Indiana/Knox'),
-    Enumdict(128, 'America/Indiana/Marengo', 'America/Indiana/Marengo'),
-    Enumdict(129, 'America/Indiana/Petersburg', 'America/Indiana/Petersburg'),
-    Enumdict(130, 'America/Indiana/Tell_City', 'America/Indiana/Tell_City'),
-    Enumdict(131, 'America/Indiana/Vevay', 'America/Indiana/Vevay'),
-    Enumdict(132, 'America/Indiana/Vincennes', 'America/Indiana/Vincennes'),
-    Enumdict(133, 'America/Indiana/Winamac', 'America/Indiana/Winamac'),
-    Enumdict(134, 'America/Indianapolis', 'America/Indianapolis'),
-    Enumdict(135, 'America/Inuvik', 'America/Inuvik'),
-    Enumdict(136, 'America/Iqaluit', 'America/Iqaluit'),
-    Enumdict(137, 'America/Jamaica', 'America/Jamaica'),
-    Enumdict(138, 'America/Jujuy', 'America/Jujuy'),
-    Enumdict(139, 'America/Juneau', 'America/Juneau'),
-    Enumdict(140, 'America/Kentucky/Louisville', 'America/Kentucky/Louisville'),
-    Enumdict(141, 'America/Kentucky/Monticello', 'America/Kentucky/Monticello'),
-    Enumdict(142, 'America/Knox_IN', 'America/Knox_IN'),
-    Enumdict(143, 'America/Kralendijk', 'America/Kralendijk'),
-    Enumdict(144, 'America/La_Paz', 'America/La_Paz'),
-    Enumdict(145, 'America/Lima', 'America/Lima'),
-    Enumdict(146, 'America/Los_Angeles', 'America/Los_Angeles'),
-    Enumdict(147, 'America/Louisville', 'America/Louisville'),
-    Enumdict(148, 'America/Lower_Princes', 'America/Lower_Princes'),
-    Enumdict(149, 'America/Maceio', 'America/Maceio'),
-    Enumdict(150, 'America/Managua', 'America/Managua'),
-    Enumdict(151, 'America/Manaus', 'America/Manaus'),
-    Enumdict(152, 'America/Marigot', 'America/Marigot'),
-    Enumdict(153, 'America/Martinique', 'America/Martinique'),
-    Enumdict(154, 'America/Matamoros', 'America/Matamoros'),
-    Enumdict(155, 'America/Mazatlan', 'America/Mazatlan'),
-    Enumdict(156, 'America/Mendoza', 'America/Mendoza'),
-    Enumdict(157, 'America/Menominee', 'America/Menominee'),
-    Enumdict(158, 'America/Merida', 'America/Merida'),
-    Enumdict(159, 'America/Metlakatla', 'America/Metlakatla'),
-    Enumdict(160, 'America/Mexico_City', 'America/Mexico_City'),
-    Enumdict(161, 'America/Miquelon', 'America/Miquelon'),
-    Enumdict(162, 'America/Moncton', 'America/Moncton'),
-    Enumdict(163, 'America/Monterrey', 'America/Monterrey'),
-    Enumdict(164, 'America/Montevideo', 'America/Montevideo'),
-    Enumdict(165, 'America/Montreal', 'America/Montreal'),
-    Enumdict(166, 'America/Montserrat', 'America/Montserrat'),
-    Enumdict(167, 'America/Nassau', 'America/Nassau'),
-    Enumdict(168, 'America/New_York', 'America/New_York'),
-    Enumdict(169, 'America/Nipigon', 'America/Nipigon'),
-    Enumdict(170, 'America/Nome', 'America/Nome'),
-    Enumdict(171, 'America/Noronha', 'America/Noronha'),
-    Enumdict(172, 'America/North_Dakota/Beulah', 'America/North_Dakota/Beulah'),
-    Enumdict(173, 'America/North_Dakota/Center', 'America/North_Dakota/Center'),
-    Enumdict(174, 'America/North_Dakota/New_Salem', 'America/North_Dakota/New_Salem'),
-    Enumdict(175, 'America/Nuuk', 'America/Nuuk'),
-    Enumdict(176, 'America/Ojinaga', 'America/Ojinaga'),
-    Enumdict(177, 'America/Panama', 'America/Panama'),
-    Enumdict(178, 'America/Pangnirtung', 'America/Pangnirtung'),
-    Enumdict(179, 'America/Paramaribo', 'America/Paramaribo'),
-    Enumdict(180, 'America/Phoenix', 'America/Phoenix'),
-    Enumdict(181, 'America/Port-au-Prince', 'America/Port-au-Prince'),
-    Enumdict(182, 'America/Port_of_Spain', 'America/Port_of_Spain'),
-    Enumdict(183, 'America/Porto_Acre', 'America/Porto_Acre'),
-    Enumdict(184, 'America/Porto_Velho', 'America/Porto_Velho'),
-    Enumdict(185, 'America/Puerto_Rico', 'America/Puerto_Rico'),
-    Enumdict(186, 'America/Punta_Arenas', 'America/Punta_Arenas'),
-    Enumdict(187, 'America/Rainy_River', 'America/Rainy_River'),
-    Enumdict(188, 'America/Rankin_Inlet', 'America/Rankin_Inlet'),
-    Enumdict(189, 'America/Recife', 'America/Recife'),
-    Enumdict(190, 'America/Regina', 'America/Regina'),
-    Enumdict(191, 'America/Resolute', 'America/Resolute'),
-    Enumdict(192, 'America/Rio_Branco', 'America/Rio_Branco'),
-    Enumdict(193, 'America/Rosario', 'America/Rosario'),
-    Enumdict(194, 'America/Santa_Isabel', 'America/Santa_Isabel'),
-    Enumdict(195, 'America/Santarem', 'America/Santarem'),
-    Enumdict(196, 'America/Santiago', 'America/Santiago'),
-    Enumdict(197, 'America/Santo_Domingo', 'America/Santo_Domingo'),
-    Enumdict(198, 'America/Sao_Paulo', 'America/Sao_Paulo'),
-    Enumdict(199, 'America/Scoresbysund', 'America/Scoresbysund'),
-    Enumdict(200, 'America/Shiprock', 'America/Shiprock'),
-    Enumdict(201, 'America/Sitka', 'America/Sitka'),
-    Enumdict(202, 'America/St_Barthelemy', 'America/St_Barthelemy'),
-    Enumdict(203, 'America/St_Johns', 'America/St_Johns'),
-    Enumdict(204, 'America/St_Kitts', 'America/St_Kitts'),
-    Enumdict(205, 'America/St_Lucia', 'America/St_Lucia'),
-    Enumdict(206, 'America/St_Thomas', 'America/St_Thomas'),
-    Enumdict(207, 'America/St_Vincent', 'America/St_Vincent'),
-    Enumdict(208, 'America/Swift_Current', 'America/Swift_Current'),
-    Enumdict(209, 'America/Tegucigalpa', 'America/Tegucigalpa'),
-    Enumdict(210, 'America/Thule', 'America/Thule'),
-    Enumdict(211, 'America/Thunder_Bay', 'America/Thunder_Bay'),
-    Enumdict(212, 'America/Tijuana', 'America/Tijuana'),
-    Enumdict(213, 'America/Toronto', 'America/Toronto'),
-    Enumdict(214, 'America/Tortola', 'America/Tortola'),
-    Enumdict(215, 'America/Vancouver', 'America/Vancouver'),
-    Enumdict(216, 'America/Virgin', 'America/Virgin'),
-    Enumdict(217, 'America/Whitehorse', 'America/Whitehorse'),
-    Enumdict(218, 'America/Winnipeg', 'America/Winnipeg'),
-    Enumdict(219, 'America/Yakutat', 'America/Yakutat'),
-    Enumdict(220, 'America/Yellowknife', 'America/Yellowknife'),
-    Enumdict(221, 'Antarctica/Casey', 'Antarctica/Casey'),
-    Enumdict(222, 'Antarctica/Davis', 'Antarctica/Davis'),
-    Enumdict(223, 'Antarctica/DumontDUrville', 'Antarctica/DumontDUrville'),
-    Enumdict(224, 'Antarctica/Macquarie', 'Antarctica/Macquarie'),
-    Enumdict(225, 'Antarctica/Mawson', 'Antarctica/Mawson'),
-    Enumdict(226, 'Antarctica/McMurdo', 'Antarctica/McMurdo'),
-    Enumdict(227, 'Antarctica/Palmer', 'Antarctica/Palmer'),
-    Enumdict(228, 'Antarctica/Rothera', 'Antarctica/Rothera'),
-    Enumdict(229, 'Antarctica/South_Pole', 'Antarctica/South_Pole'),
-    Enumdict(230, 'Antarctica/Syowa', 'Antarctica/Syowa'),
-    Enumdict(231, 'Antarctica/Troll', 'Antarctica/Troll'),
-    Enumdict(232, 'Antarctica/Vostok', 'Antarctica/Vostok'),
-    Enumdict(233, 'Arctic/Longyearbyen', 'Arctic/Longyearbyen'),
-    Enumdict(234, 'Asia/Aden', 'Asia/Aden'),
-    Enumdict(235, 'Asia/Almaty', 'Asia/Almaty'),
-    Enumdict(236, 'Asia/Amman', 'Asia/Amman'),
-    Enumdict(237, 'Asia/Anadyr', 'Asia/Anadyr'),
-    Enumdict(238, 'Asia/Aqtau', 'Asia/Aqtau'),
-    Enumdict(239, 'Asia/Aqtobe', 'Asia/Aqtobe'),
-    Enumdict(240, 'Asia/Ashgabat', 'Asia/Ashgabat'),
-    Enumdict(241, 'Asia/Ashkhabad', 'Asia/Ashkhabad'),
-    Enumdict(242, 'Asia/Atyrau', 'Asia/Atyrau'),
-    Enumdict(243, 'Asia/Baghdad', 'Asia/Baghdad'),
-    Enumdict(244, 'Asia/Bahrain', 'Asia/Bahrain'),
-    Enumdict(245, 'Asia/Baku', 'Asia/Baku'),
-    Enumdict(246, 'Asia/Bangkok', 'Asia/Bangkok'),
-    Enumdict(247, 'Asia/Barnaul', 'Asia/Barnaul'),
-    Enumdict(248, 'Asia/Beirut', 'Asia/Beirut'),
-    Enumdict(249, 'Asia/Bishkek', 'Asia/Bishkek'),
-    Enumdict(250, 'Asia/Brunei', 'Asia/Brunei'),
-    Enumdict(251, 'Asia/Calcutta', 'Asia/Calcutta'),
-    Enumdict(252, 'Asia/Chita', 'Asia/Chita'),
-    Enumdict(253, 'Asia/Choibalsan', 'Asia/Choibalsan'),
-    Enumdict(254, 'Asia/Chongqing', 'Asia/Chongqing'),
-    Enumdict(255, 'Asia/Chungking', 'Asia/Chungking'),
-    Enumdict(256, 'Asia/Colombo', 'Asia/Colombo'),
-    Enumdict(257, 'Asia/Dacca', 'Asia/Dacca'),
-    Enumdict(258, 'Asia/Damascus', 'Asia/Damascus'),
-    Enumdict(259, 'Asia/Dhaka', 'Asia/Dhaka'),
-    Enumdict(260, 'Asia/Dili', 'Asia/Dili'),
-    Enumdict(261, 'Asia/Dubai', 'Asia/Dubai'),
-    Enumdict(262, 'Asia/Dushanbe', 'Asia/Dushanbe'),
-    Enumdict(263, 'Asia/Famagusta', 'Asia/Famagusta'),
-    Enumdict(264, 'Asia/Gaza', 'Asia/Gaza'),
-    Enumdict(265, 'Asia/Harbin', 'Asia/Harbin'),
-    Enumdict(266, 'Asia/Hebron', 'Asia/Hebron'),
-    Enumdict(267, 'Asia/Ho_Chi_Minh', 'Asia/Ho_Chi_Minh'),
-    Enumdict(268, 'Asia/Hong_Kong', 'Asia/Hong_Kong'),
-    Enumdict(269, 'Asia/Hovd', 'Asia/Hovd'),
-    Enumdict(270, 'Asia/Irkutsk', 'Asia/Irkutsk'),
-    Enumdict(271, 'Asia/Istanbul', 'Asia/Istanbul'),
-    Enumdict(272, 'Asia/Jakarta', 'Asia/Jakarta'),
-    Enumdict(273, 'Asia/Jayapura', 'Asia/Jayapura'),
-    Enumdict(274, 'Asia/Jerusalem', 'Asia/Jerusalem'),
-    Enumdict(275, 'Asia/Kabul', 'Asia/Kabul'),
-    Enumdict(276, 'Asia/Kamchatka', 'Asia/Kamchatka'),
-    Enumdict(277, 'Asia/Karachi', 'Asia/Karachi'),
-    Enumdict(278, 'Asia/Kashgar', 'Asia/Kashgar'),
-    Enumdict(279, 'Asia/Kathmandu', 'Asia/Kathmandu'),
-    Enumdict(280, 'Asia/Katmandu', 'Asia/Katmandu'),
-    Enumdict(281, 'Asia/Khandyga', 'Asia/Khandyga'),
-    Enumdict(282, 'Asia/Kolkata', 'Asia/Kolkata'),
-    Enumdict(283, 'Asia/Krasnoyarsk', 'Asia/Krasnoyarsk'),
-    Enumdict(284, 'Asia/Kuala_Lumpur', 'Asia/Kuala_Lumpur'),
-    Enumdict(285, 'Asia/Kuching', 'Asia/Kuching'),
-    Enumdict(286, 'Asia/Kuwait', 'Asia/Kuwait'),
-    Enumdict(287, 'Asia/Macao', 'Asia/Macao'),
-    Enumdict(288, 'Asia/Macau', 'Asia/Macau'),
-    Enumdict(289, 'Asia/Magadan', 'Asia/Magadan'),
-    Enumdict(290, 'Asia/Makassar', 'Asia/Makassar'),
-    Enumdict(291, 'Asia/Manila', 'Asia/Manila'),
-    Enumdict(292, 'Asia/Muscat', 'Asia/Muscat'),
-    Enumdict(293, 'Asia/Nicosia', 'Asia/Nicosia'),
-    Enumdict(294, 'Asia/Novokuznetsk', 'Asia/Novokuznetsk'),
-    Enumdict(295, 'Asia/Novosibirsk', 'Asia/Novosibirsk'),
-    Enumdict(296, 'Asia/Omsk', 'Asia/Omsk'),
-    Enumdict(297, 'Asia/Oral', 'Asia/Oral'),
-    Enumdict(298, 'Asia/Phnom_Penh', 'Asia/Phnom_Penh'),
-    Enumdict(299, 'Asia/Pontianak', 'Asia/Pontianak'),
-    Enumdict(300, 'Asia/Pyongyang', 'Asia/Pyongyang'),
-    Enumdict(301, 'Asia/Qatar', 'Asia/Qatar'),
-    Enumdict(302, 'Asia/Qostanay', 'Asia/Qostanay'),
-    Enumdict(303, 'Asia/Qyzylorda', 'Asia/Qyzylorda'),
-    Enumdict(304, 'Asia/Rangoon', 'Asia/Rangoon'),
-    Enumdict(305, 'Asia/Riyadh', 'Asia/Riyadh'),
-    Enumdict(306, 'Asia/Saigon', 'Asia/Saigon'),
-    Enumdict(307, 'Asia/Sakhalin', 'Asia/Sakhalin'),
-    Enumdict(308, 'Asia/Samarkand', 'Asia/Samarkand'),
-    Enumdict(309, 'Asia/Seoul', 'Asia/Seoul'),
-    Enumdict(310, 'Asia/Shanghai', 'Asia/Shanghai'),
-    Enumdict(311, 'Asia/Singapore', 'Asia/Singapore'),
-    Enumdict(312, 'Asia/Srednekolymsk', 'Asia/Srednekolymsk'),
-    Enumdict(313, 'Asia/Taipei', 'Asia/Taipei'),
-    Enumdict(314, 'Asia/Tashkent', 'Asia/Tashkent'),
-    Enumdict(315, 'Asia/Tbilisi', 'Asia/Tbilisi'),
-    Enumdict(316, 'Asia/Tehran', 'Asia/Tehran'),
-    Enumdict(317, 'Asia/Tel_Aviv', 'Asia/Tel_Aviv'),
-    Enumdict(318, 'Asia/Thimbu', 'Asia/Thimbu'),
-    Enumdict(319, 'Asia/Thimphu', 'Asia/Thimphu'),
-    Enumdict(320, 'Asia/Tokyo', 'Asia/Tokyo'),
-    Enumdict(321, 'Asia/Tomsk', 'Asia/Tomsk'),
-    Enumdict(322, 'Asia/Ujung_Pandang', 'Asia/Ujung_Pandang'),
-    Enumdict(323, 'Asia/Ulaanbaatar', 'Asia/Ulaanbaatar'),
-    Enumdict(324, 'Asia/Ulan_Bator', 'Asia/Ulan_Bator'),
-    Enumdict(325, 'Asia/Urumqi', 'Asia/Urumqi'),
-    Enumdict(326, 'Asia/Ust-Nera', 'Asia/Ust-Nera'),
-    Enumdict(327, 'Asia/Vientiane', 'Asia/Vientiane'),
-    Enumdict(328, 'Asia/Vladivostok', 'Asia/Vladivostok'),
-    Enumdict(329, 'Asia/Yakutsk', 'Asia/Yakutsk'),
-    Enumdict(330, 'Asia/Yangon', 'Asia/Yangon'),
-    Enumdict(331, 'Asia/Yekaterinburg', 'Asia/Yekaterinburg'),
-    Enumdict(332, 'Asia/Yerevan', 'Asia/Yerevan'),
-    Enumdict(333, 'Atlantic/Azores', 'Atlantic/Azores'),
-    Enumdict(334, 'Atlantic/Bermuda', 'Atlantic/Bermuda'),
-    Enumdict(335, 'Atlantic/Canary', 'Atlantic/Canary'),
-    Enumdict(336, 'Atlantic/Cape_Verde', 'Atlantic/Cape_Verde'),
-    Enumdict(337, 'Atlantic/Faeroe', 'Atlantic/Faeroe'),
-    Enumdict(338, 'Atlantic/Faroe', 'Atlantic/Faroe'),
-    Enumdict(339, 'Atlantic/Jan_Mayen', 'Atlantic/Jan_Mayen'),
-    Enumdict(340, 'Atlantic/Madeira', 'Atlantic/Madeira'),
-    Enumdict(341, 'Atlantic/Reykjavik', 'Atlantic/Reykjavik'),
-    Enumdict(342, 'Atlantic/South_Georgia', 'Atlantic/South_Georgia'),
-    Enumdict(343, 'Atlantic/St_Helena', 'Atlantic/St_Helena'),
-    Enumdict(344, 'Atlantic/Stanley', 'Atlantic/Stanley'),
-    Enumdict(345, 'Australia/ACT', 'Australia/ACT'),
-    Enumdict(346, 'Australia/Adelaide', 'Australia/Adelaide'),
-    Enumdict(347, 'Australia/Brisbane', 'Australia/Brisbane'),
-    Enumdict(348, 'Australia/Broken_Hill', 'Australia/Broken_Hill'),
-    Enumdict(349, 'Australia/Canberra', 'Australia/Canberra'),
-    Enumdict(350, 'Australia/Currie', 'Australia/Currie'),
-    Enumdict(351, 'Australia/Darwin', 'Australia/Darwin'),
-    Enumdict(352, 'Australia/Eucla', 'Australia/Eucla'),
-    Enumdict(353, 'Australia/Hobart', 'Australia/Hobart'),
-    Enumdict(354, 'Australia/LHI', 'Australia/LHI'),
-    Enumdict(355, 'Australia/Lindeman', 'Australia/Lindeman'),
-    Enumdict(356, 'Australia/Lord_Howe', 'Australia/Lord_Howe'),
-    Enumdict(357, 'Australia/Melbourne', 'Australia/Melbourne'),
-    Enumdict(358, 'Australia/NSW', 'Australia/NSW'),
-    Enumdict(359, 'Australia/North', 'Australia/North'),
-    Enumdict(360, 'Australia/Perth', 'Australia/Perth'),
-    Enumdict(361, 'Australia/Queensland', 'Australia/Queensland'),
-    Enumdict(362, 'Australia/South', 'Australia/South'),
-    Enumdict(363, 'Australia/Sydney', 'Australia/Sydney'),
-    Enumdict(364, 'Australia/Tasmania', 'Australia/Tasmania'),
-    Enumdict(365, 'Australia/Victoria', 'Australia/Victoria'),
-    Enumdict(366, 'Australia/West', 'Australia/West'),
-    Enumdict(367, 'Australia/Yancowinna', 'Australia/Yancowinna'),
-    Enumdict(368, 'Brazil/Acre', 'Brazil/Acre'),
-    Enumdict(369, 'Brazil/DeNoronha', 'Brazil/DeNoronha'),
-    Enumdict(370, 'Brazil/East', 'Brazil/East'),
-    Enumdict(371, 'Brazil/West', 'Brazil/West'),
-    Enumdict(372, 'CET', 'CET'),
-    Enumdict(373, 'CST6CDT', 'CST6CDT'),
-    Enumdict(374, 'Canada/Atlantic', 'Canada/Atlantic'),
-    Enumdict(375, 'Canada/Central', 'Canada/Central'),
-    Enumdict(376, 'Canada/Eastern', 'Canada/Eastern'),
-    Enumdict(377, 'Canada/Mountain', 'Canada/Mountain'),
-    Enumdict(378, 'Canada/Newfoundland', 'Canada/Newfoundland'),
-    Enumdict(379, 'Canada/Pacific', 'Canada/Pacific'),
-    Enumdict(380, 'Canada/Saskatchewan', 'Canada/Saskatchewan'),
-    Enumdict(381, 'Canada/Yukon', 'Canada/Yukon'),
-    Enumdict(382, 'Chile/Continental', 'Chile/Continental'),
-    Enumdict(383, 'Chile/EasterIsland', 'Chile/EasterIsland'),
-    Enumdict(384, 'Cuba', 'Cuba'),
-    Enumdict(385, 'EET', 'EET'),
-    Enumdict(386, 'EST', 'EST'),
-    Enumdict(387, 'EST5EDT', 'EST5EDT'),
-    Enumdict(388, 'Egypt', 'Egypt'),
-    Enumdict(389, 'Eire', 'Eire'),
-    Enumdict(390, 'Etc/GMT', 'Etc/GMT'),
-    Enumdict(391, 'Etc/GMT+0', 'Etc/GMT+0'),
-    Enumdict(392, 'Etc/GMT+1', 'Etc/GMT+1'),
-    Enumdict(393, 'Etc/GMT+10', 'Etc/GMT+10'),
-    Enumdict(394, 'Etc/GMT+11', 'Etc/GMT+11'),
-    Enumdict(395, 'Etc/GMT+12', 'Etc/GMT+12'),
-    Enumdict(396, 'Etc/GMT+2', 'Etc/GMT+2'),
-    Enumdict(397, 'Etc/GMT+3', 'Etc/GMT+3'),
-    Enumdict(398, 'Etc/GMT+4', 'Etc/GMT+4'),
-    Enumdict(399, 'Etc/GMT+5', 'Etc/GMT+5'),
-    Enumdict(400, 'Etc/GMT+6', 'Etc/GMT+6'),
-    Enumdict(401, 'Etc/GMT+7', 'Etc/GMT+7'),
-    Enumdict(402, 'Etc/GMT+8', 'Etc/GMT+8'),
-    Enumdict(403, 'Etc/GMT+9', 'Etc/GMT+9'),
-    Enumdict(404, 'Etc/GMT-0', 'Etc/GMT-0'),
-    Enumdict(405, 'Etc/GMT-1', 'Etc/GMT-1'),
-    Enumdict(406, 'Etc/GMT-10', 'Etc/GMT-10'),
-    Enumdict(407, 'Etc/GMT-11', 'Etc/GMT-11'),
-    Enumdict(408, 'Etc/GMT-12', 'Etc/GMT-12'),
-    Enumdict(409, 'Etc/GMT-13', 'Etc/GMT-13'),
-    Enumdict(410, 'Etc/GMT-14', 'Etc/GMT-14'),
-    Enumdict(411, 'Etc/GMT-2', 'Etc/GMT-2'),
-    Enumdict(412, 'Etc/GMT-3', 'Etc/GMT-3'),
-    Enumdict(413, 'Etc/GMT-4', 'Etc/GMT-4'),
-    Enumdict(414, 'Etc/GMT-5', 'Etc/GMT-5'),
-    Enumdict(415, 'Etc/GMT-6', 'Etc/GMT-6'),
-    Enumdict(416, 'Etc/GMT-7', 'Etc/GMT-7'),
-    Enumdict(417, 'Etc/GMT-8', 'Etc/GMT-8'),
-    Enumdict(418, 'Etc/GMT-9', 'Etc/GMT-9'),
-    Enumdict(419, 'Etc/GMT0', 'Etc/GMT0'),
-    Enumdict(420, 'Etc/Greenwich', 'Etc/Greenwich'),
-    Enumdict(421, 'Etc/UCT', 'Etc/UCT'),
-    Enumdict(422, 'Etc/UTC', 'Etc/UTC'),
-    Enumdict(423, 'Etc/Universal', 'Etc/Universal'),
-    Enumdict(424, 'Etc/Zulu', 'Etc/Zulu'),
-    Enumdict(425, 'Europe/Amsterdam', 'Europe/Amsterdam'),
-    Enumdict(426, 'Europe/Andorra', 'Europe/Andorra'),
-    Enumdict(427, 'Europe/Astrakhan', 'Europe/Astrakhan'),
-    Enumdict(428, 'Europe/Athens', 'Europe/Athens'),
-    Enumdict(429, 'Europe/Belfast', 'Europe/Belfast'),
-    Enumdict(430, 'Europe/Belgrade', 'Europe/Belgrade'),
-    Enumdict(431, 'Europe/Berlin', 'Europe/Berlin'),
-    Enumdict(432, 'Europe/Bratislava', 'Europe/Bratislava'),
-    Enumdict(433, 'Europe/Brussels', 'Europe/Brussels'),
-    Enumdict(434, 'Europe/Bucharest', 'Europe/Bucharest'),
-    Enumdict(435, 'Europe/Budapest', 'Europe/Budapest'),
-    Enumdict(436, 'Europe/Busingen', 'Europe/Busingen'),
-    Enumdict(437, 'Europe/Chisinau', 'Europe/Chisinau'),
-    Enumdict(438, 'Europe/Copenhagen', 'Europe/Copenhagen'),
-    Enumdict(439, 'Europe/Dublin', 'Europe/Dublin'),
-    Enumdict(440, 'Europe/Gibraltar', 'Europe/Gibraltar'),
-    Enumdict(441, 'Europe/Guernsey', 'Europe/Guernsey'),
-    Enumdict(442, 'Europe/Helsinki', 'Europe/Helsinki'),
-    Enumdict(443, 'Europe/Isle_of_Man', 'Europe/Isle_of_Man'),
-    Enumdict(444, 'Europe/Istanbul', 'Europe/Istanbul'),
-    Enumdict(445, 'Europe/Jersey', 'Europe/Jersey'),
-    Enumdict(446, 'Europe/Kaliningrad', 'Europe/Kaliningrad'),
-    Enumdict(447, 'Europe/Kiev', 'Europe/Kiev'),
-    Enumdict(448, 'Europe/Kirov', 'Europe/Kirov'),
-    Enumdict(449, 'Europe/Lisbon', 'Europe/Lisbon'),
-    Enumdict(450, 'Europe/Ljubljana', 'Europe/Ljubljana'),
-    Enumdict(451, 'Europe/London', 'Europe/London'),
-    Enumdict(452, 'Europe/Luxembourg', 'Europe/Luxembourg'),
-    Enumdict(453, 'Europe/Madrid', 'Europe/Madrid'),
-    Enumdict(454, 'Europe/Malta', 'Europe/Malta'),
-    Enumdict(455, 'Europe/Mariehamn', 'Europe/Mariehamn'),
-    Enumdict(456, 'Europe/Minsk', 'Europe/Minsk'),
-    Enumdict(457, 'Europe/Monaco', 'Europe/Monaco'),
-    Enumdict(458, 'Europe/Moscow', 'Europe/Moscow'),
-    Enumdict(459, 'Europe/Nicosia', 'Europe/Nicosia'),
-    Enumdict(460, 'Europe/Oslo', 'Europe/Oslo'),
-    Enumdict(461, 'Europe/Paris', 'Europe/Paris'),
-    Enumdict(462, 'Europe/Podgorica', 'Europe/Podgorica'),
-    Enumdict(463, 'Europe/Prague', 'Europe/Prague'),
-    Enumdict(464, 'Europe/Riga', 'Europe/Riga'),
-    Enumdict(465, 'Europe/Rome', 'Europe/Rome'),
-    Enumdict(466, 'Europe/Samara', 'Europe/Samara'),
-    Enumdict(467, 'Europe/San_Marino', 'Europe/San_Marino'),
-    Enumdict(468, 'Europe/Sarajevo', 'Europe/Sarajevo'),
-    Enumdict(469, 'Europe/Saratov', 'Europe/Saratov'),
-    Enumdict(470, 'Europe/Simferopol', 'Europe/Simferopol'),
-    Enumdict(471, 'Europe/Skopje', 'Europe/Skopje'),
-    Enumdict(472, 'Europe/Sofia', 'Europe/Sofia'),
-    Enumdict(473, 'Europe/Stockholm', 'Europe/Stockholm'),
-    Enumdict(474, 'Europe/Tallinn', 'Europe/Tallinn'),
-    Enumdict(475, 'Europe/Tirane', 'Europe/Tirane'),
-    Enumdict(476, 'Europe/Tiraspol', 'Europe/Tiraspol'),
-    Enumdict(477, 'Europe/Ulyanovsk', 'Europe/Ulyanovsk'),
-    Enumdict(478, 'Europe/Uzhgorod', 'Europe/Uzhgorod'),
-    Enumdict(479, 'Europe/Vaduz', 'Europe/Vaduz'),
-    Enumdict(480, 'Europe/Vatican', 'Europe/Vatican'),
-    Enumdict(481, 'Europe/Vienna', 'Europe/Vienna'),
-    Enumdict(482, 'Europe/Vilnius', 'Europe/Vilnius'),
-    Enumdict(483, 'Europe/Volgograd', 'Europe/Volgograd'),
-    Enumdict(484, 'Europe/Warsaw', 'Europe/Warsaw'),
-    Enumdict(485, 'Europe/Zagreb', 'Europe/Zagreb'),
-    Enumdict(486, 'Europe/Zaporozhye', 'Europe/Zaporozhye'),
-    Enumdict(487, 'Europe/Zurich', 'Europe/Zurich'),
-    Enumdict(488, 'GB', 'GB'),
-    Enumdict(489, 'GB-Eire', 'GB-Eire'),
-    Enumdict(490, 'GMT', 'GMT'),
-    Enumdict(491, 'GMT+0', 'GMT+0'),
-    Enumdict(492, 'GMT-0', 'GMT-0'),
-    Enumdict(493, 'GMT0', 'GMT0'),
-    Enumdict(494, 'Greenwich', 'Greenwich'),
-    Enumdict(495, 'HST', 'HST'),
-    Enumdict(496, 'Hongkong', 'Hongkong'),
-    Enumdict(497, 'Iceland', 'Iceland'),
-    Enumdict(498, 'Indian/Antananarivo', 'Indian/Antananarivo'),
-    Enumdict(499, 'Indian/Chagos', 'Indian/Chagos'),
-    Enumdict(500, 'Indian/Christmas', 'Indian/Christmas'),
-    Enumdict(501, 'Indian/Cocos', 'Indian/Cocos'),
-    Enumdict(502, 'Indian/Comoro', 'Indian/Comoro'),
-    Enumdict(503, 'Indian/Kerguelen', 'Indian/Kerguelen'),
-    Enumdict(504, 'Indian/Mahe', 'Indian/Mahe'),
-    Enumdict(505, 'Indian/Maldives', 'Indian/Maldives'),
-    Enumdict(506, 'Indian/Mauritius', 'Indian/Mauritius'),
-    Enumdict(507, 'Indian/Mayotte', 'Indian/Mayotte'),
-    Enumdict(508, 'Indian/Reunion', 'Indian/Reunion'),
-    Enumdict(509, 'Iran', 'Iran'),
-    Enumdict(510, 'Israel', 'Israel'),
-    Enumdict(511, 'Jamaica', 'Jamaica'),
-    Enumdict(512, 'Japan', 'Japan'),
-    Enumdict(513, 'Kwajalein', 'Kwajalein'),
-    Enumdict(514, 'Libya', 'Libya'),
-    Enumdict(515, 'MET', 'MET'),
-    Enumdict(516, 'MST', 'MST'),
-    Enumdict(517, 'MST7MDT', 'MST7MDT'),
-    Enumdict(518, 'Mexico/BajaNorte', 'Mexico/BajaNorte'),
-    Enumdict(519, 'Mexico/BajaSur', 'Mexico/BajaSur'),
-    Enumdict(520, 'Mexico/General', 'Mexico/General'),
-    Enumdict(521, 'NZ', 'NZ'),
-    Enumdict(522, 'NZ-CHAT', 'NZ-CHAT'),
-    Enumdict(523, 'Navajo', 'Navajo'),
-    Enumdict(524, 'PRC', 'PRC'),
-    Enumdict(525, 'PST8PDT', 'PST8PDT'),
-    Enumdict(526, 'Pacific/Apia', 'Pacific/Apia'),
-    Enumdict(527, 'Pacific/Auckland', 'Pacific/Auckland'),
-    Enumdict(528, 'Pacific/Bougainville', 'Pacific/Bougainville'),
-    Enumdict(529, 'Pacific/Chatham', 'Pacific/Chatham'),
-    Enumdict(530, 'Pacific/Chuuk', 'Pacific/Chuuk'),
-    Enumdict(531, 'Pacific/Easter', 'Pacific/Easter'),
-    Enumdict(532, 'Pacific/Efate', 'Pacific/Efate'),
-    Enumdict(533, 'Pacific/Enderbury', 'Pacific/Enderbury'),
-    Enumdict(534, 'Pacific/Fakaofo', 'Pacific/Fakaofo'),
-    Enumdict(535, 'Pacific/Fiji', 'Pacific/Fiji'),
-    Enumdict(536, 'Pacific/Funafuti', 'Pacific/Funafuti'),
-    Enumdict(537, 'Pacific/Galapagos', 'Pacific/Galapagos'),
-    Enumdict(538, 'Pacific/Gambier', 'Pacific/Gambier'),
-    Enumdict(539, 'Pacific/Guadalcanal', 'Pacific/Guadalcanal'),
-    Enumdict(540, 'Pacific/Guam', 'Pacific/Guam'),
-    Enumdict(541, 'Pacific/Honolulu', 'Pacific/Honolulu'),
-    Enumdict(542, 'Pacific/Johnston', 'Pacific/Johnston'),
-    Enumdict(543, 'Pacific/Kiritimati', 'Pacific/Kiritimati'),
-    Enumdict(544, 'Pacific/Kosrae', 'Pacific/Kosrae'),
-    Enumdict(545, 'Pacific/Kwajalein', 'Pacific/Kwajalein'),
-    Enumdict(546, 'Pacific/Majuro', 'Pacific/Majuro'),
-    Enumdict(547, 'Pacific/Marquesas', 'Pacific/Marquesas'),
-    Enumdict(548, 'Pacific/Midway', 'Pacific/Midway'),
-    Enumdict(549, 'Pacific/Nauru', 'Pacific/Nauru'),
-    Enumdict(550, 'Pacific/Niue', 'Pacific/Niue'),
-    Enumdict(551, 'Pacific/Norfolk', 'Pacific/Norfolk'),
-    Enumdict(552, 'Pacific/Noumea', 'Pacific/Noumea'),
-    Enumdict(553, 'Pacific/Pago_Pago', 'Pacific/Pago_Pago'),
-    Enumdict(554, 'Pacific/Palau', 'Pacific/Palau'),
-    Enumdict(555, 'Pacific/Pitcairn', 'Pacific/Pitcairn'),
-    Enumdict(556, 'Pacific/Pohnpei', 'Pacific/Pohnpei'),
-    Enumdict(557, 'Pacific/Ponape', 'Pacific/Ponape'),
-    Enumdict(558, 'Pacific/Port_Moresby', 'Pacific/Port_Moresby'),
-    Enumdict(559, 'Pacific/Rarotonga', 'Pacific/Rarotonga'),
-    Enumdict(560, 'Pacific/Saipan', 'Pacific/Saipan'),
-    Enumdict(561, 'Pacific/Samoa', 'Pacific/Samoa'),
-    Enumdict(562, 'Pacific/Tahiti', 'Pacific/Tahiti'),
-    Enumdict(563, 'Pacific/Tarawa', 'Pacific/Tarawa'),
-    Enumdict(564, 'Pacific/Tongatapu', 'Pacific/Tongatapu'),
-    Enumdict(565, 'Pacific/Truk', 'Pacific/Truk'),
-    Enumdict(566, 'Pacific/Wake', 'Pacific/Wake'),
-    Enumdict(567, 'Pacific/Wallis', 'Pacific/Wallis'),
-    Enumdict(568, 'Pacific/Yap', 'Pacific/Yap'),
-    Enumdict(569, 'Poland', 'Poland'),
-    Enumdict(570, 'Portugal', 'Portugal'),
-    Enumdict(571, 'ROC', 'ROC'),
-    Enumdict(572, 'ROK', 'ROK'),
-    Enumdict(573, 'Singapore', 'Singapore'),
-    Enumdict(574, 'Turkey', 'Turkey'),
-    Enumdict(575, 'UCT', 'UCT'),
-    Enumdict(576, 'US/Alaska', 'US/Alaska'),
-    Enumdict(577, 'US/Aleutian', 'US/Aleutian'),
-    Enumdict(578, 'US/Arizona', 'US/Arizona'),
-    Enumdict(579, 'US/Central', 'US/Central'),
-    Enumdict(580, 'US/East-Indiana', 'US/East-Indiana'),
-    Enumdict(581, 'US/Eastern', 'US/Eastern'),
-    Enumdict(582, 'US/Hawaii', 'US/Hawaii'),
-    Enumdict(583, 'US/Indiana-Starke', 'US/Indiana-Starke'),
-    Enumdict(584, 'US/Michigan', 'US/Michigan'),
-    Enumdict(585, 'US/Mountain', 'US/Mountain'),
-    Enumdict(586, 'US/Pacific', 'US/Pacific'),
-    Enumdict(587, 'US/Samoa', 'US/Samoa'),
-    Enumdict(588, 'UTC', 'UTC'),
-    Enumdict(589, 'Universal', 'Universal'),
-    Enumdict(590, 'W-SU', 'W-SU'),
-    Enumdict(591, 'WET', 'WET'),
-    Enumdict(592, 'Zulu', 'Zulu')
-    )
 
diff --git a/toardb/stationmeta/models_annotation.py b/toardb/stationmeta/models_annotation.py
index 64f0dcca64a91fd39e33a35071fe4d20cf53c57f..62ee472927bcd52130d0e834c67320569b417430 100644
--- a/toardb/stationmeta/models_annotation.py
+++ b/toardb/stationmeta/models_annotation.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaAnnotation (Base)
 ==================================
@@ -8,6 +7,7 @@ from sqlalchemy import Column, DateTime, Float, ForeignKey, Integer, String, \
 from sqlalchemy.orm import relationship
 from toardb.auth_user.models import AuthUser
 from toardb.base import Base
+from toardb.generic import models
 
 
 # many-to-many relationships
diff --git a/toardb/stationmeta/models_aux.py b/toardb/stationmeta/models_aux.py
index 57c88dac1722fa129eb4f385ec9c42d092655ca9..d22701081bcfabebc8ef106f22358a5dfbee858c 100644
--- a/toardb/stationmeta/models_aux.py
+++ b/toardb/stationmeta/models_aux.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationMetaAux (Base)
 ===========================
diff --git a/toardb/stationmeta/models_changelog.py b/toardb/stationmeta/models_changelog.py
index 387c70abe9030f1578ff5925717c4c02a4e23031..ffb90a0d8dc0ff1ec4eb5f02f8187dccb9502888 100644
--- a/toardb/stationmeta/models_changelog.py
+++ b/toardb/stationmeta/models_changelog.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaChangelog(Base)
 ================================
diff --git a/toardb/stationmeta/models_core.py b/toardb/stationmeta/models_core.py
index 6a7115fc5bb5d6a2828d26c7f0a8828cb96c7eea..0c01b821fcaae324dd2e8d238cd52c53e53218fc 100644
--- a/toardb/stationmeta/models_core.py
+++ b/toardb/stationmeta/models_core.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaCore (Base)
 ============================
diff --git a/toardb/stationmeta/models_global.py b/toardb/stationmeta/models_global.py
index 14fc8b8bab609c532a58c55da1ff72ce65291830..c5c627850a08c2f156b4701c9245f94aa5f7b1db 100644
--- a/toardb/stationmeta/models_global.py
+++ b/toardb/stationmeta/models_global.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaGlobal (Base)
 ==============================
diff --git a/toardb/stationmeta/models_global_services.py b/toardb/stationmeta/models_global_services.py
index 2fdbcc0d6850b02da5f8c8372325e6ad54daa9ab..213f6e56632f38440d9aa4c86ef3538262c4700e 100644
--- a/toardb/stationmeta/models_global_services.py
+++ b/toardb/stationmeta/models_global_services.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaGlobalService (Base)
 =====================================
diff --git a/toardb/stationmeta/models_role.py b/toardb/stationmeta/models_role.py
index acd45d8a10b85dbafb82654229ff73f8089cdca1..3c5396f2337a73f40018109b2221049ad1bee020 100644
--- a/toardb/stationmeta/models_role.py
+++ b/toardb/stationmeta/models_role.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class StationmetaRole (Base)
 ============================
diff --git a/toardb/stationmeta/schemas.py b/toardb/stationmeta/schemas.py
index 4f9e401d3f8c619ce35b6c1b865e43895fb6058b..fcc2b65c1d9792c261ee5b3e2df407d942f25c77 100644
--- a/toardb/stationmeta/schemas.py
+++ b/toardb/stationmeta/schemas.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Pydantic schemas for TOAR database
 
@@ -9,10 +8,8 @@ from pydantic import BaseModel, Field, BaseConfig, Json, validator
 from geoalchemy2 import WKTElement
 from geoalchemy2.shape import to_shape
 import datetime as dt
-from .models import CZ_enum, CV_enum, ST_enum, TA_enum, TC_enum, \
-                    TR_enum, DL_enum, CN_enum, TZ_enum
-from toardb.generic.models import RC_enum, RS_enum, AK_enum, CL_enum
 from toardb.contacts.schemas import Contact
+import toardb
 
 
 # the following class was taken from:
@@ -42,23 +39,23 @@ class StationmetaCoreBase(BaseModel):
 
     @validator('coordinate_validation_status')
     def check_coordinate_validation_status(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CV_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CV_vocabulary))[0].display_str
 
     @validator('country')
     def check_country(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CN_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CN_vocabulary))[0].display_str
 
     @validator('type_of_environment')
     def check_type_of_environment(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), ST_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.ST_vocabulary))[0].display_str
 
     @validator('type_of_area')
     def check_type_of_area(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TA_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TA_vocabulary))[0].display_str
 
     @validator('timezone')
     def check_timezone(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TZ_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TZ_vocabulary))[0].display_str
 
 
 class StationmetaCorePatch(BaseModel):
@@ -79,27 +76,27 @@ class StationmetaCorePatch(BaseModel):
     @validator('coordinate_validation_status')
     def check_coordinate_validation_status(cls, v):
         if v:
-            return tuple(filter(lambda x: x.value == int(v), CV_enum))[0].display_str
+            return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CV_vocabulary))[0].display_str
 
     @validator('country')
     def check_country(cls, v):
         if v:
-            return tuple(filter(lambda x: x.value == int(v), CN_enum))[0].display_str
+            return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CN_vocabulary))[0].display_str
 
     @validator('type_of_environment')
     def check_type_of_environment(cls, v):
         if v:
-            return tuple(filter(lambda x: x.value == int(v), ST_enum))[0].display_str
+            return tuple(filter(lambda x: x.value == int(v), toardb.toardb.ST_vocabulary))[0].display_str
 
     @validator('type_of_area')
     def check_type_of_area(cls, v):
         if v:
-            return tuple(filter(lambda x: x.value == int(v), TA_enum))[0].display_str
+            return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TA_vocabulary))[0].display_str
 
     @validator('timezone')
     def check_timezone(cls, v):
         if v:
-            return tuple(filter(lambda x: x.value == int(v), TZ_enum))[0].display_str
+            return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TZ_vocabulary))[0].display_str
 
 
 class StationmetaCoreCreate(StationmetaCoreBase):
@@ -107,35 +104,35 @@ class StationmetaCoreCreate(StationmetaCoreBase):
 
     @validator('coordinate_validation_status')
     def check_coordinate_validation_status(cls, v):
-        if tuple(filter(lambda x: x.string == v, CV_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.CV_vocabulary)):
             return v
         else:
             raise ValueError(f"coordinate validation status not known: {v}")
 
     @validator('country')
     def check_country(cls, v):
-        if tuple(filter(lambda x: x.string == v, CN_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.CN_vocabulary)):
             return v
         else:
             raise ValueError(f"country not known: {v}")
 
     @validator('type_of_environment')
     def check_type_of_environment(cls, v):
-        if tuple(filter(lambda x: x.string == v, ST_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.ST_vocabulary)):
             return v
         else:
             raise ValueError(f"type of environment not known: {v}")
 
     @validator('type_of_area')
     def check_type_of_area(cls, v):
-        if tuple(filter(lambda x: x.string == v, TA_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.TA_vocabulary)):
             return v
         else:
             raise ValueError(f"type of area not known: {v}")
 
     @validator('timezone')
     def check_timezone(cls, v):
-        if tuple(filter(lambda x: x.string == v, TZ_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.TZ_vocabulary)):
             return v
         else:
             raise ValueError(f"timezone not known: {v}")
@@ -170,7 +167,7 @@ class StationmetaAnnotationBase(BaseModel):
 
     @validator('kind')
     def check_kind(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), AK_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.AK_vocabulary))[0].display_str
 
 
 class StationmetaAnnotationPatch(BaseModel):
@@ -182,7 +179,7 @@ class StationmetaAnnotationPatch(BaseModel):
 
     @validator('kind')
     def check_kind(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), AK_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.AK_vocabulary))[0].display_str
 
 
 class StationmetaAnnotationCreate(StationmetaAnnotationBase):
@@ -305,19 +302,19 @@ class StationmetaGlobalBase(BaseModel):
 
     @validator('climatic_zone')
     def check_climatic_zone(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CZ_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CZ_vocabulary))[0].display_str
 
     @validator('toar1_category')
     def check_toar1_category(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TC_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TC_vocabulary))[0].display_str
 
     @validator('htap_region_tier1')
     def check_htap_region_tier1(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TR_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TR_vocabulary))[0].display_str
 
     @validator('dominant_landcover_year2012')
     def check_dominant_landcover_year2012(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), DL_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.DL_vocabulary))[0].display_str
 
 
 class StationmetaGlobalPatch(BaseModel):
@@ -341,19 +338,19 @@ class StationmetaGlobalPatch(BaseModel):
 
     @validator('climatic_zone')
     def check_climatic_zone(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CZ_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CZ_vocabulary))[0].display_str
 
     @validator('toar1_category')
     def check_toar1_category(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TC_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TC_vocabulary))[0].display_str
 
     @validator('htap_region_tier1')
     def check_htap_region_tier1(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), TR_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.TR_vocabulary))[0].display_str
 
     @validator('dominant_landcover_year2012')
     def check_dominant_landcover_year2012(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), DL_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.DL_vocabulary))[0].display_str
 
 
 class StationmetaGlobalCreate(StationmetaGlobalBase):
@@ -361,28 +358,28 @@ class StationmetaGlobalCreate(StationmetaGlobalBase):
 
     @validator('climatic_zone')
     def check_climatic_zone(cls, v):
-        if tuple(filter(lambda x: x.string == v, CZ_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.CZ_vocabulary)):
             return v
         else:
             raise ValueError(f"climatic zone not known: {v}")
 
     @validator('toar1_category')
     def check_toar1_category(cls, v):
-        if tuple(filter(lambda x: x.string == v, TC_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.TC_vocabulary)):
             return v
         else:
             raise ValueError(f"TOAR1 category not known: {v}")
 
     @validator('htap_region_tier1')
     def check_htap_region_tier1(cls, v):
-        if tuple(filter(lambda x: x.string == v, TR_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.TR_vocabulary)):
             return v
         else:
             raise ValueError(f"HTAP region TIER1 not known: {v}")
 
     @validator('dominant_landcover_year2012')
     def check_dominant_landcover_year2012(cls, v):
-        if tuple(filter(lambda x: x.string == v, DL_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.DL_vocabulary)):
             return v
         else:
             raise ValueError(f"dominant landcover (year2012) not known: {v}")
@@ -457,11 +454,11 @@ class StationmetaRoleBase(BaseModel):
 
     @validator('role')
     def check_role(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), RC_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.RC_vocabulary))[0].display_str
 
     @validator('status')
     def check_status(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), RS_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.RS_vocabulary))[0].display_str
 
     class Config:
         orm_mode = True
@@ -485,14 +482,14 @@ class StationmetaRoleCreate(StationmetaRoleBase):
 
     @validator('role')
     def check_role(cls, v):
-        if tuple(filter(lambda x: x.string == v, RC_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.RC_vocabulary)):
             return v
         else:
             raise ValueError(f"role code not known: {v}")
 
     @validator('status')
     def check_status(cls, v):
-        if tuple(filter(lambda x: x.string == v, RS_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.RS_vocabulary)):
             return v
         else:
             raise ValueError(f"role status not known: {v}")
@@ -520,7 +517,7 @@ class StationmetaChangelogBase(BaseModel):
 
     @validator('type_of_change')
     def check_role(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), CL_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.CL_vocabulary))[0].display_str
 
     class Config:
         orm_mode = True
diff --git a/toardb/test_base.py b/toardb/test_base.py
index 16c2797f88bbe7443bf5283c544dcd6eae0f50ee..de99c4b09f1812b295f9f60064110aaeb5743a6d 100644
--- a/toardb/test_base.py
+++ b/toardb/test_base.py
@@ -10,7 +10,8 @@ from toardb.base import Base
 from toardb.toardb import app
 from toardb.utils.database import DATABASE_URL, get_db, get_engine
 
-url = "postgresql://toaradmin:toar2@localhost:5432/toardb_test"
+#url = "postgresql://toaradmin:???@localhost:5432/toardb_test"
+url = "postgresql://toardb_pytest:???@zam10116.zam.kfa-juelich.de:5433/toardb_test"
 _db_conn = create_engine(url)
 
 def get_test_engine() -> Engine:
@@ -33,26 +34,28 @@ def create_test_database():
     We use the `sqlalchemy_utils` package here for a few helpers in consistently
     creating and dropping the database.
     """
-    if database_exists(url):
-        drop_database(url)
-    create_database(url)  # Create the test database.
+#   if database_exists(url):
+#       drop_database(url)
+#   create_database(url)  # Create the test database.
     #'create_all' does not work (because of undefined 'Geometry')!
     #declare PostGIS extension! (and toar_controlled_vocabulary)
-    fake_conn = _db_conn.raw_connection()
-    fake_cur = fake_conn.cursor()
-    fake_cur.execute("CREATE EXTENSION IF NOT EXISTS postgis")
-    fake_conn.commit()
-    fake_cur.execute("CREATE EXTENSION IF NOT EXISTS toar_controlled_vocabulary")
-    fake_conn.commit()
+#   fake_conn = _db_conn.raw_connection()
+#   fake_cur = fake_conn.cursor()
+#   fake_cur.execute("CREATE EXTENSION IF NOT EXISTS postgis")
+#   fake_conn.commit()
+#   fake_cur.execute("CREATE EXTENSION IF NOT EXISTS toar_controlled_vocabulary")
+#   fake_conn.commit()
+#   fake_cur.execute("SET TIMEZONE='UTC'")
+#   fake_conn.commit()
     Base.metadata.create_all(_db_conn)  # Create the tables.
     #try with the basics
     app.dependency_overrides[get_db] = get_test_db  # Mock the Database Dependency
     app.dependency_overrides[get_engine] = get_test_engine # Mock the Database Dependency
     yield  # Run the tests.
-    drop_database(url)  # Drop the test database.
+#   drop_database(url)  # Drop the test database.
 
 
-@pytest.yield_fixture
+@pytest.fixture
 def test_db_session():
     """Returns an sqlalchemy session, and after the test tears down everything properly."""
 
diff --git a/toardb/timeseries/crud.py b/toardb/timeseries/crud.py
index 8e2a81d9e13b1a0023646f3657b40d34c13e598a..b289c618975de8f41e51811edb06d80eb2477e02 100644
--- a/toardb/timeseries/crud.py
+++ b/toardb/timeseries/crud.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Create, Read, Update, Delete functionality
 
@@ -10,14 +9,13 @@ from geoalchemy2.elements import WKBElement, WKTElement
 from fastapi.responses import JSONResponse
 from . import models
 from .models import TimeseriesChangelog, timeseries_timeseries_roles_table, \
-                    timeseries_timeseries_annotations_table, \
-                    DA_enum, SF_enum, AT_enum, DS_enum, MM_enum
+                    timeseries_timeseries_annotations_table
 from toardb.stationmeta.models import StationmetaCore
 from toardb.stationmeta.schemas import get_coordinates_from_geom, get_geom_from_coordinates
-from toardb.generic.models import RS_enum, RC_enum
 from toardb.contacts.crud import get_organisation_by_name, get_contact
 from .schemas import TimeseriesCreate, TimeseriesPatch, TimeseriesRoleNoCreate
 from toardb.utils.utils import get_value_from_str, get_str_from_value
+import toardb
 
 
 def get_timeseries(db: Session, timeseries_id: int):
@@ -50,7 +48,7 @@ def get_timeseries_by_unique_constraints(db: Session, station_id: int, variable_
                                       .filter(models.Timeseries.variable_id == variable_id) \
                                       .filter(models.Timeseries.label == label.strip()).all()
     if resource_provider != '':
-        role_num = get_value_from_str(RC_enum,'ResourceProvider')
+        role_num = get_value_from_str(toardb.toardb.RC_vocabulary,'ResourceProvider')
         for db_object in db_objects:
             for role in db_object.roles:
                 contact = get_contact(db, contact_id=role.contact_id)
@@ -118,11 +116,11 @@ def create_timeseries(db: Session, timeseries: TimeseriesCreate):
     roles_data = timeseries_dict.pop('roles', None)
     annotations_data = timeseries_dict.pop('annotations', None)
     db_timeseries = models.Timeseries(**timeseries_dict)
-    db_timeseries.access_rights = get_value_from_str(DA_enum,db_timeseries.access_rights)
-    db_timeseries.sampling_frequency = get_value_from_str(SF_enum,db_timeseries.sampling_frequency)
-    db_timeseries.aggregation = get_value_from_str(AT_enum,db_timeseries.aggregation)
-    db_timeseries.source = get_value_from_str(DS_enum,db_timeseries.source)
-    db_timeseries.measurement_method= get_value_from_str(MM_enum,db_timeseries.measurement_method)
+    db_timeseries.access_rights = get_value_from_str(toardb.toardb.DA_vocabulary,db_timeseries.access_rights)
+    db_timeseries.sampling_frequency = get_value_from_str(toardb.toardb.SF_vocabulary,db_timeseries.sampling_frequency)
+    db_timeseries.aggregation = get_value_from_str(toardb.toardb.AT_vocabulary,db_timeseries.aggregation)
+    db_timeseries.source = get_value_from_str(toardb.toardb.DS_vocabulary,db_timeseries.source)
+    db_timeseries.measurement_method= get_value_from_str(toardb.toardb.MM_vocabulary,db_timeseries.measurement_method)
     db.add(db_timeseries)
     result = db.commit()
     db.refresh(db_timeseries)
@@ -132,8 +130,8 @@ def create_timeseries(db: Session, timeseries: TimeseriesCreate):
     if roles_data:
         for r in roles_data:
             db_role = models.TimeseriesRole(**r)
-            db_role.role = get_value_from_str(RC_enum,db_role.role)
-            db_role.status = get_value_from_str(RS_enum,db_role.status)
+            db_role.role = get_value_from_str(toardb.toardb.RC_vocabulary,db_role.role)
+            db_role.status = get_value_from_str(toardb.toardb.RS_vocabulary,db_role.status)
             # check whether role is already present in database
             db_object = get_unique_timeseries_role(db, db_role.role, db_role.contact_id, db_role.status)
             if db_object:
@@ -195,8 +193,8 @@ def patch_timeseries(db: Session, description: str, timeseries_id: int, timeseri
     if roles_data:
         for r in roles_data:
             db_role = models.TimeseriesRoleNoCreate(**r)
-            db_role.role = get_value_from_str(RC_enum,db_role.role)
-            db_role.status = get_value_from_str(RS_enum,db_role.status)
+            db_role.role = get_value_from_str(toardb.toardb.RC_vocabulary,db_role.role)
+            db_role.status = get_value_from_str(toardb.toardb.RS_vocabulary,db_role.status)
             # check whether role is already present in database
             db_object = get_unique_timeseries_role(db, db_role.role, db_role.contact_id, db_role.status)
             if db_object:
diff --git a/toardb/timeseries/fixtures/timeseries.json b/toardb/timeseries/fixtures/timeseries.json
index 167f2dd40f607cbf4f02e68b5a4a7a5653a56859..efdcda1334ed588870d89beaf1da5cb404436c93 100644
--- a/toardb/timeseries/fixtures/timeseries.json
+++ b/toardb/timeseries/fixtures/timeseries.json
@@ -7,12 +7,12 @@
     "access_rights": 0,
     "sampling_frequency": 0,
     "aggregation": 0,
-    "data_start_date": "2003-09-07 15:30:00",
-    "data_end_date": "2016-12-31 14:30:00",
+    "data_start_date": "2003-09-07 15:30:00+00:00",
+    "data_end_date": "2016-12-31 14:30:00+00:00",
     "measurement_method": 0,
     "sampling_height": 7,
     "additional_metadata": "{}",
-    "date_added": "2020-05-15 15:30:00",
-    "date_modified": "2020-05-16 09:30:00"
+    "date_added": "2020-05-15 15:30:00+00:00",
+    "date_modified": "2020-05-16 09:30:00+00:00"
   }
 ]
diff --git a/toardb/timeseries/models.py b/toardb/timeseries/models.py
index 19cbb5214132047867ebf1793827cfe42d580e40..815a73d7e8101c245679ab7998e2ceef975e6827 100644
--- a/toardb/timeseries/models.py
+++ b/toardb/timeseries/models.py
@@ -17,14 +17,6 @@ DA_enum_table = Table("da_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-from collections import namedtuple
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-DA_enum = (
-    Enumdict(0, 'ByAttribution', 'by attribution'),
-    Enumdict(1, 'ShareAlike', 'share alike'),
-    Enumdict(2, 'Restricted', 'restricted')
-    )
  
 # Sampling Frequencies
 SF_enum_table = Table("sf_vocabulary",
@@ -33,19 +25,6 @@ SF_enum_table = Table("sf_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-SF_enum = (
-    Enumdict(0, 'Hourly', 'hourly'),
-    Enumdict(1, 'ThreeHourly', '3-hourly'),
-    Enumdict(2, 'SixHourly', '6-hourly'),
-    Enumdict(3, 'Daily', 'daily'),
-    Enumdict(4, 'Weekly', 'weekly'),
-    Enumdict(5, 'Monthly', 'monthly'),
-    Enumdict(6, 'Yearly', 'yearly'),
-    Enumdict(7, 'Irregular', 'irregular data samples of constant length'),
-    Enumdict(8, 'Irregular2', 'irregular data samples of varying length')
-    )
-
 
 # Aggregation Types
 AT_enum_table = Table("at_vocabulary",
@@ -54,16 +33,6 @@ AT_enum_table = Table("at_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-AT_enum = (
-    Enumdict(0, 'Mean', 'mean'),
-    Enumdict(1, 'Mean1Of2', 'mean of two values'),
-    Enumdict(2, 'Mean1OfWeek', 'weekly mean'),
-    Enumdict(3, 'Mean4Samples', 'mean out of 4 samples'),
-    Enumdict(4, 'MeanMonth', 'monthly mean'),
-    Enumdict(5, 'None', 'none'),
-    Enumdict(6, 'Unknown', 'unknown')
-    )
 
 # Data Sources
 DS_enum_table = Table("ds_vocabulary",
@@ -72,11 +41,6 @@ DS_enum_table = Table("ds_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-DS_enum = (
-    Enumdict(0, 'Model', 'model'),
-    Enumdict(1, 'Measurement', 'measurement')
-    )
 
 # Measurement Methods
 MM_enum_table = Table("mm_vocabulary",
@@ -85,9 +49,4 @@ MM_enum_table = Table("mm_vocabulary",
                 Column("enum_str", String),
                 Column("enum_display_str", String)
           )
-# The following code is just a workaround (see stationmeta/models.py):
-MM_enum = (
-    Enumdict(0, 'UVAbsorption', 'UV absorption'),
-    Enumdict(1, 'UnknownInstrument', 'unknown instrument')
-    )
 
diff --git a/toardb/timeseries/models_annotation.py b/toardb/timeseries/models_annotation.py
index ccec7bd923f9eef4eb4e563e29587dc2c551355a..47201fb6e2a67eaad50e405649e536fb101f364a 100644
--- a/toardb/timeseries/models_annotation.py
+++ b/toardb/timeseries/models_annotation.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class TimeseriesAnnotation(Base)
 ================================
diff --git a/toardb/timeseries/models_changelog.py b/toardb/timeseries/models_changelog.py
index 1c150db13635a79e850864fb30833b6735287df1..74e515836fd5b1ce1cff084f870d8f3f261f72e7 100644
--- a/toardb/timeseries/models_changelog.py
+++ b/toardb/timeseries/models_changelog.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class TimeseriesChangelog(Base)
 ===============================
diff --git a/toardb/timeseries/models_core.py b/toardb/timeseries/models_core.py
index 81a7450b8de28b7bf63d629df85c5f619c69052f..070d542ca4ac04929548e94067f57d23cc895a44 100644
--- a/toardb/timeseries/models_core.py
+++ b/toardb/timeseries/models_core.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class Timeseries (Base)
 =======================
diff --git a/toardb/timeseries/models_programme.py b/toardb/timeseries/models_programme.py
index 60056a4b27076c1acf6c91678418b1bc0c48716a..a11498d93a2fda5f2cce0fa076c06a9c2f29b1bb 100644
--- a/toardb/timeseries/models_programme.py
+++ b/toardb/timeseries/models_programme.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class TimeseriesProgramme (Base)
 ================================
diff --git a/toardb/timeseries/models_role.py b/toardb/timeseries/models_role.py
index 35ee72a70ec0a6680f682353a0c6aba1f10ef4d8..10474f0dafd052bbf2ff07a16c77924a50bf0552 100644
--- a/toardb/timeseries/models_role.py
+++ b/toardb/timeseries/models_role.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 """
 class TimeseriesRole (Base)
 ===========================
diff --git a/toardb/timeseries/schemas.py b/toardb/timeseries/schemas.py
index 2b8806f7e02c72de9c946930d28860ba5c95b757..f6a67f540ebde60b09a9b88a8801f9a2b0235e24 100644
--- a/toardb/timeseries/schemas.py
+++ b/toardb/timeseries/schemas.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Pydantic schemas for TOAR database
 
@@ -8,9 +7,7 @@ from typing import List, Any
 
 from pydantic import BaseModel, Json, validator, Field
 import datetime as dt
-from toardb.generic.models import RS_enum, RC_enum
 from toardb.contacts.schemas import Contact
-from .models import DA_enum, SF_enum, AT_enum, DS_enum, MM_enum
 from toardb.variables.schemas import Variable 
 #from toardb.stationmeta.schemas import StationmetaCoreCreate
 from toardb.stationmeta.schemas import StationmetaCoreBase
@@ -18,6 +15,7 @@ from toardb.stationmeta.schemas import StationmetaCoreBase
 #from toardb.stationmeta.schemas import StationmetaCreate
 #from toardb.stationmeta.schemas import StationmetaBase
 #from toardb.stationmeta.schemas import Stationmeta
+import toardb
 
 # ======== Timeseries =========
 
@@ -43,23 +41,23 @@ class TimeseriesCoreBase(BaseModel):
 
     @validator('access_rights')
     def check_access_rights(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), DA_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.DA_vocabulary))[0].display_str
 
     @validator('sampling_frequency')
     def check_sampling_frequency(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), SF_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.SF_vocabulary))[0].display_str
 
     @validator('aggregation')
     def check_aggregation(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), AT_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.AT_vocabulary))[0].display_str
 
     @validator('source')
     def check_source(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), DS_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.DS_vocabulary))[0].display_str
 
     @validator('measurement_method')
     def check_measurement_method(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), MM_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.MM_vocabulary))[0].display_str
 
 
 class TimeseriesCoreCreate(TimeseriesCoreBase):
@@ -69,35 +67,35 @@ class TimeseriesCoreCreate(TimeseriesCoreBase):
 
     @validator('access_rights')
     def check_access_rights(cls, v):
-        if tuple(filter(lambda x: x.string == v, DA_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.DA_vocabulary)):
             return v
         else:
             raise ValueError(f"data access right not known: {v}")
 
     @validator('sampling_frequency')
     def check_sampling_frequency(cls, v):
-        if tuple(filter(lambda x: x.string == v, SF_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.SF_vocabulary)):
             return v
         else:
             raise ValueError(f"sampling frequency not known: {v}")
 
     @validator('aggregation')
     def check_aggregation(cls, v):
-        if tuple(filter(lambda x: x.string == v, AT_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.AT_vocabulary)):
             return v
         else:
             raise ValueError(f"aggregation type not known: {v}")
 
     @validator('source')
     def check_source(cls, v):
-        if tuple(filter(lambda x: x.string == v, DS_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.DS_vocabulary)):
             return v
         else:
             raise ValueError(f"data source not known: {v}")
 
     @validator('measurement_method')
     def check_measurement_method(cls, v):
-        if tuple(filter(lambda x: x.string == v, MM_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.MM_vocabulary)):
             return v
         else:
             raise ValueError(f"measurement method not known: {v}")
@@ -120,11 +118,11 @@ class TimeseriesRoleBase(BaseModel):
 
     @validator('role')
     def check_role(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), RC_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.RC_vocabulary))[0].display_str
 
     @validator('status')
     def check_status(cls, v):
-        return tuple(filter(lambda x: x.value == int(v), RS_enum))[0].display_str
+        return tuple(filter(lambda x: x.value == int(v), toardb.toardb.RS_vocabulary))[0].display_str
 
     class Config:
         orm_mode = True
@@ -135,14 +133,14 @@ class TimeseriesRoleCreate(TimeseriesRoleBase):
 
     @validator('role')
     def check_role(cls, v):
-        if tuple(filter(lambda x: x.string == v, RC_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.RC_vocabulary)):
             return v
         else:
             raise ValueError(f"role code not known: {v}")
 
     @validator('status')
     def check_status(cls, v):
-        if tuple(filter(lambda x: x.string == v, RS_enum)):
+        if tuple(filter(lambda x: x.string == v, toardb.toardb.RS_vocabulary)):
             return v
         else:
             raise ValueError(f"role status not known: {v}")
diff --git a/toardb/timeseries/test_timeseries.py b/toardb/timeseries/test_timeseries.py
index a71bda8a0b1e7318b14f9bcbc29dfbecccb1ce9f..086e5d1907dafbedbe7e8a6b8089070230ffc8d7 100644
--- a/toardb/timeseries/test_timeseries.py
+++ b/toardb/timeseries/test_timeseries.py
@@ -146,9 +146,9 @@ class TestApps:
         assert response.status_code == expected_status_code
         expected_resp = [{'id': 1, 'label': 'CMA', 'order': 1, 'access_rights': 'by attribution',
                           'sampling_frequency': 'hourly', 'aggregation': 'mean', 'source': 'measurement',
-                          'data_start_date': '2003-09-07T15:30:00+02:00', 'data_end_date': '2016-12-31T14:30:00+01:00',
+                          'data_start_date': '2003-09-07T15:30:00+00:00', 'data_end_date': '2016-12-31T14:30:00+00:00',
                           'measurement_method': 'UV absorption', 'sampling_height': 7.0,
-                          'date_added': '2020-05-15T15:30:00+02:00', 'date_modified': '2020-05-16T09:30:00+02:00',
+                          'date_added': '2020-05-15T15:30:00+00:00', 'date_modified': '2020-05-16T09:30:00+00:00',
                           'additional_metadata': {}, 'roles': [], 'annotations': [], 'changelog': [],
                           'variable': {'name': 'toluene', 'longname': 'toluene', 'displayname': 'Toluene',
                                        'cf_standardname': 'mole_fraction_of_toluene_in_air', 'units': 'nmol mol-1',
@@ -169,9 +169,9 @@ class TestApps:
         assert response.status_code == expected_status_code
         expected_resp = {'id': 1, 'label': 'CMA', 'order': 1, 'access_rights': 'by attribution',
                          'sampling_frequency': 'hourly', 'aggregation': 'mean', 'source': 'measurement',
-                         'data_start_date': '2003-09-07T15:30:00+02:00', 'data_end_date': '2016-12-31T14:30:00+01:00',
+                         'data_start_date': '2003-09-07T15:30:00+00:00', 'data_end_date': '2016-12-31T14:30:00+00:00',
                          'measurement_method': 'UV absorption', 'sampling_height': 7.0,
-                         'date_added': '2020-05-15T15:30:00+02:00', 'date_modified': '2020-05-16T09:30:00+02:00',
+                         'date_added': '2020-05-15T15:30:00+00:00', 'date_modified': '2020-05-16T09:30:00+00:00',
                          'additional_metadata': {}, 'roles': [], 'annotations': [], 'changelog': [],
                          'variable': {'name': 'toluene', 'longname': 'toluene', 'displayname': 'Toluene',
                                       'cf_standardname': 'mole_fraction_of_toluene_in_air', 'units': 'nmol mol-1',
diff --git a/toardb/timeseries/timeseries.py b/toardb/timeseries/timeseries.py
index eba50f1183c4257c337d80c87d67fb99f9094c2a..05c2831b4a748ae005414ec3e9ae7ac20a056300 100644
--- a/toardb/timeseries/timeseries.py
+++ b/toardb/timeseries/timeseries.py
@@ -7,7 +7,6 @@ from fastapi import APIRouter, Depends, HTTPException, Body
 from sqlalchemy.orm import Session
 from . import crud, schemas
 from toardb.utils.database import ToarDbSession, get_db
-from toardb.generic.models import RC_enum, RS_enum
 from toardb.utils.utils import get_str_from_value
 from toardb.contacts.crud import get_contact
 
diff --git a/toardb/toardb.py b/toardb/toardb.py
index a004f1374c5dc414c4493741a4285d1dfa3dd66b..ae25b1ca2ae5edfc44a227f3e15d4a4c88ba1c52 100644
--- a/toardb/toardb.py
+++ b/toardb/toardb.py
@@ -20,6 +20,28 @@ from toardb.data import data
 from collections import namedtuple
 from pydantic import BaseSettings
 
+RC_vocabulary = 0
+RS_vocabulary = 0
+AK_vocabulary = 0
+OK_vocabulary = 0
+DA_vocabulary = 0
+SF_vocabulary = 0
+AT_vocabulary = 0
+DS_vocabulary = 0
+MM_vocabulary = 0
+CZ_vocabulary = 0
+CV_vocabulary = 0
+CN_vocabulary = 0
+TZ_vocabulary = 0
+ST_vocabulary = 0
+TA_vocabulary = 0
+TC_vocabulary = 0
+TR_vocabulary = 0
+DL_vocabulary = 0
+RT_vocabulary = 0
+DF_vocabulary = 0
+CL_vocabulary = 0
+
 app = FastAPI()
 app.mount("/static", StaticFiles(directory="static"), name="static")
 
@@ -138,6 +160,28 @@ def __get_enum_dict(fake_cur, table_name):
 async def startup_event():
     fake_conn = engine.raw_connection()
     fake_cur = fake_conn.cursor()
+    global RC_vocabulary
+    global RS_vocabulary
+    global AK_vocabulary
+    global OK_vocabulary
+    global DA_vocabulary
+    global SF_vocabulary
+    global AT_vocabulary
+    global DS_vocabulary
+    global MM_vocabulary
+    global CZ_vocabulary
+    global CV_vocabulary
+    global CN_vocabulary
+    global TZ_vocabulary
+    global ST_vocabulary
+    global TA_vocabulary
+    global TC_vocabulary
+    global TR_vocabulary
+    global DL_vocabulary
+    global RT_vocabulary
+    global DF_vocabulary
+    global CL_vocabulary
+
     RC_vocabulary = __get_enum_dict(fake_cur, "rc_vocabulary")
     RS_vocabulary = __get_enum_dict(fake_cur, "rs_vocabulary")
     AK_vocabulary = __get_enum_dict(fake_cur, "ak_vocabulary")
@@ -161,34 +205,7 @@ async def startup_event():
     CL_vocabulary = __get_enum_dict(fake_cur, "cl_vocabulary")
 
 
-Enumdict=namedtuple("Dict",["value","string","display_str"])
-fake_conn = engine.raw_connection()
-fake_cur = fake_conn.cursor()
-RC_vocabulary = __get_enum_dict(fake_cur, "rc_vocabulary")
-RS_vocabulary = __get_enum_dict(fake_cur, "rs_vocabulary")
-AK_vocabulary = __get_enum_dict(fake_cur, "ak_vocabulary")
-OK_vocabulary = __get_enum_dict(fake_cur, "ok_vocabulary")
-DA_vocabulary = __get_enum_dict(fake_cur, "da_vocabulary")
-SF_vocabulary = __get_enum_dict(fake_cur, "sf_vocabulary")
-AT_vocabulary = __get_enum_dict(fake_cur, "at_vocabulary")
-DS_vocabulary = __get_enum_dict(fake_cur, "ds_vocabulary")
-MM_vocabulary = __get_enum_dict(fake_cur, "mm_vocabulary")
-CZ_vocabulary = __get_enum_dict(fake_cur, "cz_vocabulary")
-CV_vocabulary = __get_enum_dict(fake_cur, "cv_vocabulary")
-CN_vocabulary = __get_enum_dict(fake_cur, "cn_vocabulary")
-TZ_vocabulary = __get_enum_dict(fake_cur, "tz_vocabulary")
-ST_vocabulary = __get_enum_dict(fake_cur, "st_vocabulary")
-TA_vocabulary = __get_enum_dict(fake_cur, "ta_vocabulary")
-TC_vocabulary = __get_enum_dict(fake_cur, "tc_vocabulary")
-TR_vocabulary = __get_enum_dict(fake_cur, "tr_vocabulary")
-DL_vocabulary = __get_enum_dict(fake_cur, "dl_vocabulary")
-RT_vocabulary = __get_enum_dict(fake_cur, "rt_vocabulary")
-DF_vocabulary = __get_enum_dict(fake_cur, "df_vocabulary")
-CL_vocabulary = __get_enum_dict(fake_cur, "cl_vocabulary")
-
-
 class Settings(BaseSettings):
-    Enumdict=namedtuple("Dict",["value","string","display_str"])
     RC_vocab = RC_vocabulary
     RS_vocab = RS_vocabulary
     AK_vocab = AK_vocabulary
diff --git a/toardb/utils/utils.py b/toardb/utils/utils.py
index bd90ddd45a9a547dc712d01ca5be4a155f9d911d..fa753533a3e7a6234631e2f3a62e16558db90645 100644
--- a/toardb/utils/utils.py
+++ b/toardb/utils/utils.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 """
 Helper functions for TOAR database
 
@@ -7,28 +6,11 @@ from sqlalchemy import Table
 from sqlalchemy.orm import Session
 from collections import namedtuple
 
-# get the controlled vocabulary from table
-def __get_enum_dict(db: Session, table: Table):
-    Enumdict=namedtuple("Dict",["value","string","display_str"])
-    enum_dict = []
-    for entry in db.query(table).all():
-        enum_dict.append(Enumdict(*entry))
-    return enum_dict
-
 # function to return code for given value
-#def get_str_from_value(db: Session, table: Table, value: int) -> str:
 def get_str_from_value(enum_dict, value) -> str:
-#   enum_error = "Invalid " + table.name
-#   enum_dict = __get_enum_dict(db, table)
     return tuple(filter(lambda x: x.value == value, enum_dict))[0].string
 
-#   raise ValueError(enum_error)
-
 # function to return value for given code
-#def get_value_from_str(db: Session, table: Table, string: str) -> int:
 def get_value_from_str(enum_dict, string) -> int:
-#   enum_error = "Invalid " + table.name
-#   enum_dict = __get_enum_dict(db, table)
     return tuple(filter(lambda x: x.string == string, enum_dict))[0].value
 
-#   raise ValueError(enum_error)
diff --git a/toardb/variables/models.py b/toardb/variables/models.py
index da657f0eef16cd0a637d47817846e0f04af1fe4d..7ed3a8313491d4d46d29197aac0d90b3fef7e82c 100644
--- a/toardb/variables/models.py
+++ b/toardb/variables/models.py
@@ -1,4 +1,3 @@
-# coding: utf-8
 from sqlalchemy import Column, Integer, String, Sequence
 from sqlalchemy.orm import relationship
 from sqlalchemy.sql.sqltypes import NullType