diff --git a/frontend/generate_base_model.py b/frontend/generate_base_model.py
index 67de965f504c6f82ff43ef995254beec931c426b..a5f2e4f57277140224285565324ea8db5729d335 100644
--- a/frontend/generate_base_model.py
+++ b/frontend/generate_base_model.py
@@ -44,6 +44,9 @@ if not request.status_code == 200:
     print("Is the NETDB_AUTH environment variable correct?")
     exit(1)
 func_index = request.json()[0]
+data_types = {k['name']: k for k in sess.get(
+    "{scheme}://{base_host}{base_url}/cntl/data_type/list".format(scheme=API_SCHEME, base_host=API_HOST,
+                                                                  base_url=API_BASE_URL)).json()[0]}
 for f in func_index:
     fname = '{system}.{object_type}.js'.format(system=f['system'], object_type=f['object_type'])
     f_handle = files.get(fname, None)
@@ -65,28 +68,41 @@ export default {
     params_dict_new = '{'
     params_dict_old = '{'
     for (p, v) in f['parameters'].items():
+        old_def_def = False
+        new_def_def = False
         old_default = None
         new_default = None
         p_esc = p
         for (unesc, esc) in keyword_replacements.items():
             p_esc = p_esc.replace(unesc, esc)
         if 'old' in v:
-            old_default = v['old']['dataDefault']
+            old_def_def = 'dataDefault' in v['old']
+            if old_def_def:
+                old_default = v['old']['dataDefault']
         if 'new' in v:
-            new_default = v['new']['dataDefault']
-        if v['dataType']['jsonName'] == 'string':
+            new_def_def = 'dataDefault' in v['new']
+            if new_def_def:
+                new_default = v['new']['dataDefault']
+        v['dataType'] = data_types[v['dataType']]
+        if v['dataType']['json_name'] == 'string':
             if old_default is not None:
                 old_default = '"{}"'.format(old_default)
             if new_default is not None:
                 new_default = '"{}"'.format(new_default)
         if 'old' in v:
-            if not f['is_data_manipulating'] and v['dataType']['jsonName'] == 'array':
+            if not f['is_data_manipulating'] and v['dataType']['json_name'] == 'array':
                 params_dict_old += '\'{p}\': ({p_esc}_old===null)?null:JSON.stringify({p}_old), '.format(p_esc=p, p=p)
             else:
                 params_dict_old += '\'{p}\': {p_esc}_old, '.format(p=p, p_esc=p_esc)
-            params_str += '{p_esc}_old={d}, '.format(p_esc=p_esc, p=p, d=old_default)
+            if old_def_def:
+                params_str += '{p_esc}_old={d}, '.format(p_esc=p_esc, p=p, d=old_default)
+            else:
+                params_str += '{p_esc}_old, '.format(p_esc=p_esc, p=p)
         if 'new' in v:
-            params_str += '{p}_new={d}, '.format(p=p, d=new_default)
+            if new_def_def:
+                params_str += '{p}_new={d}, '.format(p=p, d=new_default)
+            else:
+                params_str += '{p}_new, '.format(p=p)
             params_dict_new += '\'{p}\': {p}_new, '.format(p=p)
 
     params_dict_new += '}'
@@ -134,40 +150,62 @@ for f in files.values():
     f.close()
 
 
+def setDef(tmp):
+    res = []
+    for r in tmp:
+        if 'schema' in r:
+            if not r['schema']['has_def']:
+                del (r['schema']['default'])
+            del (r['schema']['has_def'])
+            res.append(r)
+        else:
+            if not r['has_def']:
+                del (r['default'])
+            del (r['has_def'])
+            res.append(r)
+    return res
+
+
 def generateParamters(f):
     if not f['is_data_manipulating']:
-        return [
+        tmp = [
             {
                 'name': p, 'description': d['description'],
                 'required': d['old']['isRequired'] if 'old' in d else d['new']['isRequired'],
                 'schema': {
-                    'type': d['dataType']['jsonName'],
-                    'default': d['old']['dataDefault'],
+                    'type': d['dataType']['json_name'],
                     'nullable': d['old']['isNullable'],
+                    'has_def': 'dataDefault' in d['old'],
+                    'default': d['old'].get('dataDefault', None)
                 },
                 'in': 'query'
             }
             for p, d in f['parameters'].items()]
+        return setDef(tmp)
     new_params = {
         p: {
-            'type': d['dataType']['jsonName'],
+            'type': d['dataType']['json_name'],
             'description': d['description'],
             'required': d['new']['isRequired'],
             'nullable': d['new']['isNullable'],
-            'default': d['new']['dataDefault']
+            'has_def': 'dataDefault' in d['new'],
+            'default': d['new'].get('dataDefault', None)
         }
         for p, d in f['parameters'].items() if 'new' in d
     }
     old_params = {
         p: {
-            'type': d['dataType']['jsonName'],
+            'type': d['dataType']['json_name'],
             'description': d['description'],
             'required': d['old']['isRequired'],
             'nullable': d['old']['isNullable'],
-            'default': d['old']['dataDefault']
+            'has_def': 'dataDefault' in d['old'],
+            'default': d['old'].get('dataDefault', None)
         }
         for p, d in f['parameters'].items() if 'old' in d
     }
+    old_params = {k: setDef([v])[0] for k, v in old_params.items()}
+    new_params = {k: setDef([v])[0] for k, v in new_params.items()}
     props = {}
     if len(old_params) > 0:
         props['old'] = {
@@ -213,7 +251,7 @@ swagger['paths'] = {f"/{f['system']}/{f['object_type']}/{f['name']}":
                     'schema': {
                         'type': 'array',
                         'items': {
-                            '$ref': '#/definitions/' + f['system']+'.'+f['object_type']
+                            '$ref': '#/definitions/' + f['system'] + '.' + f['object_type']
                         }
                     } if f['is_returning'] else None
                 },
@@ -232,16 +270,20 @@ swagger['paths'] = {f"/{f['system']}/{f['object_type']}/{f['name']}":
 
 
 def renderDataType(d):
-    dat = {'type': d['dataType']['jsonName'],
+    dat = {'type': d['dataType']['json_name'],
            'description': d['description']
            }
-    if d['dataType']['apiName'] == 'text_array':
+    if d['dataType']['name'] == 'text_array':
         dat['items'] = {
             'type': 'string'
         }
     return dat
 
 
+for o in objects:
+    for a,d in o['attributes'].items():
+        d['dataType'] = data_types[d['dataType']]
+
 swagger['definitions'] = {o['fq_name']:
     {
         'type': 'object',