diff --git a/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs b/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
index cdfe4f1..f022440 100644
--- a/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
+++ b/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,4 @@
 eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
 encoding//src/test/java=UTF-8
 encoding//src/test/resources=UTF-8
 encoding/<project>=UTF-8
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
index 7c49489..6387f7f 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
@@ -86,7 +86,7 @@
         }
         return trace;
     }
-    
+
     public void clear() {
         this.traces.set(null);
     }
@@ -125,5 +125,12 @@
             return entries;
         }
 
+        public void truncate(int length, String message) {
+            if (getEntries().size() > length) {
+                this.entries = this.entries.subList(0, length - 1);
+                this.entries.add(message);
+            }
+        }
+
     }
 }
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java
deleted file mode 100644
index 8d2d789..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.services.diagnostics;
-
-import javax.ejb.EJB;
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.Interceptor;
-import javax.interceptor.InvocationContext;
-
-/**
- * TODO
- * 
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@Interceptor
-public class DiagnosticsInterceptor {
-
-    private Diagnostics diagnostics;
-
-    @EJB
-    public void setDiagnostics(Diagnostics diagnostics) {
-        this.diagnostics = diagnostics;
-    }
-
-    public Diagnostics getDiagnostics() {
-        return diagnostics;
-    }
-
-    @AroundInvoke
-    public Object intercept(InvocationContext ctx) throws Exception {
-        System.out.println("*** DiagnosticsInterceptor intercepting " + ctx.getMethod().getName());
-
-        try {
-            return ctx.proceed();
-        } finally {
-            if (!ctx.getMethod().getName().equals("getDiagnostics")) {
-                System.out.println("*** DiagnosticsInterceptor exiting");
-            }
-        }
-    }
-
-}
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
index 36bee03..732c05b 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
@@ -14,7 +14,6 @@
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
-import javax.persistence.OptimisticLockException;
 
 import org.junit.After;
 import org.junit.AfterClass;
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000..38ff1b2
--- /dev/null
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,39 @@
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=-1
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=2
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+resourceNotFound=2
+use-project-settings=true
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000..c077bb1
--- /dev/null
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -0,0 +1,39 @@
+eclipse.preferences.version=1
+org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
+org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
+org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
+org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
+org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
+semanticValidation=enabled
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs b/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
index 5e09596..7f60f10 100644
--- a/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
+++ b/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
@@ -1,6 +1,7 @@
 eclipse.preferences.version=1
 encoding//src/main/java=UTF-8
 encoding//src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java=UTF-8
+encoding//src/main/java/eclipselink/example/jpa/employee/web/Navigation.java=UTF-8
 encoding//src/main/resources=UTF-8
 encoding//src/test/java=UTF-8
 encoding/<project>=UTF-8
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000..467372b
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,39 @@
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=2
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=-1
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+resourceNotFound=2
+use-project-settings=true
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000..046bdbf
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -0,0 +1,39 @@
+eclipse.preferences.version=1
+org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
+org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
+org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
+org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
+semanticValidation=enabled
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs
new file mode 100644
index 0000000..6732777
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs
@@ -0,0 +1,18 @@
+attributeHasNoValue=2
+eclipse.preferences.version=1
+endTagWithAttributes=2
+honourAllSchemaLocations=true
+indicateNoGrammar=-1
+indiciateNoDocumentElement=-1
+markupValidation=false
+missingClosingBracket=2
+missingClosingQuote=2
+missingEndTag=2
+missingQuotes=2
+missingStartTag=2
+missingTagName=2
+namespaceInPITarget=2
+use-project-settings=true
+whitespaceAtStart=2
+whitespaceBeforeTagName=2
+xinclude=true
diff --git a/jpa/employee/employee.web/pom.xml b/jpa/employee/employee.web/pom.xml
index d1c9df9..4132bc7 100644
--- a/jpa/employee/employee.web/pom.xml
+++ b/jpa/employee/employee.web/pom.xml
@@ -62,6 +62,7 @@
 
 
 	<build>
+		<finalName>employe.web</finalName>
 		<defaultGoal>package</defaultGoal>
 
 		<plugins>
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
index 3e75548..f53169c 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
@@ -15,10 +15,14 @@
 import java.util.List;
 
 import javax.ejb.EJB;
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
-import javax.faces.bean.RequestScoped;
+import javax.faces.context.FacesContext;
 
 import eclipselink.example.jpa.employee.services.AdminBean;
+import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics;
+import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics.SQLTrace;
 
 /**
  * TODO
@@ -27,14 +31,25 @@
  * @since EclipseLink 2.4.2
  */
 @ManagedBean
-@RequestScoped
+@ApplicationScoped
 public class Admin {
 
     private AdminBean adminBean;
 
     private List<String> typeNames;
 
-    private boolean displaySql = false;
+    boolean sqlTraceEnabled = true;
+
+    private Diagnostics diagnostics;
+
+    public Diagnostics getDiagnostics() {
+        return diagnostics;
+    }
+
+    @EJB
+    public void setDiagnostics(Diagnostics diagnostics) {
+        this.diagnostics = diagnostics;
+    }
 
     public AdminBean getAdminBean() {
         return adminBean;
@@ -62,22 +77,6 @@
         return typeNames;
     }
 
-    public boolean isDisplaySql() {
-        return displaySql;
-    }
-
-    public void setDisplaySql(boolean displaySql) {
-        this.displaySql = displaySql;
-    }
-
-    public void toggleSqlDisplay() {
-        this.displaySql = !this.displaySql;
-    }
-
-    public String getToggleSqlDisplayButton() {
-        return isDisplaySql() ? "Disable SQL Display" : "Enable SQL Display";
-    }
-
     public String getCacheSize(String typeName) {
         int size = getAdminBean().getCacheSize(typeName);
         if (size < 0) {
@@ -86,4 +85,22 @@
         return Integer.toString(size);
     }
 
+    public boolean isSqlTraceEnabled() {
+        return getDiagnostics().isEnabled();
+    }
+
+    public String getMessages() {
+        SQLTrace trace = getDiagnostics().getTrace(true);
+
+        if (isSqlTraceEnabled() && trace != null) {
+            // Truncate at 5 messages
+            trace.truncate(5, "... SQL trace truncated");
+
+            for (String entry : trace.getEntries()) {
+                FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
+            }
+        }
+        return null;
+    }
+
 }
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java
deleted file mode 100644
index 715aa28..0000000
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.web;
-
-import javax.ejb.EJB;
-import javax.faces.application.FacesMessage;
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.RequestScoped;
-import javax.faces.context.FacesContext;
-
-import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics;
-import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics.SQLTrace;
-
-/**
- * TODO
- * 
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@ManagedBean
-@RequestScoped
-public class DiagnosticsTrace {
-
-    private Diagnostics diagnostics;
-
-    public Diagnostics getDiagnostics() {
-        return diagnostics;
-    }
-
-    @EJB
-    public void setDiagnostics(Diagnostics diagnostics) {
-        this.diagnostics = diagnostics;
-    }
-
-    public String getMessages() {
-        SQLTrace trace = getDiagnostics().getTrace(true);
-
-        if (trace != null) {
-            for (String entry : trace.getEntries()) {
-                FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
-            }
-        }
-        return null;
-    }
-
-}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
index 1fce81b..3403a0b 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
@@ -43,10 +43,6 @@
 
     private EmployeeRepository repository;
 
-    protected static final String PAGE = "/employee/edit";
-    protected static final String PAGE_REDIRECT = "/employee/edit?faces-redirect=true";
-    protected static final String INDEX_PAGE = "/index?faces-redirect=true";
-
     public EmployeeRepository getRepository() {
         return repository;
     }
@@ -120,7 +116,7 @@
     }
 
     public String cancel() {
-        return INDEX_PAGE;
+        return Navigation.INDEX_REDIRECT;
     }
 
     /**
@@ -159,5 +155,5 @@
         getEmployee().removePhoneNumber(phone);
         return null;
     }
-
+    
 }
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
index 9ca6b7d..eda1330 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
@@ -137,7 +137,13 @@
         Flash flashScope = FacesContext.getCurrentInstance().getExternalContext().getFlash();
         flashScope.put("employee", employee);
 
-        return EditEmployee.PAGE;
+        return Navigation.EDIT;
     }
 
+    public String delete(Employee employee) {
+        Flash flashScope = FacesContext.getCurrentInstance().getExternalContext().getFlash();
+        flashScope.put("employee", employee);
+
+        return Navigation.EDIT;
+    }
 }
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java
new file mode 100644
index 0000000..630ed3a
--- /dev/null
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the 
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
+ * which accompanies this distribution. 
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at 
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *  dclarke - initial
+ ******************************************************************************/
+package eclipselink.example.jpa.employee.web;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+import eclipselink.example.jpa.employee.model.Employee;
+
+/**
+ * Backing bean to edit or create an {@link Employee}.
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.3.0
+ */
+@ManagedBean
+@RequestScoped
+public class Navigation {
+
+    protected static final String INDEX_REDIRECT = "/index?faces-redirect=true";
+    protected static final String ABOUT_REDIRECT = "/about?faces-redirect=true";
+    protected static final String ADMIN_REDIRECT = "/admin?faces-redirect=true";
+    protected static final String EDIT = "/employee/edit";
+    protected static final String EDIT_REDIRECT = EDIT + "?faces-redirect=true";
+    protected static final String SEARCH_REDIRECT = "employee/search?faces-redirect=true";
+
+    public String home() {
+        return INDEX_REDIRECT;
+    }
+
+    public String about() {
+        return ABOUT_REDIRECT;
+    }
+
+    public String admin() {
+        return ADMIN_REDIRECT;
+    }
+
+    public String edit() {
+        return EDIT_REDIRECT;
+    }
+
+    public String search() {
+        return SEARCH_REDIRECT;
+    }
+
+}
diff --git a/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf b/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
index f6a94e9..4e6a702 100644
--- a/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
+++ b/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
@@ -23,11 +23,11 @@
 			<h1 class="title">Employee Example</h1>
 			<nav> <h:form>
 				<ul>
-					<li><h:commandLink action="/index?faces-redirect=true"
+					<li><h:commandLink action="#{navigation.home}"
 							value="Home" /></li>
-					<li><h:commandLink action="/about?faces-redirect=true"
+					<li><h:commandLink action="#{navigation.about}"
 							value="About" /></li>
-					<li><h:commandLink action="/admin?faces-redirect=true"
+					<li><h:commandLink action="#{navigation.admin}"
 							value="Admin" /></li>
 				</ul>
 			</h:form></nav> </header>
@@ -47,7 +47,7 @@
 
 			</div>
 		</div>
-		<h:outputText value="#{diagnosticsTrace.messages}" />
+		<h:outputText value="#{admin.messages}"/>
 		<div id="footer-container">
 			<footer class="wrapper"> <h:messages /> </footer>
 		</div>
diff --git a/jpa/employee/employee.web/src/main/webapp/about.xhtml b/jpa/employee/employee.web/src/main/webapp/about.xhtml
index d95804c..0b3b2ca 100644
--- a/jpa/employee/employee.web/src/main/webapp/about.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/about.xhtml
@@ -13,8 +13,7 @@
 		<p>This example illustrates how EclipseLink can be used</p>
 		<h2>Links</h2>
 		<ul>
-			<a href="http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee">Wiki
-				page</a>
+			<li><a href="http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee">Wiki page</a></li>
 		</ul>
 	</ui:define>
 
diff --git a/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml b/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
index 1b0c2bc..d271358 100644
--- a/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
@@ -28,6 +28,8 @@
 				<h:column>
 					<h:commandButton value="Edit" action="#{employeeResults.edit(emp)}"
 						class="button-small" />
+					<h:commandButton value="Delete" action="#{employeeResults.delete(emp)}"
+						class="button-small" rendered="false"/>
 				</h:column>
 
 				<f:facet name="footer" rendered="#{employeeResults.hasPaging}">
diff --git a/jpa/employee/employee.web/src/main/webapp/index.xhtml b/jpa/employee/employee.web/src/main/webapp/index.xhtml
index 1b7c01e..ffc89a8 100644
--- a/jpa/employee/employee.web/src/main/webapp/index.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/index.xhtml
@@ -25,13 +25,13 @@
 					</div>
 					<div align="right">
 						<h:commandLink value="Advanced Search"
-							action="employee/search?faces-redirect=true" />
+							action="#{navigation.search}" />
 					</div>
 				</h:panelGroup>
 				<h:panelGroup>
 					<div align="center">
-						<h:commandButton action="/employee/edit?faces-redirect=true"
-							value="Create" class="menu-button" />
+						<h:commandButton action="#{navigation.edit}" value="Create"
+							class="menu-button" />
 					</div>
 				</h:panelGroup>
 			</h:panelGrid>
