diff --git a/netbox/generate_basic_tests.go b/netbox/generate_basic_tests.go
index 35bd6ff668557f99e08f4a1a66d1cd66d83c4687..01d83e7dd6d9cfbfd85a60dd01e955e0d9b9597a 100644
--- a/netbox/generate_basic_tests.go
+++ b/netbox/generate_basic_tests.go
@@ -223,7 +223,7 @@ func TestBasicCreate{{ .TypeName }}(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *{{ .TypeName }}
-		want       *{{ .TypeName }}
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
@@ -231,7 +231,7 @@ func TestBasicCreate{{ .TypeName }}(t *testing.T) {
 		{
 			desc:       "Create with ID 0",
 			data:       test{{ .TypeName }}Create(1),
-			want:       test{{ .TypeName }}(1),
+			want:       1,
 			status:     0,
 			errstr:     "",
 			serverData: test{{ .TypeName }}(1),
@@ -239,7 +239,7 @@ func TestBasicCreate{{ .TypeName }}(t *testing.T) {
 		{
 			desc:   "Create duplicate",
 			data:   test{{ .TypeName }}Create(1),
-			want:   nil,
+			want:   0,
 			status: http.StatusBadRequest,
 			errstr: "400 - {\"name\":[\"{{ .ServiceName }} with this name already exists.\"]}\n",
 			serverData: &struct {
@@ -275,15 +275,15 @@ func TestBasicUpdate{{ .TypeName }}(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *{{ .TypeName }}
-		want       *{{ .TypeName }}
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
 	}{
 		{
-			desc:       "Create with ID 1",
+			desc:       "Update with ID 1",
 			data:       test{{ .TypeName }}(1),
-			want:       test{{ .TypeName }}(1),
+			want:       1,
 			serverData: test{{ .TypeName }}(1),
 			status:     0,
 			errstr:     "",
@@ -291,7 +291,7 @@ func TestBasicUpdate{{ .TypeName }}(t *testing.T) {
 		{
 			desc: "Update not found",
 			data: test{{ .TypeName }}(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Detail string
 			}{
@@ -301,9 +301,9 @@ func TestBasicUpdate{{ .TypeName }}(t *testing.T) {
 			errstr: "404 - Not found.",
 		},
 		{
-			desc: "Create duplicate",
+			desc: "Update to duplicate",
 			data: test{{ .TypeName }}(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Name []string {{ call .JSONTag "name" }}
 			}{
diff --git a/netbox/generate_functions.go b/netbox/generate_functions.go
index 84619282e883d89e94eabd1578951f174e6a61ad..de6f33a2898d1e24e0d37bdffa19c38485a45481 100644
--- a/netbox/generate_functions.go
+++ b/netbox/generate_functions.go
@@ -149,31 +149,30 @@ func (s *{{ .ServiceName }}) Extract(page *Page) ([]*{{ .TypeName }}, error) {
 	return groups, nil
 }
 
-// Create creates a new {{ .TypeName }} object in NetBox and returns the new object.
-func (s *{{ .ServiceName }}) Create(data *{{ .TypeName }}) (*{{ .TypeName }}, error) {
+// Create creates a new {{ .TypeName }} object in NetBox and returns the ID of the new object.
+func (s *{{ .ServiceName }}) Create(data *{{ .TypeName }}) (int, error) {
 	req, err := s.c.NewJSONRequest(http.MethodPost, "api/{{ .Endpoint }}/{{ .Service }}/", nil, data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	g := new({{ .UpdateTypeName }})
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	data.ID = g.ID
-	return data, nil
+	return g.ID, nil
 }
 
-// Update changes an existing {{ .TypeName }} object in NetBox, and returns the new object.
-func (s *{{ .ServiceName }}) Update(data *{{ .TypeName }}) (*{{ .TypeName }}, error) {
+// Update changes an existing {{ .TypeName }} object in NetBox, and returns the ID of the new object.
+func (s *{{ .ServiceName }}) Update(data *{{ .TypeName }}) (int, error) {
 	req, err := s.c.NewJSONRequest(
 		http.MethodPatch,
 		fmt.Sprintf("api/{{ .Endpoint }}/{{ .Service }}/%d/", data.ID),
 		nil,
 		data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	// g is just used to verify correct api result.
@@ -183,9 +182,9 @@ func (s *{{ .ServiceName }}) Update(data *{{ .TypeName }}) (*{{ .TypeName }}, er
 	g := new({{ .UpdateTypeName }})
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	return data, nil
+	return g.ID, nil
 }
 
 // Delete deletes an existing {{ .TypeName }} object from NetBox.
diff --git a/netbox/tenancy_tenant-groups.go b/netbox/tenancy_tenant-groups.go
index 66feef51c397eeebb3f489051711bc2cc1a50aff..a774faee21ee17c26adfac13841d5384a5fd7cca 100644
--- a/netbox/tenancy_tenant-groups.go
+++ b/netbox/tenancy_tenant-groups.go
@@ -14,7 +14,7 @@
 
 // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 // This file was generated by robots at
-// 2017-05-17 14:19:30.696198918 +0200 CEST
+// 2017-05-18 14:20:17.056969293 +0200 CEST
 
 package netbox
 
@@ -66,31 +66,30 @@ func (s *TenantGroupsService) Extract(page *Page) ([]*TenantGroup, error) {
 	return groups, nil
 }
 
-// Create creates a new TenantGroup object in NetBox and returns the new object.
-func (s *TenantGroupsService) Create(data *TenantGroup) (*TenantGroup, error) {
+// Create creates a new TenantGroup object in NetBox and returns the ID of the new object.
+func (s *TenantGroupsService) Create(data *TenantGroup) (int, error) {
 	req, err := s.c.NewJSONRequest(http.MethodPost, "api/tenancy/tenant-groups/", nil, data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	g := new(TenantGroup)
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	data.ID = g.ID
-	return data, nil
+	return g.ID, nil
 }
 
-// Update changes an existing TenantGroup object in NetBox, and returns the new object.
-func (s *TenantGroupsService) Update(data *TenantGroup) (*TenantGroup, error) {
+// Update changes an existing TenantGroup object in NetBox, and returns the ID of the new object.
+func (s *TenantGroupsService) Update(data *TenantGroup) (int, error) {
 	req, err := s.c.NewJSONRequest(
 		http.MethodPatch,
 		fmt.Sprintf("api/tenancy/tenant-groups/%d/", data.ID),
 		nil,
 		data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	// g is just used to verify correct api result.
@@ -100,9 +99,9 @@ func (s *TenantGroupsService) Update(data *TenantGroup) (*TenantGroup, error) {
 	g := new(TenantGroup)
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	return data, nil
+	return g.ID, nil
 }
 
 // Delete deletes an existing TenantGroup object from NetBox.
diff --git a/netbox/tenancy_tenant-groups_basic_test.go b/netbox/tenancy_tenant-groups_basic_test.go
index 9d3ab3cf0558076325a047a01b6dc94f55790e88..b96098df1a330a5aac4e5f0ee786c550970ded30 100644
--- a/netbox/tenancy_tenant-groups_basic_test.go
+++ b/netbox/tenancy_tenant-groups_basic_test.go
@@ -14,7 +14,7 @@
 
 // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 // This file was generated by robots at
-// 2017-05-17 14:19:30.943187077 +0200 CEST
+// 2017-05-18 14:20:17.307177904 +0200 CEST
 
 package netbox
 
@@ -142,7 +142,7 @@ func TestBasicCreateTenantGroup(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *TenantGroup
-		want       *TenantGroup
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
@@ -150,7 +150,7 @@ func TestBasicCreateTenantGroup(t *testing.T) {
 		{
 			desc:       "Create with ID 0",
 			data:       testTenantGroupCreate(1),
-			want:       testTenantGroup(1),
+			want:       1,
 			status:     0,
 			errstr:     "",
 			serverData: testTenantGroup(1),
@@ -158,7 +158,7 @@ func TestBasicCreateTenantGroup(t *testing.T) {
 		{
 			desc:   "Create duplicate",
 			data:   testTenantGroupCreate(1),
-			want:   nil,
+			want:   0,
 			status: http.StatusBadRequest,
 			errstr: "400 - {\"name\":[\"TenantGroupsService with this name already exists.\"]}\n",
 			serverData: &struct {
@@ -194,15 +194,15 @@ func TestBasicUpdateTenantGroup(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *TenantGroup
-		want       *TenantGroup
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
 	}{
 		{
-			desc:       "Create with ID 1",
+			desc:       "Update with ID 1",
 			data:       testTenantGroup(1),
-			want:       testTenantGroup(1),
+			want:       1,
 			serverData: testTenantGroup(1),
 			status:     0,
 			errstr:     "",
@@ -210,7 +210,7 @@ func TestBasicUpdateTenantGroup(t *testing.T) {
 		{
 			desc: "Update not found",
 			data: testTenantGroup(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Detail string
 			}{
@@ -220,9 +220,9 @@ func TestBasicUpdateTenantGroup(t *testing.T) {
 			errstr: "404 - Not found.",
 		},
 		{
-			desc: "Create duplicate",
+			desc: "Update to duplicate",
 			data: testTenantGroup(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Name []string `json:"name"`
 			}{
diff --git a/netbox/tenancy_tenants.go b/netbox/tenancy_tenants.go
index c9cc00cb50577a45b0b59220e4d28b862b0f7978..5b751de150227ee0515c1ce56a539808b79c7c69 100644
--- a/netbox/tenancy_tenants.go
+++ b/netbox/tenancy_tenants.go
@@ -14,7 +14,7 @@
 
 // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 // This file was generated by robots at
-// 2017-05-17 14:19:31.190654936 +0200 CEST
+// 2017-05-18 14:20:17.557582817 +0200 CEST
 
 package netbox
 
@@ -66,31 +66,30 @@ func (s *TenantsService) Extract(page *Page) ([]*Tenant, error) {
 	return groups, nil
 }
 
-// Create creates a new Tenant object in NetBox and returns the new object.
-func (s *TenantsService) Create(data *Tenant) (*Tenant, error) {
+// Create creates a new Tenant object in NetBox and returns the ID of the new object.
+func (s *TenantsService) Create(data *Tenant) (int, error) {
 	req, err := s.c.NewJSONRequest(http.MethodPost, "api/tenancy/tenants/", nil, data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	g := new(updateTenant)
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	data.ID = g.ID
-	return data, nil
+	return g.ID, nil
 }
 
-// Update changes an existing Tenant object in NetBox, and returns the new object.
-func (s *TenantsService) Update(data *Tenant) (*Tenant, error) {
+// Update changes an existing Tenant object in NetBox, and returns the ID of the new object.
+func (s *TenantsService) Update(data *Tenant) (int, error) {
 	req, err := s.c.NewJSONRequest(
 		http.MethodPatch,
 		fmt.Sprintf("api/tenancy/tenants/%d/", data.ID),
 		nil,
 		data)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
 
 	// g is just used to verify correct api result.
@@ -100,9 +99,9 @@ func (s *TenantsService) Update(data *Tenant) (*Tenant, error) {
 	g := new(updateTenant)
 	err = s.c.Do(req, g)
 	if err != nil {
-		return nil, err
+		return 0, err
 	}
-	return data, nil
+	return g.ID, nil
 }
 
 // Delete deletes an existing Tenant object from NetBox.
diff --git a/netbox/tenancy_tenants_basic_test.go b/netbox/tenancy_tenants_basic_test.go
index f954536cffa5253c878124e1a601f32bac84ec5c..6586429ac3975d4e5b492bad9358c52b6d331b4e 100644
--- a/netbox/tenancy_tenants_basic_test.go
+++ b/netbox/tenancy_tenants_basic_test.go
@@ -14,7 +14,7 @@
 
 // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 // This file was generated by robots at
-// 2017-05-17 14:19:31.43602063 +0200 CEST
+// 2017-05-18 14:20:17.805444662 +0200 CEST
 
 package netbox
 
@@ -142,7 +142,7 @@ func TestBasicCreateTenant(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *Tenant
-		want       *Tenant
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
@@ -150,7 +150,7 @@ func TestBasicCreateTenant(t *testing.T) {
 		{
 			desc:       "Create with ID 0",
 			data:       testTenantCreate(1),
-			want:       testTenant(1),
+			want:       1,
 			status:     0,
 			errstr:     "",
 			serverData: testTenant(1),
@@ -158,7 +158,7 @@ func TestBasicCreateTenant(t *testing.T) {
 		{
 			desc:   "Create duplicate",
 			data:   testTenantCreate(1),
-			want:   nil,
+			want:   0,
 			status: http.StatusBadRequest,
 			errstr: "400 - {\"name\":[\"TenantsService with this name already exists.\"]}\n",
 			serverData: &struct {
@@ -194,15 +194,15 @@ func TestBasicUpdateTenant(t *testing.T) {
 	var tests = []struct {
 		desc       string
 		data       *Tenant
-		want       *Tenant
+		want       int
 		serverData interface{}
 		status     int
 		errstr     string
 	}{
 		{
-			desc:       "Create with ID 1",
+			desc:       "Update with ID 1",
 			data:       testTenant(1),
-			want:       testTenant(1),
+			want:       1,
 			serverData: testTenant(1),
 			status:     0,
 			errstr:     "",
@@ -210,7 +210,7 @@ func TestBasicUpdateTenant(t *testing.T) {
 		{
 			desc: "Update not found",
 			data: testTenant(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Detail string
 			}{
@@ -220,9 +220,9 @@ func TestBasicUpdateTenant(t *testing.T) {
 			errstr: "404 - Not found.",
 		},
 		{
-			desc: "Create duplicate",
+			desc: "Update to duplicate",
 			data: testTenant(1),
-			want: nil,
+			want: 0,
 			serverData: &struct {
 				Name []string `json:"name"`
 			}{