diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/constants/DmStatus.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/constants/DmStatus.java
index 6617843114c49bfc090a6a51ed420370d75e6921..c2bdc586f2d45cbc420757dff64dc9a18e0555f0 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/constants/DmStatus.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/constants/DmStatus.java
@@ -15,4 +15,5 @@ public class DmStatus
     public static final int DM_OBJECT_ALREADY_EXISTS = 6;
     public static final int DM_OBJECT_NOT_FOUND = 7;
     public static final int DM_INVALID_DATE = 8;
+    public static final int DM_MISSING_PROPERTY = 9;
 }
\ No newline at end of file
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
index 07e9f66e90e4a040dbce09cdcc1d695b68186d94..ccf292efc82e3ed5152c8038f0b2c2b2c1ee74bc 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
@@ -77,13 +77,12 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
 
     public String resetList() {
         logger.debug("Resetting list");
-        resetListDataModel();
         return prepareList();
     }
 
     public String prepareList() {
         logger.debug("Preparing list");
-        current = null;
+        resetListDataModel();
         return "list?faces-redirect=true";
     }
 
@@ -268,8 +267,6 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
     }
 
     public List<EntityType> getFilteredObjectList() {
-        boolean isNull = (filteredObjectList == null);
-        logger.debug("filteredObjectList is null "+ isNull);
         return filteredObjectList;
     }
 
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/DataTableController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/DataTableController.java
index 0f966d8fad23a4af593745cbb01523c5e7d9b974..40c603ca04a2cc2ffb6e094feadb8d5e882d0bb8 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/DataTableController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/DataTableController.java
@@ -63,6 +63,7 @@ public abstract class DataTableController<EntityType extends CloneableEntity> im
         listDataTable = null;
         listDataModelReset = true;
         filteredObjectList = null;
+        selectedObjectList = null;
         current = null;
     }
 
@@ -99,7 +100,7 @@ public abstract class DataTableController<EntityType extends CloneableEntity> im
         this.filteredObjectList = filteredObjectList;
     }
 
-   public List<EntityType> getFilteredItems() {
+    public List<EntityType> getFilteredItems() {
         return filteredObjectList;
     }
 
@@ -107,6 +108,10 @@ public abstract class DataTableController<EntityType extends CloneableEntity> im
         this.filteredObjectList = filteredItems;
     }
     
+    public void resetFilterList() {
+        filteredObjectList = null;
+    }
+    
     public boolean isListDataModelReset() {
         if (listDataModelReset) {
             listDataModelReset = false;
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 206fee050b5d70f5d7e3833b71056f8a64d14505..abf97ffe3feaf2a4d585cb8d2ab310a380ff9940 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
@@ -3,6 +3,7 @@ package gov.anl.aps.dm.portal.controllers;
 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.entities.Experiment;
 import gov.anl.aps.dm.portal.model.beans.ExperimentFacade;
 import java.util.List;
@@ -63,7 +64,18 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     }
 
     @Override
-    public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate {
+    public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
+        verifyExperiment(experiment);        
+        logger.debug("Inserting new experiment " + experiment.getName());                
+    }
+
+    @Override
+    public void prepareEntityUpdate(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
+        verifyExperiment(experiment);        
+        logger.debug("Updating experiment " + experiment.getName());                
+    }
+
+    private void verifyExperiment(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
         Experiment existingExperiment = experimentFacade.findByName(experiment.getName());
         if (existingExperiment != null) {
             throw new ObjectAlreadyExists("Experiment " + experiment.getName() + " already exists.");
@@ -73,15 +85,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             throw new InvalidDate("Experiment end date is before start date.");
         }
         
-        logger.debug("Inserting new experiment " + experiment.getName());                
-    }
-
-    @Override
-    public void prepareEntityUpdate(Experiment experiment) throws DmPortalException {
-        super.prepareEntityUpdate(experiment);
-        if ((experiment.getStartDate() != null) && (experiment.getEndDate() != null) && (experiment.getEndDate().before(experiment.getStartDate()))) {
-            throw new InvalidDate("Experiment end date is before start date.");
-        }        
+        if (experiment.getExperimentType() == null) {
+            throw new MissingProperty("Experiment Type is missing.");
+        }
     }
    
 
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 0571eecc6bceaa5ed1c779a29161658859d909d7..a0b3eecbc7b1251dbe55a8232b17887d795b05f3 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
@@ -72,7 +72,10 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp
 
     @Override
     public void prepareEntityUpdate(ExperimentType experimentType) throws DmPortalException {
-        super.prepareEntityUpdate(experimentType);
+       ExperimentType existingExperimentType = experimentTypeFacade.findByName(experimentType.getName());
+        if (existingExperimentType != null) {
+            throw new ObjectAlreadyExists("Experiment type " + experimentType.getName() + " already exists.");
+        }
     }
    
 
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 1c0e21c034341484991f313892f4df5edee42cd7..5e29cde8ccb7def537df681a7bc95ea771870c35 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
@@ -77,7 +77,10 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF
 
     @Override
     public void prepareEntityUpdate(RoleType roleType) throws DmPortalException {
-        super.prepareEntityUpdate(roleType);
+        RoleType existingRoleType = roleTypeFacade.findByName(roleType.getName());
+        if (existingRoleType != null) {
+            throw new ObjectAlreadyExists("Role Type " + roleType.getName() + " already exists.");
+        }
     }
 
     public boolean isRoleSystemType(String name) {
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 5a58c9f52f81c5355c5707a536270dd80554fb66..d83fca3ec8a1e0e270d055147a01294bd7258293 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
@@ -1,9 +1,12 @@
 package gov.anl.aps.dm.portal.controllers;
 
 import gov.anl.aps.dm.portal.exceptions.DmPortalException;
+import gov.anl.aps.dm.portal.exceptions.InvalidDate;
+import gov.anl.aps.dm.portal.exceptions.MissingProperty;
 import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
 import gov.anl.aps.dm.portal.model.entities.UserInfo;
 import gov.anl.aps.dm.portal.model.beans.UserInfoFacade;
+import gov.anl.aps.dm.portal.model.entities.Experiment;
 import gov.anl.aps.dm.portal.utilities.SessionUtility;
 import java.util.ArrayList;
 
@@ -76,12 +79,16 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
     }
 
     @Override
-    public void prepareEntityUpdate(UserInfo user) throws DmPortalException {
+    public void prepareEntityUpdate(UserInfo user) throws ObjectAlreadyExists {
         if (passwordEntry != null && !passwordEntry.isEmpty()) {
             user.setPassword(passwordEntry);
         }
         passwordEntry = null;
-        super.prepareEntityUpdate(user);
+
+        UserInfo existingUserInfo = userInfoFacade.findByUsername(user.getUsername());
+        if (existingUserInfo != null) {
+            throw new ObjectAlreadyExists("User " + user.getUsername() + " already exists.");
+        }
     }
 
     public String prepareSessionUserEdit(String viewPath) {
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 da428975855e3a8d7daa17e4ca59a3f4c90474e6..1851c94a5d0b8b57bf2357f97cfb4087376dfdc5 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
@@ -75,7 +75,7 @@ public class UserSystemRoleController  implements Serializable
 
     private String systemRoleId;
 
-    private static final Logger logger = Logger.getLogger(UserSystemRoleController.class.getName());
+   private static final Logger logger = Logger.getLogger(UserSystemRoleController.class.getName());
 
 
     public SystemRoleTypeTable getSystemRoleTable() {
@@ -94,7 +94,7 @@ public class UserSystemRoleController  implements Serializable
         this.noSystemRoleTable = noSystemRoleTable;
     }
 
-    public String getSystemRoleId() {
+     public String getSystemRoleId() {
         return systemRoleId;
     }
 
@@ -120,7 +120,6 @@ public class UserSystemRoleController  implements Serializable
     }
     
    public boolean hasSystemRole(String user) {
-        logger.debug("in hasSystemRole username, roleId "+ user+" "+systemRoleId);
         int id = Integer.parseInt(systemRoleId);
         RoleType rt = roleTypeFacade.findById(id);
         if (rt == null) {
@@ -131,7 +130,8 @@ public class UserSystemRoleController  implements Serializable
 
     public String prepareSystemRoleView() {
         logger.debug("Preparing system role view");
-        return "/views/userSystemRole/list?faces-redirect=true";
+        noSystemRoleTable.resetList();
+        return resetSystemRoleUserList();
     }
 
     public String addSystemRole() {
@@ -169,6 +169,7 @@ public class UserSystemRoleController  implements Serializable
         }
         try {
         roleTypeFacade.edit(rt);
+        resetNoSystemRoleUserList();
         return resetSystemRoleUserList();
         }
         catch (RuntimeException ex) {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/exceptions/MissingProperty.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/exceptions/MissingProperty.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee8f99142a00e7d3c1ade65de28b09cd240ea638
--- /dev/null
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/exceptions/MissingProperty.java
@@ -0,0 +1,60 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package gov.anl.aps.dm.portal.exceptions;
+
+import gov.anl.aps.dm.portal.constants.DmStatus;
+
+/**
+ *
+ * @author bfrosik
+ */
+public class MissingProperty extends DmPortalException
+{
+    /**
+     * Constructor.
+     */
+    public MissingProperty() 
+    {
+        super();
+        setErrorCode(DmStatus.DM_MISSING_PROPERTY);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param message Error message
+     */
+    public MissingProperty(String message) 
+    {
+        super(message);
+        setErrorCode(DmStatus.DM_MISSING_PROPERTY);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param throwable Throwable object
+     */
+    public MissingProperty(Throwable throwable) 
+    {
+        super(throwable);
+        setErrorCode(DmStatus.DM_MISSING_PROPERTY);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param message Error message
+     * @param throwable Throwable object
+     */
+    public MissingProperty(String message, Throwable throwable) 
+    {
+        super(message, throwable);
+        setErrorCode(DmStatus.DM_MISSING_PROPERTY);
+    }
+}
+
diff --git a/src/java/DmWebPortal/web/resources/css/portal.css b/src/java/DmWebPortal/web/resources/css/portal.css
index 22159fbe0c25e9dd623b87f987b54152c4687290..28c15503806e1a501d350a8fec121d9d32aaa39b 100644
--- a/src/java/DmWebPortal/web/resources/css/portal.css
+++ b/src/java/DmWebPortal/web/resources/css/portal.css
@@ -226,61 +226,6 @@ a:link:hover, a:visited:hover  {
     width: 300px;
 }
 
-.systemRoleAddTable {
-    
-}
-
-.systemRoleAddTable td:nth-child(1) {
-    width: 16px;
-    text-align:center;
-}
-
-.systemRoleAddTable td:nth-child(2) {
-    width: 100px;
-}
-
-.systemRoleAddTable td:nth-child(3) {
-    width: 120px;
-}
-
-.systemRoleAddTable td:nth-child(4) {
-    width: 120px;
-}
-
-.systemRoleAddTable td:nth-child(5) {
-    width: 200px;
-}
-
-.systemRoleTable {
-    
-}
-
-.systemRoleTable td:nth-child(1) {
-    width: 16px;
-    text-align:center;
-}
-
-.systemRoleTable td:nth-child(2) {
-    width: 100px;
-}
-
-.systemRoleTable td:nth-child(3) {
-    width: 120px;
-}
-
-.systemRoleTable td:nth-child(4) {
-    width: 120px;
-}
-
-.systemRoleTable td:nth-child(5) {
-    width: 200px;
-}
-
-.systemRoleTable td:nth-child(7) {
-    width: 150px;
-    visibility:visible;
-}
-
 .entityLogList td:last-child {
     width: 195px;
 }
diff --git a/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml b/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml
index 7429bc24f1c349aa00632ab91b55d8b6dfb4a9f5..93ea642265afed5fd8fb4db0bc107608d4c1db6b 100644
--- a/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml
+++ b/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml
@@ -57,10 +57,10 @@
                             <h:form prependId="false">
                                 <p:menubar>
                                     <p:menuitem value="Home" url="/views/home.xhtml" icon="ui-icon-home"/>
+                                    <p:menuitem value="Experiments" url="/views/experiment/list.xhtml"/> 
+                                    <p:menuitem value="Users" url="/views/userInfo/list.xhtml"/>
                                     <p:menuitem value="Experiment Types" url="/views/experimentType/list.xhtml"/>
                                     <p:menuitem value="Role Types" url="/views/roleType/list.xhtml"/>
-                                    <p:menuitem value="Users" url="/views/userInfo/list.xhtml"/>
-                                    <p:menuitem value="Experiments" url="/views/experiment/list.xhtml"/>                                    
                                     <p:menuitem value="Login" onclick="PF('loginDialog').show();" rendered="#{!loginController.loggedIn}" icon="ui-icon-person"/>
                                     <p:menuitem value="Logout" action="#{loginController.logout()}" rendered="#{loginController.loggedIn}" icon="ui-icon-close"/>                                </p:menubar>
                             </h:form>
diff --git a/src/java/DmWebPortal/web/views/roleType/list.xhtml b/src/java/DmWebPortal/web/views/roleType/list.xhtml
index 4241dd77dbcf1d6d8b01fe1bd32dca1a71d634b7..d0badb8312175885b7068f646d0fbbea251005ae 100644
--- a/src/java/DmWebPortal/web/views/roleType/list.xhtml
+++ b/src/java/DmWebPortal/web/views/roleType/list.xhtml
@@ -23,8 +23,6 @@
 
             <ui:include src="roleTypeDestroyDialog.xhtml"/>
 
-            <h:outputScript library="js/roleType" name="list.filter.js" rendered="#{loginController.loggedIn}"/>
-
         </h:form>
 
     </ui:define>
diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
index edbc2cf582e19df3b66d28320b91337572d52137..eea8848616e8676744ccb757241de4ec376810f6 100644
--- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
+++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml
@@ -16,12 +16,12 @@
         <h:form id="adminListForm">
             <div class="actionButton">
 
-                <p:commandButton id="systemRoleAddButton" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{userSystemRoleController.hasSystemRole(loginController.username)}" icon="ui-icon-plus">
+                <p:commandButton id="systemRoleAddButton" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{userSystemRoleController.hasSystemRole(loginController.username)}" icon="ui-icon-plus" >
                     <p:tooltip for="systemRoleAddButton" value="Add new Administrators."/>
                 </p:commandButton>
                 
-                <p:commandButton id="#{UserInfo}ResetFiltersButton" action="#{userSystemRoleController.resetSystemRoleUserList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight">
-                    <p:tooltip for="#{UserInfo}ResetFiltersButton" value="Reset list filters."/>
+                <p:commandButton id="ResetFiltersButton" action="#{userSystemRoleController.resetSystemRoleUserList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight">
+                    <p:tooltip for="ResetFiltersButton" value="Reset list filters."/>
                 </p:commandButton>
             </div>
 
diff --git a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml
index 40d2669b0cfb8b1725d6d6c9c89fc82a0212dccb..033d51d19551542076d2c11079f86801ac448a0f 100644
--- a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml
+++ b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml
@@ -11,10 +11,10 @@
 
    
     <p:dialog id="adminAddDialog" 
-              header="Add Administrators" widgetVar="systemRoleAddDialogWidget" >
+              header="Add Administrators" widgetVar="systemRoleAddDialogWidget" dynamic="true" styleClass="dialog" width="800">
         
             <div class="actionButton">
-                <p:commandButton id="ResetFilters" action="#{userSystemRoleController.resetNoSystemRoleUserList()}" update="adminAddDialog" onsuccess="systemRoleAddTableWidgetVar.show()" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight">
+                <p:commandButton id="ResetFilters" actionListener="#{userSystemRoleController.noSystemRoleTable.resetFilterList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('systemRoleAddDialogWidget').show()" update="adminAddDialog" >
                     <p:tooltip for="ResetFilters" value="Reset list filters."/>
                 </p:commandButton>
             </div>
@@ -32,7 +32,6 @@
                  rowKey="#{adminUser.username}"
                  widgetVar="systemRoleAddTableWidgetVar" 
                  emptyMessage="No users to add."
-                 tableStyleClass="systemRoleTable"
                  rowSelectMode="true"
                  selectionMode="multiple" >
 
@@ -57,7 +56,7 @@
             </p:column>
 
             <f:facet name="footer">
-                <p:commandButton value="Add Adminstrators" actionListener="#{userSystemRoleController.addSystemRole()}" oncomplete="PF('systemRoleAddDialogWidget').hide()" />
+                <p:commandButton value="Add" action="#{userSystemRoleController.addSystemRole()}" oncomplete="PF('systemRoleAddDialogWidget').hide()" />
                 <p:commandButton value="Clear Selection" onclick="PF('systemRoleAddTableWidgetVar').unselectAllRows()" />
             </f:facet>
         </p:dataTable>