diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
index 6264bed1d32e83a3e37dcb4861fe2809a7d0245b..b77735c1f72aa6c022c73f8bf0fed1c24fd1b7a4 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
@@ -15,6 +15,7 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
     self.resourceGroupsDict = {};
     self.resourceGroupMemberships = {};
     self.resourceClaimDict = {};
+    self.task2resourceClaimDict = {};
     self.resourceUsagesDict = {};
     self.tasktypesDict = {};
 
@@ -246,6 +247,21 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
         self.resourceClaims = visibleClaims;
         self.resourceClaimDict = self.toIdBasedDict(self.resourceClaims);
 
+        self.task2resourceClaimDict = {};
+
+        for(var claim_id in self.resourceClaimDict) {
+            var claim = self.resourceClaimDict[claim_id];
+
+            if(!self.task2resourceClaimDict.hasOwnProperty(claim.task_id)) {
+                self.task2resourceClaimDict[claim.task_id] = {};
+            }
+
+            if(!self.task2resourceClaimDict[claim.task_id].hasOwnProperty(claim_id)) {
+                self.task2resourceClaimDict[claim.task_id][claim_id] = claim;
+            }
+        }
+
+
         self.computeMinMaxResourceClaimTimes();
 
         var newLoadedHours = {};
@@ -516,11 +532,20 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
 
             for(var i = newClaimIds.length-1; i >= 0; i--) {
                 var claim_id = newClaimIds[i];
+                var claim = newClaimDict[claim_id];
+
                 if(!self.resourceClaimDict.hasOwnProperty(claim_id)) {
-                    var claim = newClaimDict[claim_id];
                     self.resourceClaims.push(claim);
                     self.resourceClaimDict[claim_id] = claim;
                 }
+
+                if(!self.task2resourceClaimDict.hasOwnProperty(claim.task_id)) {
+                    self.task2resourceClaimDict[claim.task_id] = {};
+                }
+
+                if(!self.task2resourceClaimDict[claim.task_id].hasOwnProperty(claim_id)) {
+                    self.task2resourceClaimDict[claim.task_id][claim_id] = claim;
+                }
             }
 
             self.computeMinMaxResourceClaimTimes();
@@ -774,6 +799,14 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
                                     changedClaim.endtime = new Date(changedClaim.endtime);
                                     self.resourceClaims.push(changedClaim);
                                     self.resourceClaimDict[changedClaim.id] = changedClaim;
+
+                                    if(!self.task2resourceClaimDict.hasOwnProperty(changedClaim.task_id)) {
+                                        self.task2resourceClaimDict[changedClaim.task_id] = {};
+                                    }
+
+                                    if(!self.task2resourceClaimDict[changedClaim.task_id].hasOwnProperty(changedClaim.id)) {
+                                        self.task2resourceClaimDict[changedClaim.task_id][changedClaim.id] = claim;
+                                    }
                                 }
                             } else if(change.changeType == 'delete') {
                                 delete self.resourceClaimDict[changedClaim.id]
@@ -783,6 +816,10 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
                                         break;
                                     }
                                 }
+
+                                if(self.task2resourceClaimDict.hasOwnProperty(changedClaim.task_id)) {
+                                    delete self.task2resourceClaimDict[changedClaim.task_id][changedClaim.id];
+                                }
                             }
 
                             self.claimChangeCntr++;
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index f420d6121ce810a6e5bb463fb6a8f7b83c2382b8..f59a1eb89358fd6ccd6fb835a96562b390f51956 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -14,7 +14,7 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
 $scope.columns = [
     { field: 'name',
         enableCellEdit: false,
-        width: '15%'
+        width: '12%'
     },
     { field: 'project_name',
         displayName:'Project',
@@ -80,7 +80,7 @@ $scope.columns = [
         displayName: 'Group',
         enableCellEdit: false,
         cellTemplate:'<a target="_blank" href="https://lofar.astron.nl/mom3/user/project/setUpMom2ObjectDetails.do?view=generalinfo&mom2ObjectId={{row.entity.mom_object_group_mom2object_id}}">{{row.entity.mom_object_group_id}} {{row.entity.mom_object_group_name}}</a>',
-        width: '13%',
+        width: '12%',
         filter: {
             condition: uiGridConstants.filter.EXACT,
             type: uiGridConstants.filter.SELECT,
@@ -103,6 +103,20 @@ $scope.columns = [
         enableCellEdit: false,
         cellTemplate:'<a target="_blank" href="tasks/{{row.entity.id}}.html">{{row.entity[col.field]}}</a>',
         width: '6%'
+    },
+    { field: 'cluster',
+        displayName: 'cluster',
+        enableCellEdit: false,
+        width: '6%',
+        filter: {
+            condition: uiGridConstants.filter.EXACT,
+            type: uiGridConstants.filter.SELECT,
+            selectOptions: []
+        },
+        cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) {
+            var value = grid.getCellValue(row,col);
+            return "grid-cluster-" + value;
+        }
     }];
     $scope.gridOptions = {
         enableGridMenu: false,
@@ -235,7 +249,8 @@ $scope.columns = [
                         mom2object_id: task.mom2object_id,
                         mom_object_group_id: task.mom_object_group_id,
                         mom_object_group_name: task.mom_object_group_name,
-                        mom_object_group_mom2object_id: task.mom_object_group_mom2object_id
+                        mom_object_group_mom2object_id: task.mom_object_group_mom2object_id,
+                        cluster: $scope.dataService.task2resourceClaimDict.hasOwnProperty(task.id) ? 'CEP4' : 'CEP2'
                     };
                     gridTasks.push(gridTask);
                 }
@@ -270,6 +285,7 @@ $scope.columns = [
     };
 
     $scope.$watch('dataService.taskChangeCntr', function() { $scope.$evalAsync(populateList); });
+    $scope.$watch('dataService.claimChangeCntr', function() { $scope.$evalAsync(populateList); });
     $scope.$watch('dataService.viewTimeSpan', function() {
         $scope.$evalAsync(populateList);
         $scope.$evalAsync(jumpToSelectedTaskRows);
@@ -289,6 +305,8 @@ $scope.columns = [
             tasktypenames = $scope.dataService.tasktypes.map(function(x) { return x.name; });
             fillColumFilterSelectOptions(tasktypenames, $scope.columns[6]);
 
+            fillColumFilterSelectOptions(['CEP2', 'CEP4'], $scope.columns[11]);
+
             fillProjectsColumFilterSelectOptions();
         });
     });
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
index b66705bfd498636a42d3c9f6f53965e2a6a5f3a8..6f5286b791ecc5862a0d2260cfd50d1061fc6594 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
@@ -227,6 +227,13 @@ div.gantt-task.claim-task-status-suspended span {
 }
 
 
+.grid-cluster-CEP2 {
+  background-color: #ccffff !important;
+}
+
+.grid-cluster-CEP4 {
+  background-color: #ccffcc !important;
+}