diff --git a/mCordPortal/src/app/services/rest/imsi.js b/mCordPortal/src/app/services/rest/imsi.js
new file mode 100644
index 0000000..57c3827
--- /dev/null
+++ b/mCordPortal/src/app/services/rest/imsi.js
@@ -0,0 +1,24 @@
+(function () {
+  angular.module('mCord')
+    .service('Imsi', function($resource, $q, $http, baseUrl){
+      const r = $resource(`${baseUrl}api/imsi/:id`, {id: '@id'}, {
+        save: {method: 'PUT'}
+      });
+
+      r.prototype.getProfiles = function(){
+        const d = $q.defer();
+
+        $http.get(`${baseUrl}api/imsi/${this.eNBId}/profile`)
+          .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/view/enode-list/enode-list.js b/mCordPortal/src/app/view/enode-list/enode-list.js
index 8814838..ed52596 100644
--- a/mCordPortal/src/app/view/enode-list/enode-list.js
+++ b/mCordPortal/src/app/view/enode-list/enode-list.js
@@ -13,7 +13,7 @@
           Enodeb.query().$promise
           .then((enodes) => {
             this.enodes = enodes;
-          })
+          });
 
           this.tableConfig = {
             order: true,
diff --git a/mCordPortal/src/app/view/imsi-list/imsi-list.js b/mCordPortal/src/app/view/imsi-list/imsi-list.js
new file mode 100644
index 0000000..14ceeda
--- /dev/null
+++ b/mCordPortal/src/app/view/imsi-list/imsi-list.js
@@ -0,0 +1,58 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/13/16.
+ */
+
+(function () {
+  'use strict';
+  angular.module('mCord')
+    .directive('imsiList', function ($uibModal) {
+      return {
+        restrict: 'E',
+        scope: {},
+        controllerAs: 'vm',
+        templateUrl: 'app/view/imsi-list/imsi-list.tpl.html',
+        controller: function ($log, Imsi) {
+
+          Imsi.query().$promise
+            .then((imsi) => {
+              console.log(imsi);
+              this.imsi = imsi;
+            });
+
+          this.tableConfig = {
+            order: true,
+            filter: 'field',
+            columns: [
+              {
+                label: '#',
+                prop: 'IMSI',
+                link: item => `#/imsi/${item.IMSI}`
+              },
+              {
+                label: 'Enodeb',
+                prop: 'Enodeb'
+              },
+              {
+                label: 'DlMeasBitRate',
+                prop: 'DlMeasBitRate'
+              },
+              {
+                label: 'UlMeasBitRate',
+                prop: 'UlMeasBitRate'
+              },
+              {
+                label: 'Status',
+                prop: 'UeStatus',
+                type: 'boolean'
+              }
+            ]
+          };
+        }
+      }
+    });
+})();
+
diff --git a/mCordPortal/src/app/view/imsi-list/imsi-list.tpl.html b/mCordPortal/src/app/view/imsi-list/imsi-list.tpl.html
new file mode 100644
index 0000000..4dd757e
--- /dev/null
+++ b/mCordPortal/src/app/view/imsi-list/imsi-list.tpl.html
@@ -0,0 +1,3 @@
+<div class="container-fluid">
+    <xos-table config="vm.tableConfig" data="vm.imsi"></xos-table>
+</div>
\ No newline at end of file
diff --git a/mCordPortal/src/app/view/profiles-list/profiles-list.js b/mCordPortal/src/app/view/profiles-list/profiles-list.js
new file mode 100644
index 0000000..5cfdb56
--- /dev/null
+++ b/mCordPortal/src/app/view/profiles-list/profiles-list.js
@@ -0,0 +1,63 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/13/16.
+ */
+
+(function () {
+  'use strict';
+  angular.module('mCord')
+    .directive('profilesList', function ($uibModal) {
+      return {
+        restrict: 'E',
+        scope: {},
+        controllerAs: 'vm',
+        templateUrl: 'app/view/profiles-list/profiles-list.tpl.html',
+        controller: function ($log, Profile) {
+          Profile.query().$promise
+            .then((profiles) => {
+              this.profiles = profiles;
+            });
+
+          this.tableConfig = {
+            order: true,
+            filter: 'field',
+            columns: [
+              {
+                label: '#',
+                prop: 'Name',
+                link: item => `#/profile/${item.Name}`
+              },
+              {
+                label: 'DlSchedType',
+                prop: 'DlSchedType'
+              },
+              {
+                label: 'DlAllocRBRate',
+                prop: 'DlAllocRBRate'
+              },
+              {
+                label: 'UlSchedType',
+                prop: 'UlSchedType'
+              },
+              {
+                label: 'UlAllocRBRate',
+                prop: 'UlAllocRBRate'
+              },
+              {
+                label: 'Start',
+                prop: 'Start'
+              },
+              {
+                label: 'End',
+                prop: 'End'
+              }
+            ]
+          };
+        }
+      }
+    });
+})();
+
diff --git a/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html b/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html
new file mode 100644
index 0000000..f1c17f6
--- /dev/null
+++ b/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html
@@ -0,0 +1,3 @@
+<div class="container-fluid">
+    <xos-table config="vm.tableConfig" data="vm.profiles"></xos-table>
+</div>
\ No newline at end of file
