diff --git a/xos/core/xoslib/ngXosLib/README.md b/xos/core/xoslib/ngXosLib/README.md
index 65f3529..f1d5018 100644
--- a/xos/core/xoslib/ngXosLib/README.md
+++ b/xos/core/xoslib/ngXosLib/README.md
@@ -30,6 +30,22 @@
 
 >_NOTE before adding libraries please discuss it to avoid this file to became huge_
 
+### Helpers
+
+XOS comes with an helper library that is automatically loaded in the Django template.
+
+To use it, add `xos.helpers` to your required modules:
+
+```
+angular.module('xos.myView', [
+  'xos.helpers'
+])
+```
+
+It will automatically ad a `token` to all your request, eventually you can take advantage of some other services:
+
+- **NoHyperlinks Interceptor**: will add a `?no_hyperlinks=1` to your request, to tell Django to return ids instead of links.
+
 ### Yo Xos
 
 We have created a [yeoman](http://yeoman.io/) generator to help you scaffolding views.
diff --git a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/server.js b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/server.js
index 2ffbade..907dd19 100644
--- a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/server.js
+++ b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulp/server.js
@@ -39,7 +39,8 @@
       server: {
         baseDir: options.src,
         routes: {
-          '/api': options.api
+          '/api': options.api,
+          '/xosHelpers': options.helpers
         },
         middleware: function(req, res, next){
           if(req.url.indexOf('no_hyperlinks') !== -1){
@@ -75,7 +76,8 @@
         inject(
           gulp.src([
             options.tmp + '**/*.js',
-            options.api + '*.js'
+            options.api + '*.js',
+            options.helpers + '**/*.js'
           ])
           .pipe(angularFilesort()),
           {
diff --git a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulpfile.js b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulpfile.js
index 94aa335..948a99d 100644
--- a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulpfile.js
+++ b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/gulpfile.js
@@ -9,6 +9,7 @@
   tmp: 'src/.tmp',
   dist: 'dist/',
   api: '../../ngXosLib/api/',
+  helpers: '../../ngXosLib/xosHelpers/',
   static: '../../static/', // this is the django static folder
   dashboards: '../../dashboards/' // this is the django html folder
 };
diff --git a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/js/main.js b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/js/main.js
index 728394a..9a7bb98 100644
--- a/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/js/main.js
+++ b/xos/core/xoslib/ngXosLib/generator-xos/app/templates/src/js/main.js
@@ -12,6 +12,7 @@
   'ngRoute',
   'ngCookies',
   'ngLodash',
+  'xos.helpers',
   'xos.xos'
 ])
 .config(($interpolateProvider, $routeProvider, $resourceProvider) => {
@@ -28,29 +29,11 @@
 
   .otherwise('/');
 })
-// TODO move this in xos.service module
 .config(function($httpProvider){
   // add X-CSRFToken header for update, create, delete (!GET)
   $httpProvider.interceptors.push('SetCSRFToken');
+  $httpProvider.interceptors.push('NoHyperlinks');
 })
-.factory('SetCSRFToken', function($cookies){
-  return {
-    request: function(request){
-
-      // if request is not HTML
-      if(request.url.indexOf('.html') === -1){
-        request.url += '?no_hyperlinks=1';
-      }
-
-      if(request.method !== 'GET'){
-        // request.headers['X-CSRFToken'] = $cookies.get('csrftoken');
-        request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
-      }
-      return request;
-    }
-  };
-})
-// ENDTODO
 .directive('usersList', function(xos){
   return {
     restrict: 'E',
diff --git a/xos/core/xoslib/ngXosLib/gulp/ngXosHelpers.js b/xos/core/xoslib/ngXosLib/gulp/ngXosHelpers.js
new file mode 100644
index 0000000..cc68513
--- /dev/null
+++ b/xos/core/xoslib/ngXosLib/gulp/ngXosHelpers.js
@@ -0,0 +1,16 @@
+var gulp = require('gulp');
+var uglify = require('gulp-uglify');
+var concat = require("gulp-concat");
+var ngAnnotate = require('gulp-ng-annotate');
+var angularFilesort = require('gulp-angular-filesort');
+
+module.exports = function(options){
+  gulp.task('helpers', function(){
+    return gulp.src([options.xosHelperSource + '**/*.js'])
+      .pipe(angularFilesort())
+      .pipe(concat('ngXosHelpers.js'))
+      .pipe(ngAnnotate())
+      .pipe(uglify())
+      .pipe(gulp.dest(options.ngXosVendor));
+  });
+};
\ No newline at end of file
diff --git a/xos/core/xoslib/ngXosLib/gulpfile.js b/xos/core/xoslib/ngXosLib/gulpfile.js
index d693457..25bf8fa 100644
--- a/xos/core/xoslib/ngXosLib/gulpfile.js
+++ b/xos/core/xoslib/ngXosLib/gulpfile.js
@@ -4,7 +4,8 @@
 var wrench = require('wrench');
 
 var options = {
-  ngXosVendor: '../static/js/vendor/' //save here the minfied vendor file, this is automatically loaded in the django page
+  ngXosVendor: '../static/js/vendor/', //save here the minfied vendor file, this is automatically loaded in the django page
+  xosHelperSource: './xosHelpers/'
 };
 
 wrench.readdirSyncRecursive('./gulp')
diff --git a/xos/core/xoslib/ngXosLib/package.json b/xos/core/xoslib/ngXosLib/package.json
index 5239a41..f6f1391 100644
--- a/xos/core/xoslib/ngXosLib/package.json
+++ b/xos/core/xoslib/ngXosLib/package.json
@@ -18,7 +18,9 @@
   },
   "devDependencies": {
     "gulp": "^3.9.0",
+    "gulp-angular-filesort": "^1.1.1",
     "gulp-concat": "^2.6.0",
+    "gulp-ng-annotate": "^1.1.0",
     "gulp-uglify": "^1.4.2",
     "wiredep": "^3.0.0-beta",
     "wrench": "^1.5.8"
diff --git a/xos/templates/admin/base.html b/xos/templates/admin/base.html
index 1187d35..04ec651 100644
--- a/xos/templates/admin/base.html
+++ b/xos/templates/admin/base.html
@@ -22,6 +22,7 @@
 
   <!-- ngXosLib -->
   <script src="{% static 'js/vendor/ngXosVendor.js' %}"></script>
+  <script src="{% static 'js/vendor/ngXosHelpers.js' %}"></script>
   <script src="{% static 'js/xosApi.js' %}"></script>
 
   <script type="text/javascript">var Suit = { $: $.noConflict() }; if (!$) $ = Suit.$; </script>
