diff --git a/xos/genx/tool/lib.py b/xos/genx/tool/lib.py
index fd7631e..a9cff78 100644
--- a/xos/genx/tool/lib.py
+++ b/xos/genx/tool/lib.py
@@ -11,6 +11,9 @@
     elif (content_type=='stripped' or content_type=='"stripped"'):
         return 'StrippedCharField'
 
+def xproto_eval(arg):
+    return eval(arg)
+
 def django_string_type(xptags):
     if ('content_type' in xptags):
         return django_content_type_string(xptags)
diff --git a/xos/genx/tool/xos2jinja.py b/xos/genx/tool/xos2jinja.py
index 09af05c..2804527 100644
--- a/xos/genx/tool/xos2jinja.py
+++ b/xos/genx/tool/xos2jinja.py
@@ -77,6 +77,7 @@
 
     def visit_LinkDefinition(self, obj):
         s={}
+
         s['link_type'] = obj.link_type.pval
         s['src_port'] = obj.src_port.value.pval
         s['name'] = obj.src_port.value.pval
@@ -96,7 +97,8 @@
         return True
 
     def visit_FieldDefinition_post(self, obj):
-        s={'_type':'field'}
+        s= {}
+        
         if isinstance(obj.ftype, m.Name):
             s['type'] = obj.ftype.value
         else:
@@ -112,6 +114,14 @@
             opts[k] = v
 
         s['options'] = opts
+        try:
+            last_link = self.stack[-1]['_type']
+            if (last_link=='link'):
+                s['link'] = True
+        except:
+            pass
+        s['_type'] = 'field'
+
         self.stack.push(s)
         return True
 
diff --git a/xos/genx/xprotos/core/tenantwithcontainer.xproto b/xos/genx/xprotos/core/tenantwithcontainer.xproto
index 78312d6..3c7b8e9 100644
--- a/xos/genx/xprotos/core/tenantwithcontainer.xproto
+++ b/xos/genx/xprotos/core/tenantwithcontainer.xproto
@@ -1,6 +1,6 @@
 
 
-message TenantWithContainer {
+message TenantWithContainer(Tenant) {
      optional string name = 1 [db_index = False, max_length = 200, null = True, content_type = "stripped", blank = True];
      required string kind = 2 [default = "generic", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
      required manytoone provider_service->Service:provided_tenants = 3 [db_index = True, null = False, blank = False];
@@ -12,8 +12,8 @@
      optional string service_specific_id = 9 [db_index = False, max_length = 30, null = True, content_type = "stripped", blank = True];
      optional string service_specific_attribute = 10 [db_index = False, null = True, blank = True];
      required string connect_method = 11 [default = "na", choices = "(('public', 'Public'), ('private', 'Private'), ('private-unidirectional', 'Private Unidirectional'), ('na', 'Not Applicable'))", max_length = 30, blank = False, null = False, db_index = False];
-     optional manytoone instance->Instance:+ = 12 [help_text = "Instance used by this Tenant", null = True, db_index = True, blank = True];
-     optional manytoone creator->User:+ = 13 [help_text = "Creator of this Tenant", null = True, db_index = True, blank = True];
+     optional manytoone instance->Instance:_ = 12 [help_text = "Instance used by this Tenant", null = True, db_index = True, blank = True];
+     optional manytoone creator->User:_ = 13 [help_text = "Creator of this Tenant", null = True, db_index = True, blank = True];
      optional string external_hostname = 14 [max_length = 30, content_type = "stripped", blank = True, help_text = "External host name", null = True, db_index = False];
      optional string external_container = 15 [max_length = 30, content_type = "stripped", blank = True, help_text = "External host name", null = True, db_index = False];
 }
