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 0f8d6130a53a25c257affafa7b8f660369b9c787..3f5ed5e56dfcfb12081b049488117048a183b3b6 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
@@ -24,6 +24,7 @@ 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.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -42,7 +43,6 @@ import org.apache.log4j.Logger;
 @SessionScoped
 public class ExperimentController extends CrudEntityController<Experiment, ExperimentFacade>
 {
-
     private static final Logger logger = Logger.getLogger(ExperimentController.class.getName());
 
     @EJB
@@ -134,7 +134,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         public boolean[] getRoles() {
             return userRoles;
         }
-
+        
         @Override
         public int hashCode() {
             return user.getId() + experimentId * 100;
@@ -177,7 +177,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
                     experimentUsers.put(user, experimentUser);
                 }
                 for (RoleType roleType : experimentRoles.values()) {
-                    boolean inRole = (user.getExperimetRole(roleType.getId(), getCurrent().getId()) != null);
+                    boolean inRole = (user.getExperimentRole(roleType.getId(), getCurrent().getId()) != null);
                     experimentUser.setIsInRole(roleType, inRole);
                 }
             }
@@ -213,6 +213,12 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     @SessionScoped
     class ExperimentPolicyTable extends DataTableController<ExperimentPolicy> {
 
+        boolean forEdit;
+        
+        ExperimentPolicyTable(boolean forEdit) {
+            this.forEdit = forEdit;
+        }
+        
         @Override
         public String getClassName() {
             return "ExperimentPolicy";
@@ -222,6 +228,14 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         public List<ExperimentPolicy> findAll() {
             resetList();
             List<ExperimentPolicy> experimentPolicies = experimentPolicyFacade.findByExperimentId(current.getId());
+            if (forEdit) {
+                experimentPropertiesMap.clear();
+                for (ExperimentPolicy experimentPolicy : experimentPolicies) {
+                    for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
+                        experimentPropertiesMap.put(experimentPolicyPropertyValue.getId(), experimentPolicyPropertyValue.getPolicyPropertyValue());
+                    }
+                }
+            }
             return experimentPolicies;
         }
         
@@ -230,8 +244,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             return "experimentPolicyTable";
         }        
     }
-    
-    class PolicyPropertyValue extends CloneableEntity {
+
+    public class PolicyPropertyValue extends CloneableEntity {
+
         private PolicyProperty policyProperty;
         private String value;
 
@@ -249,104 +264,104 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
 
         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();
-            }
+        public boolean hasAllowedValues() {
+            return (policyProperty.getAllowedPolicyValueList() != null) && (policyProperty.getAllowedPolicyValueList().size() > 0);
         }
-        
-        void clear() {
-            for (List<PolicyPropertyValue> list : noPropertyList) {
-                list.clear();
-            }            
+
+        public int getId() {
+            return policyProperty.getId();
         }
-        
-        public List<PolicyPropertyValue> getNoPropertyList(int policyTypeId) {
-            return noPropertyList[policyTypeId];
+    }
+
+    public class MissingPolicyType extends CloneableEntity {
+
+        private List<PolicyPropertyValue> noPropertyList = new ArrayList<>();
+        private final int id;
+        private final String name;
+
+        MissingPolicyType(int id, String name) {
+            this.id = id;
+            this.name = name;
         }
-        
-        @Override
-        public String getClassName() {
-            return "PolicyType";
+
+        public List<PolicyPropertyValue> getNoPropertyList() {
+            return noPropertyList;
         }
 
-        @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);
-                }
-            }
+        public void setNoPropertyList(List<PolicyPropertyValue> noPropertyList) {
+            this.noPropertyList = noPropertyList;
+        }
 
-            return noPolicyTypes;
+        public int getId() {
+            return id;
         }
-        
-        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);
-                }                 
-             }
+
+        public String getName() {
+            return name;
         }
-        
-        private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) {
-            for (ExperimentPolicyPropertyValue ExperimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
-                if (ExperimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) {
-                    return true;
-                }
-            }
-            return false;
+
+        protected void clear() {
+            noPropertyList.clear();
         }
 
+        protected boolean isEmpty() {
+            return noPropertyList.isEmpty();
+        }
     }
+
+    @SessionScoped
+    public class NoPolicyValueTable extends DataTableController<PolicyPropertyValue> {
+
+       NoPolicyValueTable() {          
+       }
+ 
+        @Override
+        public String getClassName() {
+            return "PolicyPropertyValue";
+        }
+
+        @Override
+        public List<PolicyPropertyValue> findAll() {
+            setMissingProperties(experimentPolicyFacade.findByExperimentId(current.getId()), policyTypeFacade.findAll());
+            List<PolicyPropertyValue> missingProperties = new ArrayList<>();
+            for (MissingPolicyType missingPolicyType : missingPolicyTypes) {
+                missingProperties.addAll(missingPolicyType.getNoPropertyList());
+            }
+            return missingProperties;
+        }       
+     }
   
     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();    
-
+    private ExperimentController.ExperimentPolicyTable experimentPolicyListTable = new ExperimentController.ExperimentPolicyTable(false);
+    private ExperimentController.ExperimentPolicyTable experimentPolicyEditTable = new ExperimentController.ExperimentPolicyTable(true);
+    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;
+    private List<MissingPolicyType> missingPolicyTypes = new ArrayList<>();
+    private final Map<Integer, String> experimentPropertiesMap = new HashMap<>();
 
     public ExperimentController() {
     }
 
-    public int getRows() {
-        return rows;
+    @Override
+    public void clear() {
+        experimentUsersListTable.resetList();
+        experimentUsersEditTable.resetList();
+        experimentUsers.clear();
+        noExperimentUsersTypeTable.resetList();
+        experimentPolicyListTable.resetList();
+        missingPolicyTypes.clear();
+        experimentPolicyEditTable.resetList();
+        noPolicyValueTable.resetList();
+        experimentPropertyToDelete = null;
     }
     
     @Override
@@ -400,10 +415,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
                 }
             }
         }
-        List<PolicyType> policyTypesList = policyTypeFacade.findAll();
-        for (PolicyType policyType : policyTypesList) {
-            policyTypes.put(policyType.getId(), policyType);
-        }
         initialized = true;
     }
     
@@ -448,88 +459,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         }
     }
    
-// the methods for Experiment User
-
-    @Override
-    public void clear() {
-        experimentUsersListTable.resetList();
-        experimentUsersEditTable.resetList();
-        experimentUsers.clear();
-        noExperimentUsersTypeTable.resetList();
-        experimentPolicyListTable.resetList();
-        experimentPolicyEditTable.resetList();
-    }
-    
-    public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() {
-        return experimentUsersListTable;
-    }
-
-    public void setExperimentUsersListTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
-        this.experimentUsersListTable = experimentUsersTable;
-    }
-    
-    public ExperimentController.ExperimentUsersTable getExperimentUsersEditTable() {
-        return experimentUsersEditTable;
-    }
-
-    public void setExperimentUsersEditTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
-        this.experimentUsersEditTable = experimentUsersTable;
-    }
-    
-    public ExperimentController.NoExperimentUsersTypeTable getNoExperimentUsersTypeTable() {
-        return noExperimentUsersTypeTable;
-    }
-
-    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()) {
-            ExperimentUser experimentUser = experimentUsers.get(user);
-            for (RoleType roleType : experimentRoles.values()) {
-                int roleId = roleType.getId();
-                userExperimentRole = user.getExperimetRole(roleId, experimentUser.experimentId);
-                if ((userExperimentRole != null ) && (!experimentUser.userRoles[roleId]) ) {
-                   userExperimentRoleFacade.remove(userExperimentRole);
-                }
-            }
-        }
-    }
-
     @Override
     public String update() {
         boolean updated;
@@ -539,41 +468,92 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             for (RoleType roleType : experimentRoles.values()) {
                 if (!roleType.isIsSystemRole()) {
                     int roleId = roleType.getId();
-                    if (user.getExperimetRole(roleId, experimentUser.experimentId) == null) {
+                    if (user.getExperimentRole(roleId, experimentUser.experimentId) == null) {
                         if (experimentUser.userRoles[roleId]) {
                             UserExperimentRole userExperimentRole = new UserExperimentRole(user.getId(), experimentUser.experimentId, roleId);
                             user.addUserExperimentRole(userExperimentRole);
                             updated = true;
                             logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId);
                         }
+                    } else if (!experimentUser.userRoles[roleId]) {
+                        user.removeExperimentRole(roleId, experimentUser.experimentId);
+                        updated = true;
+                        logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId);
                     }
-                    else if (!experimentUser.userRoles[roleId]) {
-                            user.removeExperimentRole(roleId, experimentUser.experimentId);
-                            updated = true;
-                            logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId);
-                        }
-                    }
-                    if (updated) {
-                        userInfoFacade.edit(user);
-                    }
+                }
+                if (updated) {
+                    userInfoFacade.edit(user);
+                }
             }
         }
-        
+
         Iterator<ExperimentPolicy> iterator = experimentPolicyEditTable.getListDataModel().iterator();
         while (iterator.hasNext()) {
-            experimentPolicyFacade.edit(iterator.next());
+            ExperimentPolicy experimentPolicy = iterator.next();        
+            for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
+                String oldValue = experimentPropertiesMap.get(experimentPolicyPropertyValue.getId());
+                String newValue = experimentPolicyPropertyValue.getPolicyPropertyValue();
+                if ((oldValue != null) && !oldValue.equals(experimentPolicyPropertyValue.getPolicyPropertyValue())) {
+                    experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername());
+                    experimentPolicyPropertyValue.setModifiedDate(new Date());
+                    experimentPolicyPropertyValue.setPolicyPropertyValue(newValue);
+                    experimentPolicyPropertyValueFacade.edit(experimentPolicyPropertyValue);
+                }
+            }
         }
-    
         clear();
         return super.update();
     }
     
-    public String updateExperimentPolicy() {
-        ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy();
-        experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete);
-        experimentPolicyFacade.edit(experimentPolicy);
-        clear();
-        return "edit?faces-redirect=true";        
+    void setMissingProperties(List<ExperimentPolicy> experimentPolicies, List<PolicyType> policyTypes) {
+        for (PolicyType policyType : policyTypes) {
+            ExperimentPolicy theExperimentPolicy = null;
+            boolean missingProperties = true;
+            for (ExperimentPolicy experimentPolicy : experimentPolicies) {
+                if (experimentPolicy.getPolicyType().getId() == policyType.getId()) {
+                    theExperimentPolicy = experimentPolicy;
+                    if (theExperimentPolicy.getExperimentPolicyPropertyValueList().size() == policyType.getPolicyPropertyList().size()) {
+                        missingProperties = false;
+                    }
+                    break;
+                }
+            }
+            if (missingProperties) {
+                MissingPolicyType missingPolicyType = new MissingPolicyType(policyType.getId(), policyType.getName());
+                missingPolicyTypes.add(missingPolicyType);
+                for (PolicyProperty policyProperty : policyType.getPolicyPropertyList()) {
+                    if ((theExperimentPolicy == null) || (!hasProperty(theExperimentPolicy, policyProperty))) {
+                        PolicyPropertyValue policyPropertyValue = new PolicyPropertyValue();
+                        policyPropertyValue.policyProperty = policyProperty;
+                        policyPropertyValue.value = policyProperty.getDefaultValue();
+                        missingPolicyType.getNoPropertyList().add(policyPropertyValue);
+                    }
+                }
+            }
+        }
+    }
+
+    private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) {
+        for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) {
+            if (experimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+       public void updateRemovedExperimentRoles() {
+        UserExperimentRole userExperimentRole;
+        for (UserInfo user : experimentUsers.keySet()) {
+            ExperimentUser experimentUser = experimentUsers.get(user);
+            for (RoleType roleType : experimentRoles.values()) {
+                int roleId = roleType.getId();
+                userExperimentRole = user.getExperimentRole(roleId, experimentUser.experimentId);
+                if ((userExperimentRole != null ) && (!experimentUser.userRoles[roleId]) ) {
+                   userExperimentRoleFacade.remove(userExperimentRole);
+                }
+            }
+        }
     }
 
    public String getRemovedUserName() {
@@ -590,6 +570,15 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
        return "";
     }
         
+    public void removeUserRoles() {
+        ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
+        UserInfo user = experimentUser.getUser();
+        List<UserExperimentRole> roleList = user.getUserExperimentRoles(experimentUser.experimentId);
+        for (UserExperimentRole userExperimentRole : roleList) {
+             userExperimentRoleFacade.remove(userExperimentRole); 
+        }
+    }
+    
     public String removeUser() {
         ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
         UserInfo user = experimentUser.getUser();
@@ -608,15 +597,15 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         experimentPolicyPropertyValueFacade.remove(experimentPropertyToDelete);
     }
     
-    public void removeUserRoles() {
-        ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
-        UserInfo user = experimentUser.getUser();
-        List<UserExperimentRole> roleList = user.getUserExperimentRoles(experimentUser.experimentId);
-        for (UserExperimentRole userExperimentRole : roleList) {
-             userExperimentRoleFacade.remove(userExperimentRole); 
-        }
+    public String updateRemovedExperimentPolicy() {
+        ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy();
+        experimentPropertiesMap.remove(experimentPropertyToDelete.getId());
+        experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete);
+        experimentPolicyFacade.edit(experimentPolicy);
+        clear();
+        return "edit?faces-redirect=true";        
     }
-    
+
     public String addExperimentUser() {
         List<UserInfo> newUsers = noExperimentUsersTypeTable.getSelectedObjectList();
         if (newUsers == null) {
@@ -641,6 +630,55 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             }
         }
     }
+ 
+    public String addExperimentPolicyPropertyValues() {
+        List<PolicyPropertyValue> newProperties = noPolicyValueTable.getSelectedObjectList();
+        if (newProperties == null) {
+            logger.debug("null selected list");
+            return null;
+        } else if (newProperties.isEmpty()) {
+            logger.debug("empty selected list");
+            return null;
+        } else {
+            try {
+                ExperimentPolicyPropertyValue experimentPolicyPropertyValue;
+                for (PolicyPropertyValue property : newProperties) {
+                    PolicyProperty policyProperty = property.getPolicyProperty();
+                    experimentPolicyPropertyValue = new ExperimentPolicyPropertyValue();
+                    experimentPolicyPropertyValue.setPolicyProperty(policyProperty);
+                    experimentPolicyPropertyValue.setPolicyPropertyValue(property.getValue());
+                    experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername());
+                    experimentPolicyPropertyValue.setModifiedDate(new Date());
+                    ExperimentPolicy experimentPolicy = getOrCreateExperimentPolicy(policyProperty.getPolicyType());
+                    experimentPolicyPropertyValue.setExperimentPolicy(experimentPolicy);
+                    experimentPolicy.getExperimentPolicyPropertyValueList().add(experimentPolicyPropertyValue);
+                } 
+                super.update();
+                current = experimentFacade.find(current.getId());
+                clear();
+                return "edit?faces-redirect=true";
+            } catch (RuntimeException ex) {
+                SessionUtility.addErrorMessage("Error", "Could not update Experiment Policy" + ": " + ex.getMessage());
+                return null;
+            }
+        }        
+    }
+  
+    private ExperimentPolicy getOrCreateExperimentPolicy(PolicyType policyType) {
+        List<ExperimentPolicy> experimentPolicyList = current.getExperimentPolicyList();
+        for (ExperimentPolicy experimentPolicy: experimentPolicyList) {
+            if (experimentPolicy.getPolicyType().equals(policyType)) {
+                return experimentPolicy;
+            }
+        }
+        ExperimentPolicy newExperimentPolicy = new ExperimentPolicy();
+        newExperimentPolicy.setExperiment(current);
+        newExperimentPolicy.setPolicyType(policyType);
+        experimentPolicyList.add(newExperimentPolicy);
+        policyType.getExperimentPolicyList().add(newExperimentPolicy);
+        experimentPolicyFacade.create(newExperimentPolicy);
+        return newExperimentPolicy;
+    }
     
     public boolean canEditExperiment(Experiment experiment) {
         UserInfo logged = (UserInfo) SessionUtility.getUser();
@@ -656,7 +694,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         // user that is Manager or PI can edit experiment
         int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
         int piRoleId = experimentRoles.get(RoleTypeName.PI).getId();
-        return (logged.getExperimetRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimetRole(piRoleId, experiment.getId()) != null);
+        return (logged.getExperimentRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimentRole(piRoleId, experiment.getId()) != null);
     }
     
     public boolean isRestricted() {
@@ -669,7 +707,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         }
         int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
         int piRoleId = experimentRoles.get(RoleTypeName.PI).getId();
-        return (logged.getExperimetRole(managerRoleId, current.getId()) == null) && (logged.getExperimetRole(piRoleId, current.getId()) == null);
+        return (logged.getExperimentRole(managerRoleId, current.getId()) == null) && (logged.getExperimentRole(piRoleId, current.getId()) == null);
     }
     
     public boolean canDeleteExperiment(Experiment experiment) {
@@ -684,7 +722,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             initializeTables();
         }
         int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId();
-        return logged.getExperimetRole(managerRoleId, experiment.getId()) != null;
+        return logged.getExperimentRole(managerRoleId, experiment.getId()) != null;
     }
     
     public boolean canAddManager() {
@@ -702,7 +740,79 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
         }
         return logged.isIsManager() || logged.isIsPI();
     }
+
+    public boolean notSelected() {
+        return (current == null);
+    }
+
+    public int getRows() {
+        return rows;
+    }
     
+    public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() {
+        return experimentUsersListTable;
+    }
+
+    public void setExperimentUsersListTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
+        this.experimentUsersListTable = experimentUsersTable;
+    }
+    
+    public ExperimentController.ExperimentUsersTable getExperimentUsersEditTable() {
+        return experimentUsersEditTable;
+    }
+
+    public void setExperimentUsersEditTable(ExperimentController.ExperimentUsersTable experimentUsersTable) {
+        this.experimentUsersEditTable = experimentUsersTable;
+    }
+    
+    public ExperimentController.NoExperimentUsersTypeTable getNoExperimentUsersTypeTable() {
+        return noExperimentUsersTypeTable;
+    }
+
+    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 List<MissingPolicyType> getMissingPolicyTypes() {
+        return missingPolicyTypes;
+    }
+
+    public void setMissingPolicyTypes(List<MissingPolicyType> missingPolicyTypes) {
+        this.missingPolicyTypes = missingPolicyTypes;
+    }
+
+    public ExperimentPolicyPropertyValue getExperimentPropertyToDelete() {
+        return experimentPropertyToDelete;
+    }
+
+    public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) {
+        this.experimentPropertyToDelete = experimentPropertyToDelete;
+    }
+
     @FacesConverter(forClass = Experiment.class)
     public static class ExperimentControllerConverter implements Converter {
 
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 122859bb00bd4f210e2cfa1b8145e883892af750..ad652660d4004b8b5518a2bbafffb9a7406f658c 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
@@ -86,14 +86,18 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp
         }
     }
     
-      @Override
+     @Override
      protected String getObjectAlreadyExistMessage(ExperimentType experimentType)  {
         if (experimentType == null) {
             return null;
         }
         return "Experiment Type " + experimentType.getName() + " already exists."; 
     }
-
+     
+    public boolean notSelected() {
+        return current == null;
+    }
+    
     @FacesConverter(forClass = ExperimentType.class)
     public static class ExperimentTypeControllerConverter implements Converter
     {
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 175e2e0cba857f222e3180484b6155f443d22fd9..5360a7647f42317c20b5fa289d4db34d7e2a8517 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
@@ -205,7 +205,11 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
         policyPropertyFacade.edit(current);
         return "/views/policyProperty/edit?faces-redirect=true";
     }
-
+    
+    public boolean notSelected() {
+        return current == null;
+    }
+    
     @FacesConverter(forClass = PolicyProperty.class)
     public static class PolicyPropertyControllerConverter implements Converter
     {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java
index 6b11fa7462b55051bb35a119cf5e90782cf1b844..73885d5909ea0637cdefb36dfd646ed2bda1e294 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java
@@ -93,6 +93,10 @@ public class PolicyTypeController extends CrudEntityController<PolicyType, Polic
          return super.prepareView(current);
      }
 
+    public boolean notSelected() {
+        return current == null;
+    }
+    
     @FacesConverter(forClass = PolicyType.class)
     public static class PolicyTypeControllerConverter implements Converter
     {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java
index acf3f4193dfeb567fe5e3401e706250795b705ce..7f66224a3c907cdde4f250fd44418f0ca617753a 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java
@@ -20,7 +20,7 @@ import org.apache.log4j.Logger;
 public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeFacade>
 {
     private static final Logger logger = Logger.getLogger(RoleTypeController.class.getName());
-    private int rows = 25;
+    private final int rows = 25;
 
     @EJB
     private RoleTypeFacade roleTypeFacade;
@@ -103,6 +103,10 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF
         return roleType.isIsSystemRole();
     }
 
+    public boolean notSelected() {
+        return current == null;
+    }
+    
     @FacesConverter(forClass = RoleType.class)
     public static class RoleTypeControllerConverter implements Converter {
 
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
index 19c7335a561f226428908ce7dcee6c4088e2f1c5..618efe5cd1a57cdaa03c76f8ad44cc6889cfb24d 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
@@ -31,7 +31,7 @@ import org.apache.log4j.Logger;
 public class UserInfoController extends CrudEntityController<UserInfo, UserInfoFacade> {
 
     private static final Logger logger = Logger.getLogger(UserInfoController.class.getName());
-    private int rows = 25;
+    private final int rows = 25;
 
     @EJB
     private UserInfoFacade userInfoFacade;
@@ -134,7 +134,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
                 experimentUser.setDescription(experiment.getDescription());
                 userExperiments.add(experimentUser);
                 for (RoleType roleType : roleTypes) {
-                    boolean inRole = (getCurrent().getExperimetRole(roleType.getId(), experiment.getId()) != null);
+                    boolean inRole = (getCurrent().getExperimentRole(roleType.getId(), experiment.getId()) != null);
                     experimentUser.setIsInRole(roleType, inRole);
                 }
             }
@@ -297,7 +297,11 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
         this.passwordEntry = passwordEntry;
     }
 
-@FacesConverter(forClass = UserInfo.class)
+    public boolean notSelected() {
+        return current == null;
+    }
+    
+    @FacesConverter(forClass = UserInfo.class)
     public static class UserInfoControllerConverter implements Converter
     {
 
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java
index 07e0893eff29f1a3b69d1b614011c1faf53b4c22..04baac2e5d3a0423d9f319c4e1546defd3090dd1 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java
@@ -54,6 +54,7 @@ public class UserSystemRoleController  implements Serializable
         public List<UserInfo> findAll() {
             return userInfoFacade.findNoSystemRoleUsers(systemRole.getId());
         }
+        
     }
     
     private SystemRoleTypeTable systemRoleTable;
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java
index 8b8e8189eed61160e97cf98a407a6b774f68a8d3..b1a539d1bc876362107fabce99e19b11b377fc7d 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java
@@ -6,7 +6,6 @@
 
 package gov.anl.aps.dm.portal.model.beans;
 
-import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy;
 import gov.anl.aps.dm.portal.model.entities.ExperimentPolicyPropertyValue;
 import java.util.List;
 import javax.ejb.Stateless;
@@ -44,7 +43,7 @@ public class ExperimentPolicyPropertyValueFacade extends AbstractFacade<Experime
         }
         return null;
     }
-        
+    
     public List<ExperimentPolicyPropertyValue> findByExperimentPolicyId(int id) {
         try {
             return (List<ExperimentPolicyPropertyValue>) em.createNamedQuery("ExperimentPolicyPropertyValue.findByExperimentPolicyId")
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 0f9281f7282fa45d9561a94026a7aa5bcad5fb7b..7a32bc7fb4cae9c6545871879b7b85873bd2f4fb 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
@@ -59,10 +59,10 @@ public class Experiment extends CloneableEntity
     @Column(name = "description")
     private String description;
     @Column(name = "start_date")
-    @Temporal(TemporalType.DATE)
+    @Temporal(TemporalType.TIMESTAMP)
     private Date startDate;
     @Column(name = "end_date")
-    @Temporal(TemporalType.DATE)
+    @Temporal(TemporalType.TIMESTAMP)
     private Date endDate;
     @ManyToMany(mappedBy = "experimentList")
     private List<DataFolder> dataFolderList;
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 dbc4f4d295ddd06b31ca6ebd6adecdb61927a0dc..824d05f27fe2abd81bd1086fdb9fd8e984b7a07a 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
@@ -70,7 +70,7 @@ public class PolicyProperty extends CloneableEntity
     @JoinColumn(name = "policy_type_id", referencedColumnName = "id")
     @ManyToOne(optional = false)
     private PolicyType policyType;
-    @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyProperty")
+    @OneToMany(cascade = CascadeType.ALL)
     private List<ExperimentPolicyPropertyValue> experimentPolicyPropertyValueList;
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyProperty")
     private List<AllowedPolicyValue> allowedPolicyValueList;
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 5b11232e758a0c16452908ea07de69092870dd0d..57f5ad1e649e506545dc39b3e33c7c6549c5307a 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
@@ -244,7 +244,7 @@ public class UserInfo extends CloneableEntity
         userExperimentRoleList.add(userExperimentRole);
     }
     
-    public UserExperimentRole getExperimetRole(int roleId, int experimentId) {
+    public UserExperimentRole getExperimentRole(int roleId, int experimentId) {
         for (UserExperimentRole experimentRole : userExperimentRoleList) {
             if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId))
                 return experimentRole;
diff --git a/src/java/DmWebPortal/src/java/resources.properties b/src/java/DmWebPortal/src/java/resources.properties
index 01b751cd66403de7891fbc3bb12e0da8ce22e32e..860aa8901f2248ef0eb11c1d0b7bf683f3b73da2 100644
--- a/src/java/DmWebPortal/src/java/resources.properties
+++ b/src/java/DmWebPortal/src/java/resources.properties
@@ -1,4 +1,4 @@
-DatePattern=MM-dd-yyy
+DatePattern=MM/dd/yyyy HH:mm:ss
 
 PersistenceErrorOccured=A persistence error occurred.
 Previous=Previous
diff --git a/src/java/DmWebPortal/web/resources/js/common/noBack.js b/src/java/DmWebPortal/web/resources/js/common/noBack.js
new file mode 100644
index 0000000000000000000000000000000000000000..18b4332fa5f553dfb1c8df6dda6f6be079bc6eb7
--- /dev/null
+++ b/src/java/DmWebPortal/web/resources/js/common/noBack.js
@@ -0,0 +1,2 @@
+  window.history.forward();
+
diff --git a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml
index 1971d8b462f0f682b9668207dad6b25de0835470..9553d6d9a6c33cb77f1824dc18c7eb0d7895ba71 100644
--- a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml
+++ b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml
@@ -11,7 +11,7 @@
     <h:head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
         <link href="/dm/resources/css/portal.css" rel="stylesheet" type="text/css" />
-        <title>Data Management System Portal</title>
+
     </h:head>
 
     <h:body>
diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
index 38542ffe333dfcac84c518b6ce7de261a70680f2..8c60655e42f25cdf81922d659380e91df9693c40 100644
--- a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
+++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml
@@ -6,7 +6,9 @@
                 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">
-    
+  
+    <title>Allowed Policy Value Create</title>
+
     <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">
diff --git a/src/java/DmWebPortal/web/views/experiment/create.xhtml b/src/java/DmWebPortal/web/views/experiment/create.xhtml
index 1a0f34dae6574d717c620276daf2dbac316deb5c..8f7a6432b32c06d2416aa995836f3a8d0b686a25 100644
--- a/src/java/DmWebPortal/web/views/experiment/create.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/create.xhtml
@@ -6,7 +6,9 @@
                 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">
-    
+ 
+    <title>Experiment Create</title>
+
     <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">
diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml
index d90afbf06e4e4dbaedd250493bffdc05e5dc1c5d..d9f4da35badc4bab3de8d95d76cbfe138cc9adb9 100644
--- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Experiment Edit</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}" />
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin and experimentController.isRestricted()}"/>
 
     <ui:composition template="../../templates/dmViewTemplate.xhtml" >
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml
index 6a8d48f5ebf870275b8eb9cdda8950e1fb773d90..a284905a387fc83b72f824fa68dc2caa2027ae0f 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml
@@ -27,10 +27,10 @@
         <h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>      
 
         <h:outputLabel for="startDate" value="Start Date"/>
-        <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" />
+        <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}" />
         
         <h:outputLabel for="endDate" value="End Date" />
-        <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" />
+        <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}" />
         
     </p:panelGrid>
 
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml
index 6224cf4c31208050c3635a3626c56aae4e46b623..e0ebffb46baf87838db41f3de02e1e72cd805233 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml
@@ -19,10 +19,10 @@
         <h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>  
         
         <h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/>
-        <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" />
+        <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}"/>
         
         <h:outputLabel for="endDate" value="End Date" styleClass="entityDataLabel"/>
-        <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" />
+        <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}"/>
 
     </p:panelGrid>
 
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
index 228b7ed0c4bfd4592780ddec61f66752395fae89..5e237fc0731476378095dba341b1b70379596430 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
@@ -7,6 +7,15 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <ui:include src="experimentPolicyAddDialog.xhtml" />
+
+    <ui:param name="isAdmin" value="#{loginController.admin}" />
+
+    <p:commandButton id="experimentPolicyAddButton" value="Add" onclick="PF('experimentPolicyAddDialogWidget').show();" rendered="true" icon="ui-icon-plus" >
+        <p:tooltip for="experimentPolicyAddButton" value="Add new properties." />
+    </p:commandButton>
+    <p:commandButton id="addPoliciesNoOp" style="visibility:hidden" value="NoOp"/>
+    <p:defaultCommand target="addPoliciesNoOp"/>
 
     <p:dataTable id="experimentPoliciesListDataTable"                              
                  var="experimentPolicyObject" 
@@ -54,7 +63,7 @@
             </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">
+                <p:commandLink oncomplete="PF('experimentPolicyRemoveDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentController.current)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form">
                     <f:setPropertyActionListener value="#{propertyValue}" target="#{experimentController.experimentPropertyToDelete}"/>
                 </p:commandLink>
             </div>
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml
index 7b7725b74a9f724038452570eed3ce18b661a2f7..6dfbcf3a393ff9095af8108d7731bb5fffb5dcd6 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml
@@ -11,7 +11,7 @@
               header="Add experiment policies" widgetVar="experimentPolicyAddDialogWidget" dynamic="true" styleClass="dialog" width="800">
         
     <p:dataTable id="addExperimentPolicyList"                              
-                 var="experimentPolicyObject" 
+                 var="missingPolicy" 
                  value="#{experimentController.noPolicyValueTable.listDataModel}" 
                  filteredValue="#{experimentController.noPolicyValueTable.filteredObjectList}"
                  paginator="true" 
@@ -19,52 +19,46 @@
                  rows="#{experimentController.rows}"
                  binding="#{experimentController.noPolicyValueTable.listDataTable}"
                  widgetVar="experimentPolicyAddTableWidgetVar" 
-                 selection="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId()).selectedObjectList}"
-                 rowKey="#{propertyValue.getPolicyProperty().name}"
+                 selection="#{experimentController.getNoPolicyValueTable().selectedObjectList}"
+                 rowKey="#{missingPolicy.id}"
                  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 headerText="PolicyType">
+            <h:outputText value="#{missingPolicy.getPolicyProperty().getPolicyType().name}"/>
+        </p:column>
+        <p:column headerText="Property" >
+            <h:outputText value="#{missingPolicy.getPolicyProperty().name}"/>
+        </p:column>
+        <p:column headerText="Value">
+            <h:inputText id="missingPolicy" value="#{missingPolicy.value}" rendered="#{!missingPolicy.hasAllowedValues()}" styleClass="entityDataTextShort"/>
 
-            <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="missingPolicySelect" value="#{missingPolicy.value}" styleClass="entityDataText" rendered="#{missingPolicy.hasAllowedValues()}">
+                <f:selectItems value="#{missingPolicy.getPolicyProperty().allowedPolicyValueList}" 
+                               var="allowedPolicyValue"
+                               itemValue="#{allowedPolicyValue.policyValue}"
+                               itemLabel="#{allowedPolicyValue.policyValue}" />
+            </p:selectOneMenu>
+            <p:tooltip for="missingPolicy" value="Modify property value" />
+        </p:column>
+        <p:column headerText="Units">
+            <h:outputText value="#{missingPolicy.getPolicyProperty().units}"/>
+        </p:column>
+        <p:column headerText="Description">
+            <h:outputText value="#{missingPolicy.getPolicyProperty().description}"/>
+        </p:column>
 
-                <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>
+        <f:facet name="footer">
+            <p:commandButton value="Add" action="#{experimentController.addExperimentPolicyPropertyValues()}" oncomplete="PF('experimentPolicyAddDialogWidget').hide()" update="@form"/>
+            <p:commandButton value="Clear Selection" onclick="PF('experimentPolicyAddTableWidgetVar').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
index caea55a53eeef7109ac23621fcaacb87e0bd61c7..ca682ba8f1008310ea258478326cbe7b7cebe44d 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml
@@ -7,7 +7,7 @@
     <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="Yes" oncomplete="PF('experimentPolicyRemoveDialogWidget').hide()" action="#{experimentController.updateRemovedExperimentPolicy()}" 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/list.xhtml b/src/java/DmWebPortal/web/views/experiment/list.xhtml
index 97706fd37c50bc2373bd9f1dbaf1d446986b25c8..15e061d0884a33ba739dc4380e9f924d814798cc 100644
--- a/src/java/DmWebPortal/web/views/experiment/list.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/list.xhtml
@@ -7,11 +7,13 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Experiments List</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <div class="pageTitle">
-            <h1>Experiments</h1>
+           <h1>Experiments</h1>
         </div>
 
         <h:form id="viewExperimentListForm">
diff --git a/src/java/DmWebPortal/web/views/experiment/view.xhtml b/src/java/DmWebPortal/web/views/experiment/view.xhtml
index 7a1f4f8a72d336eb6de56dc8a7871f477b6864f4..8791d3c5b6a6befc5ba32415b120ae9dd6324edd 100644
--- a/src/java/DmWebPortal/web/views/experiment/view.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/view.xhtml
@@ -7,7 +7,11 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Experiment View</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentController.notSelected()}" />
+
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <h:form id="viewExperimentForm">
diff --git a/src/java/DmWebPortal/web/views/experimentType/create.xhtml b/src/java/DmWebPortal/web/views/experimentType/create.xhtml
index 75c24d9ddba94316efaddd4d60e255dc8dbda407..f155bf5fc3f20d4c6cd7f504eb3733fe1c1d86b6 100644
--- a/src/java/DmWebPortal/web/views/experimentType/create.xhtml
+++ b/src/java/DmWebPortal/web/views/experimentType/create.xhtml
@@ -6,7 +6,9 @@
                 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">
-    
+   
+    <title>Experiment Type Edit</title>
+
     <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">
diff --git a/src/java/DmWebPortal/web/views/experimentType/edit.xhtml b/src/java/DmWebPortal/web/views/experimentType/edit.xhtml
index 1331c8ef7cd954c79cbeba70117a4ad857660604..a2a17c583610949a87496f63a6a25cbec46a45e5 100644
--- a/src/java/DmWebPortal/web/views/experimentType/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/experimentType/edit.xhtml
@@ -6,8 +6,11 @@
                 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">
-    
+
+    <title>Experiment Type Edit</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentTypeController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/experimentType/list.xhtml b/src/java/DmWebPortal/web/views/experimentType/list.xhtml
index 0f5adbf322cb2947f87a34789c41013bd9a26f92..34dce3600a20860734bd34719ffe7ad07659d50f 100644
--- a/src/java/DmWebPortal/web/views/experimentType/list.xhtml
+++ b/src/java/DmWebPortal/web/views/experimentType/list.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Experiment Types List</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/experimentType/view.xhtml b/src/java/DmWebPortal/web/views/experimentType/view.xhtml
index b4fa02f86e489b240d33f044b64e3624fe3b2b30..53bc135afc0e1c1b03f1cf9c01ca321e585074ca 100644
--- a/src/java/DmWebPortal/web/views/experimentType/view.xhtml
+++ b/src/java/DmWebPortal/web/views/experimentType/view.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Experiment Type View</title>
+ 
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentTypeController.notSelected()}" />
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <h:form id="viewExperimentTypeForm">
diff --git a/src/java/DmWebPortal/web/views/home.xhtml b/src/java/DmWebPortal/web/views/home.xhtml
index e62fae7b3b53f001648f45210b493da762892ec1..9d2b1bd5cf44e0f8e35edb9a6739a4764b626508 100644
--- a/src/java/DmWebPortal/web/views/home.xhtml
+++ b/src/java/DmWebPortal/web/views/home.xhtml
@@ -9,6 +9,8 @@
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
 
+    <title>Data Management System Portal Home</title>
+
     <h:outputScript library="js/common" name="forwardFromHome.js" rendered="#{!loginController.loggedIn}" />
 
     <ui:composition template="../templates/dmViewTemplate.xhtml">
diff --git a/src/java/DmWebPortal/web/views/loginHelp.xhtml b/src/java/DmWebPortal/web/views/loginHelp.xhtml
index b057379f49c894998dc5e67b843135c80e33d8e5..2b297a8d8ce8e95900f36abf129e3938392e428a 100644
--- a/src/java/DmWebPortal/web/views/loginHelp.xhtml
+++ b/src/java/DmWebPortal/web/views/loginHelp.xhtml
@@ -8,7 +8,7 @@
     <h:head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
         <link href="../resources/css/login.css" rel="stylesheet" type="text/css" />
-        <title>Data Management System Login</title>
+        <title>Data Management System Login Help</title>
 
     </h:head>
 
diff --git a/src/java/DmWebPortal/web/views/policyProperty/create.xhtml b/src/java/DmWebPortal/web/views/policyProperty/create.xhtml
index 69a970dcf3896b422cf5f7ac80fc10a5632185d0..b251e6ff5f26f84f62e4f8ff77bd910c31f64be1 100644
--- a/src/java/DmWebPortal/web/views/policyProperty/create.xhtml
+++ b/src/java/DmWebPortal/web/views/policyProperty/create.xhtml
@@ -6,7 +6,9 @@
                 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">
-    
+   
+    <title>Policy Property Create</title>
+
     <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">
diff --git a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
index 95fe25e30c4b2cb080e681a0db6ce66268fd6f42..90d8b375f75d96eec59d1ff046a7908f2102b033 100644
--- a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
     
+    <title>Policy Property Edit</title>
+    
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{policyPropertyController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
         <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/policyProperty/view.xhtml b/src/java/DmWebPortal/web/views/policyProperty/view.xhtml
index 623129de184b93492cf4360f54f79673d299325b..e6b9c2c67ca590a7b1089f30e65f4252dc4d208a 100644
--- a/src/java/DmWebPortal/web/views/policyProperty/view.xhtml
+++ b/src/java/DmWebPortal/web/views/policyProperty/view.xhtml
@@ -7,7 +7,11 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Policy Property View</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{policyPropertyController.notSelected()}" />
+
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
         <ui:define name="middleCenter">
             <h:form id="viewPolicyPropertyForm">
diff --git a/src/java/DmWebPortal/web/views/policyType/edit.xhtml b/src/java/DmWebPortal/web/views/policyType/edit.xhtml
index 32594af3f8e68f3a8cfc46f4224b007801a27dd0..a092d1832cd7cded1dddd584415264922d37d4a9 100644
--- a/src/java/DmWebPortal/web/views/policyType/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/policyType/edit.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
     
+    <title>Policy Type Edit</title>
+    
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{policyTypeController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
         <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/policyType/list.xhtml b/src/java/DmWebPortal/web/views/policyType/list.xhtml
index 945113b8022e84f3254a63bd7a22d140fee25f4f..b33b22c69b823b5e28ae1280b6fd0d2255ea4e05 100644
--- a/src/java/DmWebPortal/web/views/policyType/list.xhtml
+++ b/src/java/DmWebPortal/web/views/policyType/list.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Policy Types List</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/policyType/view.xhtml b/src/java/DmWebPortal/web/views/policyType/view.xhtml
index d6f8147ad7643ea497bd281a62aa18ff3c27905d..56682ff8b0aba464c41931576af65b639f99ce98 100644
--- a/src/java/DmWebPortal/web/views/policyType/view.xhtml
+++ b/src/java/DmWebPortal/web/views/policyType/view.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Policy Type View</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{policyTypeController.notSelected()}" />
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
         <ui:define name="middleCenter">
             <h:form id="viewPolicyTypeForm">
diff --git a/src/java/DmWebPortal/web/views/roleType/edit.xhtml b/src/java/DmWebPortal/web/views/roleType/edit.xhtml
index ffb705f4412303840302878077ac782c452e2e92..1981fd4204001df63433ec881e0cb3fdcbb0874d 100644
--- a/src/java/DmWebPortal/web/views/roleType/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/roleType/edit.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
     
+    <title>Role Type Edit</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{roleTypeController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/roleType/list.xhtml b/src/java/DmWebPortal/web/views/roleType/list.xhtml
index 13a1a205cd7f3d23fe4e9e70f551c90c166817e1..2c66e7574fe297974e14dd73186d5ef8cb58c0cf 100644
--- a/src/java/DmWebPortal/web/views/roleType/list.xhtml
+++ b/src/java/DmWebPortal/web/views/roleType/list.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Role Types List</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/roleType/view.xhtml b/src/java/DmWebPortal/web/views/roleType/view.xhtml
index 2c359f41726fa187d007e92fff5cc2ddf8895b89..1545faa5383948e06eaf0d27519837dd7d2a299d 100644
--- a/src/java/DmWebPortal/web/views/roleType/view.xhtml
+++ b/src/java/DmWebPortal/web/views/roleType/view.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Role Type View</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{roleTypeController.notSelected()}" />
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <h:form id="viewRoleTypeForm">
diff --git a/src/java/DmWebPortal/web/views/userInfo/create.xhtml b/src/java/DmWebPortal/web/views/userInfo/create.xhtml
index 160b5147256f7fc991467cbbdad395f6ee1c1c08..83fd3ddb9ba4045cfb4d3d1cac1fd382dd8cec14 100644
--- a/src/java/DmWebPortal/web/views/userInfo/create.xhtml
+++ b/src/java/DmWebPortal/web/views/userInfo/create.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
     
+    <title>User Create</title>
+
     <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">
diff --git a/src/java/DmWebPortal/web/views/userInfo/edit.xhtml b/src/java/DmWebPortal/web/views/userInfo/edit.xhtml
index 51e1c8b178b820f0187c505d674e775044795d82..af3a803f815a54628ecd9cb0947269565a4a2d88 100644
--- a/src/java/DmWebPortal/web/views/userInfo/edit.xhtml
+++ b/src/java/DmWebPortal/web/views/userInfo/edit.xhtml
@@ -7,11 +7,14 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
     
+    <title>User Edit</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{userInfoController.notSelected()}" />
     <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
-    <ui:define name="middleCenter">
-        <h:form id="editUserInfoForm">
+        <ui:define name="middleCenter">
+            <h:form id="editUserInfoForm">
 
             <div class="middleCenterLeftContent">
                 <div class="pageTitle">
diff --git a/src/java/DmWebPortal/web/views/userInfo/list.xhtml b/src/java/DmWebPortal/web/views/userInfo/list.xhtml
index b96418dec7b8946d21dbfc0c7d46e07111b6aea1..80585f775adcfd710beaa4fedc3f7ab0f3de9871 100644
--- a/src/java/DmWebPortal/web/views/userInfo/list.xhtml
+++ b/src/java/DmWebPortal/web/views/userInfo/list.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>Users List</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
diff --git a/src/java/DmWebPortal/web/views/userInfo/view.xhtml b/src/java/DmWebPortal/web/views/userInfo/view.xhtml
index 33da299b971489daf69845f459b2c15972490d64..be2d53cdc605984ed1ea52cefec13993628937fc 100644
--- a/src/java/DmWebPortal/web/views/userInfo/view.xhtml
+++ b/src/java/DmWebPortal/web/views/userInfo/view.xhtml
@@ -7,7 +7,10 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>User View</title>
+
     <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/>
+    <h:outputScript library="js/common" name="noBack.js" rendered="#{userInfoController.notSelected()}" />
     <ui:composition template="../../templates/dmViewTemplate.xhtml">
     <ui:define name="middleCenter">
         <h:form id="viewUserInfoForm">
diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
index 06efa7267244b1a07e854a040da78726d20c8e03..099d4cc9603871d47f635e8b6c1336d01d6fd827 100644
--- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
+++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
@@ -7,6 +7,8 @@
                 xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
+    <title>User System Roles List</title>
+
     <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">