diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java
index 7da2356288d9f49c04503d00d130f247ec6319c6..c3b200884c04673e8393817f801f3f0735872ebc 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java
@@ -6,7 +6,11 @@ import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
 import gov.anl.aps.dm.portal.model.entities.AllowedPolicyValue;
 import gov.anl.aps.dm.portal.model.beans.AllowedPolicyValueFacade;
 import gov.anl.aps.dm.portal.model.entities.PolicyProperty;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import javax.ejb.EJB;
 import javax.inject.Named;
 import javax.enterprise.context.SessionScoped;
@@ -20,9 +24,33 @@ import org.apache.log4j.Logger;
 public class AllowedPolicyValueController extends CrudEntityController<AllowedPolicyValue, AllowedPolicyValueFacade>
 {
     private static final Logger logger = Logger.getLogger(AllowedPolicyValueController.class.getName());
+    
+    class ValueCopy {
+        private final String value;
+        private final String description;
+
+        ValueCopy(String value, String description) {
+            this.value = value;
+            this.description = description;
+        }
+        
+        boolean isUpdated(AllowedPolicyValue editedAllowedPolicyValue) {
+            return (!editedAllowedPolicyValue.getPolicyValue().equals(value) || !editedAllowedPolicyValue.getDescription().equals(description));
+        }
+        
+        String getValue() {
+            return value;
+        }
+        
+        String getDescription() {
+            return description;
+        }
+    }
 
     @EJB
     private AllowedPolicyValueFacade allowedPolicyValueFacade;
+    
+    private final Map<AllowedPolicyValue, ValueCopy> editMap = new HashMap<>();
 
     class AllowedPolicyValueInfoTable extends DataTableController<AllowedPolicyValue> {
 
@@ -76,12 +104,17 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo
 
     @Override
     public DataModel createListDataModel() {
-        return new ListDataModel((List) allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId()));
+        List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());        
+        for (AllowedPolicyValue allowedPolicyValue : allowedValueList) {
+            editMap.put(allowedPolicyValue, new ValueCopy(allowedPolicyValue.getPolicyValue(), allowedPolicyValue.getDescription()));
+        }
+        return new ListDataModel((List) allowedValueList);
     }
 
     @Override
     public List<AllowedPolicyValue> getAvailableItems() {
-        return (List<AllowedPolicyValue>) allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
+        List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
+        return (allowedValueList);
     }
 
     @Override
@@ -105,7 +138,6 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo
     @Override
     public String prepareEdit(AllowedPolicyValue allowedPolicyValue) {
         super.prepareEdit(allowedPolicyValue);
- //       return "editAllowedPolicyValue?faces-redirect=true";
         return "/views/allowedPolicyValue/edit?faces-redirect=true";
     }
 
@@ -113,31 +145,33 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo
     public String prepareView(AllowedPolicyValue allowedPolicyValue) {
         current = allowedPolicyValue;
         super.prepareView(allowedPolicyValue);
-  //      return "editAllowedPolicyValue?faces-redirect=true";
         return "/views/allowedPolicyValue/view?faces-redirect=true";
     }
 
     @Override
     public String prepareCreate() {
         super.prepareCreate();
-//        return "create?faces-redirect=true";
         return "/views/allowedPolicyValue/create?faces-redirect=true";
     }
 
     @Override
     public String create() { 
+        AllowedPolicyValue newValue = current;
         if (super.create() == null) {
             return null;
         }
+        policyProperty.getAllowedPolicyValueList().add(newValue);
         allowedPolicyValueInfoTable.resetList();
-        return "/views/policyProperty/view?faces-redirect=true";
+        return null;
     }
     
      @Override
     public String destroy() {
-        String view = super.destroy();
+        AllowedPolicyValue propertyValue = current;
+        super.destroy();
+        policyProperty.getAllowedPolicyValueList().remove(propertyValue);
         clear();
-        return view;
+        return null;
     }
 
     @Override
@@ -156,16 +190,18 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo
 
     @Override
     public void prepareEntityUpdate(AllowedPolicyValue allowedPolicyValue) throws DmPortalException {
-        current.setPolicyProperty(policyProperty);
         if ((allowedPolicyValue.getPolicyValue() == null) || (allowedPolicyValue.getPolicyValue().length() == 0)) {
             throw new MissingProperty("Policy Value is missing.");
         }
-        List<AllowedPolicyValue> propertyAllowedPolicyValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId());
-        for (AllowedPolicyValue policyValue : propertyAllowedPolicyValueList) {
-            if ((allowedPolicyValue.getPolicyValue().equals(policyValue.getPolicyValue()))) {
+        ValueCopy tempValueCopy = editMap.get(allowedPolicyValue);
+        editMap.remove(allowedPolicyValue);
+        Collection<ValueCopy> propertyAllowedPolicyValueList = editMap.values();
+        for (ValueCopy valueCopy : propertyAllowedPolicyValueList) {
+            if ((valueCopy.getValue().equals(allowedPolicyValue.getPolicyValue()))) {
                 throw new ObjectAlreadyExists("allowed policy value " + allowedPolicyValue.getPolicyValue() + " already exists for this property.");
             }
         }
+        editMap.put(allowedPolicyValue, tempValueCopy);
     }
 
     @Override
@@ -184,6 +220,22 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo
     public void clear() {
         allowedPolicyValueInfoTable.resetList();
         resetList();
+        editMap.clear();
+    }
+    
+    @Override
+    public String update() {
+        Iterator<AllowedPolicyValue> iterator = getListDataModel().iterator();
+        while (iterator.hasNext()) {
+            AllowedPolicyValue editedAllowedPolicyValue = iterator.next();
+            ValueCopy valueCopy = editMap.get(editedAllowedPolicyValue);
+            if ((valueCopy != null) && (valueCopy.isUpdated(editedAllowedPolicyValue))) {
+                current = editedAllowedPolicyValue;
+                super.update();
+            }            
+        }
+        clear();
+        return null;
     }
 
 }
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
index 71ace99c80cd896c3c088b19d5993b712e234de1..0f8d6130a53a25c257affafa7b8f660369b9c787 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
@@ -6,23 +6,26 @@ import gov.anl.aps.dm.portal.exceptions.DmPortalException;
 import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
 import gov.anl.aps.dm.portal.exceptions.InvalidDate;
 import gov.anl.aps.dm.portal.exceptions.MissingProperty;
-import gov.anl.aps.dm.portal.model.beans.AllowedPolicyValueFacade;
 import gov.anl.aps.dm.portal.model.entities.Experiment;
 import gov.anl.aps.dm.portal.model.beans.ExperimentFacade;
+import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyFacade;
+import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyPropertyValueFacade;
 import gov.anl.aps.dm.portal.model.beans.PolicyTypeFacade;
 import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade;
 import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade;
 import gov.anl.aps.dm.portal.model.beans.UserInfoFacade;
 import gov.anl.aps.dm.portal.model.entities.CloneableEntity;
 import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy;
+import gov.anl.aps.dm.portal.model.entities.ExperimentPolicyPropertyValue;
+import gov.anl.aps.dm.portal.model.entities.PolicyProperty;
 import gov.anl.aps.dm.portal.model.entities.PolicyType;
 import gov.anl.aps.dm.portal.model.entities.RoleType;
 import gov.anl.aps.dm.portal.model.entities.UserExperimentRole;
 import gov.anl.aps.dm.portal.model.entities.UserInfo;
 import gov.anl.aps.dm.portal.utilities.SessionUtility;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -53,7 +56,16 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         
     @EJB
     private UserExperimentRoleFacade userExperimentRoleFacade;
-        
+    
+    @EJB
+    private PolicyTypeFacade policyTypeFacade;
+    
+    @EJB
+    private ExperimentPolicyFacade experimentPolicyFacade;
+    
+    @EJB
+    private ExperimentPolicyPropertyValueFacade experimentPolicyPropertyValueFacade;
+            
     public class ExperimentUser extends CloneableEntity {
 
         String name;
@@ -73,8 +85,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         
         public UserInfo getUser() {
             return user;
-        }
-        
+        }        
                 
         public String getGlobusUsername() {
             return user.getGlobusUsername();
@@ -198,22 +209,140 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             return "noExperimentUsersTable";
         }
     }
+
+    @SessionScoped
+    class ExperimentPolicyTable extends DataTableController<ExperimentPolicy> {
+
+        @Override
+        public String getClassName() {
+            return "ExperimentPolicy";
+        }
+
+        @Override
+        public List<ExperimentPolicy> findAll() {
+            resetList();
+            List<ExperimentPolicy> experimentPolicies = experimentPolicyFacade.findByExperimentId(current.getId());
+            return experimentPolicies;
+        }
+        
+        @Override
+        public String getTableName() {
+            return "experimentPolicyTable";
+        }        
+    }
     
-    private int rows = 25;
+    class PolicyPropertyValue extends CloneableEntity {
+        private PolicyProperty policyProperty;
+        private String value;
+
+        public PolicyProperty getPolicyProperty() {
+            return policyProperty;
+        }
+
+        public void setPolicyProperty(PolicyProperty policyProperty) {
+            this.policyProperty = policyProperty;
+        }
+
+        public String getValue() {
+            return value;
+        }
+
+        public void setValue(String value) {
+            this.value = value;
+        }        
+    }
+    
+    @SessionScoped
+    class NoPolicyValueTable extends DataTableController<PolicyType> {
+
+        List<PolicyPropertyValue> [] noPropertyList;
+        
+        NoPolicyValueTable() {
+//            noPropertyList = new ArrayList[policyTypes.size() + 1]; // add 1 so the index is policyTypeId
+            // TODO need to replace the number with constant temporary for testing
+            noPropertyList = new ArrayList[3];
+            for (int i=0; i<noPropertyList.length; i++) {
+                noPropertyList[i] = new ArrayList();
+            }
+        }
+        
+        void clear() {
+            for (List<PolicyPropertyValue> list : noPropertyList) {
+                list.clear();
+            }            
+        }
+        
+        public List<PolicyPropertyValue> getNoPropertyList(int policyTypeId) {
+            return noPropertyList[policyTypeId];
+        }
+        
+        @Override
+        public String getClassName() {
+            return "PolicyType";
+        }
+
+        @Override
+        public List<PolicyType> findAll() {
+            resetList();
+            clear();
+            List<PolicyType> noPolicyTypes = new ArrayList<>();
+            for (PolicyType policyType : policyTypes.values()) {
+                fillMissingProperties(policyType);
+                if (!noPropertyList[policyType.getId()].isEmpty()) {
+                    noPolicyTypes.add(policyType);
+                }
+            }
+
+            return noPolicyTypes;
+        }
+        
+        private void fillMissingProperties(PolicyType policyType) {
+             List<ExperimentPolicy> experimentPolicies = current.getExperimentPolicyList();           
+             ExperimentPolicy theExperimentPolicy = null;
+             for (ExperimentPolicy experimentPolicy : experimentPolicies) {
+                 if (experimentPolicy.getPolicyType().getId() == policyType.getId()) {
+                     theExperimentPolicy = experimentPolicy;
+                 }
+             }
+
+             for (PolicyProperty policyProperty : policyType.getPolicyPropertyList()) {
+                if ((theExperimentPolicy == null) || (!hasProperty(theExperimentPolicy, policyProperty))) {
+                    PolicyPropertyValue policyPropertyValue = new PolicyPropertyValue();
+                    policyPropertyValue.policyProperty = policyProperty;
+                    policyPropertyValue.value = policyProperty.getDefaultValue();
+                    noPropertyList[policyType.getId()].add(policyPropertyValue);
+                }                 
+             }
+        }
+        
+        private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) {
+            for (ExperimentPolicyPropertyValue ExperimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
+                if (ExperimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+    }
+  
+    private final int rows = 25;
+    private ExperimentPolicyPropertyValue experimentPropertyToDelete;
 
     private ExperimentController.ExperimentUsersTable experimentUsersListTable = new ExperimentController.ExperimentUsersTable();
     private ExperimentController.ExperimentUsersTable experimentUsersEditTable = new ExperimentController.ExperimentUsersTable();
     private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable();
+    private ExperimentController.ExperimentPolicyTable experimentPolicyListTable = new ExperimentController.ExperimentPolicyTable();
+    private ExperimentController.ExperimentPolicyTable experimentPolicyEditTable = new ExperimentController.ExperimentPolicyTable();
+    private ExperimentController.NoPolicyValueTable noPolicyValueTable = new ExperimentController.NoPolicyValueTable();    
 
     final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>();
     final private Map<String, RoleType> experimentRoles = new HashMap<>();
+    final private Map<Integer, PolicyType> policyTypes = new HashMap<>();
     int maxExperimentRoleTypeId = 0;
     boolean initialized = false;
 
     public ExperimentController() {
-        this.experimentUsersListTable = new ExperimentController.ExperimentUsersTable();
-        this.experimentUsersEditTable = new ExperimentController.ExperimentUsersTable();
-        this.noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable();
     }
 
     public int getRows() {
@@ -271,9 +400,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
                 }
             }
         }
+        List<PolicyType> policyTypesList = policyTypeFacade.findAll();
+        for (PolicyType policyType : policyTypesList) {
+            policyTypes.put(policyType.getId(), policyType);
+        }
         initialized = true;
     }
-
+    
     @Override
     public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
         if ((experiment.getName() == null) || (experiment.getName().length() == 0)){
@@ -323,6 +456,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         experimentUsersEditTable.resetList();
         experimentUsers.clear();
         noExperimentUsersTypeTable.resetList();
+        experimentPolicyListTable.resetList();
+        experimentPolicyEditTable.resetList();
     }
     
     public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() {
@@ -348,7 +483,39 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     public void setNoExperimentUsersTypeTable(ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable) {
         this.noExperimentUsersTypeTable = noExperimentUsersTypeTable;
     }
-                 
+
+    public ExperimentPolicyTable getExperimentPolicyListTable() {
+        return experimentPolicyListTable;
+    }
+
+    public void setExperimentPolicyListTable(ExperimentPolicyTable experimentPolicyTable) {
+        this.experimentPolicyListTable = experimentPolicyTable;
+    }
+
+    public ExperimentPolicyTable getExperimentPolicyEditTable() {
+        return experimentPolicyEditTable;
+    }
+
+    public void setExperimentPolicyEditTable(ExperimentPolicyTable experimentPolicyEditTable) {
+        this.experimentPolicyEditTable = experimentPolicyEditTable;
+    }
+
+    public NoPolicyValueTable getNoPolicyValueTable() {
+        return noPolicyValueTable;
+    }
+
+    public void setNoPolicyValueTable(NoPolicyValueTable noPolicyValueTable) {
+        this.noPolicyValueTable = noPolicyValueTable;
+    }
+
+    public ExperimentPolicyPropertyValue getExperimentPropertyToDelete() {
+        return experimentPropertyToDelete;
+    }
+
+    public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) {
+        this.experimentPropertyToDelete = experimentPropertyToDelete;
+    }
+
     public void updateRemovedExperimentRoles() {
         UserExperimentRole userExperimentRole;
         for (UserInfo user : experimentUsers.keySet()) {
@@ -391,10 +558,23 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
                     }
             }
         }
+        
+        Iterator<ExperimentPolicy> iterator = experimentPolicyEditTable.getListDataModel().iterator();
+        while (iterator.hasNext()) {
+            experimentPolicyFacade.edit(iterator.next());
+        }
     
         clear();
         return super.update();
     }
+    
+    public String updateExperimentPolicy() {
+        ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy();
+        experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete);
+        experimentPolicyFacade.edit(experimentPolicy);
+        clear();
+        return "edit?faces-redirect=true";        
+    }
 
    public String getRemovedUserName() {
         if (experimentUsersEditTable.getCurrentObject() != null) {
@@ -403,6 +583,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         return "";
     }
         
+   public String getRemovedPolicyName() {
+       if (experimentPropertyToDelete != null) {
+            return experimentPropertyToDelete.getPolicyProperty().getName();
+       }
+       return "";
+    }
+        
     public String removeUser() {
         ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
         UserInfo user = experimentUser.getUser();
@@ -417,6 +604,10 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         return "edit?faces-redirect=true";
     }
     
+    public void removePolicy() {
+        experimentPolicyPropertyValueFacade.remove(experimentPropertyToDelete);
+    }
+    
     public void removeUserRoles() {
         ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
         UserInfo user = experimentUser.getUser();
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java
index ec29307430a085c17bc57252b342e7de7667e2d0..122859bb00bd4f210e2cfa1b8145e883892af750 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java
@@ -22,7 +22,7 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp
 {
 
     private static final Logger logger = Logger.getLogger(ExperimentTypeController.class.getName());
-    private int rows = 25;
+    private final int rows = 25;
 
     @EJB
     private ExperimentTypeFacade experimentTypeFacade;
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
index 67e42f6d8d89a82496ca0262fc171a6624299bda..175e2e0cba857f222e3180484b6155f443d22fd9 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
@@ -10,7 +10,6 @@ import gov.anl.aps.dm.portal.exceptions.DmPortalException;
 import gov.anl.aps.dm.portal.exceptions.MissingProperty;
 import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
 import gov.anl.aps.dm.portal.model.beans.PolicyPropertyFacade;
-import gov.anl.aps.dm.portal.model.entities.AllowedPolicyValue;
 import gov.anl.aps.dm.portal.model.entities.PolicyProperty;
 import gov.anl.aps.dm.portal.model.entities.PolicyType;
 import java.util.List;
@@ -35,7 +34,7 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
 {
     
     private PolicyType policyType;
-    private int rows;
+    private int rows = 25;
 
     private static final Logger logger = Logger.getLogger(PolicyPropertyController.class.getName());
 
@@ -154,7 +153,6 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
     @Override
     public String prepareCreate() {
         super.prepareCreate();
-//        return "create?faces-redirect=true";
         return "/views/policyProperty/create?faces-redirect=true";
     }
     
@@ -180,7 +178,7 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
         clear();
         return view;
     }
-
+    
     public PolicyType getPolicyType() {
         return policyType;
     }
@@ -198,6 +196,15 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
     public void setRows(int rows) {
         this.rows = rows;
     }
+    
+    public boolean hasAllowedValues(PolicyProperty policyProperty) {
+        return ((policyProperty.getAllowedPolicyValueList() != null) && !policyProperty.getAllowedPolicyValueList().isEmpty());
+    }
+    
+    public String updateAllowedValueList() {
+        policyPropertyFacade.edit(current);
+        return "/views/policyProperty/edit?faces-redirect=true";
+    }
 
     @FacesConverter(forClass = PolicyProperty.class)
     public static class PolicyPropertyControllerConverter implements Converter
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java
index be28189c9625ed3ef6322bfabd8ca6927cf12434..42ea1347c2c6019b5efe4d7e3fd18f35aa201566 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java
@@ -41,10 +41,10 @@ public class AllowedPolicyValue extends CloneableEntity
     @Basic(optional = false)
     @Column(name = "id")
     private Integer id;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "policy_value")
     private String policyValue;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @JoinColumn(name = "policy_property_id", referencedColumnName = "id")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java
index fc3a840e516dbfcae9962a7efec81dbcd9a12062..fcbd725a532f10c5d6ef6ef3f13f3f3dbf3911fc 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java
@@ -39,10 +39,10 @@ public class AllowedSettingValue extends CloneableEntity
     @Basic(optional = false)
     @Column(name = "id")
     private Integer id;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "setting_value")
     private String settingValue;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @JoinColumn(name = "setting_type_id", referencedColumnName = "id")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java
index 185c99bc2e2b276ce0bffb76186c658d75644631..f15827db143c1dad9a4bd5ee5dc85837ab967de8 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java
@@ -48,10 +48,10 @@ public class DataFolder extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(min = 1, max = 2147483647)
+    @Size(min = 1, max = 1024)
     @Column(name = "data_path")
     private String dataPath;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @JoinTable(name = "experiment_data_folder", joinColumns = {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java
index 410cbb63ec9c9899c6629b8a7c02ea6100a8e839..4e0dcbcd625fdb111b6004df5e2fcde47e19a251 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java
@@ -42,10 +42,10 @@ public class DataFolderPermission extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(min = 1, max = 2147483647)
+    @Size(max = 256)
     @Column(name = "permission_value")
     private String permissionValue;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @JoinColumn(name = "data_folder_id", referencedColumnName = "id")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
index cfcb6c5686ab14c45c5dc8a37fadec5c2aba0818..0f9281f7282fa45d9561a94026a7aa5bcad5fb7b 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
@@ -55,7 +55,7 @@ public class Experiment extends CloneableEntity
     @Size(max = 64)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 2000)
     @Column(name = "description")
     private String description;
     @Column(name = "start_date")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java
index 9ee078b9e268024b67645717ec89bcfe8380d8d9..20324449a8ecaca5490efc2e41873e12a7d6b2d8 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java
@@ -45,12 +45,12 @@ public class ExperimentPolicyPropertyValue extends CloneableEntity
     @Column(name = "id")
     private Integer id;
     @Basic(optional = false)
-    @Size(min = 1, max = 2147483647)
+    @Size(max = 256)
     @Column(name = "policy_property_value")
     private String policyPropertyValue;
     @Basic(optional = false)
     @NotNull
-    @Size(min = 1, max = 2147483647)
+    @Size(max = 256)
     @Column(name = "modified_by")
     private String modifiedBy;
     @Basic(optional = false)
@@ -124,6 +124,10 @@ public class ExperimentPolicyPropertyValue extends CloneableEntity
     public void setModifiedDate(Date modifiedDate) {
         this.modifiedDate = modifiedDate;
     }
+    
+    public String getUnits() {
+        return policyProperty.getUnits();
+    }
 
     @Override
     public int hashCode() {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java
index dd204831afacf42103aaf87816b23af874502a0e..a36c2b5a4f0b8362873542a70bd30aad20f51fd1 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java
@@ -48,10 +48,10 @@ public class ExperimentType extends CloneableEntity
     @Size(max = 64)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "root_data_path")
     private String rootDataPath;
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "experimentType")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java
index 8e463dbed54fa783b510dfb6bcd8cf3bfcb24780..dbc4f4d295ddd06b31ca6ebd6adecdb61927a0dc 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java
@@ -49,22 +49,22 @@ public class PolicyProperty extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "units")
     private String units;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "lower_limit")
     private String lowerLimit;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "upper_limit")
     private String upperLimit;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "default_value")
     private String defaultValue;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @JoinColumn(name = "policy_type_id", referencedColumnName = "id")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java
index a4834eb217ac10b65ce1ddd43b586850eaf56937..a0f4b3e01b4d7d32d416220d7211760668cf0843 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java
@@ -45,10 +45,10 @@ public class PolicyType extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(min = 1, max = 2147483647)
+    @Size(max = 256)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyType")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java
index bf68b2dd061f19009e744390a2c8fe9d31e478bc..add8bc95d5066421b9c84df37673dea7b4e09a40 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java
@@ -49,10 +49,10 @@ public class RoleType extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 3000)
     @Column(name = "description")
     private String description;
     @NotNull
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java
index ec9e90eb77846debc463c88e7b8d64c1cc46603a..b650ae7527235837116e4826e220b4020aec331a 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java
@@ -46,13 +46,13 @@ public class SettingType extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(min = 1, max = 2147483647)
+    @Size(max = 256)
     @Column(name = "name")
     private String name;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "default_value")
     private String defaultValue;
     @Column(name = "is_user_modifiable")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
index 4be19e85359d12d9078a4c0dbf3e7a86ccca1336..5b11232e758a0c16452908ea07de69092870dd0d 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
@@ -57,36 +57,36 @@ public class UserInfo extends CloneableEntity
     private Integer id;
     @Basic(optional = false)
     @NotNull
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "username")
     private String username;
     @Basic(optional = false)
     @NotNull
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "first_name")
     private String firstName;
     @Basic(optional = false)
     @NotNull
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "last_name")
     private String lastName;
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "middle_name")
     private String middleName;
     // @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "email")
     private String email;
-    @Size(max = 120)
+    @Size(max = 256)
     @Column(name = "badge")
     private String badge;
-    @Size(max = 120)
+    @Size(max = 256)
     @Column(name = "globus_username")
     private String globusUsername;
-    @Size(max = 120)
+    @Size(max = 256)
     @Column(name = "description")
     private String description;
-    @Size(max = 64)
+    @Size(max = 256)
     @Column(name = "password")
     private String password;
     @ManyToMany(mappedBy = "userInfoList")
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java
index e618cc19670c5c180b641f0593d4953fd7ccaeae..1eb68ac3025450e268221d897fdef765d2c56f56 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java
@@ -38,7 +38,7 @@ public class UserSetting extends CloneableEntity
     @Basic(optional = false)
     @Column(name = "id")
     private Integer id;
-    @Size(max = 2147483647)
+    @Size(max = 256)
     @Column(name = "setting_value")
     private String settingValue;
     @JoinColumn(name = "user_id", referencedColumnName = "id")
diff --git a/src/java/DmWebPortal/web/resources/css/portal.css b/src/java/DmWebPortal/web/resources/css/portal.css
index 793ec59e97a889359932d4fa34c4e3807793b2fc..1efe9da13ebdba8e4ce2c7de9c9361270bb7d8ec 100644
--- a/src/java/DmWebPortal/web/resources/css/portal.css
+++ b/src/java/DmWebPortal/web/resources/css/portal.css
@@ -182,6 +182,12 @@ a:link:hover, a:visited:hover  {
     float: left;
 }
 
+.entityDataTextShort {
+    font-weight: normal;
+    float: left;
+    width: 150px;
+}
+
 .entityDataEmphasizedText {
     font-weight: bold;
     font-size: 105%;
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml
index 5831cf2d666f325809e9d11d8986ef7afb55cf80..48612f7ecaad0a1e8a42884c5fb0b4e33da61897 100644
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml
+++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml
@@ -7,7 +7,8 @@
     <p:confirmDialog id="allowedPolicyValueDestroyDialog" message="Delete policy property #{allowedPolicyValueController.getCurrentEntityInstanceName()}?"
                      header="Delete Allowed Policy Value" severity="alert" widgetVar="allowedPolicyValueDestroyDialogWidget"
                      styleClass="dialog">
-        <p:commandButton value="Yes" oncomplete="allowedPolicyValueDestroyDialogWidget.hide()" action="#{allowedPolicyValueController.destroy()}" update="@form"/>
+        <ui:param name="deletedValue" value="#{allowedPolicyValueController.current}" />
+        <p:commandButton value="Yes" oncomplete="allowedPolicyValueDestroyDialogWidget.hide()" action="#{policyPropertyController.updateAllowedValueList()}" actionListener="#{allowedPolicyValueController.destroy()}" update="@form"/>
         <p:commandButton value="No" onclick="PF('allowedPolicyValueDestroyDialogWidget').hide()" type="button" />
     </p:confirmDialog>  
 </ui:composition>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml
deleted file mode 100644
index 70978919f709ddd11c9758b65fd8a0db3b9d3add..0000000000000000000000000000000000000000
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:p="http://primefaces.org/ui"
-                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
-
-    <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/>
-
-    <p:panelGrid columns="2" styleClass="createEntityDetails">
-
-        <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/>
-        <h:inputText id="policyValue" value="#{allowedPolicyValueObject.policyValue}" title="Policy Value" styleClass="entityDataText"/>
-
-        <h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
-        <h:inputText id="description" value="#{allowedPolicyValueObject.description}" title="Description" styleClass="entityDataText"/>        
-        
-    </p:panelGrid>
-
-</ui:composition>
-
-
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml
index 36e12ebb7f6d370a09b91c21fb848318ef3b89ce..2c5bb0e839b5f8b3224b41c1da3d02cebe730677 100644
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml
+++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml
@@ -41,12 +41,6 @@ and open the template in the editor.
             <h:outputText value="#{allowedPolicyValueViewObject.description}"/>
         </p:column>
 
-        <p:column headerText="Actions" >
-            <div class="actionLink">
-                <p:commandLink action="#{allowedPolicyValueController.prepareView(allowedPolicyValueViewObject)}" styleClass="ui-icon ui-icon-info" title="View"/>
-                <p:commandLink action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueViewObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
-            </div>
-        </p:column>
     </p:dataTable>
 
 </ui:composition>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml
index 1bcbbfbd31e32d0add91a33c291d83720e70b9ca..8a643352114c016efbda13779358710e383e0530 100644
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml
+++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml
@@ -36,18 +36,16 @@ and open the template in the editor.
 
         <p:column sortBy="#{allowedPolicyValueObject.policyValue}" headerText="Policy Value" 
                   filterBy="#{allowedPolicyValueObject.policyValue}" filterMatchMode="contains" >
-            <h:outputText value="#{allowedPolicyValueObject.policyValue}"/>
+            <h:inputText value="#{allowedPolicyValueObject.policyValue}" styleClass="entityDataTextShort"/>
         </p:column>
 
         <p:column sortBy="#{allowedPolicyValueObject.description}" headerText="Description" 
                   filterBy="#{allowedPolicyValueObject.description}" filterMatchMode="contains">
-            <h:outputText value="#{allowedPolicyValueObject.description}"/>
+            <h:inputText value="#{allowedPolicyValueObject.description}" styleClass="entityDataTextShort"/>
         </p:column>
 
         <p:column headerText="Actions" >
             <div class="actionLink">
-                <p:commandLink action="#{allowedPolicyValueController.prepareView(allowedPolicyValueObject)}" styleClass="ui-icon ui-icon-info" title="View"/>
-                <p:commandLink action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
                 <p:commandLink oncomplete="PF('allowedPolicyValueDestroyDialogWidget').show()" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form">
                     <f:setPropertyActionListener value="#{allowedPolicyValueObject}" target="#{allowedPolicyValueController.current}"/>
                 </p:commandLink>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml
deleted file mode 100644
index 48afdd96211366a4c1c5be3158b6247b27a0f01a..0000000000000000000000000000000000000000
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:p="http://primefaces.org/ui"
-                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
-
-    <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/>
-
-    <p:panelGrid columns="2" styleClass="createEntityDetails">
-
-        <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/>
-        <h:outputText id="policyValue" value="#{allowedPolicyValueObject.policyValue}" title="Policy Value" styleClass="entityDataText"/>
-
-        <h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
-        <h:outputText id="description" value="#{allowedPolicyValueObject.description}" title="Description" styleClass="entityDataText"/>        
-        
-    </p:panelGrid>
-
-</ui:composition>
-
-
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
index ffca85f0b076cca312a18b1cf4ad47665aa7b453..38542ffe333dfcac84c518b6ce7de261a70680f2 100644
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
+++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
@@ -23,7 +23,7 @@
 
             <p/>
             <div class="actionButton">
-                <p:commandButton action="#{allowedPolicyValueController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
+                <p:commandButton action="#{policyPropertyController.updateAllowedValueList()}" actionListener="#{allowedPolicyValueController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
                 <p:commandButton action="#{allowedPolicyValueController.prepareList()}" immediate="true" value="Cancel" alt="Cancel" icon="ui-icon-cancel"/>
             </div>
         </h:form>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml
deleted file mode 100644
index 06f82e826ef6c3d2605718fdead38f8711a0e755..0000000000000000000000000000000000000000
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:p="http://primefaces.org/ui"
-                xmlns:f="http://java.sun.com/jsf/core"
-                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-                xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
-    
-    <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
-    <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
-    <ui:composition template="../../templates/dmViewTemplate.xhtml">
-    <ui:define name="middleCenter">
-        <h:form id="editallowedPolicyValueForm">
-
-            <div class="middleCenterLeftContent">
-                <div class="pageTitle">
-                    <h1>Policy Type: #{policyTypeController.current.name}<br/>
-                        Policy Property: #{policyPropertyController.current.name}<br/>
-                        Allowed Policy Value</h1>
-                </div>
-
-                <ui:include src="allowedPolicyValueEditPanelGrid.xhtml"/>
-                <p/>
-                <div class="actionButton">
-                    <p:commandButton action="#{allowedPolicyValueController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
-                    <p:commandButton action="#{allowedPolicyValueController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/>
-                </div>
-            </div>
-
-        </h:form>
-
-    </ui:define>
-    </ui:composition>
-</ui:composition>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml
deleted file mode 100644
index b9efe9d4bca4cf6e94353e707c5e28813e7dffc3..0000000000000000000000000000000000000000
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:p="http://primefaces.org/ui"
-                xmlns:f="http://java.sun.com/jsf/core"
-                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
-                xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
-
-    <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
-    <ui:composition template="../../templates/dmViewTemplate.xhtml">
-    <ui:define name="middleCenter">
-        <h:form id="viewallowedPolicyValueForm">
-
-            <div class="middleCenterLeftContent">
-                <div class="pageTitle">
-                    <h1>Policy Type: #{policyTypeController.current.name}<br/>
-                        Policy Property: #{policyPropertyController.current.name}<br/>
-                        Allowed Policy Value Details</h1>
-                </div>
-
-                <ui:include src="allowedPolicyValueViewPanelGrid.xhtml"/>
-                
-                <p/>
-                <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/>
-                <div class="actionButton">
-                    <p:commandButton action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueObject)}" rendered="#{loginController.admin}" value="Edit" alt="Edit" icon="ui-icon-pencil"/>
-                    <p:commandButton action="#{allowedPolicyValueController.prepareList()}" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/>
-                </div>          
-            </div>
-
-        </h:form>
-
-    </ui:define>
-    </ui:composition>
-
-</ui:composition>
-
-
diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml
index 76c786d92521fdefa51037a1ceb15949ead59d87..d90afbf06e4e4dbaedd250493bffdc05e5dc1c5d 100644
--- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml
@@ -24,11 +24,10 @@
                     <div class="middleCenterLeftContent">
                         <ui:include src="experimentEditPanelGrid.xhtml"/>
                     </div>
-
                 </p:tab>
                 
                 <p:tab title="Experiment Policies">
-                   
+                    <ui:include src="experimentPoliciesEditSelection.xhtml"/>                   
                 </p:tab>
 
                 <p:tab title="Experiment Users" id="usersTab">                
@@ -43,6 +42,7 @@
                 </div>
 
                 <ui:include src="experimentUserRemoveDialog.xhtml" />
+                <ui:include src="experimentPolicyRemoveDialog.xhtml" />
          </h:form>
     </ui:define>
     </ui:composition>
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
index 1950af37da21a248ef86d1ad9e5fb6785f9eb0a8..228b7ed0c4bfd4592780ddec61f66752395fae89 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
@@ -7,48 +7,60 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
-    <p/>
 
-        <h:panelGrid columns="2" cellpadding="5">
-        </h:panelGrid> 
-
-<!--        <p:dataTable id="experimentPoliciesEditDataTable"                              
-                 var="policyTypeObject" 
-                 value="#{experimentController.experimentPoliciesTypeTable.listDataModel}" 
-                 filteredValue="#{experimentController.experimentPoliciesTypeTable.filteredObjectList}"
+    <p:dataTable id="experimentPoliciesListDataTable"                              
+                 var="experimentPolicyObject" 
+                 value="#{experimentController.experimentPolicyEditTable.listDataModel}" 
+                 filteredValue="#{experimentController.experimentPolicyEditTable.filteredObjectList}"
                  paginator="true" 
                  paginatorAlwaysVisible="false" 
-                 rows="25"
-                 binding="#{experimentController.experimentPoliciesTypeTable.listDataTable}"
-                 widgetVar="policyEditWidget" 
+                 rows="#{experimentController.rows}"
+                 binding="#{experimentController.experimentPolicyEditTable.listDataTable}"
+                 widgetVar="policyListWidget" 
                  emptyMessage="No policies found.">
 
-        <p:column sortBy="#{policyTypeObject.policyType}" headerText="Policy Type" >
-            <h:outputText value="#{policyTypeObject.policyType}"/>
-        </p:column>
+        <p:columnGroup type="header" >
+            <p:column headerText="Property" />
+            <p:column headerText="Value" />
+            <p:column headerText="Units" />
+            <p:column headerText="Description" />
+            <p:column headerText="Actions" />
+        </p:columnGroup>
 
-        <p:column>
-        <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/>
-        <p:selectOneMenu id="policyValue" value="#{policyTypeObject.policyValue}" styleClass="entityDataText">
-            <f:selectItem itemLabel="Select Type" itemValue="" noSelectionOption="true" />
-            <f:selectItems value="#{experimentController.getAllowedPolicies(policyTypeObject.policyType)}" 
-                           var="allowedPolicy"
-                           itemValue="#{policyAValue}"
-                           itemLabel="#{policyAValue.name}"
-                           itemDescription="#{policyAValue.description}" />
-        </p:selectOneMenu>
-        </p:column>
+        <p:subTable var="propertyValue" value="#{experimentPolicyObject.getExperimentPolicyPropertyValueList()}" >
+            <f:facet name="header" >
+                <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/>
+            </f:facet>
 
-        <p:column sortBy="#{policyTypeObject.policyValue}" headerText="Policy Value" 
-                  filterBy="#{policyTypeObject.policyValue}" filterMatchMode="contains" >
-            <h:outputText value="#{policyTypeObject.policyValue}"/>
-        </p:column>
+            <p:column >
+                <h:outputText value="#{propertyValue.getPolicyProperty().name}"/>
+            </p:column>
+            <p:column>
+                <h:inputText id="propertyValue" value="#{propertyValue.policyPropertyValue}" rendered="#{!policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}" styleClass="entityDataTextShort"/>
 
-        <p:column sortBy="#{policyTypeObject.policyType.description}" headerText="Description" 
-                  filterBy="#{policyTypeObject.policyType.description}" filterMatchMode="contains">
-            <h:outputText value="#{policyTypeObject.policyType.description}"/>
+                <p:selectOneMenu id="propertyValueSelect" value="#{propertyValue.policyPropertyValue}" styleClass="entityDataText" rendered="#{policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}">
+                    <f:selectItems value="#{propertyValue.getPolicyProperty().allowedPolicyValueList}" 
+                                   var="allowedPolicyValue"
+                                   itemValue="#{allowedPolicyValue.policyValue}"
+                                   itemLabel="#{allowedPolicyValue.policyValue}" />
+                </p:selectOneMenu>
+                <p:tooltip for="propertyValue" value="Modify property value" />
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().units}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().description}"/>
+            </p:column>
+        <p:column headerText="Actions" >
+            <div class="actionLink">
+                <p:commandLink oncomplete="PF('experimentPolicyRemoveDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentController.current)}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form">
+                    <f:setPropertyActionListener value="#{propertyValue}" target="#{experimentController.experimentPropertyToDelete}"/>
+                </p:commandLink>
+            </div>
         </p:column>
 
-    </p:dataTable>-->
+        </p:subTable>
+    </p:dataTable>
 
 </ui:composition>
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml
index 8df317056ea9d125b302798ad7c0ef7f79985d12..fc6dfd9a45d97c6c7e30af2db2e63d8142754a59 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml
@@ -9,30 +9,51 @@
 
     <p/>
     <p:dataTable id="experimentPoliciesListDataTable"                              
-                 var="policyObject" 
-                 value="#{experimentController.experimentPoliciesTable.listDataModel}" 
-                 filteredValue="#{experimentController.experimentPoliciesTable.filteredObjectList}"
+                 var="experimentPolicyObject" 
+                 value="#{experimentController.experimentPolicyListTable.listDataModel}" 
+                 filteredValue="#{experimentController.experimentPolicyListTable.filteredObjectList}"
                  paginator="true" 
                  paginatorAlwaysVisible="false" 
                  rows="#{experimentController.rows}"
-                 binding="#{experimentController.experimentPoliciesTable.listDataTable}"
+                 binding="#{experimentController.experimentPolicyListTable.listDataTable}"
                  widgetVar="policyListWidget" 
                  emptyMessage="No policies found.">
 
-        <p:column sortBy="#{policyObject.policyType.name}" headerText="Policy Type" >
-            <h:outputText value="#{policyObject.policyType.name}"/>
-        </p:column>
+        <p:columnGroup type="header" >
+            <p:column headerText="Property" />
+            <p:column headerText="Value" />
+            <p:column headerText="Units" />
+            <p:column headerText="Description" />
+            <p:column headerText="Last Modified By" />
+            <p:column headerText="Last Modified Date" />
+        </p:columnGroup>
 
-        <p:column sortBy="#{policyObject.policyValue}" headerText="Policy Value" 
-                  filterBy="#{policyObject.policyValue}" filterMatchMode="contains" >
-            <h:outputText value="#{policyObject.policyValue}"/>
-        </p:column>
-
-        <p:column sortBy="#{policyObject.description}" headerText="Description" 
-                  filterBy="#{policyObject.description}" filterMatchMode="contains">
-            <h:outputText value="#{policyObject.description}"/>
-        </p:column>
+        <p:subTable var="propertyValue" value="#{experimentPolicyObject.getExperimentPolicyPropertyValueList()}" >
+            <f:facet name="header" >
+                <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/>
+            </f:facet>
 
+            <p:column >
+                <h:outputText value="#{propertyValue.getPolicyProperty().name}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.policyPropertyValue}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().units}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().description}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.modifiedBy}"/>
+            </p:column>
+            <p:column>
+                <h:outputText  id="startDate" value="#{propertyValue.modifiedDate}" styleClass="entityDataText">
+                    <f:convertDateTime pattern="#{resources.DatePattern}" type="date" />
+                </h:outputText>
+            </p:column>
+        </p:subTable>
     </p:dataTable>
 
 </ui:composition>
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml
new file mode 100644
index 0000000000000000000000000000000000000000..7b7725b74a9f724038452570eed3ce18b661a2f7
--- /dev/null
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:p="http://primefaces.org/ui"
+                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+                xmlns:h="http://xmlns.jcp.org/jsf/html"
+                xmlns:f="http://xmlns.jcp.org/jsf/core"
+                xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
+   
+    <p:dialog id="experimentPolicyAddDialog" 
+              header="Add experiment policies" widgetVar="experimentPolicyAddDialogWidget" dynamic="true" styleClass="dialog" width="800">
+        
+    <p:dataTable id="addExperimentPolicyList"                              
+                 var="experimentPolicyObject" 
+                 value="#{experimentController.noPolicyValueTable.listDataModel}" 
+                 filteredValue="#{experimentController.noPolicyValueTable.filteredObjectList}"
+                 paginator="true" 
+                 paginatorAlwaysVisible="false" 
+                 rows="#{experimentController.rows}"
+                 binding="#{experimentController.noPolicyValueTable.listDataTable}"
+                 widgetVar="experimentPolicyAddTableWidgetVar" 
+                 selection="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId()).selectedObjectList}"
+                 rowKey="#{propertyValue.getPolicyProperty().name}"
+                 rowSelectMode="true"
+                 selectionMode="multiple" 
+                 emptyMessage="No policies found.">
+
+        <p:columnGroup type="header" >
+            <p:column headerText="Property" />
+            <p:column headerText="Value" />
+            <p:column headerText="Units" />
+            <p:column headerText="Description" />
+        </p:columnGroup>
+
+        <p:subTable var="propertyValue" value="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId())}" >
+            <f:facet name="header" >
+                <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/>
+            </f:facet>
+
+            <p:column >
+                <h:outputText value="#{propertyValue.getPolicyProperty().name}"/>
+            </p:column>
+            <p:column>
+                <h:inputText id="propertyValue" value="#{propertyValue.value}" rendered="#{!policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}" styleClass="entityDataTextShort"/>
+
+                <p:selectOneMenu id="propertyValueSelect" value="#{propertyValue.value}" styleClass="entityDataText" rendered="#{policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}">
+                    <f:selectItems value="#{propertyValue.getPolicyProperty().allowedPolicyValueList}" 
+                                   var="allowedPolicyValue"
+                                   itemValue="#{allowedPolicyValue.policyValue}"
+                                   itemLabel="#{allowedPolicyValue.policyValue}" />
+                </p:selectOneMenu>
+                <p:tooltip for="propertyValue" value="Modify property value" />
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().units}"/>
+            </p:column>
+            <p:column>
+                <h:outputText value="#{propertyValue.getPolicyProperty().description}"/>
+            </p:column>
+
+        </p:subTable>
+            <f:facet name="footer">
+                <p:commandButton value="Add" action="#{experimentController.addExperimentUser()}" oncomplete="PF('experimentUserAddDialogWidget').hide()" update="@form"/>
+                <p:commandButton value="Clear Selection" onclick="PF('experimentUserAddTableWidgetVar').unselectAllRows()" />
+            </f:facet>
+    </p:dataTable>
+    </p:dialog>  
+</ui:composition>
+
+
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml
new file mode 100644
index 0000000000000000000000000000000000000000..caea55a53eeef7109ac23621fcaacb87e0bd61c7
--- /dev/null
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:p="http://primefaces.org/ui"
+                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+
+    <p:confirmDialog id="experimentPolicyRemoveDialog" message="Remove policy #{experimentController.getRemovedPolicyName()} from Experiment?"
+                     header="Remove Policy" severity="alert" widgetVar="experimentPolicyRemoveDialogWidget"
+                     styleClass="dialog">
+        <p:commandButton value="Yes" oncomplete="PF('experimentPolicyRemoveDialogWidget').hide()" action="#{experimentController.updateExperimentPolicy()}" actionListener="#{experimentController.removePolicy()}" update="@form"/>
+        <p:commandButton value="No" onclick="PF('experimentPolicyRemoveDialogWidget').hide()" type="button" />
+    </p:confirmDialog>  
+</ui:composition>
diff --git a/src/java/DmWebPortal/web/views/experiment/view.xhtml b/src/java/DmWebPortal/web/views/experiment/view.xhtml
index 41bcf85ac76f7a332f4045f65674a8b463bd46b3..7a1f4f8a72d336eb6de56dc8a7871f477b6864f4 100644
--- a/src/java/DmWebPortal/web/views/experiment/view.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/view.xhtml
@@ -16,13 +16,15 @@
             </div>
 
             <ui:param name="experimentObject" value="#{experimentController.current}"/>
-            <p:accordionPanel multiple="true" activeIndex="0,1" >
+            <p:accordionPanel multiple="true" activeIndex="0,1,2" >
                 <p:tab title="Experiment Properties">
                     <div class="middleCenterLeftContent">
                         <ui:include src="experimentViewPanelGrid.xhtml"/>
                     </div>
                 </p:tab>
-                
+                 <p:tab title="Experiment Policies">                
+                    <ui:include src="experimentPoliciesViewListDataTable.xhtml"/>
+                </p:tab>               
                 <p:tab title="Experiment Users">                
                     <ui:include src="experimentUsersListDataTable.xhtml"/>
                 </p:tab>
diff --git a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
index ce871bc18e31aa64d486d08bfdf67ba616d6e04b..95fe25e30c4b2cb080e681a0db6ce66268fd6f42 100644
--- a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
@@ -35,7 +35,7 @@
                     <p/>
 
                     <div class="actionButton">
-                        <p:commandButton action="#{policyPropertyController.update()}" actionListener="#{allowedPolicyValueController.clear()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
+                        <p:commandButton action="#{policyPropertyController.update()}" actionListener="#{allowedPolicyValueController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
                         <p:commandButton action="#{policyPropertyController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/>
                     </div>
                 </div>
diff --git a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml
index 9f8bf29fa458fda763ed0e84266c7cdd78f5cbc8..50023cedba3984e7c0a40e2a1256fcc52a74c7a6 100644
--- a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml
+++ b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml
@@ -32,12 +32,12 @@
                   filterBy="#{roleTypeObject.description}" filterMatchMode="contains">
             <h:outputText value="#{roleTypeObject.description}"/>
         </p:column>
-
+        <ui:param name="isAdmin" value="#{loginController.admin}" />
         <p:column headerText="Actions" >
             <div class="actionLink">
                 <p:commandLink action="#{roleTypeController.prepareView(roleTypeObject)}" styleClass="ui-icon ui-icon-info" title="View"/>
                 <p:commandLink action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
-                <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject)}"  styleClass="ui-icon ui-icon-person" title="List All" >
+                <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject) and isAdmin}"  styleClass="ui-icon ui-icon-person" title="List All" >
                     <f:setPropertyActionListener value="#{roleTypeObject}" target="#{userSystemRoleController.systemRole}"/>
                 </p:commandLink>
             </div>
diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
index 3d5782fa212da47c1b9142e990e69a00bf5b08c6..06efa7267244b1a07e854a040da78726d20c8e03 100644
--- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
+++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
@@ -8,6 +8,7 @@
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <div class="pageTitle">