Fixed apigen command to use update method
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/Example.js b/views/ngXosLib/xosHelpers/src/services/rest/Example.js
new file mode 100644
index 0000000..b13ccda
--- /dev/null
+++ b/views/ngXosLib/xosHelpers/src/services/rest/Example.js
@@ -0,0 +1,13 @@
+(function() {
+  'use strict';
+
+  angular.module('xos.helpers')
+  /**
+  * @ngdoc service
+  * @name xos.helpers.Example-Services-Collection
+  * @description Angular resource to fetch /api/service/exampleservice/
+  **/
+  .service('Example-Services-Collection', function($resource){
+    return $resource('/api/service/exampleservice/');
+  })
+})();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/Instances.js b/views/ngXosLib/xosHelpers/src/services/rest/Instances.js
index 57e5537..f1e8521 100644
--- a/views/ngXosLib/xosHelpers/src/services/rest/Instances.js
+++ b/views/ngXosLib/xosHelpers/src/services/rest/Instances.js
@@ -5,9 +5,11 @@
   /**
   * @ngdoc service
   * @name xos.helpers.Instances
-  * @description Angular resource to fetch /api/core/instances/:instance_id/
+  * @description Angular resource to fetch /api/core/instances/:id/
   **/
   .service('Instances', function($resource){
-    return $resource('/api/core/instances/:instance_id/', { instance_id: '@id' });
+    return $resource('/api/core/instances/:id/', { id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
 })();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/Subscribers.js b/views/ngXosLib/xosHelpers/src/services/rest/Subscribers.js
index ebab252..342d856 100644
--- a/views/ngXosLib/xosHelpers/src/services/rest/Subscribers.js
+++ b/views/ngXosLib/xosHelpers/src/services/rest/Subscribers.js
@@ -8,7 +8,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/
   **/
   .service('Subscribers', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -16,7 +18,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/
   **/
   .service('Subscriber-features', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -24,7 +28,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/uplink_speed/
   **/
   .service('Subscriber-features-uplink_speed', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/uplink_speed/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/uplink_speed/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -32,7 +38,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/downlink_speed/
   **/
   .service('Subscriber-features-downlink_speed', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/downlink_speed/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/downlink_speed/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -40,7 +48,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/cdn/
   **/
   .service('Subscriber-features-cdn', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/cdn/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/cdn/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -48,7 +58,9 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/uverse/
   **/
   .service('Subscriber-features-uverse', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/uverse/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/uverse/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
   /**
   * @ngdoc service
@@ -56,6 +68,8 @@
   * @description Angular resource to fetch /api/tenant/cord/subscriber/:subscriber_id/features/status/
   **/
   .service('Subscriber-features-status', function($resource){
-    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/status/', { subscriber_id: '@id' });
+    return $resource('/api/tenant/cord/subscriber/:subscriber_id/features/status/', { subscriber_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
 })();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/Truckroll.js b/views/ngXosLib/xosHelpers/src/services/rest/Truckroll.js
index 9927967..0895a99 100644
--- a/views/ngXosLib/xosHelpers/src/services/rest/Truckroll.js
+++ b/views/ngXosLib/xosHelpers/src/services/rest/Truckroll.js
@@ -8,6 +8,8 @@
   * @description Angular resource to fetch /api/tenant/truckroll/:truckroll_id/
   **/
   .service('Truckroll-Collection', function($resource){
-    return $resource('/api/tenant/truckroll/:truckroll_id/', { truckroll_id: '@id' });
+    return $resource('/api/tenant/truckroll/:truckroll_id/', { truckroll_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
 })();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/Users.js b/views/ngXosLib/xosHelpers/src/services/rest/Users.js
index cb93866..8be0fdd 100644
--- a/views/ngXosLib/xosHelpers/src/services/rest/Users.js
+++ b/views/ngXosLib/xosHelpers/src/services/rest/Users.js
@@ -5,9 +5,11 @@
   /**
   * @ngdoc service
   * @name xos.helpers.Users
-  * @description Angular resource to fetch /api/core/users/:user_id/
+  * @description Angular resource to fetch /api/core/users/:id/
   **/
   .service('Users', function($resource){
-    return $resource('/api/core/users/:user_id/', { user_id: '@id' });
+    return $resource('/api/core/users/:id/', { id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
 })();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/services/rest/vOLT.js b/views/ngXosLib/xosHelpers/src/services/rest/vOLT.js
index f182c06..424c48d 100644
--- a/views/ngXosLib/xosHelpers/src/services/rest/vOLT.js
+++ b/views/ngXosLib/xosHelpers/src/services/rest/vOLT.js
@@ -8,6 +8,8 @@
   * @description Angular resource to fetch /api/tenant/cord/volt/:volt_id/
   **/
   .service('vOLT-Collection', function($resource){
-    return $resource('/api/tenant/cord/volt/:volt_id/', { volt_id: '@id' });
+    return $resource('/api/tenant/cord/volt/:volt_id/', { volt_id: '@id' }, {
+      update: { method: 'PUT' }
+    });
   })
 })();
\ No newline at end of file
diff --git a/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js b/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
index 5f2443b..8cbe0af 100644
--- a/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
+++ b/views/ngXosLib/xosHelpers/src/ui_components/smartComponents/smartTable/smartTable.component.js
@@ -122,6 +122,9 @@
       controllerAs: 'vm',
       controller: function($injector, LabelFormatter, _, XosFormHelpers){
         
+        // TODO
+        // - Validate the config (what if resource does not exist?)
+
         // NOTE
         // Corner case
         // - if response is empty, how can we generate a form ?
@@ -137,6 +140,7 @@
               label: 'delete',
               icon: 'remove',
               cb: (item) => {
+                console.log(item);
                 this.Resource.delete({id: item.id}).$promise
                 .then(() => {
                   _.remove(this.data, (d) => d.id === item.id);
@@ -173,9 +177,21 @@
               label: 'Save',
               icon: 'ok',
               cb: (item) => {
-                item.$save()
-                .then((res) => {
-                  this.data.push(angular.copy(res));
+                let p;
+                let isNew = true;
+
+                if(item.id){
+                  p = item.$update();
+                  isNew = false;
+                }
+                else {
+                  p = item.$save();
+                }
+
+                p.then((res) => {
+                  if(isNew){
+                    this.data.push(angular.copy(res));
+                  }
                   delete this.detailedItem;
                   this.responseMsg = `${this.config.resource} with id ${item.id} successfully saved`;
                 })
@@ -210,7 +226,7 @@
             let props = Object.keys(item);
 
             _.remove(props, p => {
-              return p == 'id' || p == 'password' || p == 'validators'
+              return p == 'id' || p == 'validators'
             });
 
             // TODO move out cb