diff --git a/mCordPortal/src/app/components/related-stats/related-stats.js b/mCordPortal/src/app/components/related-stats/related-stats.js
index 08bc813..48da617 100644
--- a/mCordPortal/src/app/components/related-stats/related-stats.js
+++ b/mCordPortal/src/app/components/related-stats/related-stats.js
@@ -36,7 +36,9 @@
           this.model.getStats()
           .then((stats) => {
             this.selectedStats = 'download_data';
-            this.stats = formatStats(stats.ProfileArray);
+            if(angular.isDefined(stats.ProfileArray)){
+              this.stats = formatStats(stats.ProfileArray);
+            }
           });
         };
 
diff --git a/mCordPortal/src/app/services/config.js b/mCordPortal/src/app/services/config.js
index 9bba19f..ae7adbd 100644
--- a/mCordPortal/src/app/services/config.js
+++ b/mCordPortal/src/app/services/config.js
@@ -1,9 +1,10 @@
 (function () {
   angular.module('mCord')
     .value('baseUrl', (function(){
-      if (process.env.MOCK === 'true') {
+      if (process.env.MOCK === 'apiary') {
         return 'http://private-c85424-progranrestapi.apiary-mock.com/';
-      } else {
+      }
+      else {
         return '';
       }
     })())
diff --git a/mCordPortal/src/app/services/rest/enodeb.js b/mCordPortal/src/app/services/rest/enodeb.js
index d1b9e50..aa28702 100644
--- a/mCordPortal/src/app/services/rest/enodeb.js
+++ b/mCordPortal/src/app/services/rest/enodeb.js
@@ -1,14 +1,32 @@
 (function () {
   angular.module('mCord')
-  .service('Enodeb', function($resource, $q, $http, baseUrl){
-    const r = $resource(`${baseUrl}api/enodeb/:id`, {id: '@eNBId'}, {
-      save: {method: 'PUT'}
+  .service('Enodeb', function($injector, $resource, $q, $http, baseUrl){
+    const r = $resource(`${baseUrl}onos/progran/enodeb/:id`, {id: '@eNBId'}, {
+      save: {method: 'PUT'},
+      query: {
+        array: false,
+        interceptor: {
+          response: function(res){
+            const Enodeb = $injector.get('Enodeb');
+            return res.data.EnodeBArray.map(n => new Enodeb(n));
+          }
+        }
+      },
+      get: {
+        array: false,
+        interceptor: {
+          response: function(res){
+            const Enodeb = $injector.get('Enodeb');
+            return new Enodeb(res.data.EnodeBArray[0]);
+          }
+        }
+      }
     });
 
     r.prototype.getProfiles = function(){
       const d = $q.defer();
 
-      $http.get(`${baseUrl}api/enodeb/${this.eNBId}/profile`)
+      $http.get(`${baseUrl}onos/progran/enodeb/${this.eNBId}/profile`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -21,8 +39,7 @@
 
     r.prototype.getStats = function(){
       const d = $q.defer();
-
-      $http.get(`${baseUrl}api/stats/enodeb/${this.eNBId}/10`)
+      $http.get(`${baseUrl}onos/progran/stats/enodeb/${this.eNBId}/10`)
       .then(res => {
         d.resolve(res.data);
       })
diff --git a/mCordPortal/src/app/services/rest/imsi.js b/mCordPortal/src/app/services/rest/imsi.js
index 8e93aac..2359fe1 100644
--- a/mCordPortal/src/app/services/rest/imsi.js
+++ b/mCordPortal/src/app/services/rest/imsi.js
@@ -1,14 +1,32 @@
 (function () {
   angular.module('mCord')
-    .service('Imsi', function($resource, $q, $http, baseUrl){
-      const r = $resource(`${baseUrl}api/imsi/:id`, {id: '@IMSI'}, {
-        save: {method: 'PUT'}
+    .service('Imsi', function($injector, $resource, $q, $http, baseUrl){
+      const r = $resource(`${baseUrl}onos/progran/imsi/:id`, {id: '@IMSI'}, {
+        save: {method: 'PUT'},
+        query: {
+          array: false,
+          interceptor: {
+            response: function(res){
+              const Imsi = $injector.get('Imsi');
+              return res.data.ImsiArray.map(i => new Imsi(i));
+            }
+          }
+        },
+        get: {
+          array: false,
+          interceptor: {
+            response: function(res){
+              const Imsi = $injector.get('Imsi');
+              return new Imsi(res.data.ImsiArray[0]);
+            }
+          }
+        }
       });
 
       r.prototype.getProfiles = function(){
         const d = $q.defer();
 
-        $http.get(`${baseUrl}api/imsi/${this.IMSI}/profile`)
+        $http.get(`${baseUrl}onos/progran/imsi/${this.IMSI}/profile`)
           .then(res => {
             d.resolve(res.data);
           })
@@ -21,7 +39,7 @@
 
       r.prototype.deleteProfile = function(id){
         const d = $q.defer();
-        $http.delete(`${baseUrl}api/imsi/${this.IMSI}/profile/${id}`)
+        $http.delete(`${baseUrl}onos/progran/imsi/${this.IMSI}/profile/${id}`)
           .then(res => {
             d.resolve(res.data);
           })
diff --git a/mCordPortal/src/app/services/rest/profiles.js b/mCordPortal/src/app/services/rest/profiles.js
index a6e0d3c..6582784 100644
--- a/mCordPortal/src/app/services/rest/profiles.js
+++ b/mCordPortal/src/app/services/rest/profiles.js
@@ -1,12 +1,32 @@
 (function () {
   angular.module('mCord')
-  .service('Profile', function($resource, $q, $http, baseUrl){
-    const r = $resource(`${baseUrl}api/profile/:id`, {id: '@Name'});
+  .service('Profile', function($injector, $resource, $q, $http, baseUrl){
+    const r = $resource(`${baseUrl}onos/progran/profile/:id`, {id: '@Name'}, {
+      save: {method: 'PUT'},
+      query: {
+        array: false,
+        interceptor: {
+          response: function(res){
+            const Profile = $injector.get('Profile');
+            return res.data.ProfileArray.map(p => new Profile(p));
+          }
+        }
+      },
+      get: {
+        array: false,
+        interceptor: {
+          response: function(res){
+            const Profile = $injector.get('Profile');
+            return new Profile(res.data.ProfileArray[0]);
+          }
+        }
+      }
+    });
 
     r.prototype.getImsis = function(){
       const d = $q.defer();
 
-      $http.get(`${baseUrl}api/profile/${this.Name}/imsi`)
+      $http.get(`${baseUrl}onos/progran/profile/${this.Name}/imsi`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -20,7 +40,7 @@
     r.prototype.deleteImsis = function(){
       const d = $q.defer();
 
-      $http.delete(`${baseUrl}api/profile/${this.Name}/imsi`)
+      $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/imsi`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -34,7 +54,7 @@
     r.prototype.deleteImsi = function(id){
       const d = $q.defer();
 
-      $http.delete(`${baseUrl}api/profile/${this.Name}/imsi/${id}`)
+      $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/imsi/${id}`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -48,7 +68,7 @@
     r.prototype.getEnodes = function(){
       const d = $q.defer();
 
-      $http.get(`${baseUrl}api/profile/${this.Name}/enodeb`)
+      $http.get(`${baseUrl}onos/progran/profile/${this.Name}/enodeb`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -62,7 +82,7 @@
     r.prototype.deleteEnodes = function(){
       const d = $q.defer();
 
-      $http.delete(`${baseUrl}api/profile/${this.Name}/enodeb`)
+      $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/enodeb`)
       .then(res => {
         d.resolve(res.data);
       })
@@ -76,7 +96,7 @@
     r.prototype.deleteEnode = function(id){
       const d = $q.defer();
 
-      $http.delete(`${baseUrl}api/profile/${this.Name}/enodeb/${id}`)
+      $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/enodeb/${id}`)
       .then(res => {
         d.resolve(res.data);
       })
diff --git a/mCordPortal/src/app/services/users.js b/mCordPortal/src/app/services/users.js
index ebce988..5d4866d 100644
--- a/mCordPortal/src/app/services/users.js
+++ b/mCordPortal/src/app/services/users.js
@@ -58,8 +58,9 @@
       .then(function(subscribers){
         // subscribers are an array because the way Django perform query
         // but one user is related to only one subscriber
-
-        $cookies.put('subscriberId', subscribers.data[0].id);
+        if(subscribers.data[0]){
+          $cookies.put('subscriberId', subscribers.data[0].id);
+        }
         deferred.resolve(user);
       })
       .catch(function(e){
diff --git a/mCordPortal/src/app/view/home/e-node-map.js b/mCordPortal/src/app/view/home/e-node-map.js
index b3818e7..423a5c7 100644
--- a/mCordPortal/src/app/view/home/e-node-map.js
+++ b/mCordPortal/src/app/view/home/e-node-map.js
@@ -15,12 +15,13 @@
 
           Enodeb.query().$promise
           .then((enodes) => {
-            console.log('loaded enodes for map');
             this.enodes = enodes;
             bounds = new google.maps.LatLngBounds();
             enodes.forEach(node => {
-              const latlng = new google.maps.LatLng(node.GpsCoordinate.Latitude, node.GpsCoordinate.Longitude);
-              bounds.extend(latlng);
+              if(angular.isDefined(node.GpsCoordinate.Latitude) && angular.isDefined(node.GpsCoordinate.Longitude)){
+                const latlng = new google.maps.LatLng(node.GpsCoordinate.Latitude, node.GpsCoordinate.Longitude);
+                bounds.extend(latlng);
+              }
             });
             return NgMap.getMap();
           })
diff --git a/mCordPortal/src/app/view/home/e-node-map.tpl.html b/mCordPortal/src/app/view/home/e-node-map.tpl.html
index afe6735..2c1dd95 100644
--- a/mCordPortal/src/app/view/home/e-node-map.tpl.html
+++ b/mCordPortal/src/app/view/home/e-node-map.tpl.html
@@ -1,7 +1,7 @@
 <ng-map center="[0, 0]" map-type-control="false" street-view-control="false" zoom-control="false" scale-control="false">
   <marker 
-    ng-repeat="enode in vm.enodes" 
-    position="[{{enode.GpsCoordinate.Latitude}}, {{enode.GpsCoordinate.Longitude}}]" 
+    ng-repeat="enode in vm.enodes"
+    position="[{{enode.GpsCoordinate.Latitude}}, {{enode.GpsCoordinate.Longitude}}]"
     on-click="vm.showEnodeDetails(enode)"
     no-watcher="false"></marker>
 </ng-map>
diff --git a/mCordPortal/src/app/view/profiles-details/profiles-details.js b/mCordPortal/src/app/view/profiles-details/profiles-details.js
index 124db00..4f03dcd 100644
--- a/mCordPortal/src/app/view/profiles-details/profiles-details.js
+++ b/mCordPortal/src/app/view/profiles-details/profiles-details.js
@@ -16,30 +16,170 @@
         controllerAs: 'vm',
         templateUrl: 'app/view/profiles-details/profiles-details.tpl.html',
         controller: function ($uibModal, $stateParams, Profile, _) {
-          Profile.get({id: $stateParams.id}).$promise
-          .then((profile) => {
-            this.profile = profile;
-            return $q.all([
-              profile.getImsis(),
-              profile.getEnodes()
-            ]);
-          })
-          .then(res => {
-            const [imsis, enodes] = res;
-            this.imsis = imsis;
-            this.enodes = enodes;
-          })
-          .catch(e => console.log(e));
+          this.isNew = true;
+          if($stateParams.id){
+            Profile.get({id: $stateParams.id}).$promise
+            .then((profile) => {
+              this.profile = profile;
+              this.isNew = false;
+              this.formConfig.actions[0].label = 'Update';
+              return $q.all([
+                profile.getImsis(),
+                profile.getEnodes()
+              ]);
+            })
+            .then(res => {
+              const [imsis, enodes] = res;
+              this.imsis = imsis;
+              this.enodes = enodes;
+            })
+            .catch(e => console.log(e));
+          }
+          else {
+            this.profile = new Profile();
+            this.imsis = [];
+            this.enodes = [];
+          }
+
+          const UD_Types = [
+            {id: 'RR', label: 'RR'},
+            {id: 'PF', label: 'PF'},
+            {id: 'MAXCI', label: 'MAXCI'}
+          ];
 
           this.formConfig = {
             exclude: ['IMSIRuleArray'],
             formName: 'updateProfiles',
+            fields: {
+              Name: {
+                type: 'string',
+                validator: {
+                  required: true
+                }
+              },
+              DlSchedType: {
+                type: 'select',
+                validator: {
+                  required: true
+                },
+                options: UD_Types
+              },
+              DlAllocRBRate: {
+                type: 'number',
+                validator: {
+                  required: true
+                }
+              },
+              UlSchedType: {
+                type: 'select',
+                validator: {
+                  required: true
+                },
+                options: UD_Types
+              },
+              UlAllocRBRate: {
+                type: 'number',
+                validator: {
+                  required: true
+                }
+              },
+              Start: {
+                type: 'date',
+                validator: {
+                  required: true
+                }
+              },
+              End: {
+                type: 'date',
+                validator: {
+                  required: true
+                }
+              },
+              AdmControl: {
+                type: 'select',
+                validator: {
+                  required: true
+                },
+                options: [
+                  {id: 0, label: 'All'},
+                  {id: 1, label: 'Voice Only'},
+                  {id: 2, label: 'Data Only'}
+                ]
+              },
+              CellIndividualOffset: {
+                type: 'number',
+                validator: {
+                  required: true
+                }
+              },
+              Handover: {
+                type: 'object',
+                properties: {
+                  A3offset: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  HysteresisA3: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  A5TriggerType: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  A5Thresh1Rsrp: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  A5Thresh1Rsrq: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  A5Thresh2Rsrp: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  A5Thresh2Rsrq: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                  HysteresisA5: {
+                    type: 'number',
+                    validator: {
+                      required: true
+                    }
+                  },
+                }
+              }
+            },
             actions: [
               {
-                label: 'Update',
+                label: 'Save',
                 icon: 'ok',
-                cb: (imsi) => {
-                  imsi.$save();
+                cb: (profile) => {
+                  if(this.isNew){
+                    Profile.save(profile).$promise
+                    .then((profile) => {
+                      // TODO save imsi and enodes
+                    });
+                  }
+                  else{
+                    profile.$save();
+                  }
                 },
                 class: 'primary-border'
               }
@@ -142,6 +282,7 @@
               controller: function ($uibModalInstance) {
                 this.modal    = $uibModalInstance;
                 this.callback = (imsi) => {
+                  // TODO call BE (if !this.isNew)
                   _this.imsis.push(imsi);
                 };
                 this.profile = _this.profile;
@@ -158,6 +299,7 @@
               controller: function ($uibModalInstance) {
                 this.modal    = $uibModalInstance;
                 this.callback = (enode) => {
+                  // TODO call BE (if !this.isNew)
                   _this.enodes.push(enode);
                 };
                 this.profile = _this.profile;
diff --git a/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html b/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html
index f1c17f6..b02b98b 100644
--- a/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html
+++ b/mCordPortal/src/app/view/profiles-list/profiles-list.tpl.html
@@ -1,3 +1,8 @@
 <div class="container-fluid">
+    <div class="row">
+        <div class="col-xs-12 text-right">
+            <a ui-sref="profile-details" class="btn btn-success">Add Profile</a>
+        </div>
+    </div>
     <xos-table config="vm.tableConfig" data="vm.profiles"></xos-table>
 </div>
\ No newline at end of file
