diff --git a/planetstack/apigen/api.template.py b/planetstack/apigen/api.template.py
index 5c5c914..c3e76e1 100644
--- a/planetstack/apigen/api.template.py
+++ b/planetstack/apigen/api.template.py
@@ -44,7 +44,7 @@
 	{% endfor %}
 	class Meta:
 		model = {{ object.camel }}
-		fields = ({% for prop in object.props %}'{{ prop }}',{% endfor %}{% for ref in object.refs %}'{{ ref }}',{% endfor %})
+		fields = ({% for prop in object.props %}'{{ prop }}',{% endfor %}{% for ref in object.refs %}{%if ref.multi %}'{{ ref.plural }}'{% else %}'{{ ref }}'{% endif %},{% endfor %})
 {% endfor %}
 
 serializerLookUp = { 
diff --git a/planetstack/apigen/modelgen b/planetstack/apigen/modelgen
index db9ae84..e75467e 100755
--- a/planetstack/apigen/modelgen
+++ b/planetstack/apigen/modelgen
@@ -43,13 +43,17 @@
 		self.model = m
 		self.props = []
 		self.refs = []
+		self.plural_name = None
 
 	def plural(self):
-		name = str(self)
-		if (name.endswith('s')):
-			return name+'es'
+		if (self.plural_name):
+			return self.plural_name
 		else:
-			return name+'s'
+			name = str(self)
+			if (name.endswith('s')):
+				return name+'es'
+			else:
+				return name+'s'
 
 	def camel(self):
 		name = str(self.model.__name__)
@@ -70,13 +74,19 @@
 
 	def compute_links(self):
 		for obj in self.values():
-			#if (str(obj).lower()=='user'):
+			#if (str(obj)=='siteprivilege'):
 			#	pdb.set_trace()
 			fields = obj.model._meta.fields
 			for f in fields:
 				if type(f)==ForeignKey and f.name in self.keys():
 					refobj = self[f.name]
 					obj.refs.append(refobj)
+					related_name = f.related_query_name()
+					if (related_name.lower()!=str(obj).lower()):
+						cobj = copy.deepcopy(obj)
+						cobj.multi = True
+						cobj.plural_name = related_name
+						refobj.refs.append(cobj)
 				else:
 					obj.props.append(f.name)
 			m2m = obj.model._meta.many_to_many
@@ -92,6 +102,14 @@
 					cobj = copy.deepcopy(obj)
 					cobj.multi=True
 					refobj.refs.append(cobj)
+				
+				if (related_name.lower()!=str(obj).lower()):
+					cobj = copy.deepcopy(obj)
+					cobj.multi = True
+					cobj.plural_name = related_name
+					refobj.refs.append(obj)
+
+
 
 			
 def main():
diff --git a/planetstack/apigen/simple.template.txt b/planetstack/apigen/simple.template.txt
index 109927e..fb00670 100644
--- a/planetstack/apigen/simple.template.txt
+++ b/planetstack/apigen/simple.template.txt
@@ -1,7 +1,8 @@
 {% for object in generator.all %}
 Object {{ object }}:
 Refs:
-{% for ref in object.refs %}{{ ref }}{% endfor %}
+{% for ref in object.refs %}
+{{ ref }}{% endfor %}
 Props:
 {% for prop in object.props %}{{ prop }}
 {% endfor %}
diff --git a/planetstack/genapi.py b/planetstack/genapi.py
index 2542324..bc2967f 100644
--- a/planetstack/genapi.py
+++ b/planetstack/genapi.py
@@ -86,9 +86,13 @@
 class ImageSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
+	
+	slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail')
+	
+	
 	class Meta:
 		model = Image
-		fields = ('id','created','updated','enacted','image_id','name','disk_format','container_format',)
+		fields = ('id','created','updated','enacted','image_id','name','disk_format','container_format','slivers',)
 
 
 class NetworkParameterSerializer(serializers.HyperlinkedModelSerializer):
@@ -102,9 +106,29 @@
 class SiteSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
+	
+	slices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail')
+	
+	
+	
+	nodes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='node-detail')
+	
+	
+	
+	users = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='user-detail')
+	
+	
+	
+	site_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='siteprivilege-detail')
+	
+	
+	
+	accounts = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='account-detail')
+	
+	
 	class Meta:
 		model = Site
-		fields = ('id','created','updated','enacted','tenant_id','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name',)
+		fields = ('id','created','updated','enacted','tenant_id','name','site_url','enabled','location','longitude','latitude','login_base','is_public','abbreviated_name','slices','nodes','users','site_privileges','accounts',)
 
 
 class SliceRoleSerializer(serializers.HyperlinkedModelSerializer):
@@ -123,6 +147,10 @@
 	
 	
 	
+	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
+	
+	
+	
 	service = serializers.HyperlinkedRelatedField(read_only=True, view_name='service-detail')
 	
 	
@@ -131,16 +159,28 @@
 	
 	
 	
+	slice = serializers.HyperlinkedRelatedField(read_only=True, view_name='slice-detail')
+	
+	
+	
 	slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail')
 	
 	
 	
+	sliver = serializers.HyperlinkedRelatedField(read_only=True, view_name='sliver-detail')
+	
+	
+	
 	nodes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='node-detail')
 	
 	
+	
+	node = serializers.HyperlinkedRelatedField(read_only=True, view_name='node-detail')
+	
+	
 	class Meta:
 		model = Tag
-		fields = ('id','created','updated','enacted','name','value','content_type','object_id','site','service','slice','sliver','node',)
+		fields = ('id','created','updated','enacted','name','value','content_type','object_id','sites','site','service','slices','slice','slivers','sliver','nodes','node',)
 
 
 class InvoiceSerializer(serializers.HyperlinkedModelSerializer):
@@ -150,9 +190,13 @@
 	account = serializers.HyperlinkedRelatedField(read_only=True, view_name='account-detail')
 	
 	
+	
+	charges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='charge-detail')
+	
+	
 	class Meta:
 		model = Invoice
-		fields = ('id','created','updated','enacted','date','account',)
+		fields = ('id','created','updated','enacted','date','account','charges',)
 
 
 class PlanetStackRoleSerializer(serializers.HyperlinkedModelSerializer):
@@ -203,6 +247,10 @@
 	id = serializers.Field()
 	
 	
+	slice_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliceprivilege-detail')
+	
+	
+	
 	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
 	
 	
@@ -215,12 +263,36 @@
 	
 	
 	
+	network = serializers.HyperlinkedRelatedField(read_only=True, view_name='network-detail')
+	
+	
+	
 	networks = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='network-detail')
 	
 	
+	
+	network = serializers.HyperlinkedRelatedField(read_only=True, view_name='network-detail')
+	
+	
+	
+	charges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='charge-detail')
+	
+	
+	
+	slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail')
+	
+	
+	
+	reservations = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='reservation-detail')
+	
+	
+	
+	slicetags = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slicetag-detail')
+	
+	
 	class Meta:
 		model = Slice
-		fields = ('id','created','updated','enacted','tenant_id','name','enabled','omf_friendly','description','slice_url','network_id','router_id','subnet_id','serviceClass','creator','site','service','network','network',)
+		fields = ('id','created','updated','enacted','tenant_id','name','enabled','omf_friendly','description','slice_url','network_id','router_id','subnet_id','serviceClass','creator','slice_privileges','site','service','networks','network','networks','network','charges','slivers','reservations','slicetags',)
 
 
 class NetworkSerializer(serializers.HyperlinkedModelSerializer):
@@ -231,20 +303,40 @@
 	
 	
 	
+	router = serializers.HyperlinkedRelatedField(read_only=True, view_name='router-detail')
+	
+	
+	
 	routers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='router-detail')
 	
 	
+	
+	router = serializers.HyperlinkedRelatedField(read_only=True, view_name='router-detail')
+	
+	
 	class Meta:
 		model = Network
-		fields = ('id','created','updated','enacted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id','router','router',)
+		fields = ('id','created','updated','enacted','name','template','subnet','ports','labels','owner','guaranteedBandwidth','permitAllSlices','network_id','router_id','subnet_id','routers','router','routers','router',)
 
 
 class ServiceSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
+	
+	serviceattributes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='serviceattribute-detail')
+	
+	
+	
+	tags = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='tag-detail')
+	
+	
+	
+	service = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='slice-detail')
+	
+	
 	class Meta:
 		model = Service
-		fields = ('id','created','updated','enacted','description','enabled','name','versionNumber','published',)
+		fields = ('id','created','updated','enacted','description','enabled','name','versionNumber','published','serviceattributes','tags','service',)
 
 
 class ServiceClassSerializer(serializers.HyperlinkedModelSerializer):
@@ -307,6 +399,14 @@
 	
 	
 	
+	network = serializers.HyperlinkedRelatedField(read_only=True, view_name='network-detail')
+	
+	
+	
+	serviceclass = serializers.HyperlinkedRelatedField(read_only=True, view_name='serviceclass-detail')
+	
+	
+	
 	image = serializers.HyperlinkedRelatedField(read_only=True, view_name='image-detail')
 	
 	
@@ -318,15 +418,23 @@
 	node = serializers.HyperlinkedRelatedField(read_only=True, view_name='node-detail')
 	
 	
+	
+	reservedResourrces = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='reservedresource-detail')
+	
+	
 	class Meta:
 		model = Sliver
-		fields = ('id','created','updated','enacted','instance_id','name','instance_name','ip','creator','deploymentNetwork','numberCores','network','image','slice','node',)
+		fields = ('id','created','updated','enacted','instance_id','name','instance_name','ip','creator','deploymentNetwork','numberCores','networks','network','serviceclass','image','slice','node','reservedResourrces',)
 
 
 class NodeSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
 	
+	slivers = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliver-detail')
+	
+	
+	
 	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
 	
 	
@@ -336,7 +444,7 @@
 	
 	class Meta:
 		model = Node
-		fields = ('id','created','updated','enacted','name','site','deployment',)
+		fields = ('id','created','updated','enacted','name','slivers','site','deployment',)
 
 
 class ReservedResourceSerializer(serializers.HyperlinkedModelSerializer):
@@ -403,12 +511,28 @@
 	id = serializers.Field()
 	
 	
+	slice_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='sliceprivilege-detail')
+	
+	
+	
+	planetstack_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='planetstackprivilege-detail')
+	
+	
+	
 	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
 	
 	
+	
+	site_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='siteprivilege-detail')
+	
+	
+	
+	deployment_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='deploymentprivilege-detail')
+	
+	
 	class Meta:
 		model = User
-		fields = ('id','password','last_login','email','username','kuser_id','firstname','lastname','phone','user_url','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','timezone','site',)
+		fields = ('id','password','last_login','email','username','kuser_id','firstname','lastname','phone','user_url','public_key','is_active','is_admin','is_staff','is_readonly','created','updated','enacted','timezone','slice_privileges','planetstack_privileges','site','site_privileges','deployment_privileges',)
 
 
 class DeploymentSerializer(serializers.HyperlinkedModelSerializer):
@@ -418,9 +542,21 @@
 	sites = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='site-detail')
 	
 	
+	
+	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
+	
+	
+	
+	nodes = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='node-detail')
+	
+	
+	
+	deployment_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='deploymentprivilege-detail')
+	
+	
 	class Meta:
 		model = Deployment
-		fields = ('id','created','updated','enacted','name','site',)
+		fields = ('id','created','updated','enacted','name','sites','site','nodes','deployment_privileges',)
 
 
 class ReservationSerializer(serializers.HyperlinkedModelSerializer):
@@ -458,21 +594,37 @@
 class PlanetStackSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
+	
+	planetstack_privileges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='planetstackprivilege-detail')
+	
+	
 	class Meta:
 		model = PlanetStack
-		fields = ('id','created','updated','enacted','description',)
+		fields = ('id','created','updated','enacted','description','planetstack_privileges',)
 
 
 class AccountSerializer(serializers.HyperlinkedModelSerializer):
 	id = serializers.Field()
 	
 	
+	invoices = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='invoice-detail')
+	
+	
+	
+	charges = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='charge-detail')
+	
+	
+	
+	payments = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='payment-detail')
+	
+	
+	
 	site = serializers.HyperlinkedRelatedField(read_only=True, view_name='site-detail')
 	
 	
 	class Meta:
 		model = Account
-		fields = ('id','created','updated','enacted','site',)
+		fields = ('id','created','updated','enacted','invoices','charges','payments','site',)
 
 
 class NetworkParameterTypeSerializer(serializers.HyperlinkedModelSerializer):
