diff --git a/mCordPortal/src/app/components/add-profile-to-item/add-profile-to-item.js b/mCordPortal/src/app/components/add-profile-to-item/add-profile-to-item.js
new file mode 100644
index 0000000..17f0504
--- /dev/null
+++ b/mCordPortal/src/app/components/add-profile-to-item/add-profile-to-item.js
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+angular.module('mCord')
+  .directive('addProfileToItem', function () {
+    return {
+      restrict: 'E',
+      templateUrl: 'app/components/add-profile-to-item/add-profile-to-item.html',
+      scope: {
+        modal: '=',
+        cb: '=',
+        item: '='
+      },
+      bindToController: true,
+      controllerAs: 'vm',
+      controller: function(Profile){
+
+        Profile.query().$promise
+        .then((profiles) => {
+          // TODO diff all profile from item.getProfiles
+          this.profiles = profiles;
+          return this.item.getProfiles();
+        })
+        .then((itemProfiles) => {
+          this.profiles = _.differenceBy(this.profiles, itemProfiles, 'Name');
+        });
+
+        this.config = {
+          columns: [
+            {
+              label: 'Name',
+              prop: 'Name'
+            },
+            {
+              label: 'DlAllocRBRate',
+              prop: 'DlAllocRBRate'
+            },
+            {
+              label: 'UlAllocRBRate',
+              prop: 'UlAllocRBRate'
+            },
+            {
+              label: 'Start',
+              prop: 'Start'
+            },
+            {
+              label: 'End',
+              prop: 'End'
+            }
+          ],
+          actions: [
+            {
+              label: 'Add',
+              icon: 'plus',
+              cb: (profile) => {
+                _.remove(this.profiles, p => p.Name === profile.Name);
+                this.cb(profile);
+              },
+            }
+          ],
+          filter: 'field',
+          order: true
+        }
+      }
+    };
+  });
