diff --git a/mCordPortal/src/app/services/helpers.js b/mCordPortal/src/app/services/helpers.js
index a46833f..c8772a2 100644
--- a/mCordPortal/src/app/services/helpers.js
+++ b/mCordPortal/src/app/services/helpers.js
@@ -15,7 +15,7 @@
  */
 
 (function () {
-  "use strict";
+  'use strict';
 
   angular.module('mCord')
   .service('Helpers', function(){
@@ -24,6 +24,9 @@
         start.getTime() + Math.random() * (end.getTime() - start.getTime())
       );
     }
+  })
+  .factory('_', function(){
+    return window._;
   });
 
 }());
\ No newline at end of file
diff --git a/mCordPortal/src/app/services/rest/enodeb.js b/mCordPortal/src/app/services/rest/enodeb.js
index 42cd062..e0bdfc1 100644
--- a/mCordPortal/src/app/services/rest/enodeb.js
+++ b/mCordPortal/src/app/services/rest/enodeb.js
@@ -1,6 +1,36 @@
 (function () {
   angular.module('mCord')
-  .service('Enodeb', function($resource, baseUrl){
-    return $resource(`${baseUrl}api/enodeb/:id`, {id: '@id'});
+  .service('Enodeb', function($resource, $q, $http, baseUrl){
+    const r = $resource(`${baseUrl}api/enodeb/:id`, {id: '@id'});
+
+    r.prototype.getProfiles = function(){
+      const d = $q.defer();
+
+      $http.get(`${baseUrl}api/enodeb/${this.eNBId}/profile`)
+      .then(res => {
+        d.resolve(res.data);
+      })
+      .catch(err => {
+        d.reject(err)
+      });
+
+      return d.promise;
+    };
+
+    r.prototype.getStats = function(){
+      const d = $q.defer();
+
+      $http.get(`${baseUrl}api/stats/enodeb/${this.eNBId}/10`)
+      .then(res => {
+        d.resolve(res.data);
+      })
+      .catch(err => {
+        d.reject(err)
+      });
+
+      return d.promise;
+    };
+
+    return r;
   })
 })();
\ No newline at end of file
diff --git a/mCordPortal/src/app/services/rest/profiles.js b/mCordPortal/src/app/services/rest/profiles.js
new file mode 100644
index 0000000..ab9fca9
--- /dev/null
+++ b/mCordPortal/src/app/services/rest/profiles.js
@@ -0,0 +1,6 @@
+(function () {
+  angular.module('mCord')
+  .service('Profile', function($resource, baseUrl){
+    return $resource(`${baseUrl}api/profile/:id`, {id: '@id'});
+  })
+})();
\ No newline at end of file
